-
Path: news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail
From: "Tomek W" <w...@w...pl>
Newsgroups: pl.comp.programming
Subject: port com i reakcja na breaka i znak builder c++
Date: Thu, 15 Jan 2009 11:24:17 +0100
Organization: http://onet.pl
Lines: 123
Message-ID: <gkn2m6$hsb$1@news.onet.pl>
NNTP-Posting-Host: ado26.internetdsl.tpnet.pl
X-Trace: news.onet.pl 1232014854 18315 83.16.92.26 (15 Jan 2009 10:20:54 GMT)
X-Complaints-To: a...@o...pl
NNTP-Posting-Date: Thu, 15 Jan 2009 10:20:54 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
X-RFC2646: Format=Flowed; Original
Xref: news-archive.icm.edu.pl pl.comp.programming:180727
[ ukryj nagłówki ]Witam
Program jest napisany w Builder C++. Problem polega na tym ze nie wiem jak
zrobic zeby program reagował na odebrany bajt i breaka. Dokladny opis
problemu w kodzie poniżej.
void __fastcall TForm1::Button15Click(TObject *Sender)
{
m_hevtStop = CreateEvent(0,true,false,0);
overlapped_read.break = CreateEvent(0,true,false,0); // zdarzenia
break
overlapped_read.hEvent = CreateEvent(0,true,false,0); //zdarzenia przy
odczycie
overlapped_write.hEvent = CreateEvent(0,true,false,0); //zdarzenia
przy zapisie
hTheard =BeginThread(NULL,0,Watek,NULL,0,uTherId); //uruchom watek
}
int _fastcall Watek(Pointer Parametr)
{
HANDLE ah[4];
ah[0] = m_hevtStop; // Stop event
ah[1] = overlapped_break.hEvent; // COM event (from driver) break
ah[2] = overlapped_read.hEvent; // COM event (from driver) przy
odczycie
ah[3] = overlapped_write.hEvent; // COM event (from driver) przy
zapisie
bool fStop = false;
GetCommMask(hPort, &fdwEvtMask);
SetCommMask(hPort, EV_RXCHAR | Ev_BREAK );
WaitCommEvent(hPort,LPDWORD(&fdwEvtMask),&overlapped
_read))
// w tej sutuacji funkcja WaitForMultipleObjects wykrywa zdarzenie 2
overlapped_read.hEvent,
// nie zaleznie od tego czy do portu przyjdzie BREAk czy znak do
odbiornika, jeśli zamiast &overlapped_read wpisze &overlapped_break to
WaitForMultipleObjects
//wykrywa zdarzenie pierwsze overlapped_break.hEvent, nie zależnie od
tego czy został odebrany znak czy BREAK, co bym musial zrobić zeby funkcja
WaitForMultipleObjects dobrze wykrywała zdarzenia
while (!fStop)
{
switch
(WaitForMultipleObjects(sizeof(ah)/sizeof(HANDLE),ah
,false,INFINITE))
{
case WAIT_OBJECT_0:
{
fStop = true;
ShowMessage("stop");
}
break;
case WAIT_OBJECT_0+1:
{
ShowMessage("break na porcie");
WaitCommEvent(hPort,LPDWORD(&fdwEvtMask),&overlapped
_break);
}
break;
case WAIT_OBJECT_0+2:
{
ShowMessage("odczyt portu");
WaitCommEvent(hPort,LPDWORD(&fdwEvtMask),&overlapped
_read);
}
break;
case WAIT_OBJECT_0+3:
{
ShowMessage("zapis portu");
!WaitCommEvent(hPort,LPDWORD(&fdwEvtMask),&overlappe
d_write))
}
break;
default:
fStop = true;
break;
}
}
}
.
--
pozdrawiam
Tomek W
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-18 Warszawa => Mid PHP Developer (Laravel) <=
- 2024-05-18 Warszawa => Software .Net Developer <=
- 2024-05-18 Warszawa => Mid/Senior QA Engineer <=
- 2024-05-18 Ulm => Solution Architect (sichere Kommunikation und IoT-Loesungen <=
- 2024-05-18 Katowice => Head of Virtualization Platform Management and Operating S
- 2024-05-18 Warszawa => SAP WM Consultant / Execution <=
- 2024-05-18 Wrocław => Consultant/Implementer Comarch ERP XL <=
- 2024-05-18 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-05-18 Warszawa => Account Manager (Recruitment Services) <=
- 2024-05-18 Łódź => Salesperson - CRM Systems <=
- 2024-05-18 Łódź => Handlowiec - Systemy CRM <=
- 2024-05-17 ZŁOMNIK o pracy w TVN TURBO, nowych przepisach i współczesnej motoryzacji. Turbo Taryfa!
- 2024-05-17 Białystok => DevOps Engineer Conexa First (Contractor) <=
- 2024-05-17 Warszawa => Starszy inżynier oprogramowania (Rust) <=
- 2024-05-17 Zabrze => Junior HelpDesk <=