Moderator: RevPiModIO

 
Duelluxe
Topic Author
Posts: 5
Joined: 06 May 2021, 09:06

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

06 May 2021, 12:01

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: 514
Joined: 21 Jun 2018, 10:33
Answers: 1
Location: Berlin
Contact:

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

07 May 2021, 11:54

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

Who is online

Users browsing this forum: Ahrefs [Bot] and 1 guest