|
Обнаружение ошибок чётности и др. при приёме ч/з COM порт, В винде |
|
|
|
Mar 8 2010, 05:17
|
Местный
  
Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112

|
Всем доброго. Ув. эксперты, поскажите, есть ли в виндовых осях возможность обнаруживать ошибки контроля чётности и другие (CE_FRAME, CE_OVERRUN) при получении данных побайтно по последовательному порту ? Пробую тестовую программу - внешним устройством (контроллером) посылается поток байт - часть с ошибкой чётности (точнее, просто с перевёрнутой чётностью), часть - без ошибок. Принимающая часть (программа под виндой) распознаёт только ошибку в самом первом испорченном байте, остальные почему-то молча пропускает - это при приёме через встроенный железный COM порт. При прохождении через виртуальный COM порт (переходник USB<->COM FT232) ещё хуже - не только пропускаются ошибочные байты, но и метятся ошибочными безошибочные данные. Приём и проверка выполняется вот таким кодом: CODE static int read_byte (HANDLE handle, uint8_t * byte) { uint8_t b; DWORD ret; if (!ReadFile (handle, &b, 1, &ret, 0)) return -1;
if (0 == ret) return 0;
DWORD err; ClearCommError (handle, &err, 0);
if (err) { fprintf (stderr, "\nComm Error: "); fprintf (stderr, CE_FRAME & err ? "F" : "-"); fprintf (stderr, CE_RXPARITY & err ? "P" : "-"); fprintf (stderr, CE_IOE & err ? "I" : "-"); fprintf (stderr, CE_OVERRUN & err ? "O" : "-"); fprintf (stderr, CE_RXOVER & err ? "B" : "-"); fprintf (stderr, " = %02X ", b); return -2; }
*byte = b; return 1; } Есть код аналогичного назначения под Linux - там всё чётко работает - обнаруживаются все заваленные байты, а правильно отправленные (безошибочные) байты не маркируются как ошибочные, при работе и через реальный и через виртуальный последовательный порт. Можно было бы достичь того же результата в винде ?
|
|
|
|
Сообщений в этой теме
forever failure Обнаружение ошибок чётности и др. при приёме ч/з COM порт Mar 8 2010, 05:17 zltigo Цитата(forever failure @ Mar 8 2010, 08:1... Mar 8 2010, 07:12 galjoen Цитата(zltigo @ Mar 8 2010, 10:12) железо... Mar 8 2010, 14:26  zltigo Цитата(galjoen @ Mar 8 2010, 17:26) Почем... Mar 8 2010, 16:31   galjoen Цитата(zltigo @ Mar 8 2010, 19:31) Давайт... Mar 8 2010, 17:25    zltigo Цитата(galjoen @ Mar 8 2010, 20:25) Вот, ... Mar 8 2010, 19:02 @Ark ЦитатаПринимающая часть (программа под виндой) рас... Mar 8 2010, 07:46 forever failure Тогда можно было-бы переформулировать вопрос:
Если... Mar 8 2010, 09:34 zltigo Цитата(forever failure @ Mar 8 2010, 12:3... Mar 8 2010, 10:21 _Pasha Цитата(forever failure @ Mar 8 2010, 13:3... Mar 8 2010, 10:26  zltigo Цитата(_Pasha @ Mar 8 2010, 13:26) Только... Mar 8 2010, 10:33   _Pasha Цитата(zltigo @ Mar 8 2010, 14:33) С чего... Mar 8 2010, 10:42 forever failure Ну я тоже так же и предполагал.
Благодарю за то, ч... Mar 8 2010, 10:36 @Ark Цитата... ошибки в FIFO-режиме хранятся на каждый ... Mar 8 2010, 18:35 @Ark ЦитатаЦитата(zltigo)
При ошибках внутренняя логика... Mar 8 2010, 19:13 zltigo Цитата(@Ark @ Mar 8 2010, 22:13) То есть ... Mar 8 2010, 19:20 @Ark ЦитатаПро правильно ничего не понял...
Правильно р... Mar 8 2010, 19:42 zltigo Цитата(@Ark @ Mar 8 2010, 22:42) Правильн... Mar 8 2010, 20:01 @Ark ЦитатаБред.
Изложите, тогда, "свой бред... Mar 8 2010, 20:06 galjoen Цитата(@Ark @ Mar 8 2010, 23:06) После сб... Mar 9 2010, 10:06 zltigo Цитата(@Ark @ Mar 8 2010, 23:06) Медленно... Mar 9 2010, 10:24  galjoen Цитата(zltigo @ Mar 9 2010, 13:24) Для во... Mar 9 2010, 10:53   zltigo Цитата(galjoen @ Mar 9 2010, 13:53) Сейча... Mar 9 2010, 14:00    galjoen Цитата(zltigo @ Mar 9 2010, 17:00) Ну а е... Mar 12 2010, 08:52     zltigo Цитата(galjoen @ Mar 12 2010, 11:52) А во... Mar 12 2010, 13:25      firstvald Цитата(zltigo @ Mar 12 2010, 16:25) Это п... Mar 13 2010, 09:24       zltigo Цитата(firstvald @ Mar 13 2010, 12:24) Ну... Mar 13 2010, 09:43        firstvald Цитата(zltigo @ Mar 13 2010, 12:43) вылез... Mar 13 2010, 16:20         rezident Цитата(firstvald @ Mar 13 2010, 21:20) Жи... Mar 13 2010, 19:31 forever failure Ксати да, тоже ожидал, что обязательно появится не... Mar 9 2010, 13:47 @Ark ЦитатаЦитата(zltigo)
Вот именно эти Ваши "гип... Mar 9 2010, 15:50 zltigo Цитата(@Ark @ Mar 9 2010, 18:50) А я назы... Mar 9 2010, 17:13 @Ark ЦитатаКатегорическое непонимание того, что, как ми... Mar 9 2010, 18:00 zltigo Цитата(@Ark @ Mar 9 2010, 21:00) Речь иде... Mar 9 2010, 18:09 @Ark ЦитатаТолько вот какой "облом" пауза, ко... Mar 9 2010, 18:15 zltigo Цитата(@Ark @ Mar 9 2010, 21:15) ... глав... Mar 9 2010, 18:24 @Ark Цитата... В чем разница? Только в том, что из-за с... Mar 9 2010, 18:37 zltigo Цитата(@Ark @ Mar 9 2010, 21:37) Синхрони... Mar 9 2010, 18:54 @Ark ЦитатаА сделать паузу в "твержении" и НА... Mar 9 2010, 19:10 zltigo Цитата(@Ark @ Mar 9 2010, 22:10) Может и ... Mar 9 2010, 19:31 @Ark ЦитатаНу и как борьбе с ошибками ДАЖЕ ОДИНОЧНЫМИ п... Mar 9 2010, 19:52 zltigo Цитата(@Ark @ Mar 9 2010, 22:52) Почему-т... Mar 9 2010, 20:09 _Pasha Цитата(@Ark @ Mar 9 2010, 23:52) Понятно,... Mar 10 2010, 00:31 @Ark ЦитатаЛожный старт возможен только если в предыдущ... Mar 9 2010, 20:41 firstvald Всего хорошо в меру. Под каждую задачу - свой мет... Mar 11 2010, 09:14 firstvald Не-а. В modbus rtu никаких своих чудес вставлять... Mar 12 2010, 11:46 _Pasha Цитата(galjoen @ Mar 12 2010, 11:52) А си... Mar 13 2010, 09:35 galjoen Цитата(zltigo @ Mar 12 2010, 16:25) Вот и... Mar 13 2010, 17:25  _Pasha Цитата(galjoen @ Mar 13 2010, 20:25) По п... Mar 13 2010, 19:28   galjoen Цитата(_Pasha @ Mar 13 2010, 22:28) А п.5... Mar 14 2010, 14:31    _Pasha Цитата(galjoen @ Mar 14 2010, 18:31) отка... Mar 14 2010, 14:51     galjoen Цитата(_Pasha @ Mar 14 2010, 17:51) p[i] ... Mar 14 2010, 16:17 firstvald Про кругозор советую помолчать. Выношу вам замеча... Mar 14 2010, 12:48 firstvald Первый раз с проблемой паритета столкнулись, когда... Mar 15 2010, 08:57 _Pasha Цитата(firstvald @ Mar 15 2010, 12:57) По... Mar 15 2010, 09:19 firstvald А если старт не ложный? Вот и начинается мешанина ... Mar 15 2010, 17:07 galjoen Цитата(firstvald @ Mar 15 2010, 20:07) А ... Mar 15 2010, 19:50 _Pasha Цитата(firstvald @ Mar 15 2010, 21:07) А ... Mar 15 2010, 23:47 firstvald Согласен Mar 16 2010, 08:48
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|