【问题标题】:Read entire string by the serial port in C#在C#中通过串口读取整个字符串
【发布时间】:2011-04-13 17:54:45
【问题描述】:

大家好

我正在尝试读取通过串行端口发送的字符串,我首先使用 readline() 函数,但由于字符串有多行,我必须循环,我如何阻止我到达字符串的末尾,或者有没有办法我可以使用其他不依赖于新行的 readline 来读取整个字符串。

谢谢

日本

【问题讨论】:

  • 你在使用流吗?你能展示一下你的代码吗?

标签: c# .net readline


【解决方案1】:

除了通过网络使用的协议之外,没有什么神奇的方法。

如果您从另一个端点发送,您需要在字符串末尾添加一些内容,告诉接收端点所有内容都已发送。

如果您还没有开发另一个端点,您需要询问制造商/开发人员如何确定字符串的结尾。

标记串行消息开始和结束的一种非常标准的方法是使用 ASCII 字符 STX/ETX(ASCII 表中的 0x2 和 0x3)

【讨论】:

    【解决方案2】:

    ETA:这不是一个好主意,因为您不知道何时到达字符串的末尾。

    我不知道串口方面,但假设你有一个 Stream 并且所有数据都可用,你可以将它包装在 StreamReader 中并调用ReadToEnd

    【讨论】:

    • 那么他怎么知道什么时候所有的东西都读完了呢?这不是一个文件。
    • 您是绝对正确的,查看文档/重新考虑情况。谢谢!
    • 是的,我必须强制一些标识告诉我字符串的结尾
    猜你喜欢
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2014-07-29
    • 1970-01-01
    相关资源
    最近更新 更多