From 6c8946b21635246355ec41f216426783685a14b2 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 14 十月 2020 09:14:09 +0800 Subject: [PATCH] 20201013 --- HDL_ON/DriverLayer/Control_Bus.cs | 64 +++++++++++++++++++++++++------- 1 files changed, 50 insertions(+), 14 deletions(-) diff --git a/HDL_ON/DriverLayer/Control_Bus.cs b/HDL_ON/DriverLayer/Control_Bus.cs index 5d5dc30..cc437dc 100644 --- a/HDL_ON/DriverLayer/Control_Bus.cs +++ b/HDL_ON/DriverLayer/Control_Bus.cs @@ -1,14 +1,11 @@ 锘縰sing System; using System.Collections.Generic; -using System.Net.Sockets; using System.Text; using HDL_ON.DAL; using HDL_ON.DAL.Net; using HDL_ON.Entity; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using Shared; -using Shared.Net; namespace HDL_ON { @@ -40,7 +37,7 @@ AddData = gatewayBytes, }, sendCount, false); } - + //鑾峰彇A鍗忚缃戝叧IP public static byte[] ReadGatewayIPAddress() { Control control = new Control(); @@ -48,7 +45,47 @@ return control.UsefulBytes; } - static DAL.Net.TcpListener tcpListener; + static bool searchLocalGateway = false; + /// <summary> + /// 璇诲彇灞�鍩熺綉缃戝叧鍒楄〃 + /// </summary> + public static void SearchLocalGateway() + { + searchLocalGateway = true; + var control = new Control(); + control.Send(new Target() + { + IPEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse(new Shared.Net.NetWiFi().BroadcastIpAddress.ToString()), 6000), + Command = Command.ReadGateway, + SubnetID = 255, + DeviceID = 255, + AddData = new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) }, + }, 3, true); + } + /// <summary> + /// 楠岃瘉缃戝叧鍥炲淇℃伅 + /// </summary> + public static void VerGateway(byte[] result) + { + if(searchLocalGateway) + { + if (result != null) + { + var mac0 = CommonPage.byteToHex16(result[5]) + "." + CommonPage.byteToHex16(result[6]) + "." + CommonPage.byteToHex16(result[7]) + "." + CommonPage.byteToHex16(result[8]) + "." + CommonPage.byteToHex16(result[9]) + "." + CommonPage.byteToHex16(result[10]) + "." + CommonPage.byteToHex16(result[11]) + "." + CommonPage.byteToHex16(result[12]); + // + if (DB_ResidenceData.residenceData.residenceGatewayMAC.Replace(".", "").Replace(":", "").ToUpper() == mac0.Replace(".", "").Replace(":", "").ToUpper()) + { + searchLocalGateway = false; + } + else + { + Mqtt_Cloud.StartCloudMqtt(); + } + } + } + } + + static TcpListener tcpListener; /// <summary> /// 000E 鎼滅储鍥炲 @@ -66,7 +103,7 @@ if (tcpListener == null) { - tcpListener = new DAL.Net.TcpListener(); + tcpListener = new TcpListener(); tcpListener.OpenServer(8586); } @@ -140,7 +177,6 @@ { if (((System.Net.IPEndPoint)remoteEndPoint).Port == 6688) { - for (int i = 0; i < controlList.Count; i++) { try @@ -252,10 +288,10 @@ // receiveFlag += string.Format("{0}", usefulBytes[0]); // break; //case Command.ReadDeviceModulACK: - //case Command.ReadGatewayACK: //case Command.ReadSecurityStatusACK: - // receiveFlag = string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]); - // break; + case Command.ReadGatewayACK: + receiveFlag = string.Format("{0},{1}", usefulBytes[0], usefulBytes[1]); + break; //case Command.UpdataLightDimmingTheLargestLevelACK: //case Command.UpdataLightDimmingMaximumOrMinimumACK: //case Command.WriteManageWirelessNetACK: @@ -635,11 +671,11 @@ // this.SendFlag += string.Format("{0}", target.AddData[0]); // break; //case Command.ReadDeviceModul: - //case Command.ReadGateway: //case Command.ReadSecurityStatus: //case Command.ReadHornTargetState: - // this.SendFlag = string.Format("{0},{1}", target.AddData[0], target.AddData[1]); - // break; + case Command.ReadGateway: + this.SendFlag = string.Format("{0},{1}", target.AddData[0], target.AddData[1]); + break; //case Command.SetScene: //case Command.SetSeries: //case Command.SetHotelCurtain: @@ -816,7 +852,7 @@ var sendJob = new JObject {{ "command", "search" } }; var SearchGateway = JsonConvert.SerializeObject(sendJob); var SearchGatewayPayload = Encoding.ASCII.GetBytes(SearchGateway); - Packet = new Packet(SearchGatewayPayload, CommonPage.GetGatewayIP_EndPoint); + Packet = new Packet(SearchGatewayPayload, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("224.0.168.188"), 6688)); System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount)); thread.IsBackground = true; thread.Start(Packet); -- Gitblit v1.8.0