wxr
2020-11-20 e2ffb5fce53119f5cb36e3b2466becbefa096842
HDL_ON/DriverLayer/Control.cs
File was renamed from HDL_ON/DAL/DriverLayer/Control.cs
@@ -15,6 +15,10 @@
        /// </summary>
        local_BusUdp,
        /// <summary>
        /// 本地tcp服务端
        /// </summary>
        tcp_local_server,
        /// <summary>
        /// 本地tcp客户端
        /// </summary>
        tcp_local_client,
@@ -41,10 +45,6 @@
        /// </summary>
        public string reportIp = "255.255.255.255";
        /// <summary>
        /// 网关是否在线
        /// </summary>
        public bool gatewayOnline = false;
        /// <summary>
        /// tcp服务端
        /// </summary>
        public Control_TcpServer myTcpServer = null;
@@ -63,24 +63,12 @@
        public CommunicationMode communicationMode;
        /// <summary>
        /// 打开tcp服务端
        /// </summary>
        public void OpenTcpServer()
        {
            myTcpServer = new Control_TcpServer();
            myTcpServer.OpenServer();
        }
        /// <summary>
        /// 改变通讯方式
        /// </summary>
        public void ChangeCommunicationMode(CommunicationMode communicationMode)
        {
            if(this.communicationMode == communicationMode)
            {
                return;
            }
            this.communicationMode = communicationMode;
            switch (this.communicationMode)
            {
@@ -90,10 +78,32 @@
                        myUdp = new Control_Udp_Bus();
                    }
                    UdpSocket._BusSocket.Start();
                    if (myTcpServer != null)
                    {
                        myTcpClient.Close();
                        myTcpClient = null;
                    }
                    if (myTcpClient != null)
                    {
                        myTcpClient.Close();
                        myTcpClient = null;
                    }
                    break;
                case CommunicationMode.tcp_local_server:
                    if (myTcpServer == null)
                    {
                        myTcpServer = new Control_TcpServer();
                        myTcpServer.OpenServer();
                    }
                    if (myTcpClient != null)
                    {
                        myTcpClient.Close();
                        myTcpClient = null;
                    }
                    if(myUdp != null)
                    {
                        UdpSocket._BusSocket.Stop();
                        myUdp = null;
                    }
                    break;
                case CommunicationMode.tcp_local_client:
@@ -102,31 +112,17 @@
                        myTcpClient = new Control_TcpClient(reportIp);
                        myTcpClient.Connect();
                    }
                    if (myTcpServer != null)
                    {
                        myTcpClient.Close();
                        myTcpClient = null;
                    }
                    if (myUdp != null)
                    {
                        UdpSocket._BusSocket.Stop();
                        myUdp = null;
                    }
                    break;
            }
        }
        /// <summary>
        /// 搜索本地网关列表
        /// </summary>
        public void SearchLoaclGateway()
        {
            ChangeCommunicationMode(CommunicationMode.local_BusUdp);
            if (DB_ResidenceData.residenceData.GatewayType == 0)
            {
                myUdp.ControlBytesSend(Command.ReadGateway, 255, 255, new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) });
            }
            else if (DB_ResidenceData.residenceData.GatewayType == 1)
            {
                UdpSocket._BusSocket.SearchNetDeviceAction = (revIp) =>
                {
                    MainPage.Log($"搜索到网络设备:{revIp}");
                };
                myUdp.SearchLocalGateway();
            }
        }