Hallo Makki,
ich bin nun mittlerweile ein ganzes Stück weiter.
Es ist mir nun gelungen ein funktionierendes Telegramm auf den Bus zu setzten. Das ganze habe ich zunächst ganz primitiv gemacht, indem ich das device öffne und ´drauf schreibe:
open (BIN,'>', '/dev/usbserial-2-4')
print BIN pack ('C', hex("02"));
wie Du siehst, Dein Tipp mit pack war zielführend.
Mein Telegramm sieht z.B. so aus:
02 61 B0 02 02 64 FF 48 00
Parallel lese ich die Schnittstelle nun in Anlehnung an das Transponderscript aus. Hier nun tritt folgendes Problem auf. (ohne icannon da er ansonsten gar nix mehr empfängt, oder möglicherweise auch kein Ende findet)
Problem nun ist, dass häufig das erste Byte abgeschnitten wird, und spätestens nach dem 4. Byte das script wieder aufgerufen wird und die letzten 4 Bytes des Telegrams ausliest. (Telegrammlänge ist 8-9 Byte). Ab hier sind die ausgewerteten Bytes dann auch fehlerhaft.
Wegen des fehlenden ersten bytes dachte ich nun an icannon, aber wenn ich dieses einsetzte, dann wird gar nix mehr ausgewertet.
Ich habe nun alle beschreibungen der socat bzw. stty optionen durchgelesen, und steh jetzt leider mittlerweile auf dem Schlauch.
Kannst Du hoch so einen hilfreichen Tipp geben?
Gruß
Arne
ich bin nun mittlerweile ein ganzes Stück weiter.
Es ist mir nun gelungen ein funktionierendes Telegramm auf den Bus zu setzten. Das ganze habe ich zunächst ganz primitiv gemacht, indem ich das device öffne und ´drauf schreibe:
open (BIN,'>', '/dev/usbserial-2-4')
print BIN pack ('C', hex("02"));
wie Du siehst, Dein Tipp mit pack war zielführend.
Mein Telegramm sieht z.B. so aus:
02 61 B0 02 02 64 FF 48 00
Parallel lese ich die Schnittstelle nun in Anlehnung an das Transponderscript aus. Hier nun tritt folgendes Problem auf. (ohne icannon da er ansonsten gar nix mehr empfängt, oder möglicherweise auch kein Ende findet)
Problem nun ist, dass häufig das erste Byte abgeschnitten wird, und spätestens nach dem 4. Byte das script wieder aufgerufen wird und die letzten 4 Bytes des Telegrams ausliest. (Telegrammlänge ist 8-9 Byte). Ab hier sind die ausgewerteten Bytes dann auch fehlerhaft.
Wegen des fehlenden ersten bytes dachte ich nun an icannon, aber wenn ich dieses einsetzte, dann wird gar nix mehr ausgewertet.
Ich habe nun alle beschreibungen der socat bzw. stty optionen durchgelesen, und steh jetzt leider mittlerweile auf dem Schlauch.
Kannst Du hoch so einen hilfreichen Tipp geben?
Gruß
Arne
Kommentar