Главная страница
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.037 c
4-1103638913
Grant
2004-12-21 17:21
2005.02.06
Работа приложения


6-1101200124
-= Demon =-
2004-11-23 11:55
2005.02.06
WSock32.dll


4-1103177541
Ego
2004-12-16 09:12
2005.02.06
звуковые устройства


1-1106518099
Sphinxx
2005-01-24 01:08
2005.02.06
Ошибка при вызове функции из DLL


11-1089131367
Андрей
2004-07-06 20:29
2005.02.06
Наследник KOLEditBox и метод OnPaint