Seite 1 von 1

"Hex"code umwandeln

Verfasst: Donnerstag 21. Juli 2022, 15:43
von Schlangenmensch
Hallo,

ich habe wieder einmal ein kleines Problem und hoffe Ihr könnt mir dabei behilflich sein.

Ich möchte unseren Stromzähler auslesen und habe dafür folgenden Code geklaut.

Code: Alles auswählen

import sys
import serial
import time
import string

ser = serial.Serial(
    port="/dev/ttyUSB0",
    baudrate=9600,
    parity=serial.PARITY_EVEN,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS
)

print(ser.readline())

Vom Zähler bekomme ich folgendes Zurück.

b'\x1b\x1b\x1b\x1b\x01\x01\x01\x01v\x07\000\r\t/\xea+b\..................

Gehe ich recht in der Annahme, dass es sich dabei um Hexcode handelt und wenn ja wie kann ich diesen in etwas lesbares konvertieren.

Vielen Dank im Voraus.

Re: "Hex"code umwandeln

Verfasst: Donnerstag 21. Juli 2022, 16:12
von __deets__
Nein, das ist kein "hex-code". Das sind binaere Daten, die Python bei Werten, die aus dem nicht-druckbaren Bereich der ASCII-Darstellung kommen als Hexadezimal-Zahlen darstellt. Da ist ja zB ein newline oder ein Tab drin, ein +, etc.

Und was diese binaeren Daten bedeuten haengt vom konkreten Stromzaehler und dessen Protokol ab.

Re: "Hex"code umwandeln

Verfasst: Donnerstag 21. Juli 2022, 16:17
von Schlangenmensch
Danke für die schnelle Antwort.

Also müsste es sich um einen SML-Code handeln, dieser müsste dann doch genormt sein und auch standartmässig übersetzt werden können oder?

Re: "Hex"code umwandeln

Verfasst: Donnerstag 21. Juli 2022, 16:55
von __blackjack__
@Schlangenmensch: Wenn sich das Datenformat an einen Standard hält, kann man das auch gemäss des Standards dekodieren, ja. Wenn man den kennt, oder eine Bibliothek dafür hat.