Текущий архив: 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.45 MB
Время: 0.038 c