16 578
правок
Строка 1070: | Строка 1070: | ||
Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу: | Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу: | ||
'''0000''' 0000 0000 0000 | |||
0000 0000 0000 0000 | |||
Старшие 4 бита - тип действия: | Старшие 4 бита - тип действия: | ||
0 - нет действия | 0 - нет действия | ||
Строка 1078: | Строка 1077: | ||
0b0011 - переключить coil регистр 0 <-> 1 | 0b0011 - переключить coil регистр 0 <-> 1 | ||
0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки) | 0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки) | ||
</ | 0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки) | ||
0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии. | |||
0000 '''0000 0000 0000''' | |||
Младшие 12 бит - номер регистра '''без базового адреса'''. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит. | |||
'''Value = (action << 12) | reg_number''' | |||
Кнопки меняют значения modbus-регистров. Могут быть изменены значения только coil регистров включения (coil 0-10) и holding регистров данных (2000-2017). | |||
Также у кнопок есть дополнительная логика: | |||
Если канал выключен, и нажали кнопки на изменение яркость - канал включается на минимальную яркость и диммируется всегда вверх (если выбрано увеличение/уменьшение) | |||
При диммировании вниз яркость уменьшается до минимального значения 1% (не до нуля) | |||
Если выбрано изменение канала, отличного от яркости (например, Hue), и канал выключен - значение в регистре не будет менятся. То есть нельзя поменять с кнопки цвет выключенной ленты | |||
И логика, не связанная с кнопками: | |||
Если канал включается через coil (с кнопки или нет - не важно) и его яркость равна 0 - яркость устанавливается на 1% | |||
Если яркость канала через holding меняют с нуля на неноль - канал включается (в coil записывается 1) | |||
Если яркость канала через holding меняют с ненуля на ноль - канал выключается (в coil записывается 0) | |||
=== Прошивка 1.0 === | === Прошивка 1.0 === |