ich habe eine Frage zum Thema Serielle Kommunikation, habe mich mit der Suche bemüht allerdings habe ich kein Thema gefunden was meinem Problem ähnelt.
Erstmal zu meinem Vorhaben:
Ich möchte per serieller Kommunikation Istwerte und Sollwerte auslesen.
Ich bekomme zuerst meinen Sollwert und ein paar Sekunden später meinen Istwert gesendet.
Ich habe ein kleines Programm welches zum auslesen der Daten dient und auch funktioniert:
Code: Alles auswählen
import serial
import time
s = serial.Serial(port = "/dev/ttyS0",
baudrate = 19200,
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = 8,
timeout = 1)
istwert = 0
sollwert = 0
def get_serial():
while True:
daten = s.readline()
time.sleep(0.03)
daten_left = s.inWaiting()
daten += s.read(daten_left)
daten_str = str(daten)
print(daten_str)
if daten_str[2] == 6:
sollwert = daten_str
print("Empfangener Sollwert =", sollwert)
return sollwert
if daten_str[2] == 5:
istwert = daten_str
print("Empfangener Istwert =", istwert)
return istwert
print(istwert)
print(sollwert)
Mein Problem hierbei ist, dass ich in der while-Schleife feststecke und dauerhaft Daten bekomme, auch wenn ich meinen Istwert schon bekommen habe.
Beim Ausführen des Codes erhalte ich dann:
- Ausgabe:
b' '
b' '
b'Istwert'
b' '
b' '
Einen Error bekomme ich nicht
LG mochtend