Как поправить шаблон, что бы можно было получить строку с версией firmware?
Вариант, приведенный ниже отдаст ведь только первый символ версии прошивки.
{
“name”: “FW”,
“type”: “text”,
“reg_type”: “holding”,
“address”: 250,
“format”: “char8”
},
Если именно в шаблоне - то
{
"name": "FW",
"type": "text",
"reg_type": "holding",
"address": 250,
"format": "char8"
},
{
"name": "FW1",
"type": "text",
"reg_type": "holding",
"address": 251,
"format": "char8"
},
{
"name": "FW2",
"type": "text",
"reg_type": "holding",
"address": 252,
"format": "char8"
},
{
"name": "FW3",
"type": "text",
"reg_type": "holding",
"address": 253,
"format": "char8"
},
А зачем такое? Можно ж использовать обновлятор прошивки или получить с помощью
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a"$DEVADDR" -t0x03 -r"$REGNUM"
В цикле баш-скрипта
То есть в шаблоне все же нет возможности считать сразу несколько регистров и представить их в виде строки. u64 есть, а какое-нибудь str(4), например, не предвидится.
В цикле какого баш скрипта это можно сделать? Это не будет конкурировать с доступом к порту службой wb-mqtt-serial?
Из скрипта - да, надо будет останавливать драйвер на время его работы.
И все же вернусь к вопросу. При постоянно работающем wb-mqtt-serial необходимо иметь возможность публиковать в mqtt строку с текущей версией firmware реле mr6c. Как это проще сделать? Получать из шаблона char 16 раз и складывать эти значения в wb-rules в строку, которую затем выводить в виртуальное устройство? Или все же есть более красивое решение? Почему вы используете в регистрах модулей тип данных строка, но не поддерживаете ее в шаблонах?
0xFA - 0x0109 250-265 input R null-terminated string Версия прошивки
когда-нибудь сделаем, в планах есть