Pull to refresh

Comments 8

Общий опрос у вас реализован неверно. Причина передачи измеряемых величин при общем опросе должна быть GI или GI+inro. Пакет завершения активации общего опроса должен идти как пройдут все пакеты внутри общего опроса. (7.4.5 Выдержки из функции «Общий опрос. Опрос КП»б таблица 17 и далее)
У вас же пустой цикл общего опроса, после которого пошли данные.
Скоромное ИМХО!
Внимательно посмотрел ваши логи wireshark. Вы неверно формируете номера последовательности пакетов. Любая система закроет соединение с вашим устройством, так как неверно формируется последовательности номеров принятых и отправленных пакетов.
  1. Нумерация должна быть сквозной.
  2. Если вы получили от управляющего устройства 1 пакет, вы должны во всех следующих своих пакетах писать в этом поле 1. А у вас 0 (хотя 1 пакет вы уже получили), 1, затем опять 0.
    Может стоило стандарт почитать не только в части как формировать пакеты, а также то что в них писать? Сейчас у вас там откровенно мусор.
Спасибо за комментарии, да ваши замечания верны, буду исправлять.
P.S. ну как не странно Microcada работает и не рвет =)
Она не рвёт, потому что вы первой посылкой с номером 1 удаляете этот пакет из буфера микроскады. Она считает что он подтверждён. Но по стандарту вы и дальше должны слать единицу.
Да, ещё, отдельный пакет типа S не требуется. Подтверждать полученные пакеты можно I пакетом. S используется только в том случае, если пакет надо подтвердить, но пока нет ничего что можно упаковать в I пакет.
Спасибо за замечания, немного поправил статью.
UFO just landed and posted this here
Arduino вернулся из гиктаймса обратно на Хабр?
Sign up to leave a comment.

Articles