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

Moderator: RevPiModIO

Post Reply
Duelluxe
Posts: 5
Joined: 06 May 2021, 09:06

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

Post 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
User avatar
nicolaiB
KUNBUS
Posts: 931
Joined: 21 Jun 2018, 10:33
Location: Berlin
Contact:

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

Post 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
Post Reply