Re: HWCOM Letzes Zeichen bei nächster Übertragung Kategorie: Programmierung (von Christian Jost - 7.08.2006 21:55) | ||
Als Antwort auf HWCOM Letzes Zeichen bei nächster Übertragung von Daniel Schartz - 11.07.2006 9:00 | ||
| ||
Hallo Daniel, Ich kenne das Problem und denke dass es sich um einen Bug im Betriebssystem handelt. Ich habe deshalb hier auch schon einmal eine Message gepostet aber André Helbig war der Meinung dass es sich nicht um einen Bug handelt bzw. konnte ihn nicht reproduzieren. Auf mein (wahrscheinlich zu kompliziertes) Testprogramm erhielt ich nie ein Feedback. siehe Hier... Habe dir leider auch keine Lösung. Für mich ist dieses Verhalten jedenfalls nicht brauchbar!!! Zur Zeit prüfe ich eine andere interessante Alternative: http://www.acmesystems.it/?id=4 I2C-Bus und serielle Schnittstellen sind vorhanden und es hat eine Ethernet Schnittstelle :-)) Gruss, Christian > 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 Passender Link: siehe dieser Beitrage | ||
Antwort schreiben Antworten: Re: HWCOM Letzes Zeichen bei nächster Übertragung (von Daniel Schartz - 8.08.2006 11:12) |