Datenempfang von der seriellen Schnittstelle
-
Hallo, vielleicht kann mir hier einer helfen!
Für eine Auswertung benötige ich jedes einzelne Zeichen von der Schnittstelle, welches ich mit folgender Funktion auch bekomme:
BYTE CCommPort::GetByte() { VerifyOpen(); DWORD dummy; BYTE value; osReader.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); if (osReader.hEvent==0) return 0; // Daten vom Port lesen if(!ReadFile(m_hCom,&value,1,&dummy,&osReader)) { if (GetLastError() != ERROR_IO_PENDING) { throw ECommError(ECommError::READ_ERROR); }else{ dwRes = WaitForSingleObject(osReader.hEvent, 500); GetOverlappedResult(m_hCom, &osReader, &dummy, FALSE) ; } } return value; }Nun zu meinem Problem. Diese Abfrage funktioniert solange einwandfrei bis eine Datenmenge von ca. 1,8 bis 2 MB erreicht ist.
Danach ist kein zugriff mehr auf sämtliche Dateien der Festplatte möglich, weder vom Programm, noch vom Windows Explorer aus. erst wenn ich das Programm beende besteht wieder ein zugriff.hat jemand eine Idee woran das liegen könnte?
Gruß mexpol
-
Du erstellst jedesmal ein Event, schließt es aber nicht.