[SLOT_n]
mode = dwinПрограммный модуль сенсорного дисплея DWIN по UART: читает изменения регистров VP и переключает страницы экрана.
Совместимость
Принцип работы
Модуль обменивается с дисплеем по протоколу DWIN (UART, 115200 бод).
Изменения регистров VP, которые дисплей шлёт при нажатии кнопок и вводе
значений, публикуются событиями вида event/VP_xxxx, где xxxx — адрес
регистра: четыре шестнадцатеричные цифры в нижнем регистре (VP_1000,
VP_10a0). Payload — 16-битное значение регистра.
Обратно на дисплей можно отправить команду смены страницы (setPage) —
модуль пишет номер страницы в системный регистр 0x0084. Пока модуль спит
(enable = 0), события с дисплея не публикуются и команды не выполняются.
Набор регистров VP зависит от проекта, залитого в дисплей, поэтому в манифесте модуля он не перечислен — конкретные адреса берутся из проекта дисплея.
Топики
База топика события:
<deviceName>/dwin_<slot>— напримерmoduleBox/dwin_0
База топика действия:
<deviceName>/dwin_<slot>— напримерmoduleBox/dwin_0
Полный топик — база плюс направление и имя: moduleBox/dwin_0/action/setPage.
Опции
Доступные опции:
- disableOnStart — флаг, стартовать в выключенном состоянии и ждать
action/enableсо значением1. По умолчанию модуль активен сразу.
События
| Топик | Payload | Описание |
|---|---|---|
dwin_<slot>/event/enable | 0 / 1 | Активен 1 или спит 0 |
Помимо enable, модуль публикует события по адресам регистров VP:
| Топик | Payload | Описание |
|---|---|---|
dwin_<slot>/event/VP_xxxx | целое, 0–65535 | Новое значение регистра VP с адресом xxxx (hex, нижний регистр) |
Пример: топик moduleBox/dwin_0/event/VP_1000, payload 3.
Команды
| Топик | Payload | Описание |
|---|---|---|
dwin_<slot>/action/setPage | 0–255 | Перейти на страницу экрана по номеру |
dwin_<slot>/action/enable | 0 / 1 | Включить (1) или выключить (0) модуль |
Примеры
[SLOT_2]
mode = dwin
;кнопка на экране (регистр VP 1000) запускает трек
crosslink = dwin_2/event/VP_1000:@->player_0/action/play:@
[SLOT_0]
mode = mp3Player
;по завершении трека вернуть дисплей на первую страницу
crosslink = player_0/event/endOfTrack:#->dwin_2/action/setPage:1Подробнее — внутренние связи (crossLink).