Добрый день.
Прошу подсказать, так как нигде не нашел информации. Имеется устройство Pilot SPM20, для того чтобы с него получить данные требуется порядок байтов PDP или по другому middle endian. На форуме в 2015 году поднималась эта тема (Подключение новых модулей к Wiren Board 4/5) и говорилось о добавлении этого функционала в код. В руководствах по шаблонам нигде такого варианта не указано.
Прошу сообщить есть ли такой функционал и в случае если он отсутствует. Прошу сообщить в каком файле требуется добавить этот функционал.
Добрый день.
Что имеется в виду? То есть значения в словах - как расположены?
Сейчас драйвер работает с:
// Возможные значения:
// "big_endian" (по-умолчанию): [0xAA 0xBB] [0xCC 0xDD] => 0xAABBCCDD
// "little_endian": [0xAA 0xBB] [0xCC 0xDD] => 0xCCDDAABB
"word_order" : "big_endian",
Ну и поддержка именно драйвером - не обязательна, можно ведь читать значения как int и преобразовавать программно.
Вот пример с wiki по расположению
Раз сейчас имеется только 2 варианта (big_endian, little_endian), то прошу сообщить как программно преобразовать в middle_endian
Не думаю что это подходящий вариант. Т.к. это предполагает взаимодействие через скрипты и создание отдельных переменных.
Сейчас имеется шаблон который привязан к устройству и с него собирает данные. Но из-за того что в самом шаблоне нет варианта middle-endian данные отображаются некорректно.
Меня интересует как на уровне шаблона добавить функцию middle_endian. Чтобы в шаблоне уже отображалось корректное значение. Т.к. имеется довольно большое количество таких устройств.
А чем мешают отдельные переменные? Значения в общем можно писать в топик того же устройства.
Исходники wb-mqtt-serial тут: GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver - открыты и доступны.
Запишу запрос, конечно.
Спасибо, исходники раньше уже находил. Хотелось бы уточнение в каком файле среди исходников описаны big_endian и little_endian, чтобы дополнить функционал как положено.