From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/Entity/Function/Scene.cs | 188 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 163 insertions(+), 25 deletions(-) diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs index 386ded3..684aad0 100644 --- a/HDL_ON/Entity/Function/Scene.cs +++ b/HDL_ON/Entity/Function/Scene.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using HDL_ON.Common; using HDL_ON.DAL.Server; +using HDL_ON.UI; using Shared; namespace HDL_ON.Entity @@ -66,7 +67,7 @@ /// </summary> public string delay = "0"; /// <summary> - /// 鍦烘櫙鐨勬渶濂戒竴娆℃墽琛屾椂闂� + /// 鍦烘櫙鐨勬渶鍚庝竴娆℃墽琛屾椂闂� /// </summary> public string LastExecutionTime = ""; @@ -76,12 +77,24 @@ public string group = "1"; /// <summary> /// 鍦烘櫙绫诲瀷 + /// 0:鏅�� + /// 1:鐢靛奖 + /// 2:璋冨厜 /// </summary> public SceneType sceneType = SceneType.OrdinaryScenes; /// <summary> /// 鏀惰棌鏍囪 /// </summary> public bool collect = false; + /// <summary> + /// 鏄惁鍏佽鍒犻櫎 + /// </summary> + public bool can_delete = true; + + /// <summary> + /// 鍒涘缓璇ュ満鏅殑鐢ㄦ埛ID + /// </summary> + public string userId = UserInfo.Current.ID; ///// <summary> ///// 鍦烘櫙鑳屾櫙 @@ -137,13 +150,14 @@ sTimeSpan = arry[0].ToString("X2") + arry[1].ToString("X2") + arry[2].ToString("X2") + arry[3].ToString("X2"); - if (sTimeSpan.Length > 8) + if (sTimeSpan.Length >= 8) { sTimeSpan = sTimeSpan.Substring(0, 8); } else { - sTimeSpan = "00000000"; + sTimeSpan = Guid.NewGuid().ToString().Substring(0, 8); + //sTimeSpan = "00000000"; } sceneId = sOidBeginsWith + sTimeSpan; @@ -209,6 +223,18 @@ return "SceneData_" + sid; } } + + /// <summary> + /// 鎵ц鍊掕鏃� + /// </summary> + int countdownTime = 0; + /// <summary> + /// 閲嶇疆鎵ц鍊掕鏃� + /// </summary> + public void ResetCountdownTime() + { + countdownTime = 0; + } /// <summary> /// 鍦烘櫙鎵ц\鍊掕鏃� /// </summary> @@ -218,31 +244,30 @@ //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑 if (LastExecutionTime != "" && Convert.ToDouble(LastExecutionTime) + Convert.ToDouble(delay) > Convert.ToDouble(Utlis.GetTimestamp(false))) { - int time = 0; int.TryParse(Convert.ToInt32( Convert.ToDouble(LastExecutionTime) + Convert.ToDouble(delay) - Convert.ToDouble(Utlis.GetTimestamp(false)) - ).ToString(), out time); - if (time > 0) + ).ToString(), out countdownTime); + if (countdownTime > 0) { new System.Threading.Thread(() => { - if (time > 0) + if (countdownTime > 0) { - while (time > 0) + while (countdownTime > 0) { Application.RunOnMainThread(() => { - if (time > 60) + if (countdownTime > 60) { - btnShowDelay.Text = (time / 60).ToString() + "min" + time % 60 + "s"; + btnShowDelay.Text = (countdownTime / 60).ToString() + "min" + countdownTime % 60 + "s"; } else { - btnShowDelay.Text = time.ToString() + "s"; + btnShowDelay.Text = countdownTime.ToString() + "s"; } }); System.Threading.Thread.Sleep(1000); - time--; + countdownTime--; } Application.RunOnMainThread(() => { @@ -303,6 +328,13 @@ var revPack = pm.EditScene(this); if (revPack.Code == StateCode.SUCCESS) { + //閲嶇疆鎵ц鍊掕鏃� + this.countdownTime = 0; + if(MainPage.NoLoginMode) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); + } var scenes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); var tempScene = scenes.Find((obj) => obj.sid == sid); if (tempScene != null) @@ -319,10 +351,18 @@ /// </summary> public string UpdateScene() { + if(MainPage.NoLoginMode) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)); + Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd); + + return "0"; + } var pm = new HttpServerRequest(); var revPack = pm.EditScene(this); if (revPack.Code == StateCode.SUCCESS) { + this.countdownTime = 0; var scenes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); var tempScene = scenes.Find((obj) => obj.sid == sid); if (tempScene != null) @@ -339,7 +379,21 @@ /// </summary> public string GetDelayText() { + var delayInt = 0; + int.TryParse(delay,out delayInt); + if(delayInt == 0) + { + return Language.StringByID(StringId.NoDelay); + } string text = ""; + if (delayInt > 60) + { + text = (delayInt / 60) + Language.StringByID(StringId.m) + (delayInt % 60) + Language.StringByID(StringId.s); + }else + { + text = delayInt + Language.StringByID(StringId.s); + } + return text; switch (delay) { case "0": @@ -368,6 +422,8 @@ /// 浜戠鏁版嵁淇敼鐨勬渶鍚庢椂闂� /// </summary> public string modifyTime = ""; + + } /// <summary> /// 鍦烘櫙鍔熻兘瀵硅薄 @@ -381,6 +437,7 @@ /// 鍔熻兘寤舵椂 /// </summary> public string delay = "0"; + Function _localFunction; /// <summary> @@ -403,11 +460,71 @@ /// 杞崲鎴愬姛鑳藉璞� /// </summary> /// <returns></returns> - Function ConvertFunctionObject() + private Function ConvertFunctionObject() { var localFunction = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sid); return localFunction; } + + + /// <summary> + /// 瑙f瀽鍦烘櫙鍔熻兘鏁版嵁 + /// </summary> + /// <param name="sceneFunction"></param> + public string GetFunctionScnenInfo() + { + var sceneFunctionInfo = ""; + foreach (var sfs in status) + { + if (sfs.key == FunctionAttributeKey.OnOff) + { + if (sfs.value == "off") + { + return Language.StringByID(StringId.Close); + } + } + } + sceneFunctionInfo += Language.StringByID(StringId.Open) + " "; + + var modeState = status.Find((obj) => obj.key == FunctionAttributeKey.Mode); + var tempState = status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp); + var fanState = status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed); + if (modeState != null) + { + sceneFunctionInfo += modeState.GetValueText() + " "; + } + if (tempState != null) + { + sceneFunctionInfo += tempState.GetValueText() + " "; + sceneFunctionInfo += tempState.GetUintString(); + } + if (fanState != null) + { + sceneFunctionInfo += fanState.GetValueText() + " "; + } + var briState = status.Find((obj) => obj.key == FunctionAttributeKey.Brightness); + if (briState != null) + { + sceneFunctionInfo += briState.value + "%" + " "; + } + var perState = status.Find((obj) => obj.key == FunctionAttributeKey.Percent); + if (perState != null) + { + sceneFunctionInfo += perState.value + "%" + " "; + } + var cctState = status.Find((obj) => obj.key == FunctionAttributeKey.CCT); + if(cctState != null) + { + sceneFunctionInfo += cctState.value + "%" + " "; + } + var rgbState = status.Find((obj) => obj.key == FunctionAttributeKey.RGB); + if(rgbState!=null) + { + //sceneFunctionInfo += new cctState.value + "%" + " "; + } + return sceneFunctionInfo; + } + } @@ -418,6 +535,9 @@ { public string key = ""; public string value = ""; + + public int max = 0; + public int min = 0; /// <summary> /// 灞炴�у悕绉版樉绀烘枃鏈� @@ -446,7 +566,7 @@ case FunctionAttributeKey.SetTemp: text = Language.StringByID(StringId.Temp); break; - case FunctionAttributeKey.IndoorTemp: + case FunctionAttributeKey.RoomTemp: text = Language.StringByID(StringId.IndoorTemp); break; case FunctionAttributeKey.Delay: @@ -469,18 +589,26 @@ /// <summary> /// 灞炴�у�煎崟浣� /// </summary> - public string GetUintString() + public string GetUintString(string inputKey = "") { var us = ""; - switch (key) + var swithchString = key; + if(!string.IsNullOrEmpty(inputKey)) + { + swithchString = inputKey; + } + switch (swithchString) { case FunctionAttributeKey.SetTemp: - case FunctionAttributeKey.IndoorTemp: + case FunctionAttributeKey.RoomTemp: us = "掳C"; break; case FunctionAttributeKey.Percent: case FunctionAttributeKey.Brightness: us = "%"; + break; + case FunctionAttributeKey.CCT: + us = "K"; break; } return us; @@ -491,26 +619,35 @@ /// 鑾峰彇鎸囧畾灞炴�х殑鏄剧ず鏂囨湰 /// 涓嫳鏂囨樉绀� /// </summary> - public string GetValueText() + public string GetValueText(string temp = "") { + string catchString = value; + if(temp!= "") + { + catchString = temp; + } string text = ""; switch (key) { case FunctionAttributeKey.OnOff: - text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); + text = catchString == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); break; case FunctionAttributeKey.SetTemp: - case FunctionAttributeKey.IndoorTemp: + case FunctionAttributeKey.RoomTemp: case FunctionAttributeKey.Brightness: case FunctionAttributeKey.Percent: - if (value == "") + int outT = 0; + int.TryParse(catchString,out outT); + if (outT < 0) + catchString = "0"; + if (catchString == "") { - value = "0"; + catchString = "0"; } - text = value; + text = catchString; break; case FunctionAttributeKey.Mode: - switch (value) + switch (catchString) { //----绌鸿皟 case "auto": @@ -529,6 +666,7 @@ text = Language.StringByID(StringId.AirSupply); break; //-----鍦扮儹 + // 1:鏅��,2:鐧藉ぉ,3:澶滄櫄,4:绂诲紑,5:鏃堕棿 case "day": text = Language.StringByID(StringId.Day); break; @@ -547,7 +685,7 @@ } break; case FunctionAttributeKey.FanSpeed: - switch (value) + switch (catchString) { case "high": text = Language.StringByID(StringId.HighWindSpeed); -- Gitblit v1.8.0