Ich habe eine Karte lesen verbunden mit einem ttyUSB0-Gerät, ich muss ein Python-Skript, das beim Ausführen wird warten (zum Beispiel 30s) für eine Karte zu übergeben und nachdem es geht und erhält eine Zeile mit Daten schließt das Skript und druckt die Zeile nur mit Daten. Wenn die Karte nicht innerhalb von 30 Sekunden passiert, schließt das Skript. HierPython lesen von der seriellen
ist das Skript:
#!/usr/bin/python
import time
import serial
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate = 4800,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=1
)
counter=0
while 1:
x=ser.readline()
print x
Mit diesem, was passiert, ist, dass es hält immer die Zeilendruck bis traf ich Ctrl + C
EDIT: gefunden, wie für das Lesen warten Ich möchte jetzt, was wäre der beste Weg, um das ganze Skript nach 30s Timeout zu machen?
#!/usr/bin/python
import time
import serial
ser = serial.Serial(
port='/dev/ttyUSB0',
baudrate = 4800,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS,
timeout=None
)
#while 1:
x=ser.read(size=16)
print x
Und wie hast du es gesagt, um 30 Sekunden zu warten? – Fejs
Bitte schauen Sie sich die Änderung an. Das war es was ich gefragt habe, wie man das ganze Skript auf 30s warten lässt. – rgomez