lexszero 11.01.2013 13:55 work

libmodbus — ебаный говнища кусок. Юзаю как клиент, нужно дернуть на железке кастомную модбас-функцию, которая в ответ посылает кучу байт. Формирую пакет ручками, дергаю modbus_send_raw_request(), дергаю modbus_receive_confirmation(), получаю вместо нормального пакета обрезаный после пятого байта. Чешу репу, полдня ищу баги в своей реализации модбаса на девайсе, нихуя не нахожу — другие длинные ответы (от стандартных модбас-функций типа read_registers) приходят нормально, глючит только эта кастомная. Ради лулзов меняю номер кастомной функции на 0x11 (стандартная report_slave_id), так же дергаю ручками через send_raw_request/receive_confirmation — получаю свою заветную кучу байт. Кажется, ебучий либмодбас при реквесте парсит чотам и решает сколько байт ответа нужно захавать, а если функция нестандартная — тупо ставит минимум. Ебучее же говно, пойду починю да насру в багтрекер патчем.

1. ulidtko 11.01.2013 15:38

к

Do you really want to delete ?