get und put sind ok - receive ?? Kategorie: Programmierung (von Rene Forster - 8.12.2003 22:10) | |
Als Antwort auf Re: CC2 Station und hwcom von Tom - 8.12.2003 9:01
| |
Hallo Tom, die Funktione mit get und put als byte funktionieren. Eine Datenübertragung ist somit in beide Richtungen möglich. Aber wie funktioniert eigentlich dann die receive-Funktion ? Hatte gedacht die wartet und liest einen String ein. Habe die Datenübertragung momemtan mit byte realiesiert - es sind dabei aber nur 255 unterschiedliche Befehle möglich. Aber wie gesagt - es funktioniert. Danke Rene > Hallo Rene, > ich sehe zwei Probleme in deinem Programm: > > 1. die Funktion hwcom.receive erwartet als Variable einen Bytearray > > 2. die Funktion hwcom.receive wartet intern auf ein RXD(), wenn du also > nur ein Zeichen schickst wird kein weiteres RXD() ausgelöst und somit > läuft der Timeout ab. > > ich denke wenn Du an Stelle des > > > hwcom.receive(eingabe,1,1000); // Daten in die Vari eingabe übernehmen ( ist String definiert ) > > ein > > > eingabe= hwcom.get(); > > benutzt sollte es gehen. > Beachte aber, das weder receive() noch get() einen String zurückliefern sondern receive() > ein Byte und get() einen Integerwert. > > mfg Tom > > > > Hallo Zusammen, > > > > Hardware : CC2 Station mit neusten OS und hwcom Modul. > > Software : Terminalprogramm RS 232 aus dem Buch MSR mit CC2 > > > > CC2 und PC sind mit dem Nullmodemkabel verbunden, welches ich auch zum Programmieren > > benutze. 3 Leitungssystem RxD,GND,TxD > > > > Problem : das Empfangen von Daten die über das Terminalprogramm gesendet werden. > > > > Eigener Thread, installierung vom hwcom und setzen der Parameter. Dann die Abfrage und zurück > > senden der empfangenen Daten der Schnittstelle. > > > > > > > > if hwcom.rxd() // Frage ob Daten vorhanden sind > > { > > plm.beep(plm.TONE_C2); sleep 500; plm.beep(plm.TONE_OFF); - ja dann langer Ton > > > > hwcom.receive(eingabe,1,1000); // Daten in die Vari eingabe übernehmen ( ist String definiert ) > > sleep 500; // kurze Pause > > > > h=eingabe; // �bergabe an Vari h ( ist auch als String definiert ) > > hwcom.send(h,str.length(h)); // Senden zurück > > sleep 1000; // kurze Pause > > hwcom.flush(); // Speicher löschen - wird aber eigentlich bei hwcom.receive erledigt > > > > } > > else > > { // bei nein zwei kurze Töne und dann wieder zurück zur Abfrage ( läuft in loop Schleife ) > > plm.beep(plm.TONE_C2); sleep 25; plm.beep(plm.TONE_OFF); > > sleep 250; > > plm.beep(plm.TONE_C2); sleep 25; plm.beep(plm.TONE_OFF); > > sleep 1000; > > } > > > > Das Senden von Daten der CC2 zum Terminalprogramm funktioniert hervorragend, beim das Empfangen > > will einfach nicht funktionieren. > > > > Hat jemand die CC2 Station im Einsatz und emfängt Daten vom PC. > > Wäre über jede Hilfe dankbar. > > > > Rene Forster > > > > > > > > | |
Antwort schreiben Antworten: Re: get und put sind ok - receive ?? (von André H. - 19.12.2003 8:53) Re: get und put sind ok - receive ?? (von Tom - 9.12.2003 8:43) |