2

我是编程新手,正在尝试使用 OBD II 设备与我的车辆进行通信。串口转USB。我已经完成了我想要它做的事情,但是我得到了我输入的命令来打印出来。我如何从设备中获取信息?

这是我的代码。我正在使用 Python 3.2.3

import serial
import time
import string
import io
import os
import sys
ser = serial.Serial("/dev/ttyUSB1")
ser.baudrate = 38400
s = input('Enter AT command --> ')
print ('AT command = ' + s)
ser.write(bytes(s + '\r\n', encoding = 'utf-8'))
ser.timeout = 1
response = ser.read(999).decode('utf-8')
print(response)
ser.close()  

这是我输入命令“atrv”时打印出来的内容。

>>> 
Enter AT command --> atrv
AT command = atrv
atrv
0.1V
>>>

如何防止 0.1V 以上的“atrv”打印出来?

4

2 回答 2

1

将 ATE0 发送到 ELM 设备。

这会禁用回声,因此不会将 atrv 发回给您!

看看这个:http ://elmelectronics.com/DSheets/ELM327DS.pdf ,收集了很多 AT 命令,可能会有所帮助!

于 2013-10-21T06:59:35.377 回答
0

在树莓派上,我不得不将代码修改为:

import serial
import time
import string
import io
import os
import sys

ser = serial.Serial("/dev/rfcomm0")
ser.baudrate = 115200
s = input('Enter AT command --> ')
print ('AT command = ' + s)
ser.flushInput();
ser.write(bytes(s + '\r\n', encoding = 'utf-8'))
ser.flush();
ser.timeout = 1
response = ser.read(999).decode('utf-8')
print(response)
ser.close()
于 2017-02-10T10:20:45.253 回答