У меня возникла проблема с связью с датчиком акселерометра. Датчик непрерывно выводит около 8000 показаний в секунду. Датчик подключается к порту USB с помощью адаптера и отображается как com4. Моя проблема заключается в том, что я не могу отобразить пакеты считывания сенсоров из потока байтов. Пакеты имеют размер пять байтов и имеют следующий формат:Идентификация пакетов в байтовом потоке
High nibble Low nibble
Byte 1 checksum, id for packet start X high
Byte 2 X mid X low
Byte 3 Y high Y mid
Byte 4 Y low Z high
Byte 5 Y mid Y low
X, Y, Z является ускорение.
В документации к датчику указано, что высокий первый бит в первом байте является контрольной суммой (расчетная величина Xhigh + Xlow + Yhigh + Ylow + Zhigh + Zlow), а также идентификация начала пакета. Я довольно новичок в программировании против внешних устройств и не могу понять, как контрольная сумма может использоваться как идентификатор для начала пакета (не будет ли контрольная сумма постоянно меняться?). Является ли это распространенным способом идентификации начала пакета? Кто-нибудь знает, как решить эту проблему?
Любая помощь была бы принята с благодарностью.
Какие это пакеты? UDP? TCP? или какой? –
@ J.Davidson это должен быть один из них. Могут ли это быть байтовые блоки с внешнего устройства? – I4V
5 байт/пакет, 8000 в секунду = 40 Кбит/с, для этого вам потребуется скорость в 400000, а не стандартная проблема. COM-настройка –