Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1237450478
Elun
2009-03-19 11:14
2009.05.03
Про WordApplication


2-1237900470
IIIakal
2009-03-24 16:14
2009.05.03
Помогите плиз разобраться с синтаксисом SQL запроса


4-1208874866
Циркуль
2008-04-22 18:34
2009.05.03
Сохранение/чтение DEVMODE


2-1237842664
alexander-rsh
2009-03-24 00:11
2009.05.03
Удаление папки


2-1237986356
Neket
2009-03-25 16:05
2009.05.03
Проблема при INSERT-е в Базу Oracle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский