Problem mit hwcom Sende und Empfangsthread Kategorie: Programmierung (von ACU, http://www.roboterbastler.de - 30.12.2005 17:06) | ||
| ||
Hallo! Ich übertrage zwischen meinem Roboter (C-Control2) und einem Windows Programm (in C++) Daten. Dazu verwende ich RNFUNK Module (Transceiver). Roboterseitig laufen zwei Threads für die Schnittstelle (serielle). Einer zum senden und einer zum empfangen. Wenn ich den Sendethread anhalte, kommen meine Befehle vom Roboter super rüber. Es gibt keine bzw. fast keine �bertragungsfehler. Wenn ich aber den Sendethread parallel laufen lasse, mu� ich alles 20zig Mal senden, bis einmal korrekt übertragen wurde. Ich hoffe ihr könnt mir helfen. Hier meine Threads: thread Empfang { int Byte; int Length; int Switch; int iDaten; int Motorlinks,Motorrechts; Switch=1; string Header,Daten,Sendstring; loop { wait hwcom.rxd(); lcdext.clear(); Byte=hwcom.get(); if (Byte==58) { iDaten=strx.getNum(Daten); if strx.comp(Header,"Halt") { if (iDaten==1) { motor.speedl(0); motor.speedr(0); } if (iDaten==0) { motor.speedl(1023); motor.speedr(1023); } } if strx.comp(Header,"Beep") { if (iDaten==1) { run Beep; } if (iDaten==0) { halt Beep; plm.beep(-1); } } lcdext.clear(); lcdext.print(Header); lcdext.line(2); lcdext.print(Daten); str.clear(Daten); str.clear(Header); Switch=1; continue; } if (Byte==61) { Switch=2; lcdext.clear(); continue; } if (Switch==1) Header=Header+Byte; if (Switch==2) Daten=Daten+Byte; } thread Senden { string Fertig,Daten; str.putfloat(Daten,sensor.RDistanz()); Fertig="liS"+"="+Daten+":"; hwcom.print(Fertig); str.clear(Daten); str.putfloat(Daten,sensor.LDistanz()); Fertig="reS"+"="+Daten+":"; hwcom.print(Fertig); str.clear(Daten); str.clear(Daten); str.putint(Daten,variablen.Ultra); Fertig="uS"+"="+Daten+":"; hwcom.print(Fertig); Fertig="mli"+"="+variablen.Mlinks+":"; hwcom.print(Fertig); Fertig="mre"+"="+variablen.Mrechts+":"; hwcom.print(Fertig); str.clear(Daten); sleep 100; } Zum Verständis ist noch zu sagen, dass ich die Daten im Format: Ziel=Werte: übertrage. Wenn ein = empfangen wurde, werden die Bytes zu Daten hinzugefügt, wenn ein : empfangen wird, erfolgt die Auswertung und es wird zurückgesetzt. Wäre toll, wenn mir jemand helfen könnte. MfG ACU Meine Seite: http://www.roboterbastler.de | ||
Antwort schreiben Antworten: Re: Problem mit hwcom Sende und Empfangsthread (von André H. - 8.01.2006 15:51) |