Re: Fernsteuerung der C-Control2 Kategorie: Programmierung (von reneforster - 11.11.2004 21:10) | ||
Als Antwort auf Fernsteuerung der C-Control2 von ACU - 11.11.2004 20:50 | ||
| ||
Hallo ACU, das sollte eigentlich kein Problem sein. Schaue mal in die Hilfe zum strx.c2 Modul. Da steht alles drin, auch wie man aus einem String nur bestimmte Teile ausliest und diese dann zur Weiterverarbeitung gibt. Aber !! Damit das alles einfach und problemlos geht, denke Dir ein Protokoll aus, wo der Datenrahmen immer aus gleich vielen Zeichen besteht. ( und natürlich mit System ). Und wenn Du nur Zahlen verwendest, wird nochmal einfacher ! etwas so: alles was vom PC gesendet wird, besteht aus 8 Zeichen. 1. Zeichen 1 oder 2 // 1 für Anfrage - 2 für Befehl 2. 3. Zeichen 11 bis 99 // für hardware wie 11 für Motor1 - 12 für Motor2 4. 5. 6. Zeichen 0 bis 999 // für Werte und halt so weiter oder so ähnlich, weist ja selbst was Du am besten brauchst. Ich hoffe es ist einigerma�en verständlich rübergekommen Rene > Hallo! > Ich wei�, dass es dieses Thema schon gab, aber mein Problem ist ein bischen > anders. > Folgende Problemstellung: > Ich sende über den PC eine Befehlstring über die Serielle Schnittstelle. > Die Abfragen sollen immer mehr gesplittet werden. > Das hei�t, dass am Anfang Unterschieden wird, zwischen Befehl und Anfrage. > Dafür steht das erste Zeichen in der String (A oder B). > Mit der Splittung will ich erreichen, dass die empfangene String nicht mit allen > vorhandenen Strings verglichen werden mu�, sondern nur mit denen, die in die engere Wahl > kommen. > Die String soll dabei immer kürzer werden (die ersten Zeichen, die schon > interpretiert wurden (dass A bzw. B) sollen abgeschnitten werden. > Mein grö�tes Problem ist es, aus einer String zum Beispiel > BLIMOTOR=255 den Wert 255 zu extrahieren, um diesesn für die PLM Ports zu verwenden. > > Es wäre schön, wenn ihr die Befehle gut erklären könntet, da > ich mit den anderen Beispielen, die ich im Forum gefunden habe (zum Beispiel: > > thread main > { string s, searchfor; int port; > hwcom.init(); > hwcom.setspeed(8); > hwcom.put(12); // Terminal-Fenster löschen > loop > { > s=""; > hwcom.inputstr(s,1); // String einlesen, Echo zurücksenden > hwcom.put(10); > strx.Ucase(s,0,str.length(s)); // String in Gro�buchstaben umwandeln > if strx.getchar(s,0) == 'P' > { > port=strx.getchar(s,1)-0x30; > if port>=0 and port <=7 > {port=port+8; > searchfor="EIN"; > if strx.InStr(0,s,searchfor,str.length(s),3) != -1 ports.set(port,1); > searchfor="AUS"; > if strx.InStr(0,s,searchfor,str.length(s),3) != -1 ports.set(port,0); > searchfor="DEACT"; > if strx.InStr(0,s,searchfor,str.length(s),5) != -1 ports.deact(port); > } > } > else > if strx.getchar(s,0) == 'G' > { > port=strx.getchar(s,1)-0x30; > if port>=0 and port <=7 > { > s="Port P1H."; > str.putint(s,port); > port=port+8; > if ports.get(port) s=s+ " EIN"; else s=s+ " AUS"; > hwcom.print(s); > hwcom.ret(); > } > } > else > { > s="No Command"+13+10; > hwcom.print(s); > hwcom.ret(); > } > } > } > leider nichts anfangen kann. > > > > ACU > > | ||
Antwort schreiben Antworten: Re: Fernsteuerung der C-Control2 (von ACU - 11.11.2004 21:12) Re: Fernsteuerung der C-Control2 (von Hansi - 11.11.2004 22:43) Re: Fernsteuerung der C-Control2 (von ACU - 13.11.2004 19:52) Re: Fernsteuerung der C-Control2 (von krassos - 13.11.2004 20:30) Re: Fernsteuerung der C-Control2 (von ACU - 14.11.2004 11:27) Re: Fernsteuerung der C-Control2 (von ACU - 14.11.2004 13:42) |