serielle Schnittstelle unter C++ - WaitCommEvents

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/serielle-schnittstelle-unter-c-waitcommevents_222661/page_1 - zur Vollversion wechseln!


Vinci schrieb am 03.03.2011 um 15:32

Hallo allerseits

Mein 1.Post im include nach 8 Jahren in diesem Forum... :D

Ok, folgendes. Ich plag mich grad mit der Programmierung einer seriellen Schnittstelle unter C++ herum und brauch ein WaitCommEvent um auf die Antwort eines µC zu warten.

Mein Code ist prinzipiell 1:1 von MSDN kopiert:

Code: PHP
while (hComm != INVALID_HANDLE_VALUE) 
{WaitCommEvent (hComm, &dwCommModemStatus, NULL);

  SetCommMask (hComm, EV_RXCHAR);

  Sleep(500);

  if (dwCommModemStatus & EV_RXCHAR) 
  {do 
    {ReadFile (hComm, InBuffer, 1, &BytesRead, NULL);
    } while (BytesRead==1);

SetCommMask für eingehende Daten in den "Buffer"
WaitCommEvent aufgerufen
und die stetige Abfrage, ob was da is...

-> Wieso geht das nicht?

Das Problem is, dass die Schleife endlos läuft und sich mein Programm trotz des "Sleep" komplett aufhängt. Das dürfte aber eigentlich nicht der Fall sein, weil nebenbei ein Timer läuft, der gänzlich andere Dinge tut... (auslesen von Daten, Berechnungen, etc.)

Wieso bleib ich in dieser Schleife hängen?

Der Laptop, auf dem das Programm aktuell läuft hat übrigens "keinen echten" COM-Port. Der Port, den ich hier öffne und bearbeite, ist in Wirklichkeit irgendein integriertes Modem... Aber ich glaub nicht, dass da der Fehler liegt?

Irgendwelche Ideen?

tia
Vinci




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025