ne versteh ich nicht.
und da mit irgendwelchen strings und asciis rumzumachen versteh ich auch nicht.
erklär doch mal bitte in welcher form der sensor daten schickt. als byte? also werte zwischen 0 und 255 ? oder mehr? oder weniger?
Druckbare Version
ne versteh ich nicht.
und da mit irgendwelchen strings und asciis rumzumachen versteh ich auch nicht.
erklär doch mal bitte in welcher form der sensor daten schickt. als byte? also werte zwischen 0 und 255 ? oder mehr? oder weniger?
Vom Sensor bekomm ich die Daten als word, sind werte wie z.B. 350....wenn ich die dann an den zweiten Controller schicke, empfängt dieser die 350 als ASCII (515348).
Mein Problem ist aber, dass ich drei verschieden Werte vom Sensor bekomme (x-Richtung, y-Richtung und z-Richtung). Jetzt muss der Empfänger natürlich wissen, welcher Wert für x steht, welcher für y..., sonst kann ich nichts damit anfangen. Deshalb werden die Werte vor dem Versenden mit einem Buchstaben gekennzeichnet. Das funktioniert ja auch, aber ich bekomme sie am Empfänger halt nicht wieder auseinander....
Mach mal
Sender: Hallo empfänger
Empfänger: servus sender kann los gehen
sender: ok geht los Word1; word2; word3;..... hast dus
Empfänger: alles empfangen warte auf was neues tschau
nunja, nach x und y abfragen ist keine kunst,
wenn zeichen = "x" dann alle nachfolgenden Zeichen sollen
X-Werte sein.
Den ASCII in die Zahl wieder zurückverwandeln ist an sich ne einfache Sache.
Du speicherst die Zahlen der Reihe nach z.B. in einen String.
String=string+chr(zeichen)
So werden die aneinander gereiht.
Nun musste nurnoch rausfinden wie lang dein string ist,
dafür gibts ne Funktion namens Len(String)
z.B. für 350 währ dann len 3.
dann holste Dir per left und right die einzelnen zeichen und wandelst
die in ASCII um, also der reihe nach 51, 53, 48
Dann gehste hin und ziehst von jedem ASCII-Wert 48 ab:
51-48=3
53-48=5
48-48=0
Nun wirds knifflig. Die jeweiligen Werte musste mit der Zehnerpotenz der Stelle von hinten her multiplizieren und die addieren:
also (0 * 10^0) + (5*10^1) + (3 * 10^2) =350 als Dezimalwert.
Ich weiß, der Ablauf ist insgesamt von hinten durchs Knie und umständlich,
mit Overlayvars und Rinpuffer gings schöner, aber ich find so ists für nen
Anfänger vermutlich einfacher und übersichtlicher zu verstehen wie ein Protokoll in den
Grundzügen laufen kann.
probiers mal anders
nimste ne case her und schickst diese
wenn zeichen = "Y" dann a=1
wenn zeichen = "Z" dann a=2
das a schickste mit denn anderen words dann weg und mit case a wertest es wieder aus wie dus brauchst
Hallo zusammen,
entschuldigung dass ich mich erst so spät wieder melde, aber die Feiertage...
Habe mittlerweile folgenden Code zum Empfangen und Trennen der Daten gebastelt:
Damit funktioniert es auch in etwa. Das Problem ist aber, dass die beiden Controller nach kurzer Zeit hängen bleiben.Code:Daten = Waitkey()
If Daten = "x" Then
X_1 = Waitkey()
X_2 = Waitkey()
X_3 = Waitkey()
X = X_1 + X_2 + X_3
Da von beiden Controller Werte gesendet und wie oben beschrieben empfangen werden, liegt das Problem wahrscheinlich darin, dass sich die Schleifen überlagern und beide Controller auf empfangene Daten warten. Kann das sein? Was kann man dagegen machen?
Gruß Matthias