PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Софт (http://pccar.ru/forumdisplay.php?f=172)
-   -   Serial Manager - автоматизация/управление Android с помощью Arduino (http://pccar.ru/showthread.php?t=24120)

vasilij_c 25.08.2016 22:11

DelleTenebre, не нашел в разделе "эмуляция клавиатуры[root]" клавиши - KEYCODE_PAGE_DOWN(93) и KEYCODE_PAGEUP(92) возможно дополнить?

возможно ли добавить команду для появления фокуса на иконке приложения(виджета)? сейчас, при тыкании в тач - фокус пропадает. при посылке команды (эмуляция клавиатуры) - первая команда игнорируется, но появляется фокус. с хардварной клавиатурой поведение тоже самое.

Sergey 4_4 25.08.2016 22:13

Цитата:

Сообщение от mark949 (Сообщение 367894)
Да, от Юры 2 HID контроллера + мультитача от него же, остальные это hdmi to lvds, отдельный контроллер управления яркостью..

С Serial Manager оба контроллера работают или один? Ещё опиши как андроид приставка отключается?

mark949 26.08.2016 11:06

Цитата:

Сообщение от Sergey 4_4 (Сообщение 367901)
С Serial Manager оба контроллера работают или один? Ещё опиши как андроид приставка отключается?

Да оба, один отвечает за CAN второй за iBus, оба работают с Serial Manager. Выключается по прошествии некого времени после отсутствия питания АСС идет серийная команда от HID контроллера в Serial Manager тот выполняет: категория - "управление системой", далее функция - "выключение".

DelleTenebre 26.08.2016 17:41

Rage2, с эмуляцией нажатий разобрался - нужно SELinux в permissive. Кстати, например BACK или VOLUME работали с fallback через "input keyevent ...", там только некоторые требуют uinput (например ALT+TAB).

mark949, в принципе можно попробовать такое реализовать, но боюсь не сработает - проблема в том, что при переподключении хаба эти адреса меняются, поэтому и нужно "автоподключение", которое надо как-то улучшить.

vasilij_c, KEYCODE_PAGE_DOWN(93) и KEYCODE_PAGEUP(92) добавлю. Про фокус я что-то не допёр, если можно чуть подробнее.

DelleTenebre 27.08.2016 21:17

В 1.6.6:
  • Уведомления поверх остальных окон (для распознанной команды) - должно работать стабильно; добавил опцию "скрывать при клике"; добавлены варианты анимаций при появлении/скрытии.
  • Добавлена эмуляция кнопок: KEYCODE_PAGE_DOWN и KEYCODE_PAGEUP
  • По просьбе papant (пост) добавлены:
    Intent с action: serial.manager.CONNECTED_DEVICES, который имеет extras: all, usb, bluetooth. Данный интент создаётся при подключении/отключении устройств, при запуске сервиса, а так же при получении intent'a serial.manager.CONNECTED_DEVICES_REQUEST.

vasilij_c 27.08.2016 21:58

Цитата:

Сообщение от DelleTenebre (Сообщение 367940)
.. чуть подробнее.


DelleTenebre 31.08.2016 19:35

Вложений: 2
В 1.6.7 добавлены категории в настройки приложения и добавлена возможность распознавать нажатия клавиш клавиатуры для этого:
  • подключаем нужную клавиатуру;
  • в терминале вводим
    Код:

    cat /proc/bus/input/devices
    или через adb:
    Код:

    adb shell cat /proc/bus/input/devices
  • видим примерно следующее (вложение 1)
  • я подключал небольшую клавиатуру со встроенной гироскопической мышью, которая определилась как " Multimedia Air Mouse Keyboard" (на изображении выделено зелёным)
  • как видно, создаётся два устройства (один для мышки, второй для клавиатуры) и чтобы их различать пришлось использовать параметр EV (на изображении выделено золотым)
  • далее, в SerialManager создаём новую команду. Для значения ключ пишем следующее
    Код:

    keyboard|Air|120013
    • keyboard - не изменяется и является шаблоном для SM
    • Air - уникальная часть имени нашего устройства, можно было бы заполнить полностью Multimedia Air Mouse Keyboard, но мне было лень, Air вполне достаточно.
    • 120013 - параметр EV, полностью.
  • затем, для поля Значение необходимо вводить linux keycode нажимаемого символа (если сочетание клавиш, то через +). Например, если мы хотим определять сочетание CTRL+q, то вводим
    Код:

    29+16
    (вложение 2)

Небольшая хитрость, если заранее Вам неизвестны keycode, то можно оставить поле Значение пустым и нажимать на нужные клавиши при открытом окне SerialManager - будут появляться всплывающие сообщения с кодами нажатых клавиш.

В настройках есть пункт "Задержка распознавания нажатий (мс)" - оно нужно именно для распознавания сочетаний, т.к. если нажимать клавиши довольно медленно, то события будут генерироваться последовательно. Например, мы хотим распознать ctrl+q+c, если нажимать не очень быстро, то будут сгенерированы следующие команды:
Если Вы сумеете уложиться во время указанное в "Задержка распознавания нажатий (мс)", то будет сгенерирована только одна команда

----------------------

Обновление 11.07.2016, начиная с версии 1.6.8

Теперь необходимо выбрать Тип команды Keyboard (/dev/input/event*) и заполнить появившиеся поля Параметр NAME и Параметр EV. Поле Ключ будет заполнено автоматически. Скриншот

mark949 31.08.2016 20:41

Это отличная возможность, спасибо. Еще бы жесткую привязку более одного контроллера от Юры ;)

yuriy m 31.08.2016 21:15

А как дела обстоят с I2c шиной и т.д. ?

DelleTenebre 01.09.2016 16:18

mark949, двигаюсь в этом направлении.

yuriy m, I2C пока что в заморозке - не на чем тестировать.


Часовой пояс GMT +4, время: 19:42.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot