代码之家  ›  专栏  ›  技术社区  ›  KSK

如何在中检测通过串行端口或以太网连接的设备状态的变化。净额

  •  1
  • KSK  · 技术社区  · 7 年前

    我有一个通过串口和以太网连接到控制器的应用程序。控制器不断向PC抛出数据。我正在用C#编写应用程序。我已经创建了 串行端口控制 对象,并在中接收数据 收到的数据 方法类似地,我使用了以太网 TCPListener公司 及其方法 startAcceptClient 接受来自客户端的连接。

    现在,我的问题是,控制器是否已关闭电源,或者是否已将电缆从电脑中拔出;如何在应用程序中检测这些事件?

    1 回复  |  直到 7 年前
        1
  •  1
  •   FancyLord    7 年前

    我对TCPListener不太熟悉,但对于SerialPort,我使用了一个计时器,每次勾选都会检查端口是否仍然打开

    private void ComTimer_Tick(object sender, EventArgs e)
        {
            if (SerialPort.IsOpen)
            {
                dostuff
            }
            else if (!SerialPort.IsOpen)
            {
                ComCheckTimer.Stop();
                MessageBox.Show("Connection lost"); 
        }
    }
    

    对于计时器

    ComCheckTimer = new Timer();
    ComCheckTimer.Tick += new EventHandler(ComTimer_Tick);
    ComCheckTimer.Interval = 1000;
    

    这将创建一个每1000毫秒滴答一次的计时器

    推荐文章