【发布时间】:2014-12-23 18:24:59
【问题描述】:
我真的很抱歉在一天之内在这里问了另一个问题。
新问题详解: 我将 HOKUYO 的激光测距仪连接到我的 RaspBerryPi。
连接等工作找到,感谢serial.py
我唯一的问题是,我正在发送一个命令,我得到一个回显和一个时间戳 + \n 返回。
缓冲区中的数据如下所示:
MD000007200001\n
2Dh1\n
\n\n
在此之后,传感器传输测量结果,然后锁定
MD000007200001\n
2Dh1\n
0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C\n
0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C\n
0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C\n
0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C\n
.....
...
0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C\n
\n\n
为了读取这些数据,目前我使用 readall()。还尝试了 readlines()。在这两种情况下,我都遇到了问题,必须等到设置为 1 的超时。 对于实时应用程序来说,这需要太多时间,而且该传感器可以每 120 毫秒测量一次。如果我将超时设置为 0,我经常会错过一些数据并且一切都崩溃了,因为我需要整个数据集来进行计算。
我还读到,有一个选项可以设置 readline 的 EOL,例如 readline(eof='\n\n') 但对于 Python 3.x,这将不起作用。
似乎有第二个选项,编写我自己的 readline-function。
但我绝对是 python 的初学者。所以我不知道我应该从哪里开始。
可能还有一些额外的选择。
最好的问候,A。
【问题讨论】:
-
shd 很容易适应stackoverflow.com/questions/16470903/… 的答案——那些正在寻找
\r的EOL,你正在寻找\n\n,但除此之外它似乎是同样的问题。您需要更完整地说明吗? -
那会很酷,是的。我已经阅读了那个答案,但无法实现我自己的 readline() 函数;
标签: python serial-port readline eol