From 919317aa27e2a35a18b5773dbe7d8eb48d3150cd Mon Sep 17 00:00:00 2001 From: lss <316519258@qq.com> Date: 星期一, 28 九月 2020 13:23:35 +0800 Subject: [PATCH] 2020.9.28 新增思必驰音箱 --- ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs | 143 +++++++++++++++++++++++++---------------------- 1 files changed, 76 insertions(+), 67 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs index a4001f1..c30c0e5 100755 --- a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs +++ b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs @@ -43,10 +43,6 @@ /// </summary> private bool isColorProgressing = false; /// <summary> - /// 鑳藉惁鍙戦�佽繘搴﹀�� - /// </summary> - private bool canSetProgressValue = true; - /// <summary> /// 1:鍙戦�佺殑鏄皬澶滅伅 2:鍙戦�佺殑鏄渹楦e櫒 /// </summary> private int sendDiv = 0; @@ -125,25 +121,27 @@ frameWhiteBack.AddChidren(btnColorBack); //杩涘害鏉�(+60鐨勫亸绉婚噺,鑹叉俯鐨勮寖鍥存槸 3000~6000) this.seekBarColor = new SeekBarControl(611 + 120); - seekBarColor.Y = btnLightLine.Bottom + Application.GetRealHeight(58); + seekBarColor.Y = btnLightLine.Bottom + Application.GetRealHeight(88); seekBarColor.X = Application.GetRealWidth(266 - 60); - seekBarColor.Height = Application.GetRealHeight(144); seekBarColor.SeekBarViewHeight = Application.GetRealHeight(20); seekBarColor.SeekBarPadding = Application.GetRealWidth(60); - seekBarColor.IsProgressTextShow = true; seekBarColor.ProgressBarColor = UserCenterColor.Current.Transparent; + seekBarColor.ProgressBarUnEnableColor = UserCenterColor.Current.Transparent; seekBarColor.SeekBarBackgroundColor = UserCenterColor.Current.Transparent; seekBarColor.ProgressTextSize = 14; seekBarColor.ProgressTextColor = UserCenterColor.Current.TextGrayColor2; seekBarColor.Gravity = Gravity.Frame; - seekBarColor.ProgressBarUnitSring = "K"; seekBarColor.MinValue = 30; seekBarColor.MaxValue = 60; + seekBarColor.ProgressChangeDelayTime = 0; frameWhiteBack.AddChidren(seekBarColor); + //鏄剧ず鑷畾涔夋枃鏈� + seekBarColor.ShowCustomTextView(Application.GetRealWidth(200), 15, UserCenterColor.Current.TextGrayColor3); //璁剧疆鍒濆鍊� int colorValue = ((ColorTemperatureLight)this.device).ColorTemperature; if (colorValue == 0) { colorValue = 3000; } seekBarColor.Progress = colorValue / 100; + seekBarColor.SetCustomText(seekBarColor.Progress * 100 + "K"); //铚傞福鍣ㄥ紑鍏筹細 var btnBuzzerView = new NormalViewControl(300, 60, true); @@ -161,6 +159,7 @@ this.btnBuzzerSwitch = new IconBigViewControl(81, 81); btnBuzzerSwitch.UnSelectedImagePath = "Item/Switch.png"; btnBuzzerSwitch.SelectedImagePath = "Item/SwitchSelected.png"; + btnBuzzerSwitch.IsSelected = ((ColorTemperatureLight)this.device).IsBuzzerRing; frameWhiteBack.AddChidren(btnBuzzerSwitch); btnBuzzerSwitch.InitControl(); btnBuzzerSwitch.UseClickStatu = false; @@ -199,7 +198,6 @@ this.SetLightSwitchCommand(!btnMiniSwitch.IsSelected); }; btnMiniSwitch.IsSelected = ((LightBase)this.device).OnOffStatus == 1; - this.canSetProgressValue = btnMiniSwitch.IsSelected; //浜害寮�濮嬫粦鍔ㄧ殑浜嬩欢 seekBarLight.OnStartTrackingTouchEvent += (sender, e) => @@ -222,11 +220,8 @@ { if (Common.Config.Instance.Home.IsVirtually == false) { - if (this.canSetProgressValue == true) - { - //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰� - nowLightValue = value; - } + //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰� + nowLightValue = value; } else { @@ -257,13 +252,12 @@ int nowColorValue = oldColorValue;//鍙樻洿鐨勫�� seekBarColor.OnProgressChangedEvent += (sender, value) => { + //璁剧疆鑷畾涔夌殑鏂囨湰 + seekBarColor.SetCustomText(value * 100 + "K"); if (Common.Config.Instance.Home.IsVirtually == false) { - if (this.canSetProgressValue == true) - { - //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰� - nowColorValue = value; - } + //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰� + nowColorValue = value; } else { @@ -271,8 +265,13 @@ ((ColorTemperatureLight)this.device).ColorTemperature = value * 100; } }; + if (Config.Instance.Home.IsVirtually == true) + { + //铏氭嫙浣忓畢 + return; + } - //寮�涓�涓嚎绋�,鐩戣鏄惁婊戝姩鐨勬粦鍔ㄦ潯,姣忕妫�娴嬩竴娆� + //寮�涓�涓嚎绋�,鐩戣鏄惁婊戝姩鐨勬粦鍔ㄦ潯,姣忕妫�娴嬩竴娆� HdlThreadLogic.Current.RunThread(() => { while (this.Parent != null) @@ -292,20 +291,17 @@ ((ColorTemperatureLight)this.device).SetColorTemperature(value); } } - if (this.canSetProgressValue == true) + //鐣岄潰鍏抽棴鏃� + if (nowLightValue != oldLightValue) { - //鐣岄潰鍏抽棴鏃� - if (nowLightValue != oldLightValue) - { - //鍙戦�佷寒搴﹀�� - ((ColorTemperatureLight)this.device).SetLevel((int)(nowLightValue * MaxLevel / 100.0)); - } - if (nowColorValue != oldColorValue) - { - //鍙戦�佽壊娓╁�� - int value = 1000000 / (nowColorValue * 100); - ((ColorTemperatureLight)this.device).SetColorTemperature(value); - } + //鍙戦�佷寒搴﹀�� + ((ColorTemperatureLight)this.device).SetLevel((int)(nowLightValue * MaxLevel / 100.0)); + } + if (nowColorValue != oldColorValue) + { + //鍙戦�佽壊娓╁�� + int value = 1000000 / (nowColorValue * 100); + ((ColorTemperatureLight)this.device).SetColorTemperature(value); } }); } @@ -320,17 +316,21 @@ /// <param name="isOpen"></param> private void SetLightSwitchCommand(bool isOpen) { + //鑾峰彇褰撳墠浜害 + 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.canSetProgressValue = false; //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅 this.StartCheckResponeResult(new List<ButtonBase> { this.btnMiniSwitch.btnIcon }, (result) => @@ -343,12 +343,6 @@ bool statu = ((LightBase)this.device).OnOffStatus == 1; //鍒锋柊寮�鍏崇姸鎬� this.RefreshSwitchStatu(statu); - if (statu == true) - { - //褰撴槸鎵撳紑鐘舵�佹椂,缃戝叧璇村畠浼氶粯璁ゆ妸浜害鍙樻垚100% - //浠ラ槻涓囦竴,杩欓噷鍐嶆璇诲彇涓�涓� - ((ColorTemperatureLight)device).ReadLevel(); - } } }); }); @@ -357,7 +351,15 @@ if (isOpen == true) { //鎵撳紑 - 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 { @@ -379,24 +381,23 @@ //濡傛灉浣忓畢鏄櫄鎷熶綇瀹� if (Common.Config.Instance.Home.IsVirtually == true) { - //((LightBase)this.device).OnOffStatus = isOpen == true ? 1 : 0; - ////鍒锋柊寮�鍏崇姸鎬� - //this.RefreshSwitchStatu(isOpen); + ((ColorTemperatureLight)this.device).IsBuzzerRing = isOpen; + //鍒锋柊寮�鍏崇姸鎬� + this.RefreshSwitchStatu(isOpen); return; } //妫�娴嬫槸鍚﹁幏鍙栫綉鍏冲弽棣堢殑缁撴灉,濡傛灉缃戝叧娌℃湁鍥炲,鍒欎細寮瑰嚭娑堟伅 - this.StartCheckResponeResult(new List<ButtonBase> { this.btnBuzzerSwitch.btnIcon }, (result) => + this.btnBuzzerSwitch.CanClick = false; + this.StartCheckResponeResult(new List<ButtonBase>(), (result) => { HdlThreadLogic.Current.RunMain(() => { //鎺ユ敹鍒扮綉鍏冲洖澶� + this.btnBuzzerSwitch.CanClick = true; if (result == true) { this.btnBuzzerSwitch.IsSelected = isOpen; - //bool statu = ((LightBase)this.device).OnOffStatus == 1; - ////鍒锋柊寮�鍏崇姸鎬� - //this.RefreshSwitchStatu(statu); } }); }); @@ -463,36 +464,44 @@ /// <param name="isOpen">鎵撳紑鐘舵��</param> private void RefreshSwitchStatu(bool isOpen) { - if (this.isColorProgressing == true) + //鍒锋柊铚傞福鍣ㄥ紑鍏崇姸鎬� + bool isBuzzerRing = ((ColorTemperatureLight)this.device).IsBuzzerRing; + if (this.btnBuzzerSwitch.IsSelected != isBuzzerRing) { - //濡傛灉鏄壊娓╂粦鍔ㄧ殑璇�,涓嶉渶瑕佸埛鏂扮晫闈� - return; + this.btnBuzzerSwitch.IsSelected = isBuzzerRing; } + if (isOpen == true) { //浜害鏄繀椤昏鍒锋柊鐨� 浜害 XX this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device)); - if (this.isLightProgressing == false) + if (this.btnMiniSwitch.IsSelected == false) { - //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� - seekBarLight.Progress = (int)(((ColorTemperatureLight)this.device).Level * 1.0 / MaxLevel * 100); + this.btnMiniSwitch.IsSelected = true; } - if (this.isColorProgressing == false) - { - //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� - seekBarColor.Progress = (int)(((ColorTemperatureLight)this.device).ColorTemperature / 100); - } - this.btnMiniSwitch.IsSelected = true; } else { - //鍙樻洿瀛楁牱:鍏抽棴 - this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); - this.btnMiniSwitch.IsSelected = false; + if (this.btnMiniSwitch.IsSelected == true) + { + this.btnMiniSwitch.IsSelected = false; + //鍙樻洿瀛楁牱:鍏抽棴 + this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); + } } - //鍥炲鐨勭粨鏋滆,澶勪簬鎵撳紑鐘舵�佹墠鑳藉彂閫� - this.canSetProgressValue = isOpen; + if (this.isLightProgressing == false) + { + //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� + seekBarLight.Progress = (int)(((ColorTemperatureLight)this.device).Level * 1.0 / MaxLevel * 100); + } + if (this.isColorProgressing == false) + { + //褰撹繘搴﹀�煎湪鎵嬪姩鍙樻洿涓椂,涓嶆帴鏀舵帹閫� + seekBarColor.Progress = (int)(((ColorTemperatureLight)this.device).ColorTemperature / 100); + //璁剧疆鑷畾涔夌殑鏂囨湰 + seekBarColor.SetCustomText(seekBarColor.Progress * 100 + "K"); + } } #endregion -- Gitblit v1.8.0