首先让我先介绍一下我是 python 新手,这里没有自我。我有这个代码,我从各个站点拼凑而成,最终目标是将十六进制代码输出到 OBD-II 芯片并等待响应。此响应(也是 HEX)被转换为十进制处理并发送到输出。很简单吧?
嗯,有两个问题。
其中一个是 .readline() 删除响应的第一个字母。
例如,如果我想要“>Elm327”,我会返回“>lm327”。
另一个更大的问题是当我使用 .readline() 时,如果我使用下面的代码,我只会收到我发送的请求:
serialport.write("01 0D \r")
speed_hex = serialport.readline().split(' ')
speed = float(int('0x'+speed_hex[6:8], 0 ))
print 'Speed: ', speed, 'km/h'`
我想 .readline 返回41 0D 15
而不是我得到类似的东西E\r\r01 0D \r \r"
speed_hex = serialport.readline().split(' ')
这也会返回一个错误,但我会为此单独发布一篇文章。
有什么想法吗?谢谢