Seite 1 von 1

Pyserial; readline(); Exception

Verfasst: Dienstag 15. November 2011, 08:55
von stoneshack
Hi,
ich möchte ein Exception auslösen wenn beim readline() timeout vorkommt. Kann mir Jemand dabei helfen oder eine Alternative anbieten?

(Python 2.7; PySerial; timeout = 1)

Habe flolgendes probiert:

Code: Alles auswählen

        try:
            print "1"
            self.ser.write('%s\n' %str)
            print "2"
            self.postBox = self.ser.readline()
            print "3"

        except serial.SerialException:
            print "Exception"
            print self.postBox

#oder
        except serial.SerialTimeoutException:
            print "Exception"
            print self.postBox
Ausgabe:
1
2
#wartet 1 Sekunde
3

Re: Pyserial; readline(); Exception

Verfasst: Samstag 26. November 2011, 08:25
von norbert
Hallo stoneshack,

bei einem timeout bekommst Du von bekommst Du von readline() leider keine Exception.
Du kannst aber einfach die Antwort auswerten. Allerdings ist die Länge auch 0 wenn nur ein \n empfangen wurde.
Wenn Du diesen Fall auch abfangen willst, musst Du zeichenweise lesen und den String selbst zusammen basteln.

VG
Norbert

Code: Alles auswählen

    self.postBox = self.ser.readline()
    if len(self.postBox) == 0:
        print "timeout oder leere Zeile"