[英]Python .readline()
首先让我以我是python的新手作为序言,这里没有自我。 我从各个站点收集了这段代码,最终目的是将十六进制代码输出到OBD-II芯片并等待响应。 该响应(也为十六进制)将转换为十进制处理并发送到输出。 很简单吧?
好吧,有两个问题。
其中一个.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(' ')
这也会返回一个错误,但我将为此另行发表文章。
有什么想法吗? 谢谢
我怀疑您的串行端口设置与主板上的设置不完全匹配,请尝试在终端上玩,直到您获得确切的设置,然后再使用这些设置。
注意,您不需要在0x之前转换十六进制值,可以使用int(s,16),其中s是您的子字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.