Я кодирую с последовательной связью в Windows.
В этом сообщении, чтобы программа распознала начало сообщения, я должен использовать бит четности.
Это означает, что если байт, полученный с установкой бита четности, является отправной точкой сообщения.
Например, если вы получаете байты, как показано ниже, от последовательного порта
([byte]
означает полученный байт и [byte]p
означает байт с установкой бита четности)
Последовательный порт <-[байт]<- [байт]<- [байт]<- [байт]<- [байт] р<- [байт]: получены байты последовательности
Я должен проанализировать выше сообщения после сброса 4 байтов перед байтом с установкой бита четности.
В случае Linux бит настройки четности представляется как 0XFF 0x00
так что если я получу 1 байт 0xEE с четностью.
Обозначается как 0xFF 0x00 0xEE
, так что я могу выбрать начальную точку.
Но в окнах бит четности представляется как событие EV_ERR
от WaitCommEvent()
И читать данные отдельно ReadFile()
,
Я думаю, что трудно определить, где произошла ошибка четности, чтобы отличить начальную точку сообщения.
Есть ли способ решить эту проблему, на самом деле, так как я новичок в программировании Windows, я думаю, что должен существовать другой путь, верно?
Задача ещё не решена.