From df8d4ab0ef17a7fab5dea9c47bbd9f4d4a2a40b0 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 15 三月 2021 14:55:49 +0800 Subject: [PATCH] 合并前上传一个版本 --- HDL_ON/DAL/DriverLayer/Control.cs | 169 +++++++++++++++++-------------------------------------- 1 files changed, 53 insertions(+), 116 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index e8827a2..5b3309f 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -65,63 +65,6 @@ /// </summary> public bool IsSearchLocalGatewaySuccessful = false; - ///// <summary> - ///// - ///// </summary> - //bool _gatewayOnline1 = false; - ///// <summary> - ///// 缃戝叧鏄惁鍦ㄧ嚎 - ///// </summary> - //public bool GatewayOnline1 - //{ - // get - // { - // return _gatewayOnline; - // } - // set - // { - // if (_gatewayOnline != value) - // { - // if(value) - // { - // if (IsRemote)//濡傛灉鏄繙绋� - // { - // if(DB_ResidenceData.Instance.HomeGateway == null) - // { - // return; - // } - // if (!DB_ResidenceData.Instance.HomeGateway.gatewayStatus)//杩滅▼鎯呭喌涓嬶紝缃戝叧鏈摼鎺ユ湇鍔″櫒涓嶈兘淇敼涓婚〉缃戝叧鐘舵�� - // { - // new System.Threading.Thread(() => { - // System.Threading.Thread.Sleep(3000); - // var pm = new DAL.Server.HttpServerRequest(); - // pm.GetGatewayInfo(); - // }) { IsBackground = true }.Start(); - // return; - // } - // } - // _gatewayOnline = value; - // //淇敼涓婚〉杩炴帴鐘舵�� - // HomePage.LoadEvent_CheckLinkStatus(); - // MainPage.Log($"缃戝叧鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); - // new System.Threading.Thread(() => - // { - // System.Threading.Thread.Sleep(1000); - // FunctionList.List.ReadAllFunctionStatus(); - // }) - // { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); - // } - // else - // { - // _gatewayOnline = value; - // //淇敼涓婚〉杩炴帴鐘舵�� - // HomePage.LoadEvent_CheckLinkStatus(); - // } - // } - // } - //} - - bool _GatewayOnline_Local = false; /// <summary> /// 缃戝叧鍦ㄧ嚎-灞�鍩熺綉 @@ -141,7 +84,7 @@ { //淇敼涓婚〉杩炴帴鐘舵�� HomePage.LoadEvent_CheckLinkStatus(); - MainPage.Log($"缃戝叧鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); + MainPage.Log($"缃戝叧灞�鍩熺綉鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); @@ -195,7 +138,7 @@ } //淇敼涓婚〉杩炴帴鐘舵�� HomePage.LoadEvent_CheckLinkStatus(); - MainPage.Log($"缃戝叧鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); + MainPage.Log($"缃戝叧浜戠鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); @@ -511,7 +454,8 @@ var pack = pm.GetDeviceInfoList(functionIds); if(pack!= null&& pack.Data!=null) { - var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(pack.Data.ToString()); + //寰呮祴璇�2021-03-04 + var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AlinkStatusData>>(pack.Data.ToString()); if(ddd!= null) { foreach(var function in ddd) @@ -519,10 +463,9 @@ var temp = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.deviceId == function.deviceId); if(temp!= null) { - temp = function; if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(temp.spk)) { - Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(temp.sid, temp.status); + Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(temp.sid, function.status); } } } @@ -577,21 +520,6 @@ var pack = pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); } } - ///// <summary> - ///// 鍙戦�丄鍗忚璇诲彇鍛戒护 - ///// </summary> - //public void SendReadCommand(List<Dictionary<string, string>> keyValuePairs) - //{ - // var readDataObj = new GatewayAlinkReadObj() - // { - // id = Ins.msg_id.ToString(), - // objects = keyValuePairs, - // time_stamp = Utlis.GetTimestamp() - // }; - // var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); - // var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); - // Ins.myUdp.SendLocalHdlLinkData(sendBytes); - //} /// <summary> /// a鍗忚鎺у埗鍦烘櫙 @@ -601,16 +529,8 @@ { if (!Ins.GatewayOnline_Local)//缃戝叧鏈湴涓嶅湪绾� { - //浜戠鍋氬鐞嗗彂閫佷竴绔彛鍦烘櫙 - //if (DB_ResidenceData.Instance.GatewayType == 0) - //{ - // new Control_Udp().ControlBusScenes(scene); - //} - //else - { - var pm = new DAL.Server.HttpServerRequest(); - var result = pm.ExecuteScene(scene.userSceneId); - } + var pm = new DAL.Server.HttpServerRequest(); + var result = pm.ExecuteScene(scene.userSceneId); } else { @@ -682,8 +602,8 @@ } } - MainPage.Log($"time 1 :{receiveObj.Topic}"); - + MainPage.Log($"灞�鍩熺綉淇℃伅: {receiveObj.Topic}"); + MainPage.Log($"鍐呭: {res[1]}"); //楠岃瘉鏈夋晥鏁版嵁闀垮害 //if (res[1].Length != receiveObj.Length) @@ -693,13 +613,13 @@ //} receiveObj.BodyDataString = res[1]; - var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); - if (bodyJObj == null) - { - return receiveObj; - } if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply) { + var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); + if (bodyJObj == null) + { + return receiveObj; + } var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString()); if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC) { @@ -724,6 +644,11 @@ //TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮� UpdataFunctionStatus(receiveObj.BodyDataString, null); } + else + { + //涓�浜涚壒娈婄殑涓婚澶勭悊(涓轰簡鎵ц閫熷害,灏藉彲鑳界殑鍒姞鑰楁椂鐨勬搷浣�) + Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(receiveObj.Topic, receiveObj.BodyDataString); + } } return receiveObj; } @@ -733,9 +658,17 @@ /// A鍗忚鏁版嵁 /// </summary> /// <param name="updateBytes"></param> - public void UpdataFunctionStatus(string revString, byte[] usefulBytes) + public void UpdataFunctionStatus(string revString, byte[] usefulBytes,bool isCloudData = false) { - MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}"); + + 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) { @@ -745,18 +678,23 @@ { try { - //bool hadChange = false;//鐘舵�佹湁鍙樺寲鍐嶆洿鏂扮晫闈� var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid); + if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞� + { + if(!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk)) + { + //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�........"); + return; + } + } + //MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}"); + foreach (var attr in updateTemp.status) + { + localFunction.SetAttrState(attr.key,attr.value); + } + if (localFunction != null) { - //var updateInfoString = $"鏇存柊璁惧:{localFunction.name}"; - //foreach (var attr in updateTemp.status) - //{ - // updateInfoString += $" key:{attr.key};value:{attr.value}"; - //} - //MainPage.Log(updateInfoString); - - //鏇存柊鐣岄潰鐘舵�� Function localObj = null; switch (localFunction.spk) @@ -774,7 +712,6 @@ localAttr.curValue = attr.value; } } - //rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + rgb.brightness + "%"; RelayPage.UpdataState(localSwitch); } break; @@ -915,7 +852,7 @@ } } ac.lastState = ""; - switch (ac.trait_mode.curValue.ToString()) + switch (ac.GetAttrState(FunctionAttributeKey.Mode)) { case "cool": ac.lastState = Language.StringByID(StringId.Cool); @@ -933,7 +870,7 @@ ac.lastState = Language.StringByID(StringId.AirSupply); break; } - switch (ac.trait_fan.curValue.ToString()) + switch (ac.GetAttrState(FunctionAttributeKey.FanSpeed)) { case "high": ac.lastState += " " + Language.StringByID(StringId.HighWindSpeed); @@ -948,7 +885,7 @@ ac.lastState += " " + Language.StringByID(StringId.Auto); break; } - ac.lastState += " " + ac.trait_temp.curValue + ac.tempUnitString; + ac.lastState += " " + ac.GetAttrState(FunctionAttributeKey.SetTemp) + ac.tempUnitString; ACPage.UpdataStates(ac); } break; @@ -1029,14 +966,14 @@ case SPK.ElectricTuyaFan: case SPK.ElectricTuyaWeepRobot: case SPK.ElectricTuyaWaterValve: + case SPK.SensorPir: + case SPK.SensorDoorWindow: + case SPK.SensorSmoke: + case SPK.SensorWater: + case SPK.ClothesHanger: + case SPK.IrAC: //璁惧鐘舵�佹帹閫� - var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status); - if (myDevice != null) - { - localObj = myDevice; - } - break; - default: + Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status); break; } if (localObj != null) -- Gitblit v1.8.0