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/DeviceMiniLightDetailCardForm.cs | 161 ++++++++++++++++++++++++++++------------------------- 1 files changed, 85 insertions(+), 76 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs index a4001f1..471b9df 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; @@ -70,7 +66,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 { @@ -85,7 +81,7 @@ btnLightView.Y = Application.GetRealHeight(320); frameWhiteBack.AddChidren(btnLightView); //搴曠嚎 - var btnLightLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false); + var btnLightLine = new NormalViewControl(Application.GetRealWidth(841), HdlControlResourse.BottomLineHeight, false); btnLightLine.BackgroundColor = UserCenterColor.Current.ButtomLine; btnLightLine.X = btnLightView.X; btnLightLine.Y = btnLightView.Bottom + Application.GetRealHeight(37); @@ -112,7 +108,7 @@ btnColorView.Y = btnLightLine.Y + Application.GetRealHeight(107); frameWhiteBack.AddChidren(btnColorView); //搴曠嚎 - var btnColorLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false); + var btnColorLine = new NormalViewControl(Application.GetRealWidth(841), HdlControlResourse.BottomLineHeight, false); btnColorLine.BackgroundColor = UserCenterColor.Current.ButtomLine; btnColorLine.X = btnColorView.X; btnColorLine.Y = btnColorView.Bottom + Application.GetRealHeight(37); @@ -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); @@ -152,7 +150,7 @@ btnBuzzerView.Y = btnColorLine.Y + Application.GetRealHeight(107); frameWhiteBack.AddChidren(btnBuzzerView); //搴曠嚎 - var btnBuzzerLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false); + var btnBuzzerLine = new NormalViewControl(Application.GetRealWidth(841), HdlControlResourse.BottomLineHeight, false); btnBuzzerLine.BackgroundColor = UserCenterColor.Current.ButtomLine; btnBuzzerLine.X = btnBuzzerView.X; btnBuzzerLine.Y = btnBuzzerView.Bottom + Application.GetRealHeight(37); @@ -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; @@ -179,7 +178,7 @@ btnMiniView.Y = btnBuzzerLine.Y + Application.GetRealHeight(107); frameWhiteBack.AddChidren(btnMiniView); //搴曠嚎 - var btnMiniLine = new NormalViewControl(Application.GetRealWidth(841), ControlCommonResourse.BottomLineHeight, false); + var btnMiniLine = new NormalViewControl(Application.GetRealWidth(841), HdlControlResourse.BottomLineHeight, false); btnMiniLine.BackgroundColor = UserCenterColor.Current.ButtomLine; btnMiniLine.X = btnMiniView.X; btnMiniLine.Y = btnMiniView.Bottom + Application.GetRealHeight(37); @@ -199,7 +198,6 @@ this.SetLightSwitchCommand(!btnMiniSwitch.IsSelected); }; btnMiniSwitch.IsSelected = ((LightBase)this.device).OnOffStatus == 1; - this.canSetProgressValue = btnMiniSwitch.IsSelected; //浜害寮�濮嬫粦鍔ㄧ殑浜嬩欢 seekBarLight.OnStartTrackingTouchEvent += (sender, e) => @@ -222,18 +220,15 @@ { if (Common.Config.Instance.Home.IsVirtually == false) { - if (this.canSetProgressValue == true) - { - //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰� - nowLightValue = value; - } + //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰� + nowLightValue = value; } else { //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹�,鐩存帴鏀圭紦瀛� ((ColorTemperatureLight)this.device).Level = value * MaxLevel / 100; //浜害 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)); } }; @@ -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); } }); }); @@ -411,10 +412,10 @@ private void AddReceiveBuzzerAckEvent() { //Ack涓婚涓婃姤 - string mainKeys = LocalDevice.Current.GetDeviceMainKeys(this.device); + string mainKeys = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(this.device); HdlGatewayReceiveLogic.Current.AddAttributeEvent("DeviceBuzzerDetailCardACK", ReceiveComandDiv.A鑺傜偣鎺у埗鍙嶉, (report) => { - string mainKey2 = LocalDevice.Current.GetDeviceMainKeys(report); + string mainKey2 = HdlDeviceCommonLogic.Current.GetDeviceMainKeys(report); if (mainKeys != mainKey2) { //涓嶆槸鍚屼竴涓笢瑗� @@ -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) + this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceCommonLogic.Current.GetMainPageDeviceStatuText(this.device)); + 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