From d7e25d6a5960b3495cd4d8a67545410e03ca7962 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期日, 06 六月 2021 16:42:08 +0800 Subject: [PATCH] Merge branch 'wxr4' into temp-wxr --- HDL_ON/DAL/DriverLayer/Control.cs | 93 +++++++++++++++++++++++++++------------------- 1 files changed, 55 insertions(+), 38 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index f66b0e0..559605c 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -477,47 +477,55 @@ /// 鍙戦�佽鍙栧懡浠� /// 鑷姩鍒ゆ柇鏄惁涓篈鍗忚璁惧 /// </summary> - public void SendReadCommand(Function function) + public void SendReadCommand(Function function ,bool forceRemote = false) { function.refreshTime = DateTime.Now; - if (Ins.GatewayOnline_Local) + if (forceRemote) { - - if (DB_ResidenceData.Instance.GatewayType == 0) + var pm = new DAL.Server.HttpServerRequest(); + var pack = pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); + } + else + { + if (Ins.GatewayOnline_Local) { - try + + if (DB_ResidenceData.Instance.GatewayType == 0) { - new Control_Udp().ReadBusData(function); + try + { + new Control_Udp().ReadBusData(function); + } + catch (Exception ex) + { + MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); + } } - catch (Exception ex) + else { - MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); + var readKey = new Dictionary<string, string>(); + readKey.Add("sid", function.sid); + + var readDataObj = new AlinkReadFunctionStatusObj() + { + id = Ins.msg_id.ToString(), + objects = new List<Dictionary<string, string>>() + { + readKey + }, + time_stamp = Utlis.GetTimestamp() + }; + var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); + var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); + MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); + new Control_Udp().SendLocalHdlLinkData(sendBytes, readDataObj.id); } } else { - var readKey = new Dictionary<string, string>(); - readKey.Add("sid", function.sid); - - var readDataObj = new AlinkReadFunctionStatusObj() - { - id = Ins.msg_id.ToString(), - objects = new List<Dictionary<string, string>>() - { - readKey - }, - time_stamp = Utlis.GetTimestamp() - }; - var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); - var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); - MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); - new Control_Udp().SendLocalHdlLinkData(sendBytes, readDataObj.id); + var pm = new DAL.Server.HttpServerRequest(); + var pack = pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); } - } - else - { - var pm = new DAL.Server.HttpServerRequest(); - var pack = pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); } } @@ -661,15 +669,6 @@ /// <param name="updateBytes"></param> public void UpdataFunctionStatus(string revString, byte[] usefulBytes,bool isCloudData = false) { - - if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞� - { - if (FunctionList.List.GetDeviceFunctionList(SPK.BrandType.Tuya).Count == 0) - { - //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�..."); - return; - } - } var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString); if (temp != null) { @@ -679,6 +678,22 @@ { try { + + if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞� + { + if (FunctionList.List.OtherBrandFunction.Count != 0) + { + if (FunctionList.List.OtherBrandFunction.Find((obj) => obj.sid == updateTemp.sid) == null) + { + //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�..."); + return; + } + } + } + + + + var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid); if (localFunction == null) { @@ -837,7 +852,9 @@ case SPK.SensorWater: case SPK.ClothesHanger: case SPK.AcIr: + case SPK.SenesorMegahealth: //璁惧鐘舵�佹帹閫� + //鐘舵�佹洿鏂� Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); break; } -- Gitblit v1.8.0