реклама на сайте
подробности

 
 
> Обнаружение ошибок чётности и др. при приёме ч/з COM порт, В винде
forever failure
сообщение Mar 8 2010, 05:17
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 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 - там всё чётко работает - обнаруживаются все заваленные байты, а правильно отправленные (безошибочные) байты не маркируются как ошибочные, при работе и через реальный и через виртуальный последовательный порт. Можно было бы достичь того же результата в винде ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01433 секунд с 7
ELECTRONIX ©2004-2016