Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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