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

 
 
> Программирование COM под Windows, не могу справится с переполнением приемного буфера
paskal
сообщение Nov 19 2012, 16:10
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Проверяю UART некоторого устройства через компьютер. Программа написана на C++ билдере под ХР. Прием - передача в принципе работает. Компьютер посылает блок данных, устройство в ответ шлет свой блок, комп его принимает. Программа при этом работает исключительно в синхронном режиме: пошлет пакет, ожидает ответного пакета.

Но есть еще отдельный режим, когда устройство посылает поток байт, а компьютер ничего с ними не делает. После этого программа перестает работать. Выяснил что это происходит из за переполнения приемного буфера, но вылечить это не могу. Не помогает ни вызов ClearCommError, ни закрытие-открытие порта. Да и не может помочь, т.к. в пошаговой отладке выяснилось что переменная в которой хранился дескриптор порта (полученный вызовом CreateFile) - затирается. Т.е. я в принципе не могу работать с портом. Пробовал устранить переполнение присвоением false в переменной dcb->fAbortOnError - не помогло.
Что еще посоветуете?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- paskal   Программирование COM под Windows   Nov 19 2012, 16:10
- - Xenia   Посоветую увеличить размер буфера (можно входного ...   Nov 19 2012, 16:17
|- - paskal   Цитата(Xenia @ Nov 19 2012, 19:17) Посове...   Nov 19 2012, 16:42
|- - Xenia   Цитата(paskal @ Nov 19 2012, 20:42) Нет, ...   Nov 19 2012, 16:52
- - paskal   Таймер там не нужен потому что алгоритм работы пре...   Nov 19 2012, 17:16
|- - Xenia   Цитата(paskal @ Nov 19 2012, 21:16) Можно...   Nov 19 2012, 18:20
|- - zombi   Цитата(Xenia @ Nov 19 2012, 22:20) ... Эт...   Nov 19 2012, 18:50
- - zombi   1. Попробуйте всегда перед началом работы с портом...   Nov 19 2012, 18:18
|- - paskal   Цитата(zombi @ Nov 19 2012, 21:18) 1. Поп...   Nov 19 2012, 19:08
||- - zombi   Цитата(paskal @ Nov 19 2012, 21:55) После...   Nov 19 2012, 19:09
||- - Сергей Борщ   QUOTE (paskal @ Nov 19 2012, 20:55) Не по...   Nov 19 2012, 19:10
||- - paskal   Цитата(Сергей Борщ @ Nov 19 2012, 22:10) ...   Nov 19 2012, 19:39
|||- - XVR   Цитата(paskal @ Nov 19 2012, 23:39) Ну а ...   Nov 20 2012, 08:50
||- - paskal   дубль. сорри.   Nov 19 2012, 19:42
||- - paskal   Цитата(Сергей Борщ @ Nov 19 2012, 22:10) ...   Nov 20 2012, 15:24
|- - MrYuran   Цитата(zombi @ Nov 19 2012, 22:18) 2. Не ...   Nov 20 2012, 09:39
- - dac   ТС походу объявил в проге массив, и считывает в не...   Nov 20 2012, 10:36
- - ARV   я конечно извиняюсь... но нафига вообще открывать ...   Nov 20 2012, 11:19
|- - Xenia   Цитата(ARV @ Nov 20 2012, 15:19) я конечн...   Nov 20 2012, 12:20
|- - ARV   Цитата(Xenia @ Nov 20 2012, 16:20) А вот ...   Nov 20 2012, 12:32
|- - vvs157   Цитата(ARV @ Nov 20 2012, 16:32) что може...   Nov 20 2012, 13:08
|- - Xenia   Цитата(ARV @ Nov 20 2012, 16:32) Xenia, б...   Nov 20 2012, 14:52
- - vvs157   Цитата(paskal @ Nov 19 2012, 20:10) что п...   Nov 20 2012, 11:23
- - zombi   Цитата(MrYuran @ Nov 20 2012, 12:39) Откр...   Nov 20 2012, 11:53


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

 


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


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