首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python .readline()

Python .readline()
EN

Stack Overflow用户
提问于 2013-07-27 14:12:28
回答 1查看 2K关注 0票数 0

首先,让我先说一句,我对蟒蛇很陌生,这里没有自我。我有这个代码,我拼凑在一起,从不同的网站,其最终目标是,它将输出一个十六进制代码到一个OBD-II芯片,并等待一个响应。此响应(也称为HEX )被转换为十进制处理并发送到输出。很简单对吧?

嗯,有两个问题。

其中之一是.readline()删除响应的第一个字母。

例如,如果我想要“> For 327”,我会得到“> if 327”。

另一个更大的问题是,当我使用.readline()时,我只收到我发送的请求,例如,如果我使用下面的代码:

代码语言:javascript
复制
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"的东西

代码语言:javascript
复制
speed_hex = serialport.readline().split(' ')  

这也会返回一个错误,但我将为此单独发布一个帖子。

有什么想法吗?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-27 14:19:48

我怀疑您的串口设置与板的设置不完全匹配,请尝试使用终端,直到您得到确切的设置,然后使用这些设置。

注意,您不需要在0x前面加上一个十六进制值,您可以在其中使用int(s,16),其中s是您的子字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17898730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档