Byte_order для u16 modbus

Здравствуйте.
Есть устройство, подключенное по rs485/modbus к Wiren Board 8. Устройство выдаёт в канал 16-битное беззнаковое holding value с порядком байт little endian. Как в настройке канала задать порядок байт little endian?

В описании (GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver) есть параметр “byte_order” : “little_endian”. Указание его не даёт эффекта.

  "ports" : 
  [
    {
      "baud_rate" : 115200,
      "data_bits" : 8,
      "devices" : 
      [
        {
          "channels" : 
          [
            {
              "address" : "0",
              "byte_order" : "little_endian",
              "format" : "u16",
              "name" : "timeout",
              "offset" : 0,
              "readonly" : true,
              "reg_type" : "holding",
              "scale" : 1,
              "type" : "value"
            }
          ],
          "protocol" : "modbus",
          "slave_id" : "1"
        }
      ],
      "enabled" : true,
      "parity" : "N",
      "path" : "/dev/ttyRS485-1",
      "stop_bits" : 1
    },

Добрый день!

Потребуется некоторое время, чтобы подготовить ответ.

Здравствуйте!
Да, действительно, изменение параметра “byte_order” не влияет.
Понадобится еще время чтобы разобраться.

byte_order добавили 9 июня (Add byte order device template option for Modbus registers · wirenboard/wb-mqtt-serial@5d3a2b3 · GitHub), судя по истории (видимо, в продолжение Регистры string8 - #12 от пользователя AlexeyMartynov). Вряд ли оно уже доступно у автора темы. Требуется версия wb-mqtt-serial 2.170.0 или новее.

2 лайка

Именно так. Данная версия доступна пока только в релизе testing.

Когда ожидать функционал в релизе?

В конце июля ожидаем новый стабильный релиз.