From c00da77d00a479fa5d022346a6d9075f90a5c087 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期六, 14 九月 2024 10:05:34 +0800 Subject: [PATCH] 退出登录时间调整,新风,音乐 --- HDL_ON/DAL/DriverLayer/Control.cs | 167 +++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 118 insertions(+), 49 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index e60e1ae..318bd99 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using System.Text; +using HDL_ON.DAL.Mqtt; using HDL_ON.DAL.Server; using HDL_ON.Entity; using HDL_ON.UI; @@ -110,7 +111,7 @@ { //淇敼涓婚〉杩炴帴鐘舵�� HomePage.LoadEvent_CheckLinkStatus(); - MainPage.Log($"缃戝叧灞�鍩熺綉鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); + //MainPage.Log($"缃戝叧灞�鍩熺綉鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); new System.Threading.Thread(() => { System.Threading.Thread.Sleep(1000); @@ -126,7 +127,7 @@ } else { - MainPage.Log($"鐘舵�佷竴鑷达紝涓嶆洿鏂版暟鎹�(鏈湴)"); + //MainPage.Log($"鐘舵�佷竴鑷达紝涓嶆洿鏂版暟鎹�(鏈湴)"); } } } @@ -173,7 +174,16 @@ MainPage.Log($"缃戝叧浜戠鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�"); new System.Threading.Thread(() => { - System.Threading.Thread.Sleep(1000); + int count = 20; + while (true) + { + System.Threading.Thread.Sleep(500); + if (MqttClient.isSubscribeSuccess || count<1) + { + break; + } + count--; + } FunctionList.List.ReadAllFunctionStatus(); }) { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); @@ -251,6 +261,7 @@ /// </summary> public void OpenTcpClent() { + return; if (myTcpClient == null) { myTcpClient = new Control_TcpClient(reportIp); @@ -325,6 +336,7 @@ /// </summary> public void LoginGateway() { + return;//tcp鎺у埗瀛樺湪闂锛屼絾鏄厛涓嶇敤tcp鎺у埗浜嗭紝瑕佺粡杩囨祴璇曞厛 2023-07-29 10:14:32 if (loginGatewayThread == null) { loginGatewayThread = new System.Threading.Thread(() => @@ -392,7 +404,7 @@ } asd.status = status1; upDataObj.objects.Add(asd); - revString = Newtonsoft.Json.JsonConvert.SerializeObject(upDataObj); + revString = JsonConvert.SerializeObject(upDataObj); UpdataFunctionStatus(revString, null, true); } return; @@ -432,7 +444,7 @@ //濡傛灉鏄帶鍒惰皟鍏夌殑寮�鏃讹紝浜害鍊间笉鑳戒负0 - if (commandDictionary.Count > 2) + if (commandDictionary.Count >= 2) { if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff) && commandDictionary.ContainsKey(FunctionAttributeKey.Brightness)) { @@ -468,12 +480,12 @@ } asd.status = status1; upDataObj.objects.Add(asd); - revString = Newtonsoft.Json.JsonConvert.SerializeObject(upDataObj); + revString = JsonConvert.SerializeObject(upDataObj); UpdataFunctionStatus(revString, null, true); return true; } - //MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}"); + //MainPage.Log($"鍙戦�佹暟鎹�:{JsonConvert.SerializeObject(commandDictionary)}"); ///绗笁鏂规秱楦﹁澶囩粺涓�浣跨敤杩滅▼鎺у埗 switch (function.spk) @@ -520,11 +532,11 @@ else { var functionControlDataObj = function.GetGatewayAlinkControlData(commandDictionary); - var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj); + var functionControlDataJson = JsonConvert.SerializeObject(functionControlDataObj); var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson); new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, resend); MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); - Ins.myTcpClient.SendMessage(sendBytes); + //Ins.myTcpClient.SendMessage(sendBytes); } } //杩滅▼閫氳 @@ -614,6 +626,10 @@ { foreach (var temp in functions) { + if((temp.trait_on_off.state.ToString() == "on" && open)|| temp.trait_on_off.state.ToString() == "off"&& !open) + { + continue; + } var apiControlData = temp.GetApiControlData(d); actionObjs.Add(apiControlData); count++; @@ -625,7 +641,10 @@ System.Threading.Thread.Sleep(100); } } - var pack = pm.ControlDevice(actionObjs); + if (actionObjs.Count > 0) + { + var pack = pm.ControlDevice(actionObjs); + } } } @@ -645,7 +664,7 @@ if (pack != null && pack.Data != null) { //寰呮祴璇�2021-03-04 - var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AlinkStatusData>>(pack.Data.ToString()); + var ddd = JsonConvert.DeserializeObject<List<AlinkStatusData>>(pack.Data.ToString()); if (ddd != null) { foreach (var function in ddd) @@ -705,7 +724,7 @@ }, time_stamp = Utlis.GetTimestamp() }; - var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); + var functionControlDataJson = JsonConvert.SerializeObject(readDataObj); var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); new Control_Udp().SendLocalHdlLinkData(sendBytes, readDataObj.id); @@ -713,8 +732,18 @@ } else { - var pm = new DAL.Server.HttpServerRequest(); - var pack = pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); + var pm = new HttpServerRequest(); + try + { + pm.RefreshDeviceStatus(new List<string>() { function.deviceId }); + }catch(Exception ex) + { + MainPage.Log($"杩滅▼璇诲彇璁惧鐘舵�佸紓甯�:{ex.Message}"); + } + finally + { + pm = null; + } } } } @@ -777,7 +806,7 @@ objects = objects, time_stamp = Utlis.GetTimestamp() }; - var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); + var functionControlDataJson = JsonConvert.SerializeObject(readDataObj); var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson); MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); new Control_Udp().SendLocalHdlLinkData(sendBytes, readDataObj.id); @@ -821,7 +850,7 @@ }, time_stamp = Utlis.GetTimestamp() }; - var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(aLinkData); + var aLinkJson = JsonConvert.SerializeObject(aLinkData); var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlSeurity, aLinkJson); new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id); } @@ -851,7 +880,7 @@ }, time_stamp = Utlis.GetTimestamp() }; - var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(aLinkData); + var aLinkJson = JsonConvert.SerializeObject(aLinkData); var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlScene, aLinkJson); new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id, 0); } @@ -875,7 +904,7 @@ objects = objects, time_stamp = Utlis.GetTimestamp() }; - var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj); + var functionControlDataJson = JsonConvert.SerializeObject(readDataObj); var sendBytes = Ins.ConvertSendBodyData($"/base/{DB_ResidenceData.Instance.HomeGateway.gatewayId}/thing/service/MusicPlayGroupListGet/down", functionControlDataJson); MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); new Control_Udp().SendLocalHdlLinkData(sendBytes, readDataObj.id); @@ -893,7 +922,7 @@ var sendId = Ins.msg_id.ToString(); var sendObj = new { objects = objects1, id = sendId, time_stamp = Utlis.GetTimestamp() }; - var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(sendObj); + var aLinkJson = JsonConvert.SerializeObject(sendObj); var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.AuthGateway, aLinkJson); new Control_Udp().SendLocalHdlLinkData(sendBytes, Ins.msg_id.ToString()); } @@ -1000,7 +1029,7 @@ if (receiveObj.Topic == CommunicationTopic.ct.HeartBeat + "_reply") { - Ins.myTcpClient.ClearHeartBeatLog(); + //Ins.myTcpClient.ClearHeartBeatLog(); MainPage.Log("tcp蹇冭烦鍥炲"); return null; } @@ -1044,19 +1073,19 @@ } else { - MainPage.Log($"灞�鍩熺綉淇℃伅: 鏄庢枃锛�" + receiveObj.BodyDataString); + //MainPage.Log($"灞�鍩熺綉淇℃伅: 鏄庢枃锛�" + receiveObj.BodyDataString); } } try { - var idMsg = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); + var idMsg = JsonConvert.DeserializeObject<ResponsePack>(res[1]); var hasProcess = hasItBeenProcessed(idMsg.id); if (hasProcess) { return null; } - MainPage.Log($"澶勭悊灞�鍩熺綉鏁版嵁id:{idMsg.id}"); + //MainPage.Log($"澶勭悊灞�鍩熺綉鏁版嵁id:{idMsg.id}"); } catch (Exception ex) @@ -1067,16 +1096,16 @@ if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply || receiveObj.Topic == CommunicationTopic.GatewayBroadcast) { - var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); + var bodyJObj = JsonConvert.DeserializeObject<ResponsePack>(res[1]); if (bodyJObj == null) { return receiveObj; } - var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString()); + var device = JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString()); if (device.device_mac.ToUpper() == DB_ResidenceData.Instance.HomeGateway.mac.ToUpper()) { - MainPage.Log("鏈湴鎼滅储缃戝叧鎴愬姛"); + MainPage.Log("鏈湴鎼滅储缃戝叧鎴愬姛锛�"+ receiveObj.Topic); Ins.IsSearchLocalGatewaySuccessful = true; Ins.GatewayOnline_Local = true; if (!string.IsNullOrEmpty(device.gatewayId)) @@ -1096,7 +1125,7 @@ Ins.IsLocalEncrypt = device.isLocalEncrypt; //MainPage.Log("缃戝叧鏈湴鍔犲瘑鐘舵�侊細" + device.local_encrypt.ToString()); //鐧诲綍缃戝叧Tcp - OpenTcpClent(); + //OpenTcpClent(); } @@ -1108,6 +1137,7 @@ receiveObj.Topic.Contains(CommunicationTopic.ct.GatewayUpSortTopic)) { //TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮� + //Console.WriteLine($"{receiveObj.Topic}\r\n{receiveObj.BodyDataString}"); UpdataFunctionStatus(receiveObj.BodyDataString, null); } else if (receiveObj.Topic == CommunicationTopic.ct.ControlSeurity + "_reply" @@ -1120,7 +1150,7 @@ var tt = ""; lock (tt) { - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityStatusObj>(receiveObj.BodyDataString); + var temp = JsonConvert.DeserializeObject<SecurityStatusObj>(receiveObj.BodyDataString); if (temp != null) { Control_Udp.ReceiveRepeatManager(temp.id, null); @@ -1145,7 +1175,7 @@ } else if (receiveObj.Topic == $"/user/{GatewayId}/custom/gateway/login_reply") { - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(receiveObj.BodyDataString); + var temp = JsonConvert.DeserializeObject<JObject>(receiveObj.BodyDataString); if (temp.GetValue("objects").ToString().Contains("success")) { LocalTcpClientLogin = true; @@ -1198,7 +1228,7 @@ /// <summary> - /// 鏇存柊璁惧鐘舵�� + /// 鏇存柊缇ゆ帶璁惧鐘舵�� /// A鍗忚鏁版嵁 /// </summary> public void UpdataGroupControlStatus(string revString, byte[] usefulBytes, bool isCloudData = false) @@ -1217,7 +1247,7 @@ { continue; } - MainPage.Log($"鏀跺埌鏁版嵁:{revString}"); + MainPage.Log($"鏀跺埌缇ゆ帶鏁版嵁:{revString}"); foreach (var attr in updateTemp.status) { localFunction.time_stamp = temp.time_stamp; @@ -1260,7 +1290,7 @@ // return; //} - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString); + var temp = JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString); if (temp != null) { Control_Udp.ReceiveRepeatManager(temp.id, usefulBytes); @@ -1293,16 +1323,6 @@ } MainPage.Log(localFunction.name); - if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞� - { - if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk) && !SPK.MusicSpkList().Contains(localFunction.spk)) - { - //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�........"); - - return; - } - } - //if (SPK.MusicSpkList().Contains(localFunction.spk)) //{ // if (updateTemp.status.Count < 3) @@ -1317,8 +1337,17 @@ { localFunction.time_stamp = temp.time_stamp; localFunction.SetAttrState(attr.key, attr.value); - + } + if(localFunction.spk == SPK.AirSwitchP3) + { + localFunction.online = updateTemp.online; + } + if (SPK.LightSpkList().Contains(localFunction.spk)) + { + localFunction.updateTime = DateTime.Now; + } + //鏇存柊鐣岄潰鐘舵�� switch (localFunction.spk) @@ -1330,12 +1359,23 @@ AcstParentPage.UpdateAcstSubInfo(localFunction); AcstSubPage.UpdateStatus(localFunction); break; + case SPK.WaterHeaterJinmao: + AcstParentPage.UpdateAcstSubInfo(localFunction); + WaterHeaterJinmaoPage.UpdateStatus(); + break; + case SPK.InverterJinmao: + InverterJinmaoPage.UpdateStatus(localFunction); + break; case SPK.AirSwitch: AirSwitchPage.UpdataState(localFunction); if (localFunction.GetAttribute(FunctionAttributeKey.Power) != null)//濡傛灉鏄甫鐢甸噺鐨勭┖寮�涔熻鏇存柊鑳芥簮鐣岄潰 { EnergyMainPage.UpdataStatus(localFunction); } + break; + case SPK.AirSwitchP3: + AirSwitchP3Page.UpdataState(localFunction); + AirSwitchP3SubloopEnergyPage.UpdataStatus(localFunction); break; case SPK.ElectricEnergy: EnergyMainPage.UpdataStatus(localFunction); @@ -1434,7 +1474,7 @@ } break; - case SPK.HvacFloorHeat: + case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel: case SPK.FloorHeatStandard: localFunction.lastState = ""; switch (localFunction.GetAttrState(FunctionAttributeKey.Mode)) @@ -1459,11 +1499,13 @@ FloorHeatingPage.UpdataStates(localFunction); break; case SPK.SensorPm25: + case SPK.SensorPm10: case SPK.SensorCO2: case SPK.SensorTVOC: case SPK.SensorTemperature: case SPK.SensorHumidity: case SPK.SensorHcho: + case SPK.SensorLight: if (localFunction.spk == SPK.SensorTemperature) { HomePage.LoadEvent_RefreshEnvirIndoorTemp(); @@ -1504,7 +1546,6 @@ case SPK.ElectricTuyaWeepRobot2: case SPK.ElectricTuyaWaterValve: case SPK.ElectricTuyaWaterValve2: - case SPK.SensorPir: case SPK.SensorDoorWindow: case SPK.SensorSmoke: case SPK.SensorWater: @@ -1519,6 +1560,22 @@ //鐘舵�佹洿鏂� Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); break; + case SPK.SensorPir: + case SPK.SensorPirHold: + var tempPirStatus = localFunction.attributes.Find((sta) => sta.key == "people_status"); + if (tempPirStatus != null) + { + if(tempPirStatus.state == "true") + { + localFunction.lastState = Language.StringByID(StringId.Someone); + } + else + { + localFunction.lastState = Language.StringByID(StringId.wuren); + } + } + Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); + break; case SPK.SenesorMegahealth: case SPK.SenesorMegahealth2: case SPK.SensorMmvPose: @@ -1530,7 +1587,7 @@ switch (tempStatus.state) {//0绌猴紝1璧帮紝2璺戯紝3鍧愶紝4璺屽�掞紝5绔� case "0": - localFunction.lastState = Language.StringByID(StringId.SensorNormalState); + localFunction.lastState = Language.StringByID(StringId.wuren); break; case "1": localFunction.lastState = Language.StringByID(StringId.SomeoneIn); @@ -1567,6 +1624,17 @@ case SPK.MusicStandard: //UI.Music.MusicMain.mMusicMain.RefreshView(updateTemp); Console.WriteLine("闊充箰鎾斁鍣ㄦ樉绀虹姸鎬�=======" + revString); + foreach (var music in UI.Music.A31MusicModel.A31MusicModelList)//姣忔鏀跺埌鏁版嵁閮借鏇存柊涓�涓嬫椂闂� + { + if (music.functionMusic.sid == localFunction.sid) + { + music.LastDateTime = DateTime.Now; + } + } + if (UI.Music.A31MusicModel.Current != null) + { + UI.Music.A31MusicModel.Current.LastDateTime = DateTime.Now; + } //wjc break; case SPK.Inverter: @@ -1574,11 +1642,12 @@ var status = new Dictionary<string, object> { ["method"] = "status", ["data"] = temp.objects }; Application.RunOnMainThread(() => { - Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{Newtonsoft.Json.JsonConvert.SerializeObject(status)}\')"); + Inverter.Ins.H5Page.CallJS($"nativeToJs(\'{JsonConvert.SerializeObject(status)}\')"); }); break; } + HomePage.UpdataFunctionStates(localFunction); RoomPage.UpdataStates(localFunction); FunctionPage.UpdataStates(localFunction); @@ -1606,7 +1675,7 @@ { Dictionary<string, string> dic = new Dictionary<string, string>(); var functionControlDataObj = doorlock.GetGatewayAlinkDoorlockData(UserInfo.Current.ID, extStr); - var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj); + var functionControlDataJson = JsonConvert.SerializeObject(functionControlDataObj); var sendBytes = Ins.ConvertSendBodyData($"/base/{Control.Ins.GatewayId}/thing/service/doorRemoteOpen/down", functionControlDataJson); new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, 0); } @@ -1639,7 +1708,7 @@ var pack = HttpUtil.RequestHttpsPost("/home-wisdom/app/device/door/pwdConfirm", requestJson); if (pack.Code == StateCode.SUCCESS) { - Newtonsoft.Json.Linq.JObject pairs = Newtonsoft.Json.Linq.JObject.Parse(pack.Data.ToString()); + JObject pairs = JObject.Parse(pack.Data.ToString()); var scrip = pairs.GetValue("scrip"); d = new Dictionary<string, object>(); -- Gitblit v1.8.0