Problem mit COM Schnittstelle
-
Ich programmiere ein Programm welches über die Com-Schnittstelle Daten von einer Wetterstation (von ELV - www.elv.de) empfängt.
Gesendet wird mit: 19200 Baud, 8 Bit, ungerade Parität und 2 Stopp-Bit
Hier ist das Datenprotokoll: http://www.elv-downloads.de/service/manuals/PC-WS-Testempfaenger/39061-PC-WS-Testempfaenger.pdfAlso habe ich erstmal den Port geöffnet ....
DCB dcb; hCom = CreateFile ("Com1",GENERIC_READ,0,NULL,OPEN_EXISTING,0,NULL); dcb.DCBlength = sizeof (DCB); GetCommState (hCom,&dcb); dcb.BaudRate=9600; dcb.ByteSize=8; dcb.Parity=NOPARITY; dcb.StopBits=ONESTOPBIT; SetCommState (hCom, &dcb); if (hCom == INVALID_HANDLE_VALUE) // hat es geklappt? Bei Fehler ist hier Schluss! { MessageBox (NULL, "Fehler beim Öffnen des COM-Ports", NULL, NULL); } }.... dann die Read funkion ausgeführt ....
unsigned char InString[COM_BUFFER_SIZE + 1]; DWORD dwRead = 0; if(!ReadFile (hCom,&InString,sizeof (InString),&dwRead,NULL))Application->MessageBox("Fehler!!!!","",0); if(dwRead != 0) { InString[dwRead]='\0'; } Label1->Caption = reinterpret_cast<char *>(InString);Nun zum Problem:
Die Wetterstation schickt alle 3min neue Daten.
Aber schon nach 10 sek bekomme ich eine Antwort von der COM.
Und zwar sehr merkwürdige zeichen, zB ˜ïBrauche dringend Hilfe! Danke!
gruß FB4
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
... Gesendet wird mit: 19200 Baud, 8 Bit, ungerade Parität und 2 Stopp-Bit ...
dcb.BaudRate=9600;... ungerade Parität und 2 Stopp-Bit ...
dcb.Parity=NOPARITY; dcb.StopBits=ONESTOPBIT;Label1->Caption = reinterpret_cast<char *>(InString);
Wo ist denn da das '\0' drin, um es als Text zu beenden? Und die empfangenen Zeichen (wenn denn welche kommen) sind alles Andere als ASCII-Zeichen.
Geht Dir da ein Licht auf?
Blackbird