xm
2021-12-01 6d73bf6e816570291865674bef8bce8972e4de3f
HDL_ON/Entity/Function/Scene.cs
@@ -77,17 +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 = "";
        public string userId = UserInfo.Current.ID;
        ///// <summary>
        ///// 场景背景
@@ -216,6 +223,18 @@
                return "SceneData_" + sid;
            }
        }
        /// <summary>
        /// 执行倒计时
        /// </summary>
        int countdownTime = 0;
        /// <summary>
        /// 重置执行倒计时
        /// </summary>
        public void ResetCountdownTime()
        {
            countdownTime = 0;
        }
        /// <summary>
        /// 场景执行\倒计时
        /// </summary>
@@ -225,31 +244,30 @@
            //场景正在倒计时执行中
            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(() =>
                            {
@@ -310,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)
@@ -326,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)
@@ -405,6 +438,7 @@
        /// </summary>
        public string delay = "0";
        Function _localFunction;
        /// <summary>
        /// 本地对应的功能
@@ -426,7 +460,7 @@
        /// 转换成功能对象
        /// </summary>
        /// <returns></returns>
        Function ConvertFunctionObject()
        private Function ConvertFunctionObject()
        {
            var localFunction = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sid);
            return localFunction;
@@ -471,12 +505,22 @@
            var briState = status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
            if (briState != null)
            {
                sceneFunctionInfo += briState.value + "%";
                sceneFunctionInfo += briState.value + "%" + " ";
            }
            var perState = status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
            if (perState != null)
            {
                sceneFunctionInfo += perState.value + "%";
                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;
        }
@@ -491,6 +535,9 @@
    {
        public string key = "";
        public string value = "";
        public int max = 0;
        public int min = 0;
        /// <summary>
        /// 属性名称显示文本
@@ -542,10 +589,15 @@
        /// <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.RoomTemp:
@@ -554,6 +606,9 @@
                case FunctionAttributeKey.Percent:
                case FunctionAttributeKey.Brightness:
                    us = "%";
                    break;
                case FunctionAttributeKey.CCT:
                    us = "K";
                    break;
            }
            return us;
@@ -581,6 +636,10 @@
                case FunctionAttributeKey.RoomTemp:
                case FunctionAttributeKey.Brightness:
                case FunctionAttributeKey.Percent:
                    int outT = 0;
                    int.TryParse(catchString,out outT);
                    if (outT < 0)
                        catchString = "0";
                    if (catchString == "")
                    {
                        catchString = "0";