То есть строку планируется выводить как числовое значение?
Я бы все ж использовал соответствующий (текстовый) тип - потому что сконверитировать не получается.
Ну и - покажите пожалуйста результат чтения регистров, какие знгачения из них фактически читаются.
Судя по поведению, текущее мнение реализации — строка всегда считается как liitle endian. Что, вообще-то логично, так как символы идут по возрастанию условных “адресов”.
Но у разработчиков ОВЕН чуть другое мнение (там есть закладка, которая может поменять порядок байт, но не хотелось бы ей пользоваться, хотя я проверю чуть позже как это работает).
Но вопрос еще более тонкий, ибо little endian и big endian применимы и к 16-битным значениям. Насколько я понимаю, Modbus не навязывает порядок байт, верно?
Проверил переключение порядка байт в ПВТ-110. Он меняет порядок во всем. Например, по умолчанию (little endian):
Температура 0xac52 0x41da (27.33414)
Модель 0x5650 0x3154 0x3031 0x2020…
После переключения (big endian):
Температура 0xda41 0x2a70
Модель 0x2020 … 0x2020 0x3130 0x5431 0x5056
В общем-то, не поспоришь: попросили в big endian, так все в big endian, включая символы и регистры строки.
К WB пока не подключал, поэтому как wb-mqtt-serial переварит полную смену порядка байт пока не знаю. Сегодня ближе к вечеру проверю и это.
Но есть у меня ощущение, что по-простому поддержать порядок байт в регистре для string8 это точно вернуться с течением времени к этому вопросу. Один черт знает, что взбредет в голову разработчикам железок и float они запакуют, например, как 0x41da 0xac52: это странный вариант, потому что байты регистрах LE, а порядок регистров BE.