ich möchte einen Messverstärker über RS485 betreiben.
Der Messverstärker arbeitet im Hexadecimalsystem.
An sich funktioniert die Kommunikation, jedoch nur, wenn ich den gesamten Befehl in einem eingebe (data = bytearray(b'\xfe\x7f\x01\x82\x02').
Ich möchte eine Funktion erstellen, der ich die einzelnen Befehlbestandteile einzeln übergeben kann (z.B. fe, 7f, 01, 82 usw.).
Allerdings bekomme ich es nicht hin, aus den einzelnen Variablen/Befehlbestandteilen den Befehlt so zusammensetzen, wie er in der Funktion bytearray steht.
Ich denke dies liegt am Backslash, da es ja auch ein escape-Zeichen ist und dann nicht als "normales" Zeichen erkannt wird.
Hat vielleicht jemand einen Tipp wie ich das am besten umsetzen könnte, sodass ich zunächst die einzelnen Befehlsteile definiere und danach den gesamten Befehl zusammensetze?
Vielen Dank schon mal!
Code: Alles auswählen
import serial
import binascii
ComPort = serial.Serial('COM7')
ComPort.baudrate = 38400
ComPort.bytesize = 8
ComPort.parity = 'N'
ComPort.stopbits = 1
ComPort.timeout = 0.01
data = bytearray(b'\xfe\x7f\x01\x82\x02')
No = ComPort.write(data)
dataIn = ComPort.readline()
print('Daten empfangen:')
hex_string = binascii.hexlify(dataIn).decode('utf-8')
print(hex_string)
ComPort.close()