我的任务是通过串行端口从设备数据中读取发出的数据。 设备将向服务器发送多个数据(可能不止一个:在每个发送按钮上单击设备)。
我编写了以下类来读取设备发送的“单个数据”。
我在问如何继续读取设备发出的数据,直到将完成命令发送到服务器(停止读取)。
public class MachineIntegrationmanager : IMachineIntegrationService
{
public SerialPort Sport { set; get; }
public MachineIntegrationmanager()
{
Sport = new SerialPort("COM6",9600,Parity.None,8,StopBits.One);
}
public ResultClass<string> ReadEquipmentOutput()
{
ResultClass<string> res = new ResultClass<string>();
try
{
Sport.Open();
Sport.DataReceived += SportOnDataReceived;
res.Result = "";
res.Code = Errors.Success;
res.Message = Errors.GetErrorMessage(res.Code);
}
catch (Exception ex)
{
res.Result = string.Empty;
res.Code = Errors.UnknownError;
res.Message = Errors.GetErrorMessage(res.Code);
}
return res;
}
private void SportOnDataReceived(object sender,SerialDataReceivedEventArgs serialDataReceivedEventArgs)
{
File.WriteAllText("test.txt",Sport.ReadExisting());
}
}
}