繁体   English   中英

Python .readline()

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM