китайской железкой на которую, разумеется, нет документации.
Нашел алгоритм расчета CRC, при котором отправленные мною пакеты корректно обрабатываются устройством, принятые пакеты мне тоже удается проверить с помощью этого алгортма.
НО - иногда пролетают пакеты, для которых указанная в пакете контрольная сумма не совпадает с рассчитанною мной.
Может ли быть проблема в выбранном мною алгоритме?
ну может есть разные пакеты и у них заголовок отбрасывается или имитовставка применяется
возможно, конечно, но как-то странно применять другие параметры расчета crc пакета ответа только для определенной команды. при чем один из двух байт crc у меня совпадает, поэтому и появилась мысль о проблеме с алгоритмом
а второй сильно отличается?
01010111 01010110 0x5756 1011 01010110 0x0B56 первый рассчитан устройством, второй мой
я бы поизучал диффы
дифы?
то место, где отличия или разницу crc-ей
ну вот я и на первый байт смотрю, но идей пока нет)
В некоторых протоколах для последовательных интерфейсов проверка CRC происходит после обработки esc-эйп последовательностей. В вашем протоколе они точно не используются?
протокол бинарный, эскейп последовательностей нет
Ну PPPoS тоже бинарный ;) Если совсем тупик, я бы начал с проверки что CRC правильно считается для всех возможных значений байт данных.
а у них возможно другое мнение
Обсуждают сегодня