M
Hallo zusammen,
Der RingIndicator ist ein Hardware-Steuersignal, dass über die RS232 gesendet wird. Dieses Signal möchte ich abfangen und darauf reagieren. Bislang sieht mein Code wie folgt aus (funktioniert aber nicht, weil das Programm einfach gar nichts mehr macht, wenn es an dieser Stelle angekommen ist):
*//Öffnen der Schnittstelle (nicht overlapped)
HANDLE hPort = schnittstelle.Detach();
schnittstelle.Attach(hPort);
schnittstelle.Open(4, 19200, CSerialPort::NoParity, 8, CSerialPort::OneStopBit, CSerialPort::NoFlowControl, FALSE);
//Es soll auf den RingIndicator geachtet werden!
schnittstelle.GetCommMask(dwEvtMask);
schnittstelle.SetCommMask(EV_RING);
//Warten auf den RingIndicator
schnittstelle.WaitCommEvent(dwEvtMask);
if (dwEvtMask & EV_RING){/*Das was passieren soll wenn RI angekommen*/}
else{/*Fehlerbehandlung*/}*
Wenn ich die MSDN richtig verstehe, dann bleibt das Programm so lange in der Funktion WaitCommEvent, bis das Ereignis (RingIndicator) ausgelöst wurde oder ein Fehler aufgetreten ist. Wie aber oben beschrieben, bleibt das Programm hängen, nachdem WaitCommEvent ausgelöst wurde obwohl der RI eigentlich gesendet wurde!
Ist der Code denn überhaupt korrekt oder habe ich da einen Schnitzer drin, der das Programmverhalten erklärt?
Danke und Gruß,
MorrisM