From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 09:07:13 +0800 Subject: [PATCH] 新云端Ver1.3 --- ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs | 133 ++++++++++++++++++++------------------------ 1 files changed, 60 insertions(+), 73 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs index 53a0bff..d2062bc 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceColorLightDetailCardForm.cs @@ -1,5 +1,4 @@ 锘縰sing Shared.Common; -using Shared.Phone.Device.DeviceLogic; using Shared.Phone.UserCenter; using System; using System.Collections.Generic; @@ -32,10 +31,6 @@ /// </summary> private bool isProgressing = false; /// <summary> - /// 鑳藉惁鍙戦�佽繘搴﹀�� - /// </summary> - private bool canSetProgressValue = true; - /// <summary> /// 鏄惁宸茬粡鍒濆鍖栦簡鎺т欢(鍥犱负搴曞眰鏈夊彲鑳戒細鍒锋柊鏁翠釜鐣岄潰) /// </summary> private bool hadInitControl = false; @@ -62,7 +57,7 @@ if (((LightBase)this.device).OnOffStatus == 1) { //浜害 XX - this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device)); + this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device)); } else { @@ -73,13 +68,14 @@ //褰╃伅鎺т欢 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; waveSeekBar.Progress = (int)(((DimmableLight)this.device).Level * 1.0 / MaxLevel * 100); waveSeekBar.CornerRadius = Application.GetRealHeight(58); + waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End); frameWhiteBack.AddChidren(waveSeekBar); //寮�鍏� @@ -98,17 +94,9 @@ //璁剧疆鍒濆鐘舵�� this.IsLightOpen = ((LightBase)this.device).OnOffStatus == 1; - this.canSetProgressValue = this.IsLightOpen; if (IsLightOpen == true) { btnSwitch.IsSelected = true; - waveSeekBar.IsClickable = true; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End); - } - else - { - waveSeekBar.IsClickable = false; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor); } //褰╃伅鎺т欢閲岄潰鐨勯偅涓樉绀虹櫨鍒嗘瘮鐨勬帶浠� @@ -155,7 +143,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) + " " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device)); + } }; if (this.hadInitControl == true) @@ -165,14 +163,19 @@ } this.hadInitControl = true; + if (Config.Instance.Home.IsVirtually == true) + { + //铏氭嫙浣忓畢 + return; + } + //寮�涓�涓嚎绋�,鐩戣鏄惁婊戝姩鐨勬粦鍔ㄦ潯,姣忕妫�娴嬩竴娆� HdlThreadLogic.Current.RunThread(() => { while (this.Parent != null) { System.Threading.Thread.Sleep(1000); - if (nowProgressValue == oldProgressValue - || this.canSetProgressValue == false) + if (nowProgressValue == oldProgressValue) { //鍊间竴鏍� continue; @@ -194,52 +197,54 @@ /// <param name="isOpen"></param> private void SetSwitchCommand(bool isOpen) { - //褰撴寜涓嬪紑鍏虫寜閽椂,涓嶈兘鍐嶅彂閫佽繘搴﹀�� - this.canSetProgressValue = false; + //鑾峰彇褰撳墠浜害 + int level = Convert.ToInt32(this.device.GetType().InvokeMember("Level", System.Reflection.BindingFlags.GetField, null, this.device, null)); + //濡傛灉浣忓畢鏄櫄鎷熶綇瀹� + if (Common.Config.Instance.Home.IsVirtually == true) + { + ((LightBase)this.device).OnOffStatus = isOpen == true ? 1 : 0; + if (((LightBase)this.device).OnOffStatus == 1 && level == 0) + { + //濡傛灉褰撳墠鏄墦寮�鐘舵��,骞朵笖浜害涓�0鐨勮瘽,鍒欓渶瑕佸彉鎴�100%浜害 + this.device.GetType().InvokeMember("Level", System.Reflection.BindingFlags.SetField, null, this.device, new object[] { 100 }); + } + //鍒锋柊寮�鍏崇姸鎬� + this.RefreshSwitchStatu(isOpen); + return; + } //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅 this.StartCheckResponeResult(this.listControl, (result) => { 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; } }); }); - - //鐘舵�佸彇鍙� - 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); + if (level == 0) + { + //濡傛灉褰撳墠鏄墦寮�鐘舵��,骞朵笖浜害涓�0鐨勮瘽,鍒欓渶瑕佸彉鎴�100%浜害 + this.device.GetType().InvokeMember("SetLevel", System.Reflection.BindingFlags.InvokeMethod, null, this.device, new object[] { 254 }); + } + else + { + this.device.SwitchControl(1); + } } else { //鍏抽棴 - this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); this.device.SwitchControl(0); } } @@ -256,17 +261,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; } @@ -284,17 +286,18 @@ if (isOpen == true) { //浜害鏄繀椤昏鍒锋柊鐨� 浜害 XX - this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device)); - if (this.isProgressing == false) - { - //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� - waveSeekBar.Progress = (int)(((DimmableLight)this.device).Level * 1.0 / MaxLevel * 100); - } + this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device)); } if (isOpen == false && this.IsLightOpen == true) { //鐘舵�佷笉涓�鏍�,鎵嶅彉鏇村瓧鏍�:鍏抽棴 this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); + } + + if (this.isProgressing == false) + { + //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� + waveSeekBar.Progress = (int)(((DimmableLight)this.device).Level * 1.0 / MaxLevel * 100); } if (listControl[0].IsSelected != isOpen) @@ -303,23 +306,7 @@ listControl[0].IsSelected = isOpen; } - //鐘舵�佷笉涓�鏍锋墠鍙樻洿 - if (this.IsLightOpen != isOpen) - { - if (isOpen == true) - { - waveSeekBar.IsClickable = true; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarColor_Start, ZigbeeColor.Current.GXCWaveSeekBarColor_End); - } - else - { - waveSeekBar.IsClickable = false; - waveSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor); - } - } this.IsLightOpen = isOpen; - //鍥炲鐨勭粨鏋滆,澶勪簬鎵撳紑鐘舵�佹墠鑳藉彂閫� - this.canSetProgressValue = this.IsLightOpen; } #endregion -- Gitblit v1.8.0