我的一個串口接收數據的方法,今天從記錄的日誌中發現了提示函數不正確,怎麼解決?
(1)以下是記錄的日誌:
01:19:18: 讀取繼電器串口數據方法異常:函数不正确。
(2)以下是代碼
/// <summary>
/// 接收繼電器串口數據的方法
/// </summary>
private string ReceiveDataFromJiDianQi()
{
string value = "";
try
{
if (_spJiDianQi.IsOpen)
{
Thread.Sleep(40); //為了接收數據的完整性
byte[] receivedData = new byte[_spJiDianQi.BytesToRead]; //创建接收字节数组
if (receivedData.Length > 0)
{
_spJiDianQi.Read(receivedData, 0, receivedData.Length); //读取数据
_spJiDianQi.DiscardInBuffer();
_spJiDianQi.DiscardOutBuffer();
for (int i = 0; i < receivedData.Length; i++)
{
value += receivedData[i].ToString("X2"); //16进制显示
}
}
else
{
WriteLog("讀取繼電器串口數據時,沒有數據返回。");
}
}
else
{
WriteLog("繼電器串口打開失敗!");
}
}
catch (Exception ex)
{
WriteLog("讀取繼電器串口數據方法異常:" + ex.Message.ToString());
}
return value;
}
嗯,思路不对。
一直读放到缓冲区即可,不需要Thread睡眠。
友情提示:放点豆
你好!非常感谢你能百忙之中能回复,还有你的提示!另外,我想问下:如何一直读放到缓冲区即可,不需要Thread睡眠?