Не уверен, как обращаться с SerialPort DataReceived.
Сценарий
У меня есть приложение, которое связывается с устройством, и это устройство возвращает состояние. Это происходит на разных этапах. EG
публичное перечисление ActionState
{
Началось,
В ходе выполнения,
Завершенный
так далее...
}
Теперь, если бы я использовал DataReceivedEventHandler, как я могу сказать, какой метод выполняется? например, Action1 или Action2 и т.д ...?
Я также хочу включить какой-то тайм-аут при получении данных с устройства.
Любой пример или совет?
public ActionState Action1
{
serialPort.write(myData);
string result=serialPort.ReadExisting());
//convertTo ActionState and return
return ConvertToActionState(result);
}
public ActionState Action2
{
serialPort.write(myData);
string result=serialPort.ReadExisting());
//convertTo ActionState and return
return ConvertToActionState(result);
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//How can I use this to detect which method is firing and set the actionState Enum accordingly?
}
private ActionState(string result)
{
if(result==1)
return ActionState.Started;
else if (result==2)
return ActionState.Completed
etc...
}