黄学彪
2020-06-18 2450c12c825ad4d78d1572da2fa421706db2df2f
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs
@@ -72,8 +72,8 @@
            //彩灯控件
            this.waveSeekBar = new WaveSeekBar();
            waveSeekBar.Y = Application.GetRealHeight(377);
            waveSeekBar.Width = Application.GetMinRealAverage(271);
            waveSeekBar.Height = Application.GetMinRealAverage(533);
            waveSeekBar.Width = this.GetPictrueRealSize(271);
            waveSeekBar.Height = this.GetPictrueRealSize(533);
            waveSeekBar.Gravity = Gravity.CenterHorizontal;
            waveSeekBar.WavePadding = Application.GetRealWidth(8);
            waveSeekBar.MaxValue = 100;
@@ -154,7 +154,17 @@
                //变更进度百分比的显示
                btnProgress.Y = progressY + waveSeekBar.NowProgressY;
                btnProgress.Text = value + "%";
                nowProgressValue = value;
                if (Common.Config.Instance.Home.IsVirtually == false)
                {
                    nowProgressValue = value;
                }
                else
                {
                    //如果住宅为虚拟住宅,直接改缓存
                    ((DimmableLight)this.device).Level = value * MaxLevel / 100;
                    //亮度 XX
                    this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + "  " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device));
                }
            };
            if (this.hadInitControl == true)
@@ -193,6 +203,15 @@
        /// <param name="isOpen"></param>
        private void SetSwitchCommand(bool isOpen)
        {
            //如果住宅是虚拟住宅
            if (Common.Config.Instance.Home.IsVirtually == true)
            {
                ((LightBase)this.device).OnOffStatus = isOpen == true ? 1 : 0;
                //刷新开关状态
                this.RefreshSwitchStatu(isOpen);
                return;
            }
            //当按下开关按钮时,不能再发送进度值
            this.canSetProgressValue = false;
@@ -201,44 +220,34 @@
            {
                HdlThreadLogic.Current.RunMain(() =>
                {
                    //没有接收到网关回复
                    if (result == false)
                    bool statu = ((LightBase)this.device).OnOffStatus == 1;
                    //接收到网关回复
                    if (result == true)
                    {
                        bool statu = ((LightBase)this.device).OnOffStatus == 1;
                        //刷新开关状态
                        this.RefreshSwitchStatu(statu);
                        if (statu == true)
                        {
                            //等待结果结束后,彩灯控件可以滑动
                            waveSeekBar.IsClickable = true;
                        }
                        //状态取反
                        listControl[0].IsSelected = statu;
                    }
                    if (statu == true)
                    {
                        //等待结果结束后,彩灯控件可以滑动
                        waveSeekBar.IsClickable = true;
                    }
                });
            });
            //状态取反
            listControl[0].IsSelected = !listControl[0].IsSelected;
            //发送等待的时间内,不能滑动彩灯控件
            waveSeekBar.IsClickable = false;
            if (isOpen == true)
            {
                waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End);
            }
            else
            {
                waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
            }
            if (isOpen == true)
            {
                //打开
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
                this.device.SwitchControl(1);
            }
            else
            {
                //关闭
                this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close));
                this.device.SwitchControl(0);
            }
        }
@@ -255,17 +264,14 @@
        /// <returns></returns>
        public override bool CheckResponeResultStatu(ReceiveComandDiv comandDiv, CommonDevice report)
        {
            if (comandDiv == ReceiveComandDiv.A节点控制反馈)
            {
                return true;
            }
            else if (comandDiv == ReceiveComandDiv.A设备属性上报)
            if (comandDiv == ReceiveComandDiv.A设备属性上报)
            {
                HdlThreadLogic.Current.RunMain(() =>
                {
                    //刷新开关状态
                    this.RefreshSwitchStatu(((LightBase)this.device).OnOffStatus == 1);
                });
                return true;
            }
            return false;
        }