Вниз
Скачать: CL | DM;

ошибки приёма в com порт   Найти похожие ветки 

 
ship   (2004-12-19 14:40) [0]

Возникла потребность отслеживания ошибок приёма данных через com порты таких как: ошибки кадра, ошибки контроля чётности, и т.д.
Перерыл скачанные давно архивы форумов мастеров за 2003 год, но подобного вопроса там не встречал, в основном только о приёме спрашивают, а за 2004 год сейчас скачать архивы не имею возможности.
Для приёма данных использую поток с ClearCommError + ReadFile..
Проблема в том что если com порт настраиваем скажем на 19200, а внешнее подключенное к com порту устройство передаёт их скажем на 38400, то данные всё равно будут читаться с помощью ReadFile. Естественно все они будут неверно распознаны, но читаться эти неправильные данные всёже будут. Пробовал вставлять сразу же после ReadFile функцию GetLastError, но ничего не получилось, всегда выдаёт 0.
Пытался разобраться по исходникам различных компонентов для com портов, но единственный из найденных компонент в котором эта обработка работала правильно был async32, а исходников к нему не прилагалось.
Может уже кто то решал этот вопрос и подскажет как средствами winapi выполнить проверку ошибочности принятых данных которая действительно бы работала. Может кто то видел хорошую статью по этому поводу? Ну или хотябы просто скажите своё мнение, может быть поможет.


 
-=SS=- ©   (2004-12-19 15:08) [1]

Наверное надо поставить проверку на четность ... или придумать свою ... Например устройство сначала передает какое-то значение а потом данные ... проверять значение на допустимость... или еще чего


 
ship   (2004-12-19 18:26) [2]

Организация протокола обмена будет, это само собой. Но это второе, а первое это то, что существуют спец константы созданные для проверки как ошибки чётности, так и ошибки кадра: EV_ERR возвращаемая WaitCommEvent, CE_FRAME и CE_RXPARITY возвращаемые ClearCommError. Хотелось бы научиться у когонибуть пользоваться этими константами, т.к. сам куда их не втыкал толком ничего не получилось.


 
ECM ©   (2004-12-19 23:06) [3]

MSDN:
Files and I/0 Technical Articles  

Serial Communications in Win32

Там есть пример - MTTTY - архив 4918.exe
ИСЧЕРПЫВАЮЩАЯ информация по этому вопросу



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.03 c
1-1106472512
FFFFFFQE
2005-01-23 12:28
2005.02.06
Как через Form1.Components[i] получить размеры компонента


14-1106196121
Poha
2005-01-20 07:42
2005.02.06
Edit


6-1100992028
KarpEn
2004-11-21 02:07
2005.02.06
Как ловчее передать сложную структуру, у которой различный размер


1-1106391045
Леха
2005-01-22 13:50
2005.02.06
копия реестра


1-1106228591
tse
2005-01-20 16:43
2005.02.06
Сжатие масива данных




   Наверх