From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs | 137 ++++++++++++++++++++-------------------------
1 files changed, 62 insertions(+), 75 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs b/ZigbeeApp/Shared/Phone/MainPage/ControlForm/DeviceMiniLightDetailCardForm.cs
index 5a87885..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,26 +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);
@@ -201,13 +198,6 @@
this.SetLightSwitchCommand(!btnMiniSwitch.IsSelected);
};
btnMiniSwitch.IsSelected = ((LightBase)this.device).OnOffStatus == 1;
- this.canSetProgressValue = btnMiniSwitch.IsSelected;
- if (btnMiniSwitch.IsSelected == false)
- {
- //鍦ㄦ病鏈夋墦寮�澶滅伅寮�鍏充箣鍓�,涓嶅厑璁告粦鍔�
- seekBarLight.Enable = false;
- seekBarColor.Enable = false;
- }
//浜害寮�濮嬫粦鍔ㄧ殑浜嬩欢
seekBarLight.OnStartTrackingTouchEvent += (sender, e) =>
@@ -230,11 +220,8 @@
{
if (Common.Config.Instance.Home.IsVirtually == false)
{
- if (this.canSetProgressValue == true)
- {
- //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰�
- nowLightValue = value;
- }
+ //鑳藉鍙戦�佽繘搴﹀�肩殑鏃跺��,鎵嶈褰�
+ nowLightValue = value;
}
else
{
@@ -265,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
{
@@ -279,8 +265,13 @@
((ColorTemperatureLight)this.device).ColorTemperature = value * 100;
}
};
+ if (Config.Instance.Home.IsVirtually == true)
+ {
+ //铏氭嫙浣忓畢
+ return;
+ }
- //寮�涓�涓嚎绋�,鐩戣鏄惁婊戝姩鐨勬粦鍔ㄦ潯,姣忕妫�娴嬩竴娆�
+ //寮�涓�涓嚎绋�,鐩戣鏄惁婊戝姩鐨勬粦鍔ㄦ潯,姣忕妫�娴嬩竴娆�
HdlThreadLogic.Current.RunThread(() =>
{
while (this.Parent != null)
@@ -300,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);
}
});
}
@@ -328,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) =>
@@ -351,18 +343,6 @@
bool statu = ((LightBase)this.device).OnOffStatus == 1;
//鍒锋柊寮�鍏崇姸鎬�
this.RefreshSwitchStatu(statu);
- if (statu == true)
- {
- //褰撴槸鎵撳紑鐘舵�佹椂,缃戝叧璇村畠浼氶粯璁ゆ妸浜害鍙樻垚100%
- //浠ラ槻涓囦竴,杩欓噷鍐嶆璇诲彇涓�涓�
- HdlThreadLogic.Current.RunThread(() =>
- {
- ((ColorTemperatureLight)device).ReadLevel();
- System.Threading.Thread.Sleep(300);
- ((ColorTemperatureLight)device).ReadColorTemperature();
- });
-
- }
}
});
});
@@ -371,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
{
@@ -405,7 +393,12 @@
{
HdlThreadLogic.Current.RunMain(() =>
{
+ //鎺ユ敹鍒扮綉鍏冲洖澶�
this.btnBuzzerSwitch.CanClick = true;
+ if (result == true)
+ {
+ this.btnBuzzerSwitch.IsSelected = isOpen;
+ }
});
});
//鍙戦�佸懡浠�
@@ -482,39 +475,33 @@
{
//浜害鏄繀椤昏鍒锋柊鐨� 浜害 XX
this.SetStatuText(Language.StringByID(R.MyInternationalizationString.uBrightness) + " " + HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device));
- 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);
- }
if (this.btnMiniSwitch.IsSelected == false)
{
this.btnMiniSwitch.IsSelected = true;
}
- //婊戝姩鏉″彲浠ユ粦鍔�
- seekBarLight.Enable = true;
- seekBarColor.Enable = true;
}
else
{
- //鍙樻洿瀛楁牱:鍏抽棴
- this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close));
if (this.btnMiniSwitch.IsSelected == true)
{
this.btnMiniSwitch.IsSelected = false;
+ //鍙樻洿瀛楁牱:鍏抽棴
+ this.SetStatuText(Language.StringByID(R.MyInternationalizationString.Close));
}
- //婊戝姩鏉′笉鍙互婊戝姩
- seekBarLight.Enable = false;
- seekBarColor.Enable = false;
}
- //鍥炲鐨勭粨鏋滆,澶勪簬鎵撳紑鐘舵�佹墠鑳藉彂閫�
- 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