From ed3bfb7462d44747230437717e8673a5192f833f Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期一, 30 十一月 2020 20:34:51 +0800 Subject: [PATCH] 2020-11-30-2 --- HDL_ON/DriverLayer/UdpSocket.cs | 35 +++++++++++++++++++++++++++++++---- 1 files changed, 31 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 2af43f3..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,14 @@ /// </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"))); } @@ -46,7 +61,7 @@ asyncBeginReceive(); - MainPage.Log ($"udp port : 6000"); + MainPage.Log ($"udp port : {port}"); } /// <summary> @@ -127,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