HWCOM Letzes Zeichen bei nächster Übertragung Kategorie: Programmierung (von Daniel Schartz - 11.07.2006 9:00) | |
| |
Hallo, Ich bin dabei ein Programm zu schreiben um auf einer seriellen Schnittstelle bestimmte Messages abzufangen und ein Relais daraufhin zu schalten. Wenn ich die C-Control resette, dann funktionniert das Programm einwandfrei. Nach einiger Zeit wird dann das letzte Zeichen der �bertragung dann erst bei der nächsten �bertragung mit inbuffercount gesehen. Kann ich ohne zusätslichen Protokoll diesen Zustand feststellen und das Zeichen 'nachlesen' ? Hier der Code : thread HandleSerial { byte i; int Holt; string strHolt; string strStart; string strTest; string strEnd; // Init Variables strStart ="START"; strTest = "TEST"; strEnd = "END"; // wait hwcom.rxd(); wait hwcom.inbuffercnt() >0; i= hwcom.get(); if i== 13 { strx.Ucase(mybuffer,0,str.length(mybuffer)); /* capture flagRel; strDisplay1 = mybuffer; release; */ Send(mybuffer,str.length(mybuffer)); if strx.InStr(0,mybuffer,strTest,str.length(mybuffer),4) > -1 { /*capture flagRel; strDisplay2 = Dumbo; release; */ } else { if strx.InStr(0,mybuffer,strStart,str.length(mybuffer),4) > -1 { strx.left(mybuffer,strHolt,2); Holt = getNum(strHolt); Holter[Holt] =1; capture flagRel; strDisplay2 = "Start Alarm "; str.putint(strDisplay2,Holt); release; stports.setRel(1,1); } else { if strx.InStr(0,mybuffer,strEnd,str.length(mybuffer),3)>-1 { strx.left(mybuffer,strHolt,2); Holt = getNum(strHolt); Holter[Holt] =0; capture flagRel; strDisplay2 ="End Alarm "; str.putint(strDisplay2,Holt); release; if lastOn() { stports.setRel(1,0); } } } } BufPos =-1; } else { BufPos = BufPos +1; SetByte(mybuffer,i,BufPos); setStrLen(mybuffer,BufPos + 1); } } Mit Bitte um Hilfe Danke in Voraus Daniel Schartz | |
Antwort schreiben Antworten: Re: HWCOM Letzes Zeichen bei nächster Übertragung (von Christian Jost - 7.08.2006 21:55) Re: HWCOM Letzes Zeichen bei nächster Übertragung (von Daniel Schartz - 8.08.2006 11:12) |