Auf den Commport schreiben und lesen mit WinApi
-
Hallo,
ich möchte einen Befehl an einen Commport schicken und danach Werte vom Commport empfangen aber es funktioniert nicht.
Den Commport kann ich erfolgreich öffnen aber schreiben kann ich nichts.
Der Befehl besteht aus 6 Bytes. 170 100 106 1 2 3. Antworten müsste das Gerät dann mit einer 100 1.Hier meine Schreibfunktion.
bool CSerial::Write() { DWORD written; char daten[6]; daten[0] = 170; daten[1] = 100; daten[2] = 106; daten[3] = 1; daten[4] = 2; daten[5] = 3; if(hComm == INVALID_HANDLE_VALUE) { return false; } else { // Puffer löschen PurgeComm(hComm, PURGE_RXCLEAR | PURGE_TXCLEAR); return WriteFile(hComm, daten, 6, &written, NULL); } }Die Funktion funktioniert leider nicht.Die Api-Befehl WriteFile gibt mir ein False als Rückgabewert und GetLastError gibt mir eine 87 "Falscher Parameter"!
Vielen Dank für eure schnelle Hilfe,
Gruß Ronny
-
Hi,
die Write-Funktion schaut recht vernünftig aus. Vielleicht ist beim Öffnen des COM-Ports was schief gelaufen? Poste doch mal den entsprechenden Code.
Gruss, Günther