Ejemplo n.º 1
0
        public void CloseService()
        {
            Thread.Sleep(500);
            if (_tcpListener != null)
            {
                _tcpListener.Stop();
                _tcpListener = null;
            }

            if (_listenThread != null)
            {
                _listenThread.Abort();
                _listenThread.Join();
                _listenThread = null;
            }
            if (_scanClient != null)
            {
                _scanClient.DisConnected();
                _scanClient = null;
            }

            if (_checkStatusThread != null)
            {
                _checkStatusThread.Abort();
                _checkStatusThread.Join();
                _checkStatusThread = null;
            }
            if (_listenScanThread != null)
            {
                _listenScanThread.Abort();
                _listenScanThread.Join();
                _listenScanThread = null;
            }

            ConnectState            = false;
            _eqItem.btnEQ.BackColor = Color.Red;
            _eqItem.启动服务ToolStripMenuItem.Enabled = true;
            _eqItem.停止服务ToolStripMenuItem.Enabled = false;
            _eqItem.EQMessage.Text = @"Service Stoped.";
        }
Ejemplo n.º 2
0
        public virtual void StartService()
        {
            if (_listenThread == null)
            {
                #region lableView客户端建立监听
                if (ModuleInfo.EqType == "1")
                {
                    IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
                    foreach (IPAddress ipAddress in ip)
                    {
                        if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
                        {
                            _serverIp = ipAddress;
                        }
                    }

                    if (_serverIp != null && ModuleInfo.PortNumber != null)
                    {
                        _listenThread = new Thread(ListenForLableViewClients);
                        _listenThread.Start();
                        _eqItem.btnEQ.BackColor = Color.Orange;
                        _eqItem.EQMessage.Text  = @"Listening...";
                        _eqItem.停止服务ToolStripMenuItem.Enabled = true;
                        _eqItem.启动服务ToolStripMenuItem.Enabled = false;
                        ConnectState = true;
                    }
                }
                #endregion

                #region 自动扫描仪客户端建立监听
                if (ModuleInfo.EqType == "2")
                {
                    if (ModuleInfo == null || ModuleInfo.ClientIp == "")
                    {
                        return;
                    }
                    _scanClient       = new ScanSokect(ModuleInfo.ClientIp, 9003, 9004);
                    _listenScanThread = new Thread(ListenForScanClientsConnectState);
                    _listenScanThread.Start();

                    if (Module.KepController != null)
                    {
                        Module.KepController.KepHelper.DatachangeEvent += new TLAgent.OpcLibrary.OpcHelper.DataChange(KepHelper_DatachangeEvent);
                    }
                }
                #endregion

                #region 采集器客户端监听
                else
                {
                    IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
                    foreach (IPAddress ipAddress in ip)
                    {
                        if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
                        {
                            _serverIp = ipAddress;
                        }
                    }

                    if (_serverIp != null && ModuleInfo.PortNumber != null)
                    {
                        _tcpListener  = new TcpListener(_serverIp, Convert.ToInt32(ModuleInfo.PortNumber));
                        _listenThread = new Thread(ListenForPadClients);
                        _listenThread.Start();
                        _eqItem.btnEQ.BackColor = Color.Orange;
                        _eqItem.EQMessage.Text  = @"Listening...";
                        _eqItem.停止服务ToolStripMenuItem.Enabled = true;
                        _eqItem.启动服务ToolStripMenuItem.Enabled = false;
                        ConnectState = true;
                        if (Module.KepController != null)
                        {
                            Module.KepController.KepHelper.DatachangeEvent += new TLAgent.OpcLibrary.OpcHelper.DataChange(KepHelper_DatachangeEvent);
                        }
                    }
                }
                #endregion
            }
        }