C#SerialPort Readline在缓冲区中有多个换行符

时间:2017-06-20 11:40:33

标签: c# serial-port

我需要使用rs232从温度控制器获取一些数据。 控制器在每个完整命令结束时为每个字符发送一个回声,它返回一个'§'和一个'。'。如果命令成功应用。我的测试代码如下所示:

static string GetData(int memoryAddress)
 {
     if (!_session.IsOpen)
         return "No Connection";

     string toSend = "*A_r_" + memoryAddress.ToString() + "_0" + (char)21;

     foreach (char character in toSend)
         _session.Write(character.ToString());

    Thread.Sleep(100);
    return _session.ReadExisting();
}

并返回如下内容:

*A_r_0_0§.250§

现在我还需要在控制器中存储一些数据并希望重用上部是否可以使用

ReadNewline (with Newline-Symbol §)

只获得回声并验证它,以便我可以在下一个函数中读取返回的数据(如果我选择阅读某些内容)? 首先返回哪个值?最后一个或第一个到达的那个?

使用ReadNewline的超时而不是Thread.sleep(100)会更好吗?

1 个答案:

答案 0 :(得分:0)

最好使用' DataReceived'事件

   ** Test Cases ***
   ...
   ${value} =    getElementCount  ${ResponseJson}