From d9a936f7ec50dc04c8786b9a661a0890ade52262 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期六, 28 十一月 2020 19:41:07 +0800 Subject: [PATCH] 20201128 --- HDL_ON/DAL/DriverLayer/Control.cs | 99 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 69 insertions(+), 30 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index 7f51627..a2c52c7 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -46,6 +46,15 @@ return _msg_id++; } } + /// <summary> + /// 鑾峰彇13浣嶆椂闂存埑 + /// </summary> + /// <returns></returns> + public string Get_TimeStamp() + { + long t = DateTime.Now.Ticks / 10000; + return t.ToString(); + } bool _gatewayOnline = false; /// <summary> @@ -63,6 +72,10 @@ UI.HomePage.LoadEvent_CheckLinkStatus(); } } + /// <summary> + /// 缃戝叧閫氳ID + /// </summary> + public string GatewayId; /// <summary> /// 鏄惁涓鸿繙绋嬭繛鎺� /// </summary> @@ -110,6 +123,18 @@ UdpSocket._BusSocket.Start(port); } + /// <summary> + /// 鍏抽棴udp + /// </summary> + public void CloseUdp() + { + if(myUdp!= null) + { + myUdp = null; + } + UdpSocket._BusSocket.Stop(); + } + /// <summary> /// 鎵撳紑tcp瀹㈡湇绔� /// </summary> @@ -174,28 +199,49 @@ { function.usageCount++; function.refreshTime = DateTime.Now; - if (DB_ResidenceData.residenceData.GatewayType == 0) + //杩滅▼閫氳 + if (Ins.IsRemote) { - try + //ALink鎺у埗 + if (DB_ResidenceData.residenceData.GatewayType == 0) { - if(myUdp != null) - { - myUdp.WriteBusData(function, commandDictionary); - } + } - catch (Exception ex) + //Bus鎺у埗 + else { - MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); + } } + //鏈湴閫氳 else { - if (myTcpClient != null) + //ALink鎺у埗 + if (DB_ResidenceData.residenceData.GatewayType == 0) { - var sendDataObj = function.GetControlSendData(commandDictionary); - var sendJson = Newtonsoft.Json.JsonConvert.SerializeObject(sendDataObj); - var sendBytes = System.Text.Encoding.UTF8.GetBytes(sendJson); - myTcpClient.SendMessage(sendBytes); + try + { + if (myUdp != null) + { + myUdp.WriteBusData(function, commandDictionary); + } + } + catch (Exception ex) + { + MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); + } + } + //Bus鎺у埗 + else + { + if (myUdp != null) + { + var functionControlDataObj = function.GetControlSendData(commandDictionary); + var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj); + var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson); + myUdp.SendLocalHdlLinkData(sendBytes); + //MainPage.Log($"鍙戦�佹湰鍦癏DL-Link鏁版嵁{functionControlDataJson}\r\n"); + } } } } @@ -249,6 +295,7 @@ string sendDataString = topicString + lengthString + bodyDataString; byte[] sendDataBytes = Encoding.ASCII.GetBytes(sendDataString); + MainPage.Log($"杞崲HDL-Link鏁版嵁\r\n{sendDataString}\r\n"); return sendDataBytes; } @@ -288,13 +335,12 @@ break; } } - //楠岃瘉鏈夋晥鏁版嵁闀垮害 - if (res[1].Length != receiveObj.Length) - { - MainPage.Log($"鏀跺埌鏁版嵁鍖呴暱搴︿笉澶�"); - return receiveObj; - } + //if (res[1].Length != receiveObj.Length) + //{ + // MainPage.Log($"鏀跺埌鏁版嵁鍖呴暱搴︿笉澶�"); + // return receiveObj; + //} receiveObj.BodyDataString = res[1]; var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); @@ -304,25 +350,18 @@ } switch (receiveObj.Topic) { - case CommunicationTopic.SearchLoaclGateway: + case CommunicationTopic.SearchLoaclGatewayReply: var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString()); -#if DEBUG - if (UserInfo.Current.AccountString == "464027401@qq.com") - { - DB_ResidenceData.residenceData.residenceGatewayMAC = "0000000000000000"; - } -#endif if (device.device_mac == DB_ResidenceData.residenceData.residenceGatewayMAC) { - Control.Ins.GatewayOnline = true; + Ins.GatewayOnline = true; + Ins.GatewayId = device.gatewayId; + reportIp = "239.0.168.188";// device.ip_address; } break; } } return receiveObj; - } - - } } \ No newline at end of file -- Gitblit v1.8.0