From e2ffb5fce53119f5cb36e3b2466becbefa096842 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 20 十一月 2020 18:09:13 +0800 Subject: [PATCH] Revert "20201120" --- HDL_ON/DriverLayer/UdpSocket.cs | 36 ++++++++++++++++++++++++++++++++---- 1 files changed, 32 insertions(+), 4 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/UdpSocket.cs b/HDL_ON/DriverLayer/UdpSocket.cs similarity index 80% rename from HDL_ON/DAL/DriverLayer/UdpSocket.cs rename to HDL_ON/DriverLayer/UdpSocket.cs index 2e6343a..ac83f9b 100644 --- a/HDL_ON/DAL/DriverLayer/UdpSocket.cs +++ b/HDL_ON/DriverLayer/UdpSocket.cs @@ -20,6 +20,21 @@ } } + /// <summary> + /// 鐩戝惉绔彛 + /// </summary> + public int port + { + get + { + if (MainPage.LoginUser != null && Entity.DB_ResidenceData.residenceData != null) + { + return Entity.DB_ResidenceData.residenceData.GatewayType == 0 ? 6000 : 8585; + } + return 6000; + } + } + //鏈湴Socket private Socket busSocket; @@ -28,14 +43,15 @@ /// </summary> public void Start () { - if (IsRunning) { + if (IsRunning || port == 0) { return; } busSocket = new Socket (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); busSocket.EnableBroadcast = true; try { - busSocket.Bind (new IPEndPoint (IPAddress.Any, 6000)); + busSocket.Bind (new IPEndPoint (IPAddress.Any, port)); + busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188"))); } catch{ @@ -45,7 +61,7 @@ asyncBeginReceive(); - MainPage.Log ($"udp port : 6000"); + MainPage.Log ($"udp port : {port}"); } /// <summary> @@ -126,7 +142,19 @@ //mqtt杩炴帴鏁版嵁璇诲彇 A鍗忚缃戠粶璁惧淇℃伅璇诲彇鍥炲 澶勭悊 if (((IPEndPoint)packet.RemoteEndPoint).Port == 8585) { - Common.A_Protocal_Common.apc.ConvertReceiveData(bytes); + var reString = System.Text.Encoding.UTF8.GetString(bytes); + var jt = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(reString); + JToken jtc = null; + jt.TryGetValue("command", out jtc); + if (jtc != null && jtc.ToString() == "search_response") + { + JToken jto = null; + jt.TryGetValue("objects", out jto); + if (jto != null) + { + SearchNetDeviceAction?.Invoke(jto.ToString()); + } + } } else if(((IPEndPoint)packet.RemoteEndPoint).Port == 6000)//澶勭悊bus 6000绔彛鐨勬暟鎹� { -- Gitblit v1.8.0