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 |  124 +++++++++++++++++++++++++++-------------
 1 files changed, 83 insertions(+), 41 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index c95823d..318bd99 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -111,7 +111,7 @@
                     {
                         //淇敼涓婚〉杩炴帴鐘舵��
                         HomePage.LoadEvent_CheckLinkStatus();
-                        MainPage.Log($"缃戝叧灞�鍩熺綉鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
+                        //MainPage.Log($"缃戝叧灞�鍩熺綉鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
                         new System.Threading.Thread(() =>
                         {
                             System.Threading.Thread.Sleep(1000);
@@ -127,7 +127,7 @@
                 }
                 else
                 {
-                    MainPage.Log($"鐘舵�佷竴鑷达紝涓嶆洿鏂版暟鎹�(鏈湴)");
+                    //MainPage.Log($"鐘舵�佷竴鑷达紝涓嶆洿鏂版暟鎹�(鏈湴)");
                 }
             }
         }
@@ -404,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;
@@ -444,7 +444,7 @@
 
 
             //濡傛灉鏄帶鍒惰皟鍏夌殑寮�鏃讹紝浜害鍊间笉鑳戒负0
-            if (commandDictionary.Count > 2)
+            if (commandDictionary.Count >= 2)
             {
                 if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff) && commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
                 {
@@ -480,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)
@@ -532,7 +532,7 @@
                     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}");
@@ -664,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)
@@ -724,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);
@@ -732,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;
+                    }
                 }
             }
         }
@@ -796,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);
@@ -840,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);
             }
@@ -870,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);
             }
@@ -894,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);
@@ -912,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());
         }
@@ -1063,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)
@@ -1086,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))
@@ -1127,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"
@@ -1139,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);
@@ -1164,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;
@@ -1236,7 +1247,7 @@
                         {
                             continue;
                         }
-                        MainPage.Log($"鏀跺埌鏁版嵁:{revString}");
+                        MainPage.Log($"鏀跺埌缇ゆ帶鏁版嵁:{revString}");
                         foreach (var attr in updateTemp.status)
                         {
                             localFunction.time_stamp = temp.time_stamp;
@@ -1312,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)
@@ -1342,6 +1343,11 @@
                         {
                             localFunction.online = updateTemp.online;
                         }
+                        if (SPK.LightSpkList().Contains(localFunction.spk))
+                        {
+                            localFunction.updateTime = DateTime.Now;
+                        }
+                       
 
                         //鏇存柊鐣岄潰鐘舵��
                         switch (localFunction.spk)
@@ -1352,6 +1358,13 @@
                             case SPK.AcstSub:
                                 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);
@@ -1461,7 +1474,7 @@
 
                                 }
                                 break;
-                            case SPK.HvacFloorHeat:
+                            case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel:
                             case SPK.FloorHeatStandard:
                                 localFunction.lastState = "";
                                 switch (localFunction.GetAttrState(FunctionAttributeKey.Mode))
@@ -1486,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();
@@ -1531,7 +1546,6 @@
                             case SPK.ElectricTuyaWeepRobot2:
                             case SPK.ElectricTuyaWaterValve:
                             case SPK.ElectricTuyaWaterValve2:
-                            case SPK.SensorPir:
                             case SPK.SensorDoorWindow:
                             case SPK.SensorSmoke:
                             case SPK.SensorWater:
@@ -1546,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:
@@ -1557,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);
@@ -1594,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:
@@ -1601,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);
@@ -1633,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);
             }
@@ -1666,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