[英]How can I read all data from a serialPort before continuing? c#
所以我有這個應用程序,它從serialPort讀取數據。 serialPort根據發送給它的命令以不同的響應進行響應。 當我發送一個特定命令時,我需要讀回幾百行文本。 到目前為止,我只能讀取在thread.sleep期間可以讀取的盡可能多的行。
我正在使用thread.sleep(500)確保命令響應已完全輸出和讀取。 但是,每次執行時,從serialPort讀取的數據都會越來越大,因此休眠將無法進行。
我四處搜尋,試圖找到正確的方法來做,但是我似乎找不到。
public void sendCommandToPort(string command)
{
try
{
serialPort1.Write(command);
serialPort1.Write("\r\n");
}
catch (UnauthorizedAccessException ex)
{
MessageBox.Show(ex.Message);
}
System.Threading.Thread.Sleep(500);
}
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
readInData += sp.ReadExisting();
}
有兩種方法可以確定是否獲得了所有數據:
否則,您可能無法知道發件人何時完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.