Ошибка при опросе устройства со slave id > 247

Доброго времени суток!

Пытаюсь опросить датчик CO2 K-30 по адресу 0xFE(254).
modbus_client возвращает ошибку:

modbus_client: modbus-rtu.c:119: _modbus_rtu_build_request_basis: Assertion 'ctx->slave != -1' failed.
Aborted

При опросе устройств со slave id до 0xF8(248) опрос усуществляется.
Первоначальная настройка датчика осуществляется по адресу 254 в соответствии с протоколом стр.9 .

Как внести изменения в драйвер?

Добрый день,

в соответствии со стандартом Modbus, допустимые адреса у устройств могут быть от 1 до 247 включительно.
Драйвер использует libmodbus, в котором нет способа отключить проверку.
Есть тикет: https://github.com/stephane/libmodbus/issues/38 , есть решение. Нужно накатить патчи на библиотеку, собрать патченную библиотеку в пакет, выложить в репозиторий, добавить опцию и вызов настроек в драйвер. Всё вместе часа на 4 работы, можем сделать мы по ставке платной ТП (1700р/ч).

У K-30 странная реализация modbus. Судя по описанию он должен откликаться на широковешательный запрос: The sensor is addressed as “Any address” (0xFE). Как я понимаю, даже если получится отправить на этот адрес какое-либо сообщение, на него откликнутся все устройства подключенные к шине?