From d72ca686a3e262693f8a6e45e747e8e8da43335b Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 06 七月 2021 09:39:03 +0800 Subject: [PATCH] 2021-07-06 1.更新 --- HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs | 452 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 400 insertions(+), 52 deletions(-) diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs index 2059963..f4596b8 100644 --- a/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs +++ b/HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs @@ -1,4 +1,7 @@ 锘縰sing System; +using System.Collections.Generic; +using HDL_ON.DAL.Server; +using HDL_ON.DriverLayer; using HDL_ON.Entity; using Shared; @@ -11,20 +14,69 @@ /// </summary> public static void LoadEvent_RefreshAir() { - bodyView.btnTempValues.Text = MainPage.cityInfo.temperature == null ? "--" : MainPage.cityInfo.temperature + "掳"; - bodyView.btnHumidityValues.Text = MainPage.cityInfo.humidity == null ? "--" : MainPage.cityInfo.humidity + "%"; - bodyView.btnPm25Values.Text = MainPage.cityInfo.pm25 == null ? "--" : MainPage.cityInfo.pm25; + if (bodyView != null) + { + bodyView.btnTempValues.Text = MainPage.cityInfo.temperature == null ? "--" : MainPage.cityInfo.temperature + "掳"; + bodyView.btnHumidityValues.Text = MainPage.cityInfo.humidity == null ? "--" : MainPage.cityInfo.humidity + "%"; + bodyView.btnPm25Values.Text = MainPage.cityInfo.pm25 == null ? "--" : MainPage.cityInfo.pm25; + } + } + /// <summary> + /// 鏇存柊鍔熻兘鍒楄〃涓婚〉 + /// </summary> + public static void RefreshFunctionView() + { + if (bodyView != null && MainPage.CurPageIndex==0) + { + bodyView.LoadDeviceFunctionControlZone(); + } + } + + /// <summary> + /// 鏇存柊杩炴帴鐘舵�佸浘鏍� + /// </summary> + void CheckLinkStatus() + { + if (!Control.Ins.GatewayOnline_Local && !Control.Ins.GatewayOnline_Cloud) + { + bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipFail; + } + else + { + if (Control.Ins.GatewayOnline_Local) + { + bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.LinkTipLocal; + } + else + { + bodyView.btnLinkStateTip.BackgroundColor = CSS.CSS_Color.MainColor; + } + } + } + + /// <summary> + /// 纭杩炴帴鐘舵�� + /// </summary> + public static void LoadEvent_CheckLinkStatus() + { + Application.RunOnMainThread(() => + { + if (bodyView != null) + { + bodyView.CheckLinkStatus(); + } + }); } /// <summary> /// 鍔犺浇鍔熻兘鏀惰棌鎸夐挳浜嬩欢 /// </summary> - void LoadEvent_FunctionCollection(Button btn,Function function,bool isDevice) + void LoadEvent_FunctionCollection(Button btn, Function function) { btn.MouseUpEventHandler += (sender, e) => { - function.collection = false; - if(function.functionCategory == FunctionCategory.Music)//澶勭悊闊充箰涓讳粠鍏崇郴 + function.collect = false; + if (function.Spk_Prefix == FunctionCategory.Music)//澶勭悊闊充箰涓讳粠鍏崇郴 { if ((function as Music.A31MusicModel).ServerClientType == 1) { @@ -33,15 +85,22 @@ } } string msg = function.name + Language.StringByID(StringId.CollectionCancelled); - if (isDevice) - { - LoadDeviceFunctionControlZone(); - } - else - { - LoadSceneFunctionControlZone(); - } - function.SaveFunctionData(); + LoadDeviceFunctionControlZone(); + function.CollectFunction(); + new PublicAssmebly().TipMsgAutoClose(msg, true); + }; + } + /// <summary> + /// 鍔犺浇鍦烘櫙鏀惰棌鎸夐挳浜嬩欢 + /// </summary> + void LoadEvent_SceneCollection(Button btn, Scene scene) + { + btn.MouseUpEventHandler += (sender, e) => + { + scene.collect = false; + string msg = scene.name + Language.StringByID(StringId.CollectionCancelled); + LoadSceneFunctionControlZone(); + scene.CollectScene(); new PublicAssmebly().TipMsgAutoClose(msg, true); }; } @@ -62,7 +121,15 @@ btnChangeScene.IsBold = false; CurShowTypeIsFunction = true; contentView.PageIndex = 0; + }; + + //var client = new BlufiClient(); + //client.PostPackageLengthLimit = 128; + //client.RequestDeviceScan(); + //client.RequestDeviceStatus(); + //client.BlufiDelegate.Blufi_DidReceiveDeviceScanResponse(); + btnChangeScene.MouseUpEventHandler = (sender, e) => { @@ -116,7 +183,16 @@ { if (view.Tag.ToString() == function.sid) { - var state = function.trait_on_off.value.ToString() == "on"; + var state = false; + if (function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades || function.spk == SPK.CurtainTrietex || + function.spk == SPK.CurtainSwitch)//绐楀笜璁惧鏍规嵁鐧惧垎姣斿垽鏂紑鍏崇姸鎬� + { + state = function.GetAttrState(FunctionAttributeKey.Percent) != "0"; + } + else + { + state = function.trait_on_off.curValue.ToString() == "on"; + } for (int i = 0; i < view.ChildrenCount; i++) { if (view.GetChildren(i).GetType() == typeof(Button)) @@ -125,13 +201,16 @@ btn.IsSelected = state; if (btn.Tag != null && btn.Tag.ToString() == "state") { - if(function.functionCategory == FunctionCategory.Music) + if (function.Spk_Prefix == FunctionCategory.Music) { btn.Text = (function as Music.A31MusicModel).A31PlayStatus.Title; } else { - btn.Text = function.lastState; + if (function.spk != SPK.LightSwitch) + { + btn.Text = function.lastState; + } } } } @@ -150,14 +229,58 @@ /// <summary> /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢 /// </summary> - void LoadEvent_ControlScene(Button btnCoverd,Button btnName,Button btnZone ,Function function) + void LoadEvent_ControlScene(Button btnCoverd, Button btnName, Button btnZone,Button btnShowDelay, Scene scene) { - + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { - string msg = function.name + Language.StringByID(StringId.AlreadyOpened); + //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑锛屼笉鍏佽鍐嶇偣鍑� + if (scene.LastExecutionTime == "" || Convert.ToDouble(scene.LastExecutionTime) + Convert.ToDouble(scene.delay) < Convert.ToDouble(Utlis.GetTimestamp(false))) + { + scene.LastExecutionTime = Utlis.GetTimestamp(false); + } + else + { + return; + } + string msg = scene.name + Language.StringByID(StringId.AlreadyOpened); new PublicAssmebly().TipMsgAutoClose(msg, true); - Control.Send(function); + Control.Ins.ControlScene(scene); + scene.SceneCountDown(btnShowDelay); + //new System.Threading.Thread(() => { + // int time = Convert.ToInt32(scene.delay); + // if (time > 0) + // { + // while (time > 0) + // { + // Application.RunOnMainThread(() => + // { + // if (time / 60 > 1) + // { + // btnShowDelay.Text = (time / 60).ToString() + "min"; + // } + // else + // { + // btnShowDelay.Text = (time--).ToString() + "s"; + // } + // }); + // if (time / 60 > 1) + // { + // System.Threading.Thread.Sleep(time / 60 * 60000); + // } + // else + // { + // System.Threading.Thread.Sleep(1000); + // } + // } + // Application.RunOnMainThread(() => + // { + // btnShowDelay.Text = ""; + // }); + // } + //}) + //{ IsBackground = true, Priority = System.Threading.ThreadPriority.BelowNormal }.Start(); + }; btnCoverd.MouseUpEventHandler = eventHandler; btnName.MouseUpEventHandler = eventHandler; @@ -176,12 +299,27 @@ btnSwitch.IsSelected = !btnSwitch.IsSelected; new System.Threading.Thread(() => { - function.trait_on_off.value = btnSwitch.IsSelected ? "on" : "off"; - //Control.Send(CommandType_A.write, function); - System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add("on_off", function.trait_on_off.value.ToString()); - Control.SendWriteCommand(function, d); - + function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; + Dictionary<string, string> d = new Dictionary<string, string>(); + if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB) + { + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + if (btnSwitch.IsSelected) + { + d.Add(FunctionAttributeKey.Brightness, function.lastBrightness.ToString()); + } + else + { + function.lastBrightness = Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.Brightness)); + } + d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime)); + Control.Ins.SendWriteCommand(function, d); + } + else + { + d.Add("on_off", function.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(function, d); + } }) { IsBackground = true }.Start(); }; @@ -192,46 +330,256 @@ /// </summary> /// <param name="tV"></param> /// <param name="button"></param> - void LoadEvent_ControlTV(TV tV,Button button) + void LoadEvent_ControlTV(Function tV, Button button) { - button.MouseUpEventHandler = (sender, e) => { - tV.ControlTV(InfraredCode_TV.Power); + button.MouseUpEventHandler = (sender, e) => + { + if (DB_ResidenceData.Instance.GatewayType == 1) + { + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", ""); + Control.Ins.SendWriteCommand(tV, d); + } + else + { + new TV().ControlTV(InfraredCode_TV.Power, tV); + } }; } /// <summary> /// 鍔犺浇绐楀笜鎺у埗浜嬩欢 /// </summary> - void LoadEvent_ControlCurtain(Curtain curtain, Button btnClose, Button btnOpen) + void LoadEvent_ControlCurtain(Function curtain, Button btnClose, Button btnOpen) { - btnClose.MouseDownEventHandler = (sender, e) => - { - btnClose.IsSelected = true; - }; btnClose.MouseUpEventHandler = (sender, e) => { - btnClose.IsSelected = false; - curtain.trait_on_off.value = "off"; - //Control.Send(CommandType_A.write, curtain); - System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add("on_off",curtain.trait_on_off.value.ToString()); - Control.SendWriteCommand(curtain, d); + btnClose.IsSelected = true; + curtain.trait_on_off.curValue = "off"; + curtain.SetAttrState(FunctionAttributeKey.Percent, 0); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(curtain, d); }; - btnOpen.MouseDownEventHandler = (sender, e) => - { - btnOpen.IsSelected = true; - }; btnOpen.MouseUpEventHandler = (sender, e) => { - btnOpen.IsSelected = false; - curtain.trait_on_off.value = "on"; - //Control.Send(CommandType_A.write, curtain); - System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add("on_off", curtain.trait_on_off.value.ToString()); - Control.SendWriteCommand(curtain, d); + btnOpen.IsSelected = true; + curtain.trait_on_off.curValue = "on"; + curtain.SetAttrState(FunctionAttributeKey.Percent, 100); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(curtain, d); }; } + /// <summary> + /// 鍔犺浇鏅捐。鏋舵帶鍒朵簨浠� + /// </summary> + void LoadEvent_ControlClothesHanger(Function function,Button btnUp,Button btnDown) + { + btnUp.MouseDownEventHandler = (sender, e) => + { + btnUp.IsSelected = true; + }; + btnUp.MouseUpEventHandler = (sender, e) => + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnUp.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + function.SetAttrState(FunctionAttributeKey.Position, "up"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "up"); + Control.Ins.SendWriteCommand(function, d); + }; + + btnDown.MouseDownEventHandler = (sender, e) => + { + btnDown.IsSelected = true; + }; + btnDown.MouseUpEventHandler = (sender, e) => + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnDown.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + function.SetAttrState(FunctionAttributeKey.Position, "down"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "down"); + Control.Ins.SendWriteCommand(function, d); + }; + } + + /// <summary> + /// 鍔犺浇璺宠浆淇℃伅涓績椤甸潰 + /// </summary> + void LoadEvent_GotoMessageCenterPage() + { + EventHandler<MouseEventArgs> eventHandler = (sender, e) => + { + + //鎴块棿鍒犻櫎浜嬩欢 + Action backAction = () => { + RegisterGetPushMessageAction(); + GetUnreadPushMessages(); + }; + + var skipPage = new MessageCenterPage(); + MainPage.BasePageView.AddChidren(skipPage); + skipPage.LoadPage(backAction); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + btnMsgBg.MouseUpEventHandler = eventHandler; + btnMsgTime.MouseUpEventHandler = eventHandler; + btnMsg.MouseUpEventHandler = eventHandler; + btnMsgIcon.MouseUpEventHandler = eventHandler; + } + + + #region 鏌ヨ鏈璇绘秷鎭垪琛� + /// <summary> + /// 鏄惁姝e湪璇诲彇 + /// </summary> + bool isGetting; + /// <summary> + /// 鏌ヨ鏈娑堟伅骞舵樉绀� + /// </summary> + void GetUnreadPushMessages() + { + System.Threading.Tasks.Task.Run(() => + { + try + { + if (isGetting) return; + + isGetting = true; + + var result = new HttpServerRequest().PushSerivceGetPushmessagelist(); + if (result.Code == StateCode.SUCCESS) + { + //鏈鐨勬秷鎭垪琛� + var unreadList = new List<PushMessageInfo>(); + + var pushMessageInfoList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<PushMessageInfo>>(result.Data.ToString()); + + if (pushMessageInfoList != null && pushMessageInfoList.Count > 0) + { + foreach (var info in pushMessageInfoList) + { + if (!info.isRead) + { + unreadList.Add(info); + break; // 璺冲嚭寰幆 + } + } + + if (unreadList != null && unreadList.Count > 0) + { + Application.RunOnMainThread(() => + { + ShowMesBtnState(unreadList[0], false); + }); + } + else + { + Application.RunOnMainThread(() => + { + ShowMesBtnState(pushMessageInfoList[0], true); + }); + } + } + } + else + { + + } + } + catch (Exception ex) + { + } + finally + { + isGetting = false; + } + }); + } + + /// <summary> + /// 鏄剧ず鏈璇绘秷鎭� + /// </summary> + /// <param name="pushMessageInfo"></param> + /// <param name="allRead">鎵�鏈夐兘宸茶</param> + void ShowMesBtnState(PushMessageInfo pushMessageInfo, bool allRead) + { + if (bodyView == null) return; + btnMsg.Text = pushMessageInfo.messageTitle + ": " + pushMessageInfo.messageContent; + btnMsgTime.Text = GetUnixToDateTime(pushMessageInfo.createTime); + btnMsgIcon.IsSelected = !allRead; + } + + /// <summary> + /// 閲嶇疆鏈娑堟伅鎺т欢 + /// </summary> + void ResetMesBtnRead() + { + if (bodyView == null) return; + btnMsg.Text = "..."; + btnMsgTime.Text = "00:00"; + btnMsgIcon.IsSelected = false; + } + + /// <summary> + /// 鏃堕棿鏍煎紡杞崲澶勭悊 + /// </summary> + /// <param name="time">姣鏃堕棿鎴�</param> + /// <returns></returns> + string GetUnixToDateTime(long time) + { + try + { + return Utlis.ToFriendlyDisplay(time); + } + catch (Exception ex) + { + return ""; + } + } + + /// <summary> + /// 娉ㄥ唽鏀跺埌鎺ㄩ�佺洃鍚� + /// </summary> + void RegisterGetPushMessageAction() + { + Action RegisterGetPushMessageAction = () => { + if (bodyView != null) + { + //Utlis.WriteLine("GetPushMessageAction H鏀跺埌鎺ㄩ��"); + GetUnreadPushMessages(); + } + }; + HDLCommon.GetPushMessageAction = RegisterGetPushMessageAction; + } + + /// <summary> + /// 鍙栨秷鏀跺埌鎺ㄩ�佺洃鍚� + /// </summary> + void UnregisterGetPushMessageAction() + { + HDLCommon.GetPushMessageAction = null; + } + + #endregion + } } -- Gitblit v1.8.0