C# 如何使用SerialPort SerialDataReceived帮助

C# 如何使用SerialPort SerialDataReceived帮助,c#,serial-port,C#,Serial Port,不确定如何处理SerialPort DataReceived。 情景 我有一个与设备通信的应用程序,这个设备返回一个状态 公共枚举操作状态 { 起动, 在进展中, 完整的 等 } 现在,如果我要使用DataReceiveDevenHandler,我怎么知道执行的是什么方法?例如行动1或行动2等。。。? 我还想在从设备中取回东西时包含某种超时。 有什么例子或建议吗 public ActionState Action1 { serialPort.write(myDat

不确定如何处理SerialPort DataReceived。 情景

我有一个与设备通信的应用程序,这个设备返回一个状态

公共枚举操作状态 { 起动, 在进展中, 完整的 等 }

现在,如果我要使用DataReceiveDevenHandler,我怎么知道执行的是什么方法?例如行动1或行动2等。。。? 我还想在从设备中取回东西时包含某种超时。 有什么例子或建议吗

    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...

    }

当有一些数据要读取时,即使接收到Eof字符,serialport也会触发接收到的事件DataReceived。通常,此事件用于获取该数据并用其启动进程或存储。例如,serialport读取条形码并在数据库中找到它

private static void DataReceivedHandler(
                    object sender,
                    SerialDataReceivedEventArgs e)
{
    SerialPort sp = (SerialPort)sender;
    string indata = sp.ReadExisting();
    if(!String.IsEmptyOrNull( indata)) 
    {
        AddProductToCart(indata);
    }
}
这是什么?C#?JAVA有些标记会有所帮助……它的C#,DataReceived()方法是串行端口类的公共方法