From 4f2dbd1f6a1ec2d9c3c39b4a37b0b7c9ddece4aa Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期四, 23 九月 2021 15:24:01 +0800 Subject: [PATCH] 主页刷新优化 --- HDL_ON/DAL/DriverLayer/Control.cs | 79 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 76 insertions(+), 3 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index 99c5b0e..0efa582 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -467,6 +467,7 @@ var actionObjs = new List<ApiAlinkControlActionObj>(); actionObjs.Add(apiControlData); var pack = httpServer.ControlDevice(actionObjs); + MainPage.Log($"杩滅▼鎺у埗鍙嶉:{pack.message}"); } } @@ -622,6 +623,41 @@ } /// <summary> + /// 瀹夐槻鎺у埗 + /// </summary> + public void ControlSecurity(SecurityAlarm securityAlarm,string state) + { + if (!Ins.GatewayOnline_Local)//缃戝叧鏈湴涓嶅湪绾� + { + var pm = new DAL.Server.HttpServerRequest(); + var result = pm.SetSecurityStatus(new List<SecurityState>() { new SecurityState() { + gatewayId = DB_ResidenceData.Instance.HomeGateway.gatewayId, + sid = securityAlarm.sid, status = state, userSecurityId = securityAlarm.userSecurityId + } }); + MainPage.Log($"瀹夐槻鎺у埗缁撴灉:{result.Code}"); + } + else + { + Dictionary<string, string> keys = new Dictionary<string, string>(); + keys.Add("sid", securityAlarm.sid); + keys.Add("status", state); + keys.Add("alarm", securityAlarm.alarm.ToString()); + var aLinkData = new AlinkReadFunctionStatusObj() + { + id = Ins.msg_id.ToString(), + objects = new List<Dictionary<string, string>>() + { + keys + }, + time_stamp = Utlis.GetTimestamp() + }; + var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(aLinkData); + var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlSeurity, aLinkJson); + new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id); + } + } + + /// <summary> /// a鍗忚鎺у埗鍦烘櫙 /// </summary> /// <param name="scene"></param> @@ -736,7 +772,7 @@ { Ins.GatewayId = device.device_mac; } - reportIp = "239.0.168.188";// device.ip_address;//涓绘挱鍦板潃涔熻兘鎺у埗璁惧 + reportIp = device.ip_address;//涓绘挱鍦板潃涔熻兘鎺у埗璁惧//"239.0.168.188";// } } else if (receiveObj.Topic == CommunicationTopic.ct.ReadStatus + "_reply" || @@ -745,6 +781,37 @@ { //TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮� UpdataFunctionStatus(receiveObj.BodyDataString, null); + } + else if (receiveObj.Topic == CommunicationTopic.ct.ControlSeurity +"_reply" + || receiveObj.Topic == CommunicationTopic.ct.ReadSecurityStatus + "_reply" + || receiveObj.Topic == CommunicationTopic.ct.SecurityStatusUp) + { + try + { + MainPage.Log($"灞�鍩熺綉瀹夐槻淇℃伅: {receiveObj.Topic} : 鍐呭: {res[1]}"); + var tt = ""; + lock (tt) { + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityStatusObj>(receiveObj.BodyDataString); + if (temp != null) + { + Control_Udp.ReceiveRepeatManager(temp.id, null); + foreach (var updataSecurity in temp.objects) + { + var updataLocalSecurity = FunctionList.List.securities.Find((obj) => obj.sid == updataSecurity.sid); + if (updataLocalSecurity != null) + { + updataLocalSecurity.status = updataSecurity.status; + updataLocalSecurity.alarm = updataSecurity.alarm; + ArmCenterPage.LoadEvent_RefreshSecurityStatus(updataLocalSecurity); + } + } + HomePage.LoadEvent_RefreshSecurityStatus(); + } + } + } + catch (Exception ex){ + MainPage.Log($"瀹夐槻灞�鍩熺綉寮傚父锛歿ex.Message}"); + } } else { @@ -800,7 +867,7 @@ return; } } - MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}"); + //MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}"); foreach (var attr in updateTemp.status) { localFunction.time_stamp = temp.time_stamp; @@ -808,9 +875,11 @@ } //鏇存柊鐣岄潰鐘舵�� - Function localObj = null; switch (localFunction.spk) { + case SPK.AirSwitch: + AirSwitchPage.UpdataState(localFunction); + break; case SPK.ElectricEnergy: EnergyMainPage.UpdataStatus(localFunction); break; @@ -894,6 +963,7 @@ } break; case SPK.FloorHeatStandard: + localFunction.lastState = ""; switch (localFunction.GetAttrState(FunctionAttributeKey.Mode)) { case "normal": @@ -929,6 +999,7 @@ HomePage.LoadEvent_RefreshEnvirIndoorHumi(); } EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); + //A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction); break; case SPK.SensorEnvironment: case SPK.SensorEnvironment2: @@ -942,6 +1013,7 @@ HomePage.LoadEvent_RefreshEnvirIndoorHumi(); } EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); + //A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction); break; case SPK.ElectricSocket: SocketPage.UpdataState(localFunction); @@ -959,6 +1031,7 @@ case SPK.ClothesHanger: case SPK.AcIr: case SPK.SenesorMegahealth: + case SPK.AirFreshStandard: //璁惧鐘舵�佹帹閫� //鐘舵�佹洿鏂� Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); -- Gitblit v1.8.0