Мне поручено чтение данных из данных оборудования через последовательный порт. Оборудование будет отправлять на сервер несколько данных (может быть, больше, чем одно: при каждом нажатии кнопки отправки на оборудовании).
Я написал следующий класс для чтения «отдельных данных», отправленных оборудованием.
Я спрашиваю, как продолжить чтение данных, отправленных оборудованием, до отправки на сервер команды завершения (остановка чтения).
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());
}
}
}