我是编程新手,正在尝试使用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'打印出来?
答案 0 :(得分:1)
将ATE0发送到ELM设备。
这会禁用回声,因此atrv不会发回给你!
看看这个:http://elmelectronics.com/DSheets/ELM327DS.pdf,很多AT命令的集合,可能会有所帮助!
答案 1 :(得分:0)
在树莓PI上我必须将代码修改为:
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()