【发布时间】:2011-04-13 17:54:45
【问题描述】:
大家好
我正在尝试读取通过串行端口发送的字符串,我首先使用 readline() 函数,但由于字符串有多行,我必须循环,我如何阻止我到达字符串的末尾,或者有没有办法我可以使用其他不依赖于新行的 readline 来读取整个字符串。
谢谢
日本
【问题讨论】:
-
你在使用流吗?你能展示一下你的代码吗?
大家好
我正在尝试读取通过串行端口发送的字符串,我首先使用 readline() 函数,但由于字符串有多行,我必须循环,我如何阻止我到达字符串的末尾,或者有没有办法我可以使用其他不依赖于新行的 readline 来读取整个字符串。
谢谢
日本
【问题讨论】:
除了通过网络使用的协议之外,没有什么神奇的方法。
如果您从另一个端点发送,您需要在字符串末尾添加一些内容,告诉接收端点所有内容都已发送。
如果您还没有开发另一个端点,您需要询问制造商/开发人员如何确定字符串的结尾。
标记串行消息开始和结束的一种非常标准的方法是使用 ASCII 字符 STX/ETX(ASCII 表中的 0x2 和 0x3)
【讨论】:
ETA:这不是一个好主意,因为您不知道何时到达字符串的末尾。
我不知道串口方面,但假设你有一个 Stream 并且所有数据都可用,你可以将它包装在 StreamReader 中并调用ReadToEnd。
【讨论】: