bin noch recht neu in Python und bis jetzt klappt auch alles so wie ich will
Nur ein Problem habe ich mit den bytes Daten, diese kann ich einfach nicht auslesen bzw. verwenden.
Problem:
Am Com2 Port ist ein Zähler angeschlossen welcher mir Werte im folgenden Format ausgibt :
b'\x00' #Ist = 1
b'\x00\x00\x00' #Ist = 3
b'\x00\x00\x00\x00\x00\x00\x00' #Ist = 7
\x00 ist ja eigentlich eine "0" bzw ein "{SPACE}" und da hänge ich jetzt.
Habe mir jetzt eine Lösung gebastelt, bin dennoch damit nicht zufrieden da der Code einfach Müll ist...
Vielleicht mag mir ja jemand eine kleine Nachhilfe-Stunde für sauberen Code geben
Code: Alles auswählen
import serial
import time
ser = serial.Serial('COM2', 9600, timeout=1)
while 1:
try:
coiner = ser.readline()
if coiner == bytes([0]):
print (1)
elif coiner == bytes([0,0]):
print (2)
elif coiner == bytes([0,0,0]):
print (3)
elif coiner == bytes([0,0,0,0]):
print (4)
elif coiner == bytes([0,0,0,0,0]):
print (5)
elif coiner == bytes([0,0,0,0,0,0]):
print (6)
elif coiner == bytes([0,0,0,0,0,0,0]):
print (7)
elif coiner == bytes([0,0,0,0,0,0,0,0]):
print (8)
elif coiner == bytes([0,0,0,0,0,0,0,0,0]):
print (9)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0]):
print (10)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0]):
print (11)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0]):
print (12)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (13)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (14)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (15)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (16)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (17)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (18)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (19)
elif coiner == bytes([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]):
print (20)
time.sleep(1)
except ser.SerialTimeoutException:
print('Keine Daten gefunden')
time.sleep(1)