HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs
@@ -19,10 +19,6 @@
        /// </summary>
        private List<ButtonBase> listControl = new List<ButtonBase>();
        /// <summary>
        /// MaxLevel
        /// </summary>
        private const int MaxLevel = 254;
        /// <summary>
        /// 彩灯控件
        /// </summary>
        private WaveSeekBar waveSeekBar = null;
@@ -53,11 +49,13 @@
            this.ScrollEnabled = false;
            //先清空
            this.listControl = new List<ButtonBase>();
            //设置初始状态
            this.IsLightOpen = ((LightBase)this.device).OnOffStatus == 1;
            //设置状态文字
            if (((LightBase)this.device).OnOffStatus == 1)
            if (this.IsLightOpen == true)
            {
                //亮度 XX
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device));
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device));
            }
            else
            {
@@ -73,9 +71,16 @@
            waveSeekBar.Gravity = Gravity.CenterHorizontal;
            waveSeekBar.WavePadding = Application.GetRealWidth(8);
            waveSeekBar.MaxValue = 100;
            waveSeekBar.Progress = (int)(((DimmableLight)this.device).Level * 1.0 / MaxLevel * 100);
            waveSeekBar.Progress = HdlDeviceCommonLogic.Current.CalculateLightLevelPersent(((DimmableLight)this.device).Level);
            waveSeekBar.CornerRadius = Application.GetRealHeight(58);
            waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
            if (this.IsLightOpen == true)
            {
                waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
            }
            else
            {
                waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
            }
            frameWhiteBack.AddChidren(waveSeekBar);
            //开关
@@ -84,6 +89,7 @@
            btnSwitch.SelectedImagePath = "Item/SwitchSelected.png";
            btnSwitch.Y = waveSeekBar.Bottom + Application.GetRealHeight(84);
            btnSwitch.Gravity = Gravity.CenterHorizontal;
            btnSwitch.IsSelected = this.IsLightOpen;
            frameWhiteBack.AddChidren(btnSwitch);
            listControl.Add(btnSwitch);
            btnSwitch.ButtonClickEvent += (sender, e) =>
@@ -91,13 +97,6 @@
                //发送开关命令
                this.SetSwitchCommand(!btnSwitch.IsSelected);
            };
            //设置初始状态
            this.IsLightOpen = ((LightBase)this.device).OnOffStatus == 1;
            if (IsLightOpen == true)
            {
                btnSwitch.IsSelected = true;
            }
            //彩灯控件里面的那个显示百分比的控件
            int progressY = waveSeekBar.Y - Application.GetMinReal(154);
@@ -150,9 +149,9 @@
                else
                {
                    //如果住宅为虚拟住宅,直接改缓存
                    ((DimmableLight)this.device).Level = value * MaxLevel / 100;
                    ((DimmableLight)this.device).Level = HdlDeviceCommonLogic.Current.CalculateLightLevel(value);
                    //亮度 XX
                    this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device));
                    this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device));
                }
            };
@@ -182,7 +181,7 @@
                    }
                    oldProgressValue = nowProgressValue;
                    //发送进度值
                    ((DimmableLight)this.device).SetLevel((int)(oldProgressValue * MaxLevel / 100.0));
                    ((DimmableLight)this.device).SetLevel(HdlDeviceCommonLogic.Current.CalculateLightLevel(oldProgressValue));
                }
            });
        }
@@ -235,7 +234,7 @@
                if (level == 0)
                {
                    //如果当前是打开状态,并且亮度为0的话,则需要变成100%亮度
                    this.device.GetType().InvokeMember("SetLevel", System.Reflection.BindingFlags.InvokeMethod, null, this.device, new object[] { 254 });
                    this.device.GetType().InvokeMember("SetLevel", System.Reflection.BindingFlags.InvokeMethod, null, this.device, new object[] { 255 });
                }
                else
                {
@@ -286,7 +285,7 @@
            if (isOpen == true)
            {
                //亮度是必须要刷新的  亮度 XX
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device));
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device));
            }
            if (isOpen == false && this.IsLightOpen == true)
            {
@@ -297,13 +296,25 @@
            if (this.isProgressing == false)
            {
                //当进度值在手动变更中时,不接收推送
                waveSeekBar.Progress = (int)(((DimmableLight)this.device).Level * 1.0 / MaxLevel * 100);
                int progress = HdlDeviceCommonLogic.Current.CalculateLightLevelPersent(((DimmableLight)this.device).Level);
                if (waveSeekBar.Progress != progress)
                {
                    waveSeekBar.Progress = progress;
                }
            }
            if (listControl[0].IsSelected != isOpen)
            {
                //开关状态变更
                listControl[0].IsSelected = isOpen;
                if (isOpen == true)
                {
                    waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
                }
                else
                {
                    waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
                }
            }
            this.IsLightOpen = isOpen;