2 значения в одном регистре

Добрый день!
Пишу шаблон для кастомного девайса. По докментации на N-ном регистре следующая инфа:
Старший байт - значение 1-го датчика.
Младший байт - значение 2-го датчика.
Хочу сделать так, чтобы в mosquitto было 2 топика для 1-го и 2-го датчика.

Предполагаю, что шаблон будет выглядеть вот так:

    {
     "name": "Device 1",
     "reg_type": "input",
     "address": 40,
     "type": "value",
     "format": "u8",
     "word_order": "big_endian"
    },
    {
     "name": "Device 2",
     "reg_type": "input",
     "address": 40,
     "type": "value",
     "format": "u8",
     "word_order": "little_endian"
    },

Прокатит ли u8 c big endian? Или нужно искать другие варианты?
Будет ли это корректно работать?

Так не получится. Сделайте виртуальное устройство, в нем разделяйте по датчикам и запихивайте в нужные контролы.

1 лайк

На самом деле можно, но коряво и недокументировано.

напишите в одном 40:0:8, в другом 40:8:8

версия wb-mqtt-serial должна быть самая свежая

первое для младшего байта второе для старшего, правильно? Нужно ли использовать кавычки для этих значений? Можно ли использовать тип свитч для холдинг регистра если значения предполагаются только 0 и 1?
“reg_type”: “holding”,
“address”: 4:0:8,
“format”: “u8”,
“type”: “switch”

кавычки надо. Синтаксис такой “регистр:смещение в битах:ширина значения в битах”.

да

напишите в одном 40:0:8, в другом 40:8:8

Еще вопрос - оно будет опрашивать устройство отдельно для каждого канала несмотря на то что это один регистр или один раз для всех каналов?

Думаю, самый простой способ получить ответ - запустить wb-mqtt-serial с отладочным ключом и посмотреть.
А почему это важно?