Closed yaleman closed 5 years ago
Have tested this with the latest version from github with the same result, if you make two requests each cycle in the loop it seems to work OK.
Please, try using the fast=False
option in OBD or Async.
It should disable sending the carriage return to repeat the previous command that appears not to be supported by your adapter. (You are anyway not using an original ELM327 chipset as the version of your adapter is v1.5.)
Notice that the behavior of python-OBD reflects ELM327 documentation, page 9/94:
One other feature of the ELM327 is the ability to repeat any command (AT or OBD) when only a single carriage return character is received. If you have sent a command (for example, 01 0C to obtain the rpm), you do not have to resend the entire command in order to resend the request to the vehicle – simply send a carriage return character, and the ELM327 will repeat the command for you. The memory buffer only remembers one command though, and there is no provision in the current ELM327 to provide storage for any more.
Adding fast=False
worked perfectly, sorry for the mis-attributed bug :)
This is similar to #104, where multiple queries return
None
after the first two.Example code:
Logging output:
If you look at the "write" command it's not sending anything the third time. This is running on linux with python 3.6.6, installed from pip today.
The hardware works with other software (the ubuntu scantool package) and I'm testing on a 2018 C12 Nissan Pulsar (Tiida in Asian markets), if that matters.
I'm happy to help fix with code patches, just wondering if this is a known issue or something else?