From f7d3739023f4d04a4ed2c30c13d9abf8da210da7 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期一, 25 七月 2022 13:58:49 +0800 Subject: [PATCH] 兼容俄语 --- HDL_ON/DAL/DriverLayer/Control.cs | 154 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 137 insertions(+), 17 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index 5f9b849..08092a6 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -280,7 +280,8 @@ } if (DB_ResidenceData.Instance.GatewayType == 0) { - new Control_Udp().ControlBytesSend(Command.ReadGateway, 255, 255, new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) }); + new Control_Udp().ControlBytesSend(Command.ReadGateway, 255, 255, + new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) }); } else if (DB_ResidenceData.Instance.GatewayType == 1) { @@ -655,6 +656,79 @@ } /// <summary> + /// 鍙戦�佽鍙栧懡浠� + /// 鑷姩鍒ゆ柇鏄惁涓篈鍗忚璁惧 + /// </summary> + public void SendReadCommand(List<Function> functions, bool forceRemote = false) + { + List<string> sids = new List<string>(); + foreach (Function function in functions) + { + sids.Add(function.sid); + function.refreshTime = DateTime.Now; + } + if (forceRemote) + { + + var pm = new DAL.Server.HttpServerRequest(); + var pack = pm.RefreshDeviceStatus(sids); + } + else + { + if (Ins.GatewayOnline_Local) + { + + if (DB_ResidenceData.Instance.GatewayType == 0) + { + try + { + var busClient = new Control_Udp(); + foreach (Function function in functions) + { + busClient.ReadBusData(function); + } + + } + catch (Exception ex) + { + MainPage.Log($"鍙戦�佹暟鎹紓甯�: {ex.Message}"); + } + } + else + { + var objects = new List<Dictionary<string, string>>(); + + + foreach (Function function in functions) + { + var readKey = new Dictionary<string, string>(); + readKey.Add("sid", function.sid); + objects.Add(readKey); + } + + + var readDataObj = new AlinkReadFunctionStatusObj() + { + id = Ins.msg_id.ToString(), + objects = objects, + 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 pm = new DAL.Server.HttpServerRequest(); + var pack = pm.RefreshDeviceStatus(sids); + } + } + } + + + /// <summary> /// 瀹夐槻鎺у埗 /// </summary> public void ControlSecurity(SecurityAlarm securityAlarm,string state) @@ -843,13 +917,16 @@ byte[] bodyBytes = new byte[receiveObj.Length]; Array.Copy(originalReceiveBytes, topicBytes.Length + 4, bodyBytes, 0, receiveObj.Length); byte[] receiveBytes = Securitys.EncryptionService.AesDecryptPayload(bodyBytes, DB_ResidenceData.Instance.CurrentRegion.localSecret); - var revString = Encoding.UTF8.GetString(receiveBytes); - receiveObj.BodyDataString = revString; - MainPage.Log($"灞�鍩熺綉淇℃伅: 瑙e瘑鍚庯細" + receiveObj.BodyDataString); - //if (receiveObj.Topic.EndsWith("/thing/property/up")) - //{ - // MsgInfoList.Add(revString + "\r\n"); - //} + if (receiveBytes != null) + { + var revString = Encoding.UTF8.GetString(receiveBytes); + receiveObj.BodyDataString = revString; + MainPage.Log($"灞�鍩熺綉淇℃伅: 瑙e瘑鍚庯細" + receiveObj.BodyDataString); + //if (receiveObj.Topic.EndsWith("/thing/property/up")) + //{ + // MsgInfoList.Add(revString + "\r\n"); + //} + } } else { @@ -977,9 +1054,6 @@ } } - - - var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid); if (localFunction == null) { @@ -1056,6 +1130,14 @@ localFunction.lastState = localFunction.trait_on_off.curValue.ToString() == "on" ? Language.StringByID(StringId.Open) : Language.StringByID(StringId.Close); CurtainModulePage.UpdataState(localFunction); break; + case SPK.CurtainDream: + if(localFunction.GetAttrState(FunctionAttributeKey.Percent) == "0") + { + localFunction.SetAttrState(FunctionAttributeKey.OnOff, "off"); + } + localFunction.lastState = localFunction.trait_on_off.curValue.ToString() == "on" ? Language.StringByID(StringId.Open) : Language.StringByID(StringId.Close); + CurtainDreamPage.UpdataState(localFunction); + break; case SPK.CurtainTrietex: localFunction.lastState = Language.StringByID(StringId.Open) + localFunction.GetAttrState(FunctionAttributeKey.Percent) + "%"; MotorCurtainPage.UpdataState(localFunction); @@ -1065,10 +1147,6 @@ RollingShutterPage.UpdataState(localFunction); break; case SPK.CurtainShades: - break; - case SPK.HvacCac: - Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); - break; case SPK.AcStandard: case SPK.HvacAC: @@ -1189,15 +1267,57 @@ case SPK.SensorSmoke: case SPK.SensorWater: case SPK.ClothesHanger: - case SPK.SenesorMegahealth: - case SPK.SenesorMegahealth2: case SPK.AirFreshStandard: case SPK.HvacAirFresh: case SPK.SensorGas: + case SPK.HvacCac: //璁惧鐘舵�佹帹閫� //鐘舵�佹洿鏂� Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); break; + case SPK.SenesorMegahealth: + case SPK.SenesorMegahealth2: + + var tempStatus = localFunction.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus); + if (tempStatus != null) + { + + switch (tempStatus.state) + {//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔� + case "0": + localFunction.lastState = Language.StringByID(StringId.SensorNormalState); + break; + case "1": + localFunction.lastState = Language.StringByID(StringId.SomeoneIn); + break; + case "2": + if (localFunction.extSet.labModel) + { + localFunction.lastState = Language.StringByID(StringId.SomeoneRunning); + } + break; + case "3": + if (localFunction.extSet.labModel) + { + localFunction.lastState = Language.StringByID(StringId.SomeoneSitting); + } + break; + case "4": + localFunction.lastState = Language.StringByID(StringId.SomeoneFell); + break; + case "5": + if (localFunction.extSet.labModel) + { + localFunction.lastState = Language.StringByID(StringId.SomeoneStanding); + } + break; + default: + + break; + } + } + Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); + break; case SPK.AvMusic: case SPK.MusicStandard: //UI.Music.MusicMain.mMusicMain.RefreshView(updateTemp); -- Gitblit v1.8.0