Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.08;
Скачать: CL | DM;

Вниз

WaitCommEvent(ComFile,Mask,@Overlapped)   Найти похожие ветки 

 
POP   (2006-09-17 21:05) [0]

Если я использую WaitCommEvent с Overlapped , нужно ли чтобы Overlapp.hEvent было уже заполнено функцией CreateEvent или достаточно предварительно установить SetCommmask и все?

Или CreatEvent используется только для ReadFile/WriteFile и непосредственно перед ними?


 
Kolan ©   (2006-09-17 22:02) [1]


> заполнено функцией CreateEvent

Это как?
CreateEvent - создает объект ядра.


 
POP   (2006-09-18 01:25) [2]


> Это как?
> CreateEvent - создает объект ядра.


Для WaitCommEvent с Overlapped тоже оказалось надо создавать событие в Overlapp.hEvent.

Я ожидание пришедшего байта сделал так:

----
SetCommMask(ComFile,EV_RXCHAR);
 Overlapped.hEvent:= CreateEvent(nil, false, false, nil);
 WaitCommEvent(ComFile,Mask,@Overlapped);
 if WaitForSingleObject(Overlapped.hEvent,50) = WAIT_OBJECT_0 then
   if GetOverlappedResult(ComFile, Overlapped, n, false) = true then
     Goto okk;
 Memo1.Lines.Add("Error. COM port does not answer...");
 Goto endd;
---

Мне кажется это через одно место получилось, зато работает.


 
medved_68 ©   (2006-09-18 13:58) [3]


> Я ожидание пришедшего байта сделал так:
>
> ----
> SetCommMask(ComFile,EV_RXCHAR);
>  Overlapped.hEvent:= CreateEvent(nil, false, false, nil);
>
>  WaitCommEvent(ComFile,Mask,@Overlapped);
>  if WaitForSingleObject(Overlapped.hEvent,50) = WAIT_OBJECT_0
> then
>    if GetOverlappedResult(ComFile, Overlapped, n, false)
> = true then
>      Goto okk;
>  Memo1.Lines.Add("Error. COM port does not answer...");
>  Goto endd;
> ---
>
> Мне кажется это через одно место получилось, зато работает.
>

Да можно было проще:

ReadFile(HComm,Buff,1,nb,@Reading);
if WaitForSingleObject(Readin.hEvent,50) = WAIT_OBJECT_0
then begin
.....делаешь что то по приему 1 байта
end
else делаешь что то если байт не принят по истечении 50 мс;

И без всяких  масок и WaitCommEven"ов
Нафига ставить ожидание приема первого байта, если ты и так считываешь только его. И вообще нафига пользоваться АПИ функциями, если не понимать, как они работают и что они делают???



Страницы: 1 вся ветка

Текущий архив: 2006.10.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.056 c
10-1124092462
DimMih
2005-08-15 11:54
2006.10.08
Вставка изображения в AutoCad


2-1158740335
TrainerOfDolphins
2006-09-20 12:18
2006.10.08
Интересный вопрос про типы.


15-1158238544
Dbn
2006-09-14 16:55
2006.10.08
Настоящий программер ответит на этот вопрос.


15-1158687405
TUser
2006-09-19 21:36
2006.10.08
Зачем флудить?


2-1158660773
Виталька 2006
2006-09-19 14:12
2006.10.08
Прогрессбар...