Serielle Kommunikation
Verfasst: Freitag 15. Januar 2021, 10:20
Hey Leute,
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:
Meine Ist- und Sollwerte sind mit zwei verschiedenen Zahlen zur Unterscheidung gekennzeichnet 6 = Sollwert, 5 = Istwert.
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:
Einen Error bekomme ich nicht
LG mochtend
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