Python 3.x pyserial codepage

  • Hallo zusammen,

    ich habe folgendes Problem:
    Kommunikation mit einen externen Controller via RS232. Dabei werden Bytes in Hexadezimalform übertragen:

    Das Problem ist die Übertragung von Bytes größer 0x7F mit Python 3.

    Mit Python 2 funktioniert alles wie gewollt:
    #!/usr/bin python
    # -- coding: utf-8 --
    import serial
    ser=serial.Serial("/dev/ttyAMA0")
    ser.baudrate=115200
    a=0x80
    ser.write(chr(a))
    ser.close()

    Der Empfänger empfängt ein Byte 0x80, so wie es sein soll!

    Wie muss der Code in Python 3 aussehen "ser.write(?????, codepage))",
    bzw. welche codepage muss ich verwenden , damit dasselbe gesendet wird?
    Ich bekomms nicht hin!
    mit UTF-8 werden logischerweise nur Bytes bis 0x7F als ein Byte übertragen, mit UTF-16 sinds immer 4 Bytes.


    Danke schon mal für eure Hilfe!

  • Ich bezweifele, dass du etwas in "hex" ueber die Leitung schicken willst. Sondern Bytes, und das passiert in Python 3 mit dem dazugehoerigen Datentyp - bytes.

    Also einfach nur

    Code
    data = b"\x80"

    und das sollte es dann auch schon sein.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!