Как получить версию Firmware модуля MR6C?

Как поправить шаблон, что бы можно было получить строку с версией 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"
	    },

Screenshot from 2020-06-30 18-05-20
А зачем такое? Можно ж использовать обновлятор прошивки или получить с помощью

modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a"$DEVADDR" -t0x03 -r"$REGNUM"

В цикле баш-скрипта

То есть в шаблоне все же нет возможности считать сразу несколько регистров и представить их в виде строки. u64 есть, а какое-нибудь str(4), например, не предвидится.

1 лайк

В цикле какого баш скрипта это можно сделать? Это не будет конкурировать с доступом к порту службой wb-mqtt-serial?

Из скрипта - да, надо будет останавливать драйвер на время его работы.

И все же вернусь к вопросу. При постоянно работающем wb-mqtt-serial необходимо иметь возможность публиковать в mqtt строку с текущей версией firmware реле mr6c. Как это проще сделать? Получать из шаблона char 16 раз и складывать эти значения в wb-rules в строку, которую затем выводить в виртуальное устройство? Или все же есть более красивое решение? Почему вы используете в регистрах модулей тип данных строка, но не поддерживаете ее в шаблонах?

0xFA - 0x0109 250-265 input R null-terminated string Версия прошивки

когда-нибудь сделаем, в планах есть