Senden von 4 Byte Hex-Daten über serielle in PyQt

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
gratna
User
Beiträge: 1
Registriert: Montag 28. Oktober 2019, 17:13

Montag 28. Oktober 2019, 17:16

Hallo,

Ich möchte 4 Bytes Hex-Daten seriell an einen Mikrocontroller senden, die von der GUI in PyQt5 empfangen werden.
Nehmen wir zum Beispiel die ersten beiden Bytes an, die als Zeichen 'a' und 'b' empfangen wurden, während die verbleibenden zwei Bytes als Ganzzahlen (von 0 bis 127) vorliegen, und ich möchte alle 4 Bytes als Hex-Werte über seriell senden .

firstByte = 'a'
secondByte = 'b'
thirdByte = 100
4thByte = 120

Bis jetzt habe ich die folgenden Methoden ausprobiert, aber sie haben meinem Fall nicht geholfen.

1.
thirdByte = 100
4thByte = 120
my_bytestring3 = Bytes ([hex (ord ('a')), hex (ord ('b')), hex (thirdByte), hex (fourthByte)])
serial.write (my_bytestring3)

2.
thirdByte = 100
4thByte = 120
my_bytestring2 = bytes ([int (a), int (B), thirdByte, fourthByte])
serial.write (my_bytestring2)


Vielen Dank,
gratna
__deets__
User
Beiträge: 6614
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 28. Oktober 2019, 17:20

Du brauchst das struct-Modul.

Code: Alles auswählen

>>> a, b, c, d = b'a', b'b', 100, 120
>>> struct.pack('ccBB', a, b, c, d)
b'abdx'
Antworten