Handle exception in pyserial bei Verbindungsabbruch

Habe ich code, das Lesen von Daten von der seriellen Schnittstelle.

try: 
  dataIn = self.port.read(100) 
except serial.SerialException: 
  #do some work
  return None

Wenn ich die Verbindung Gerät-ich Fang Ausnahme, die ich nicht umgehen kann, irgendwie.

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/serial/serialposix.py", line 475, in read
    raise SerialException('device reports readiness to read but returned no data (device disconnected or multiple access on port?)')
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/katkov/work/obd2rds/obd2rds/testing/python/main.py", line 48, in <module>
    main()
  File "/home/katkov/work/obd2rds/obd2rds/testing/python/main.py", line 41, in main
    dataIn = serPort.read()
  File "/home/katkov/work/obd2rds/obd2rds/testing/python/uart.py", line 55, in read
    dataIn = self.port.read(100)
  File "/usr/local/lib/python3.4/dist-packages/serial/serialposix.py", line 480, in read
    if e[0] != errno.EAGAIN:
TypeError: 'SerialException' object does not support indexing

Wie kann ich catch-Ausnahme, dass es ordnungsgemäß verarbeitet werden.
Danke!

So weit ich bin mir bewusst, pySerial nicht unterstützt python 3.4, die Sie hier verwenden. So müssen Sie entweder verwenden einer anderen Bibliothek für Ihre Bedürfnisse, oder schreiben Sie Ihren code in python 2.7. Ich empfehle das finden einer anderen Bibliothek.
Wie bereits hier Python ist3.x ist verfügbar.

InformationsquelleAutor Yuriy | 2015-02-13

Schreibe einen Kommentar