添加 thread.sleep 如果端口接收没有在串行端口 c# 中发送消息
add thread.sleep if port receive did not message in Serial Port c#
我有代码通过串口发送接收数据,如下所示:
serialPort1.WriteLine(item);
Thread.Sleep(10000);
sRecv = serialPort1.ReadExisting().ToString();
发送数据,Thread.sleep10秒后接收数据,但是10秒后Port没有接收到数据的问题,如何添加Thread.sleepif如果没有收到数据,接下来的 10 秒
也许做个测试,看看是否有数据可供读取:
while(serialPort1.BytesToRead == 0)
{
Thread.Sleep(10000);
}
sRecv = serialPort1.ReadExisting();
顺便说一句,你不需要调用 ToString
因为 ReadExisting
已经 returns 一个字符串。
编辑:
60 秒后停止:
int timeOut = 60000;
int waitedTime = 0;
int waitInterval = 10000;
while (serialPort1.BytesToRead == 0 && waitedTime < timeOut)
{
Thread.Sleep(waitInterval);
waitedTime += waitInterval;
}
sRecv = serialPort1.ReadExisting();
我有代码通过串口发送接收数据,如下所示:
serialPort1.WriteLine(item);
Thread.Sleep(10000);
sRecv = serialPort1.ReadExisting().ToString();
发送数据,Thread.sleep10秒后接收数据,但是10秒后Port没有接收到数据的问题,如何添加Thread.sleepif如果没有收到数据,接下来的 10 秒
也许做个测试,看看是否有数据可供读取:
while(serialPort1.BytesToRead == 0)
{
Thread.Sleep(10000);
}
sRecv = serialPort1.ReadExisting();
顺便说一句,你不需要调用 ToString
因为 ReadExisting
已经 returns 一个字符串。
编辑:
60 秒后停止:
int timeOut = 60000;
int waitedTime = 0;
int waitInterval = 10000;
while (serialPort1.BytesToRead == 0 && waitedTime < timeOut)
{
Thread.Sleep(waitInterval);
waitedTime += waitInterval;
}
sRecv = serialPort1.ReadExisting();