Page 1 of 1

IO's Konfigurieren zum Empfangen/Versenden von Charsarrays oder Strings

Posted: 06 May 2021, 12:01
by Duelluxe
Hallo Zusammen,

ich möchte an den Inputbytes mit dem Namen Input__9, Input__10 bis Input__42 Strings auslesen.
Bisher mache ich das indem ich die Eingangsbytes wie folgt hartcodiert konfiguriere:

revpi.io.Input__9.replace_io("str0", "c", byteorder='big') # auf SPS-Seite Byte 8
revpi.io.Input__10.replace_io("str1", "c", byteorder='big') # auf SPS-Seite Byte 9
...
revpi.io.Input__42.replace_io("str41", "c", byteorder='big') # auf SPS-Seite Byte 41

Die Zeichen kommen an, jedoch wird mir, wenn ich die empfangenen Zeichen im Terminal ausgebe noch die Zeichen
b'
davor und
\x00'
angehängt. Was mache ich falsch oder woher kommen diese Zeichen?
Wie kann ich die Inputbytes entsprechend konfigurieren, damit ich einen ganzen Bytebereich elegant auslesen kann?

Viele Grüße

Re: IO's Konfigurieren zum Empfangen/Versenden von Charsarrays oder Strings

Posted: 07 May 2021, 11:54
by nicolaiB
Hallo,

Deine Payload sind Bytes und du musst deinem Programm mitteilen, dass es diese entsprechend einem Zeichensatz dekodieren soll (z.B. ASCII, UTF-8, etc...). Dein Programm kannst du aber vermutlich noch vereinfachen, da du nicht jedes Zeichen einzeln parsen musst, sondern einfach einen String mit einer feste Länge definieren kannst. RevpiModIO kümmert sich dann automatisch im Hintergrund darum.

Ich habe mal ein kleines Beispiel vorbereitet: https://gist.github.com/nbuchwitz/e7612 ... a48fff4ed4

Gruß Nicolai