Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: 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 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
9-1098905911
_Дельфин_
2004-10-27 23:38
2005.02.06
OpenGL и 3DSMax


1-1106296475
Suvit
2005-01-21 11:34
2005.02.06
Lay Out Horizontally


3-1104820506
YurikGL
2005-01-04 09:35
2005.02.06
Автоподстановка из родительской таблицы


10-1082634466
Fbin
2004-04-22 15:47
2005.02.06
1c транзакции


3-1105113349
std
2005-01-07 18:55
2005.02.06
Инструментарий