Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
ВнизСостояние буфера СОМ порта Найти похожие ветки
← →
Darvin (2009-03-18 11:06) [0]Здравтвуйте!
Я работаю с СОМ портом с помощью функций CreateFile, ReadFile, WriteFile. Хотелось бы перед чтением данных из порта узнать количество байт в очереди СОМ порта. С помощью какой функции это можно сделать?
← →
Slym © (2009-03-18 11:42) [1]ClearCommError(HANDLE,err,Stat)?
← →
Darvin (2009-03-18 11:51) [2]>Slym
Получается, я перед чтением должен проверить так:
ClearCommError(HANDLE,err,Stat);
if Stat.cbInQue > N then // N - необходимое кол-во байт для чтения
ReadFile(HANDLE,Buffer, N, NRead, Nil);
И это будет прочитано без задержек на таймауты так , как N байт уже есть во входном буфере?
← →
Slym © (2009-03-18 11:55) [3]Darvin (18.03.09 11:51) [2]
все что в буфере прочитается без усыпления потока...
← →
Slym © (2009-03-18 11:56) [4]Darvin (18.03.09 11:51) [2]
и вообще чтото не здоровое ты замыслил... Какая цель?
← →
Darvin (2009-03-18 11:59) [5]вычитать всеь буфер и при этом не висеть в таймаутах при чтении
← →
Slym © (2009-03-18 12:02) [6]Darvin (18.03.09 11:59) [5]
это средство... а цель не обозначена... может менее ректально мона сделать
← →
Darvin (2009-03-18 13:09) [7]чтение из устройства.. запросный протокол... я должен после запроса вычитать данные... количество байт ответа может быть разным... я должен вычитать ответ одной процедурой чтения, желательно без таймаутов
← →
Сергей М. © (2009-03-18 13:21) [8]
> вычитать ответ одной процедурой чтения
В смысле одним-единственным вызовом ReadFile ?
← →
Darvin (2009-03-18 13:25) [9]да
← →
Slym © (2009-03-18 14:27) [10]а зачем?
все протоколы основаны на таймаутах ограничителях или на предвыставленной длинне ответа...
одним-единственным вызовом ReadFile - это лечение не в том месте
← →
Darvin (2009-03-18 14:36) [11]таймауты - задержки... делается система псевдореального времени... хотелось бы без задержек
← →
Сергей М. © (2009-03-18 14:51) [12]
> хотелось бы без задержек
О каких "задержках" ты говоришь ?
О блокировании вызывающего потока на время выполнения ReadFile ?
Ну так ничто же не мешает задействовать неблокирующий асинхронный режим ввод/вывода ..
← →
Darvin (2009-03-18 14:55) [13]>Ну так ничто же не мешает задействовать неблокирующий асинхронный режим ввод/вывода ..
Отсюда можно подробнее, если можно ссылочку
← →
Сергей М. © (2009-03-18 14:58) [14]см. стандартную справку по CreateFile и флагу FILE_FLAG_OVERLAPPED
← →
Darvin (2009-03-18 15:06) [15]спасибо, буду копать
← →
Slym © (2009-03-18 18:40) [16]Darvin (18.03.09 14:36) [11]
псевдореального
?????????
тупо смотреть сколько в буфере? - это не реалтайм...
сирано паток будет спать, когда системе вздумается... почему бы не поспать в ожидании данных с порта?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.05.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c