From 64dbbfe1d6488635e160189a704afccffc7d34d0 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 07 十二月 2020 11:33:06 +0800 Subject: [PATCH] Merge branch 'WJC' --- HDL_ON/DAL/DriverLayer/Control.cs | 120 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 91 insertions(+), 29 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index bdf87b9..80e292b 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -53,7 +53,7 @@ public string Get_TimeStamp() { long t = DateTime.Now.Ticks / 10000; - return t.ToString(); + return t.ToString(); } bool _gatewayOnline = false; @@ -70,16 +70,35 @@ _gatewayOnline = value; //淇敼涓婚〉杩炴帴鐘舵�� UI.HomePage.LoadEvent_CheckLinkStatus(); + FunctionList.List.ReadAllFunctionStatus(); } } /// <summary> /// 缃戝叧閫氳ID /// </summary> public string GatewayId; + + bool _isRemote = false; /// <summary> /// 鏄惁涓鸿繙绋嬭繛鎺� /// </summary> - public bool IsRemote = false; + public bool IsRemote { + get + { + return _isRemote; + } + set + { + _isRemote = value; + if(value) + { + DAL.Mqtt.MqttClient.InitState(); + }else + { + DAL.Mqtt.MqttClient.DisConnectRemote(); + } + } + } /// <summary> /// 閫氳鍦板潃IP /// </summary> @@ -128,7 +147,7 @@ /// </summary> public void CloseUdp() { - if(myUdp!= null) + if (myUdp != null) { myUdp = null; } @@ -161,15 +180,24 @@ public void SearchLoaclGateway() { OpenUdp(DB_ResidenceData.residenceData.GatewayType == 0 ? 6000 : 8585); - - if (DB_ResidenceData.residenceData.GatewayType == 0) + new System.Threading.Thread(() => { - 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) - { - myUdp.SearchLocalGateway(); - } + for (int i = 0; i < 5; i++) + { + if (GatewayOnline) + break; + 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) + { + myUdp.SearchLocalGateway(); + } + System.Threading.Thread.Sleep(500); + } + }) + { IsBackground = true }.Start(); } /// <summary> @@ -201,18 +229,19 @@ function.refreshTime = DateTime.Now; DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest(); //杩滅▼閫氳 - if (Ins.IsRemote) + if (Ins.IsRemote || true) { //ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋� var apiControlData = function.GetApiControlData(commandDictionary); var actionObjs = new List<ApiAlinkControlActionObj>(); actionObjs.Add(apiControlData); - httpServer.ControlDevice(actionObjs); + var pack = httpServer.ControlDevice(actionObjs); + MainPage.Log($"{pack.Code}:{pack.Data}"); } //鏈湴閫氳 else { - //ALink鎺у埗 + //Bus鎺у埗 if (DB_ResidenceData.residenceData.GatewayType == 0) { try @@ -227,7 +256,7 @@ MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); } } - //Bus鎺у埗 + //ALink鎺у埗 else { if (myUdp != null) @@ -236,7 +265,6 @@ 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,24 +277,57 @@ public void SendReadCommand(Function function) { function.refreshTime = DateTime.Now; - if (function.bus_Data != null) + if (Ins.IsRemote) { - try - { - //ReadBusData(function); - } - catch (Exception ex) - { - MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); - } + } else { - //var commandObj = function.GetSendJObject(CommandType_A.read); - //var commandString = Newtonsoft.Json.JsonConvert.SerializeObject(commandObj); - //var commandBytes = System.Text.Encoding.UTF8.GetBytes(commandString); - //MqttCommon.MqttRemoteSend(commandBytes); + if (function.bus_Data != null) + { + try + { + Ins.myUdp.ReadBusData(function); + } + catch (Exception ex) + { + MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); + } + } + else + { + var readKey = new Dictionary<string, string>(); + readKey.Add("sid", function.sid); + + var readDataObj = new GatewayAlinkReadObj() + { + id = Ins.msg_id.ToString(), + objects = new List<Dictionary<string, string>>() + { + readKey + }, + //time_stamp = + }; + var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); + var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); + Ins.myUdp.SendLocalHdlLinkData(sendBytes); + } } + } + /// <summary> + /// 鍙戦�丄鍗忚璇诲彇鍛戒护 + /// </summary> + public void SendReadCommand(List<Dictionary<string, string>> keyValuePairs) + { + var readDataObj = new GatewayAlinkReadObj() + { + id = Ins.msg_id.ToString(), + objects = keyValuePairs, + //time_stamp = + }; + var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); + var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); + Ins.myUdp.SendLocalHdlLinkData(sendBytes); } /// <summary> @@ -353,6 +414,7 @@ Ins.GatewayOnline = true; Ins.GatewayId = device.gatewayId; reportIp = "239.0.168.188";// device.ip_address; + Ins.IsRemote = false; } break; } -- Gitblit v1.8.0