Горячая линия Embedded System Rus:8-800-775-06-34 (звонок по России бесплатный)

LM5_N
LM-Wall_N
DALI_N
Vita_N

Преобразование 4х битового управления в однобайтовое значение

Задача

Необходимо преобразовать 4х битовое управление (тип данных 03.007 диммирование/жалюзи) в объект с однобайтовым значением (05. 1 байт, целое без знака). Например, для выключателей, работающих только с 4х битовым диммированием и исполнительных устройств, принимающих только однобайтовое значение.

Решение
Создаем 2 групповых объекта: 4х битовое управление (3/2/72) и объект для значения (3/2/73)
Внимание! Проверьте, что объект 10/0/100 имеет тип данных 3.007 и объект 10/0/101 имеет тип данных 05. Для этого следует посмотреть на вкладку Объекты (Objects).

Создаем скрипт в Скрипты –> Резидентные  (Scripting -> Resident).

Добавляем следующий код:

step = grp.getvalue('3/2/72')
 
-- volume up (увеличиваем громкость)
if step == 0x09 then
  value = grp.getvalue('3/2/73')
  newvol = math.min(100, value + 5)
  -- set new value (установка нового значения)
  grp.write('3/2/73', newvol)
 
-- volume down (уменьшаем громкость)
elseif step == 0x01 then
  value = grp.getvalue('3/2/73')
  newvol = math.max(0, value - 5)
  -- set new value (установка нового значения)
  grp.write('3/2/73', newvol)
end
 
os.sleep(0.2)