2017-06-19 9 views
0

Ich versuche, Daten von einem USB-OBD zu empfangen und ich Himbeere Pi3 bin mit .. hier ist mein einfacher Code:Attribute: ‚Serien‘ Objekt hat kein Attribut ‚in_waiting

import obd 

connection = obd.OBD() # auto-connects to USB or RF port 

cmd = obd.commands.RPM # select an OBD command (sensor) 

response = connection.query(cmd) # send the command 

print(response) # "2410 RPM" 

Als ich anfing, die laufen Code Ich erhalte diesen Fehler:

: AttributeError: 'Serial' object has no attribute 'in_waiting' 

Wie kann ich das beheben?

Antwort

0

Per die Dokumentation von pyserial v3.0, in_waiting "geändert zu Eigenschaft von inWaiting()". Das führt mich zu der Annahme, dass Ihre pyserial-Bibliothek zu alt für die odb-Bibliothek ist (dh. ODB verwendet die Pyserial-Bibliothek in einer Weise, die Ihre Version nicht verarbeiten kann; sie verfügt nicht über die in_waiting-Eigenschaft, die odb sucht, stattdessen hat es die ältere inWaiting() Methode).

Sie können Ihre Version von pyserial überprüfen:

>>> import serial 
>>> serial.VERSION 
'2.6' 

Wenn Sie nicht in der Version 3.x sind, dann müssen Sie die pyserial Bibliothek aktualisieren.

+0

danke für Ihre Antwort .. ja meine Pyserial-Version ist 2.6, aber wenn ich pyserial upgrade 'python -m pip installiere pyserial --upgrade' es sagt mir, dass ich die neueste Version (2.6) verwende .. Und Attribut Fehler erscheinen mir nur, wenn ich es auf Python 3.4 ausgeführt habe, aber wenn ich Python 2.7 verwende, funktioniert der Code gut –

Verwandte Themen