From 3199abc8c62f23fce4e3ec7a2337d23709810e97 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 29 六月 2022 14:42:16 +0800
Subject: [PATCH] 梦幻帘接入

---
 HDL_ON/Entity/Function/Scene.cs                                |    3 
 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs                        |    5 
 HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs                      |    6 
 HDL_ON/UI/UI2/1-HomePage/HomePage.cs                           |   58 ++-
 HDL-ON_Android/Assets/Language.ini                             |    4 
 HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs    |    5 
 HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs           |   74 ++--
 HDL-ON_iOS/HDL-ON_iOS.csproj                                   |    1 
 HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs              |   24 +
 HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs        |   10 
 HDL_ON/HDL_ON.projitems                                        |    1 
 HDL-ON_iOS/Resources/Phone/Public/ThumbImage2.png              |    0 
 HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPage.cs           |    5 
 HDL-ON_Android/HDL-ON_Android.csproj                           |    1 
 HDL_ON/UI/UI2/FuntionControlView/Curtain/CurtainDreamPage.cs   |  543 ++++++++++++++++++++++++++++++++++++++
 HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs |   62 ++--
 HDL-ON_Android/Assets/Phone/Public/ThumbImage2.png             |    0 
 HDL-ON_iOS/Info.plist                                          |    4 
 HDL-ON_iOS/Resources/Language.ini                              |   10 
 HDL_ON/Common/R.cs                                             |    5 
 HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs |    7 
 HDL_ON/UI/MainPage.cs                                          |    2 
 22 files changed, 716 insertions(+), 114 deletions(-)

diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 2e71213..ff94fa9 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -529,6 +529,7 @@
 541=Monitoring
 542=Wandering alarm
 543=Get more
+544=Angle
 
 
 1000=Room Humidity
@@ -1691,6 +1692,7 @@
 541=鐩戞帶涓�
 542=寰樺緤鎶ヨ
 543=鑾峰彇鏇村
+544=瑙掑害
  
 1000=瀹ゅ唴婀垮害
 1001=绔ラ攣
@@ -2829,6 +2831,7 @@
 541=Monitoring
 542=Wandering alarm
 543=Get more
+544=Angle
 
 
 1000=袙谢邪卸薪芯褋褌褜 胁 袩芯屑械褖械薪懈懈
@@ -3985,6 +3988,7 @@
 541=Monitoring
 542=Wandering alarm
 543=Get more
+544=Angle
 
 1000=Humedad de ambiente
 1001=V-chip
diff --git a/HDL-ON_Android/Assets/Phone/Public/ThumbImage2.png b/HDL-ON_Android/Assets/Phone/Public/ThumbImage2.png
new file mode 100644
index 0000000..0639f3b
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/Public/ThumbImage2.png
Binary files differ
diff --git a/HDL-ON_Android/HDL-ON_Android.csproj b/HDL-ON_Android/HDL-ON_Android.csproj
index 3b3f61d..08dd1f0 100644
--- a/HDL-ON_Android/HDL-ON_Android.csproj
+++ b/HDL-ON_Android/HDL-ON_Android.csproj
@@ -247,6 +247,7 @@
     <AndroidAsset Include="Assets\Phone\FunctionIcon\FloorHeating\EconomicIconGray.png" />
     <AndroidAsset Include="Assets\Phone\MusicIcon\order.png" />
     <AndroidAsset Include="Assets\Phone\MusicIcon\single_cycle.png" />
+    <AndroidAsset Include="Assets\Phone\Public\ThumbImage2.png" />
   </ItemGroup>
   <ItemGroup>
     <AndroidResource Include="Resources\values\colors.xml" />
diff --git a/HDL-ON_iOS/HDL-ON_iOS.csproj b/HDL-ON_iOS/HDL-ON_iOS.csproj
index c72dc16..78e6c1e 100644
--- a/HDL-ON_iOS/HDL-ON_iOS.csproj
+++ b/HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1406,6 +1406,7 @@
       <BundleResource Include="Resources\Phone\FunctionIcon\Panel\PanelEnviBg.png" />
       <BundleResource Include="Resources\Phone\MusicIcon\order.png" />
       <BundleResource Include="Resources\Phone\MusicIcon\single_cycle.png" />
+      <BundleResource Include="Resources\Phone\Public\ThumbImage2.png" />
     </ItemGroup>
     <ItemGroup>
       <ITunesArtwork Include="iTunesArtwork" />
diff --git a/HDL-ON_iOS/Info.plist b/HDL-ON_iOS/Info.plist
index e0efd51..9c3d4b3 100644
--- a/HDL-ON_iOS/Info.plist
+++ b/HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@
 	<key>UIStatusBarStyle</key>
 	<string>UIStatusBarStyleLightContent</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.5.502206241</string>
+	<string>1.5.502206271</string>
 	<key>CFBundleVersion</key>
-	<string>1.5.506241</string>
+	<string>1.5.506271</string>
 	<key>NSLocationWhenInUseUsageDescription</key>
 	<string>Use geographic location to provide services such as weather</string>
 	<key>NSAppleMusicUsageDescription</key>
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index aa18fb0..ff94fa9 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -529,6 +529,7 @@
 541=Monitoring
 542=Wandering alarm
 543=Get more
+544=Angle
 
 
 1000=Room Humidity
@@ -738,7 +739,7 @@
 5015=Bluetooth
 5016=Line input
 5017=Revise the name
-5018=Single loop 
+5018=Single loop
 5019=Random play
 5020=List
 5021=Has shifted to
@@ -770,6 +771,7 @@
 5047="QQ music" has not installed in your cell phone, please proceed in App center.
 5048= Progressive cycle
 5049=Single play
+
  
 6000=normal
 6001=Device status
@@ -1047,6 +1049,7 @@
 7156=Distress
 7157=whether to unlock
 7158=is
+
 
 
 
@@ -1689,6 +1692,7 @@
 541=鐩戞帶涓�
 542=寰樺緤鎶ヨ
 543=鑾峰彇鏇村
+544=瑙掑害
  
 1000=瀹ゅ唴婀垮害
 1001=绔ラ攣
@@ -1930,7 +1934,7 @@
 5046=璋冭妭闊抽噺
 5047=浣犳墜鏈烘殏鏈畨瑁�"QQ闊充箰"{\r\n}璇峰墠寰�鎵嬫満鍟嗗満瀹夎
 5048=寰簭寰幆
-5049=鍗曟洸寰幆
+5049=鍗曟洸鎾斁
  
  
 6000=姝e父
@@ -2827,6 +2831,7 @@
 541=Monitoring
 542=Wandering alarm
 543=Get more
+544=Angle
 
 
 1000=袙谢邪卸薪芯褋褌褜 胁 袩芯屑械褖械薪懈懈
@@ -3983,6 +3988,7 @@
 541=Monitoring
 542=Wandering alarm
 543=Get more
+544=Angle
 
 1000=Humedad de ambiente
 1001=V-chip
diff --git a/HDL-ON_iOS/Resources/Phone/Public/ThumbImage2.png b/HDL-ON_iOS/Resources/Phone/Public/ThumbImage2.png
new file mode 100644
index 0000000..0639f3b
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/Public/ThumbImage2.png
Binary files differ
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 7e86ec4..f7c8de3 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -4,7 +4,10 @@
 {
     public static class StringId
     {
-
+        /// <summary>
+        /// 瑙掑害
+        /// </summary>
+        public const int Angle = 544;
         /// <summary>
         /// 鑾峰彇鏇村
         /// </summary>
diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
index abbdbd3..5a6cd33 100644
--- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -457,6 +457,8 @@
             mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;
             InitCallInfo(mHDLCallVideoInfo);
 
+       
+
             if (isHdlLinphone)
             {
                 //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
@@ -539,7 +541,8 @@
             var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneIntercomActivity));
             if (mHDLCallVideoInfo != null)
             {
-                intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName);
+                //intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName);
+                intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.CallId);
             }
             Shared.Application.Activity.StartActivity(intent);
 #endif
diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index 75742dc..2f2d49c 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -585,6 +585,9 @@
                 case FunctionAttributeKey.FadeTime:
                     text = Language.StringByID(StringId.FadeSpeed);
                     break;
+                case "angle":
+                    text = Language.StringByID(StringId.Angle);
+                    break;
             }
             return text;
         }
diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems
index 948c13d..d4c650b 100644
--- a/HDL_ON/HDL_ON.projitems
+++ b/HDL_ON/HDL_ON.projitems
@@ -499,6 +499,7 @@
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ContentView\FhContentView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ContentView\AcContentView.cs" />
     <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\WanderingAlarmPage.cs" />
+    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Curtain\CurtainDreamPage.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
diff --git a/HDL_ON/UI/MainPage.cs b/HDL_ON/UI/MainPage.cs
index 950254a..fe1737b 100644
--- a/HDL_ON/UI/MainPage.cs
+++ b/HDL_ON/UI/MainPage.cs
@@ -105,7 +105,7 @@
     /// </summary>
     public static List<string> SceneSupportFunctionList = new List<string> {
             SPK.LightCCT,SPK.LightDimming,SPK.LightSwitch,SPK.LightRGB,
-            SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex,
+            SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex,SPK.CurtainDream,
             SPK.AcIr,SPK.AcStandard,SPK.HvacAC,
             SPK.FloorHeatStandard,SPK.HvacFloorHeat,
             SPK.AirFreshStandard,SPK.HvacAirFresh,
diff --git a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
index 736410b..cc2d317 100644
--- a/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
+++ b/HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -62,6 +62,12 @@
                         rollingShutterView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
                         MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                         break;
+                    case SPK.CurtainDream:
+                        var curtainDreamView = new CurtainDreamPage(function);
+                        MainPage.BasePageView.AddChidren(curtainDreamView);
+                        curtainDreamView.LoadPage(btnCollectionIcon, btnName, btnFromFloor);
+                        MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                        break;
                     case SPK.FloorHeatStandard:
                     case SPK.HvacFloorHeat:
                         var fhView = new FloorHeatingPage(function);
diff --git a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
index fc4e748..d4c6a4c 100644
--- a/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
+++ b/HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -566,6 +566,17 @@
 
 
 #if DEBUG
+            FunctionList.List.Functions.Add(new Function
+            {
+                name = "娴嬭瘯姊﹀够绐楀笜",
+                spk = SPK.CurtainDream,
+                sid = "1234577",
+                attributes = new List<FunctionAttributes> {
+                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
+                    new FunctionAttributes(){ key = "percent",curValue= "100",state = "100" },
+                    new FunctionAttributes(){ key = "angle",curValue= "0",state = "0" },
+                }
+            });
 
             //FunctionList.List.Functions.Add(new Function
             //{
@@ -627,28 +638,28 @@
             //    },
             //});
 
-            FunctionList.List.Functions.Add(new Function()
-            {
-                spk = SPK.SensorPm25,
-                name = "娴嬭瘯Pm2.5",
-                attributes = new List<FunctionAttributes>()
-                {
-                    new FunctionAttributes(){ key = "pm25",curValue= "70",state = "70" },
-                },
-                attrKeyConfigs = new List<AttrKeyConfig>()
-                {
-                    new AttrKeyConfig (){
-                        key = "pm2.5",
-                        type = "interval" ,
-                        unit = "ug/m虏",
-                        configs = new List<AttrKeyInfo>(){
-                           new AttrKeyInfo(){ start = "0",end = "75",color = "0xFFADE764", desc = "鑹ソ"},
-                           new AttrKeyInfo(){ start = "76",end = "150",color = "0xFFFFD154",desc = "杞�/涓害姹℃煋"},
-                           new AttrKeyInfo(){ start = "151",end = "500",color = "0xFFFF9D54",desc = "閲嶅害/涓ラ噸姹℃煋"},
-                        }
-                    }
-                },
-            });
+            //FunctionList.List.Functions.Add(new Function()
+            //{
+            //    spk = SPK.SensorPm25,
+            //    name = "娴嬭瘯Pm2.5",
+            //    attributes = new List<FunctionAttributes>()
+            //    {
+            //        new FunctionAttributes(){ key = "pm25",curValue= "70",state = "70" },
+            //    },
+            //    attrKeyConfigs = new List<AttrKeyConfig>()
+            //    {
+            //        new AttrKeyConfig (){
+            //            key = "pm2.5",
+            //            type = "interval" ,
+            //            unit = "ug/m虏",
+            //            configs = new List<AttrKeyInfo>(){
+            //               new AttrKeyInfo(){ start = "0",end = "75",color = "0xFFADE764", desc = "鑹ソ"},
+            //               new AttrKeyInfo(){ start = "76",end = "150",color = "0xFFFFD154",desc = "杞�/涓害姹℃煋"},
+            //               new AttrKeyInfo(){ start = "151",end = "500",color = "0xFFFF9D54",desc = "閲嶅害/涓ラ噸姹℃煋"},
+            //            }
+            //        }
+            //    },
+            //});
 
             //FunctionList.List.Functions.Add(new Function()
             //{
@@ -1151,10 +1162,8 @@
                 };
                 view.AddChidren(btnIcon);
 
-
                 btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                 btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
-
 
                 Button btnName;
                 btnName = new Button()
@@ -1226,6 +1235,7 @@
                 LoadEvent_FunctionCollection(btnCollection, function);
                 if (//SPK.CurtainSpkList().Contains(function.spk))
                     function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades ||
+                    function.spk == SPK.CurtainDream ||
                     function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex )
                 {
                     btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png";
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
index 97d6306..b82e1f8 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SetSceneFunctionInfoPage.cs
@@ -70,6 +70,9 @@
                     case FunctionAttributeKey.RGB:
                         LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.RGB));
                         break;
+                    case "angle"://瑙掑害
+                        LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == "angle"));
+                        break;
                 }
             }
 
@@ -353,6 +356,10 @@
                     case FunctionAttributeKey.FadeTime:
 
                         break;
+                    case "angle":
+                        //鍛堢幇鐨勫脊绐�
+
+                        break;
                     case "cct":
                         LoadEditDialog_CCT(sceneStatus, btnFunctionText);
                         break;
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Curtain/CurtainDreamPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Curtain/CurtainDreamPage.cs
new file mode 100644
index 0000000..58044ad
--- /dev/null
+++ b/HDL_ON/UI/UI2/FuntionControlView/Curtain/CurtainDreamPage.cs
@@ -0,0 +1,543 @@
+锘縰sing System;
+using HDL_ON.Entity;
+using Shared;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using System.Collections.Generic;
+using HDL_ON.DriverLayer;
+
+namespace HDL_ON.UI
+{
+    public class CurtainDreamPage : FrameLayout
+    {
+
+        #region 鎺т欢闆嗗悎
+        static CurtainDreamPage bodyView;
+        /// <summary>
+        /// 鍔熻兘鍚嶇О鎸夐挳
+        /// </summary>
+        Button btnFunctionName;
+        /// <summary>
+        /// 鎴块棿妤煎眰淇℃伅鎸夐挳
+        /// </summary>
+        Button btnFromFoorAndRoom;
+        /// <summary>
+        /// 鏀惰棌鎸夐挳
+        /// </summary>
+        Button btnCollection;
+        /// <summary>
+        /// 绐楀笜鍔ㄦ�佹帶浠�
+        /// </summary>
+        CurtainSeekBarOn curtainSeekBar;
+        /// <summary>
+        /// 杩涘害鍊�
+        /// </summary>
+        Button btnProgress;
+
+
+        /// <summary>
+        /// 绐楀笜鍏抽棴鎸夐挳
+        /// </summary>
+        Button btnCurtainClose;
+        /// <summary>
+        /// 绐楀笜鍋滄鎸夐挳
+        /// </summary>
+        Button btnCurtainStop;
+        /// <summary>
+        /// 绐楀笜鎵撳紑鎸夐挳
+        /// </summary>
+        Button btnCurtainOpen;
+        #endregion
+
+        #region 鍖哄煙鍙橀噺
+        Entity.Curtain curtainTemp = new Entity.Curtain();
+
+        Function function;
+        Button btnCollection_Out;
+        Button btnFunctionName_Out;
+        Button btnFromFloor_Out;
+        /// <summary>
+        /// 鍒锋柊鏄剧ず淇℃伅
+        /// </summary>
+        Action actionRefresh;
+        #endregion
+        /// <summary>
+        /// 姝e湪鎺у埗
+        /// </summary>
+        bool onControl = false;
+
+        public CurtainDreamPage(Function func)
+        {
+            bodyView = this;
+            function = func;
+        }
+
+        public void LoadPage(Button btnCollectionIcon, Button btnFunctionNameOut, Button btnFromFloorOut)
+        {
+            bodyView.BackgroundColor = CSS_Color.BackgroundColor;
+            btnCollection_Out = btnCollectionIcon;
+            btnFunctionName_Out = btnFunctionNameOut;
+            btnFromFloor_Out = btnFromFloorOut;
+
+
+            FrameLayout controlView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(88),
+                Width = Application.GetRealWidth(327),
+                Height = Application.GetRealHeight(526),
+                BackgroundImagePath = "Public/Fragmentbg.png",
+            };
+            bodyView.AddChidren(controlView);
+
+            btnFunctionName = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(37),
+                TextColor = CSS_Color.FirstLevelTitleColor,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.EmphasisFontSize_FirstLevel,
+                Text = function.name,
+            };
+            controlView.AddChidren(btnFunctionName);
+
+            btnFromFoorAndRoom = new Button()
+            {
+                X = Application.GetRealWidth(16),
+                Y = btnFunctionName.Bottom,
+                Width = Application.GetRealWidth(270),
+                Height = Application.GetRealHeight(21),
+                TextColor = CSS_Color.PromptingColor1,
+                TextAlignment = TextAlignment.CenterLeft,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                Text = function.GetRoomListName()
+            };
+            controlView.AddChidren(btnFromFoorAndRoom);
+
+            btnCollection = new Button()
+            {
+                X = Application.GetRealWidth(273),
+                Y = Application.GetRealHeight(14),
+                Width = Application.GetMinRealAverage(40),
+                Height = Application.GetMinRealAverage(40),
+                SelectedImagePath = "Collection/CollectionIcon.png",
+                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
+                IsSelected = function.collect
+            };
+            controlView.AddChidren(btnCollection);
+            //2020-12-16 濡傛灉鏄垚鍛橀殣钘忔敹钘忓姛鑳�
+            //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare)
+            //{
+            //    controlView.AddChidren(btnCollection);
+            //}
+
+
+            btnProgress = new Button()
+            {
+                Y = Application.GetRealHeight(80),
+                Height = Application.GetRealHeight(50),
+                TextSize = CSS_FontSize.TextFontSize,
+                TextColor = CSS_Color.PromptingColor1,
+                Text = curtainTemp.GetPercent(function).ToString() + "%",
+            };
+            controlView.AddChidren(btnProgress);
+
+
+            curtainSeekBar = new CurtainSeekBarOn()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(130),
+                Width = Application.GetRealWidth(250),
+                Height = Application.GetRealWidth(177),
+                Progress = curtainTemp.GetPercent(function),
+                ProgressTextColor = 0x00000000,
+                //IsInvertedProgress = true,
+            };
+            controlView.AddChidren(curtainSeekBar);
+
+
+            int angleValut = Convert.ToInt32(function.GetAttrState("angle"));
+            var angleView = new FrameLayout()
+            {
+                Gravity = Gravity.CenterHorizontal,
+                Y = Application.GetRealHeight(300),//414,璁捐鏁版嵁
+                Width = Application.GetRealWidth(250),
+                Height = Application.GetRealWidth(30),
+                BackgroundColor = 0x00ff0000
+            };
+            controlView.AddChidren(angleView);
+
+            List<Button> buttons = new List<Button>();
+            for (int i = 0; i < 18; i++)
+            {
+                var btn = new Button()
+                {
+                    X = Application.GetRealWidth(12 * i + 4),
+                    Y = Application.GetRealHeight(5),
+                    Width = Application.GetRealWidth(4),
+                    Height = Application.GetRealHeight(20),
+                    BackgroundColor = 0xFFDFE1E6,
+                };
+                btn.SetRotation(angleValut);
+                angleView.AddChidren(btn);
+                buttons.Add(btn);
+            };
+
+            var btnAngle = new Button()
+            {
+                TextAlignment = TextAlignment.CenterRight,
+                TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
+                TextColor = CSS_Color.PromptingColor1,
+                Text = function.GetAttrState("angle") + "掳"
+            };
+            angleView.AddChidren(btnAngle);
+
+            var angleBar = new DiyImageSeekBar()
+            {
+                Width = Application.GetRealWidth(220),
+                Height = Application.GetRealHeight(30),
+                SeekBarViewHeight = Application.GetRealHeight(0),
+                ThumbImagePath = "Public/ThumbImage2.png",
+                ThumbImageHeight = Application.GetRealHeight(20),
+                ProgressBarColor = 0x00000000,
+                ProgressTextColor = 0x00000000,
+                ProgressTextSize = 0,
+                MaxValue = 180,
+                Progress = 90,
+                ProgressChangeDelayTime = 0
+            };
+            angleView.AddChidren(angleBar);
+            angleBar.OnProgressChangedEvent = (sender, e) =>
+            {
+                float angle = (e - 90);
+                btnAngle.Text = angle + "掳";
+                foreach (var btn in buttons)
+                {
+                    btn.SetRotation(angle); Console.WriteLine(angle);
+                }
+                //if (100 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                //{
+                //    function.refreshTime = DateTime.Now;
+                //    foreach (var btn in buttons)
+                //    {
+                //        new System.Threading.Thread(() =>
+                //    {
+                //        Application.RunOnMainThread(() =>
+                //        {
+                //            btn.SetRotation(angle); Console.WriteLine(angle);
+                //        });
+                //    });
+                //    }
+                //}
+            };
+            angleBar.OnStopTrackingTouchEvent = (sende, e) =>
+            {
+                function.refreshTime = DateTime.Now;
+                new System.Threading.Thread(() =>
+                {
+                    Dictionary<string, string> dic = new Dictionary<string, string>();
+                    dic.Add("angle", e.ToString());
+                    Control.Ins.SendWriteCommand(function, dic);
+                })
+                { IsBackground = true }.Start();
+            };
+
+
+            btnCurtainClose = new Button()
+            {
+                X = Application.GetRealWidth(84),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png",
+                SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png",
+            };
+            controlView.AddChidren(btnCurtainClose);
+
+            btnCurtainStop = new Button()
+            {
+                X = Application.GetRealWidth(148),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "FunctionIcon/Curtain/CurtainStopIcon.png",
+                SelectedImagePath = "FunctionIcon/Curtain/CurtainStopOnIcon.png",
+            };
+            controlView.AddChidren(btnCurtainStop);
+
+            btnCurtainOpen = new Button()
+            {
+                X = Application.GetRealWidth(212),
+                Y = Application.GetRealHeight(466),
+                Width = Application.GetMinRealAverage(32),
+                Height = Application.GetMinRealAverage(32),
+                UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png",
+                SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png",
+            };
+            controlView.AddChidren(btnCurtainOpen);
+
+            LoadEventList();
+            new TopViewDiv(bodyView, Language.StringByID(StringId.Curtain)).LoadTopView_FunctionTop(function, actionRefresh);
+            new System.Threading.Thread(() =>
+            {
+                Control.Ins.SendReadCommand(function);
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鏇存柊绐楀笜
+        /// </summary>
+        /// <param name="updateTemp"></param>
+        public static void UpdataState(Function updateTemp)
+        {
+            Application.RunOnMainThread((Action)(() =>
+            {
+                if (bodyView == null)
+                    return;
+                if (bodyView.onControl)
+                    return;
+                if (updateTemp.spk == bodyView.function.spk && updateTemp.sid == bodyView.function.sid)
+                {
+                try
+                    {
+                        if (!bodyView.onCurtainAnimation)
+                        {
+                            bodyView.CurtainAnimation(Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent)));
+                        }
+                    }
+                    catch { }
+                }
+            }));
+        }
+
+        /// <summary>
+        /// 姝e湪鎵ц绐楀笜鍔ㄧ敾
+        /// </summary>
+        bool onCurtainAnimation = false;
+        /// <summary>
+        /// 绐楀笜鍔ㄧ敾
+        /// </summary>
+        /// <param name="progress"></param>
+        void CurtainAnimation(int progress)
+        {
+            onCurtainAnimation = true;
+            //杩愯鏂瑰悜 鎵撳紑锛堝姞杩涘害锛夛細鍏抽棴锛堝噺杩涘害锛�
+            bool runningDirection = progress > curtainSeekBar.Progress;
+            int curBarProgress = curtainSeekBar.Progress;
+            btnProgress.Text = progress + "%";
+            new System.Threading.Thread(() =>
+            {
+                try
+                {
+                    while (progress != curBarProgress && onCurtainAnimation)
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (runningDirection)
+                            {
+                                if (curtainSeekBar.Progress + 5 > progress)
+                                {
+                                    curtainSeekBar.Progress = progress;
+                                }
+                                else
+                                {
+                                    curtainSeekBar.Progress = curtainSeekBar.Progress + 5;
+                                }
+                            }
+                            else
+                            {
+                                if (curtainSeekBar.Progress - 5 < progress)
+                                {
+                                    curtainSeekBar.Progress = progress;
+                                }
+                                else
+                                {
+                                    curtainSeekBar.Progress = curtainSeekBar.Progress - 5;
+                                }
+                            }
+                            curBarProgress = curtainSeekBar.Progress;
+                        });
+                        System.Threading.Thread.Sleep(100);
+                    }
+                }
+                catch { }
+                finally
+                {
+                    new System.Threading.Thread(() =>
+                    {
+                        System.Threading.Thread.Sleep(3000);
+                        onCurtainAnimation = false;
+                    })
+                    { IsBackground = true, Priority = System.Threading.ThreadPriority.Lowest }.Start();
+                }
+            }).Start();
+        }
+
+
+        /// <summary>
+        /// 鍔犺浇浜嬩欢鍒楄〃
+        /// </summary>
+        void LoadEventList()
+        {
+            LoadEvent_ControlEvent();
+            LoadCollectionEvent();
+
+            //鍥為��鍒锋柊淇℃伅浜嬩欢
+            actionRefresh = () =>
+            {
+                btnFunctionName.Text = btnFunctionName_Out.Text = function.name;
+                btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName();
+            //function.SaveFunctionData(true);
+        };
+        }
+        /// <summary>
+        /// 鏀惰棌鍔熻兘鎸夐挳浜嬩欢
+        /// </summary>
+        void LoadCollectionEvent()
+        {
+            btnCollection.MouseUpEventHandler += (sender, e) =>
+            {
+                btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected;
+                function.CollectFunction();
+            };
+        }
+
+        /// <summary>
+        /// 鍔犺浇绐楀笜鎺у埗浜嬩欢
+        /// </summary>
+        void LoadEvent_ControlEvent()
+        {
+            btnCurtainClose.MouseUpEventHandler = (sender, e) =>
+            {
+            //if (!function.online)
+            //{
+            //    new Tip()
+            //    {
+            //        CloseTime = 1,
+            //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+            //        Direction = AMPopTipDirection.None,
+            //    }.Show(MainPage.BaseView);
+            //    return;
+            //}
+            new System.Threading.Thread(() =>
+            {
+                System.Threading.Thread.Sleep(2000);
+                Application.RunOnMainThread(() =>
+                {
+                    btnCurtainClose.IsSelected = false;
+                });
+            })
+                { IsBackground = true }.Start();
+                function.trait_on_off.curValue = "off";
+                function.SetAttrState(FunctionAttributeKey.Percent, 0);
+                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
+                DriverLayer.Control.Ins.SendWriteCommand(function, d);
+                CurtainAnimation(0);
+            };
+
+            btnCurtainStop.MouseUpEventHandler = (sender, e) =>
+            {
+            //if (!function.online)
+            //{
+            //    new Tip()
+            //    {
+            //        CloseTime = 1,
+            //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+            //        Direction = AMPopTipDirection.None,
+            //    }.Show(MainPage.BaseView);
+            //    return;
+            //}
+            onCurtainAnimation = false;
+                new System.Threading.Thread(() =>
+                {
+                    System.Threading.Thread.Sleep(2000);
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnCurtainStop.IsSelected = false;
+                    });
+                })
+                { IsBackground = true }.Start();
+                function.trait_on_off.curValue = "stop";
+                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
+                DriverLayer.Control.Ins.SendWriteCommand(function, d);
+            };
+
+            btnCurtainOpen.MouseUpEventHandler = (sender, e) =>
+            {
+            //if (!function.online)
+            //{
+            //    new Tip()
+            //    {
+            //        CloseTime = 1,
+            //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+            //        Direction = AMPopTipDirection.None,
+            //    }.Show(MainPage.BaseView);
+            //    return;
+            //}
+            new System.Threading.Thread(() =>
+            {
+                System.Threading.Thread.Sleep(2000);
+                Application.RunOnMainThread(() =>
+                {
+                    btnCurtainOpen.IsSelected = false;
+                });
+            })
+                { IsBackground = true }.Start();
+                function.trait_on_off.curValue = "on";
+                function.SetAttrState(FunctionAttributeKey.Percent, 100);
+                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
+                DriverLayer.Control.Ins.SendWriteCommand(function, d);
+                CurtainAnimation(100);
+            };
+
+            //if (function.online)
+            {
+                btnCurtainStop.MouseDownEventHandler = (sender, e) =>
+                {
+                    btnCurtainStop.IsSelected = true;
+                    btnCurtainClose.IsSelected = false;
+                    btnCurtainOpen.IsSelected = false;
+                };
+                btnCurtainOpen.MouseDownEventHandler = (sender, e) =>
+                {
+                    btnCurtainOpen.IsSelected = true;
+                    btnCurtainClose.IsSelected = false;
+                    btnCurtainStop.IsSelected = false;
+                };
+                btnCurtainClose.MouseDownEventHandler = (sender, e) =>
+                {
+                    btnCurtainClose.IsSelected = true;
+                    btnCurtainOpen.IsSelected = false;
+                    btnCurtainStop.IsSelected = false;
+                };
+
+                curtainSeekBar.OnProgressChangedEvent = (sender, e) =>
+                {
+                    btnProgress.Text = curtainSeekBar.Progress + "%";
+                };
+                curtainSeekBar.OnStopTrackingTouchEvent = (sender, e) =>
+                {
+                    btnProgress.Text = curtainSeekBar.Progress + "%";
+                //controlBar.Progress = curtainSeekBar.Progress;
+                new System.Threading.Thread(() =>
+                {
+                    function.SetAttrState(FunctionAttributeKey.Percent, e);
+                    function.refreshTime = DateTime.Now;
+                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                    d.Add(FunctionAttributeKey.Percent, e.ToString());
+                    DriverLayer.Control.Ins.SendWriteCommand(function, d);
+                })
+                    { IsBackground = true }.Start();
+                };
+
+            }
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs
index 90cadf6..d82a852 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPage.cs
@@ -354,20 +354,19 @@
             new System.Threading.Thread(() => {
                 while (true)
                 {
-                    System.Threading.Thread.Sleep(500);
-                    System.Threading.Thread.Sleep(500);
+                    System.Threading.Thread.Sleep(1000);
                     if (curDimmerStatus)
                     {
                         continue;
                     }
                     if (onDimmerBar)
                     {
-                        onDimmerBar = false;
                         continue;
                     }
                     else
                     {
                         DriverLayer.Control.Ins.SendReadCommand(function);
+                        curDimmerStatus = true;
                     }
                 }
             })
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs
index 6da0079..4ab9b83 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/ColorTureLampPageBLL.cs
@@ -175,45 +175,41 @@
             {
                 dimmerBar.OnStartTrackingTouchEvent = (sender, e) =>
                 {
-                    onDimmerBar = true;
+                    curDimmerStatus = onDimmerBar = true;
                 };
                 dimmerBar.OnProgressChangedEvent = (sender, e) =>
                 {
-                    dimmerBar.SetProgressBarColors(CSS_Color.AuxiliaryColor1, CSS_Color.AuxiliaryColor1);
-                //function.fadeTime = 0;
-                //if (!btnSwitch.IsSelected)
-                //{
-                //    dimmerBar.SetProgressBarColors(CSS_Color.AuxiliaryColor1, CSS_Color.AuxiliaryColor1);
-                //}
-                //btnSwitch.IsSelected = e > 0 ? true : false;
-                //function.brightness = e;
-                //function.trait_on_off.curValue = e > 0 ? "on" : "off";
+                    //dimmerBar.SetProgressBarColors(CSS_Color.AuxiliaryColor1, CSS_Color.AuxiliaryColor1);
+                if (!btnSwitch.IsSelected)
+                    {
+                        dimmerBar.SetProgressBarColors(CSS_Color.AuxiliaryColor1, CSS_Color.AuxiliaryColor1);
+                    }
+                    btnSwitch.IsSelected = e > 0 ? true : false;
+                    function.trait_on_off.curValue = e > 0 ? "on" : "off";
 
-                //if (e == 0 || e == 100)
-                //{
-                //    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                //    d.Add(FunctionAttributeKey.Brightness, function.brightness.ToString());
-                //    Control.Ins.SendWriteCommand(function, d);
-                //}
-                //else
-                //{
-                //    if (200 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
-                //    {
-                //        function.refreshTime = DateTime.Now;
-                //        new System.Threading.Thread(() =>
-                //        {
-                //            System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                //            d.Add(FunctionAttributeKey.Brightness, function.brightness.ToString());
-                //            Control.Ins.SendWriteCommand(function, d);
-                //        })
-                //        { IsBackground = true }.Start();
-                //    }
-                //}
+                    if (e == 0 || e == 100)
+                    {
+                        System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                        d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                        Control.Ins.SendWriteCommand(function, d);
+                    }
+                    else
+                    {
+                        if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                        {
+                            function.refreshTime = DateTime.Now;
+                            new System.Threading.Thread(() =>
+                            {
+                                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                                d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                                Control.Ins.SendWriteCommand(function, d);
+                            })
+                            { IsBackground = true }.Start();
+                        }
+                    }
 
-                //btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16 - 16) / 100) + Application.GetRealWidth(40);
-                //btnBrightnessText.Text = function.brightness + "%";
 
-                btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100) + Application.GetRealWidth(80);
+                    btnBrightnessText.Y = ((100 - dimmerBar.Progress) * Application.GetRealHeight(222 - 16) / 100) + Application.GetRealWidth(80);
                     btnBrightnessText.Text = dimmerBar.Progress + "%";
                 };
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPage.cs
index 6aca64f..58c4a31 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPage.cs
@@ -267,12 +267,12 @@
             new System.Threading.Thread(() => {
                 while (true)
                 {
-                    System.Threading.Thread.Sleep(500);
+                    System.Threading.Thread.Sleep(2000);
                     if (curDimmerStatus)
                     {
                         continue;
                     }
-                    if ( onDimmerBar)
+                    if (onDimmerBar)
                     {
                         onDimmerBar = false;
                         continue;
@@ -280,6 +280,7 @@
                     else
                     {
                         DriverLayer.Control.Ins.SendReadCommand(function);
+                        curDimmerStatus = true;
                     }
                 }
             })
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs
index 519aec2..f8bcb69 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs
@@ -104,10 +104,10 @@
                     function.SetAttrState(FunctionAttributeKey.Brightness, dimmerBar.Progress);
                     System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                     d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString());
-                    if(dimmerBar.Progress > 0)
-                    {
-                        d.Add(FunctionAttributeKey.OnOff, "on");
-                    }
+                    //if(dimmerBar.Progress > 0)
+                    //{
+                    //    d.Add(FunctionAttributeKey.OnOff, "on");
+                    //}
                     Control.Ins.SendWriteCommand(function, d);
                     btnBrightnessText.Text = dimmerBar.Progress + "%";
                 };
@@ -131,7 +131,7 @@
                     }
                     else
                     {
-                        if (500 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                        if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
                         {
                             function.refreshTime = DateTime.Now;
                             new System.Threading.Thread(() =>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
index 45ef832..84f44bd 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPage.cs
@@ -349,6 +349,30 @@
                 DriverLayer.Control.Ins.SendReadCommand(function);
             })
             { IsBackground = true }.Start();
+
+
+
+            new System.Threading.Thread(() => {
+                while (true)
+                {
+                    System.Threading.Thread.Sleep(1000);
+                    if (curDimmerStatus)
+                    {
+                        continue;
+                    }
+                    if (onDimmerBar)
+                    {
+                        continue;
+                    }
+                    else
+                    {
+                        DriverLayer.Control.Ins.SendReadCommand(function);
+                        curDimmerStatus = true;
+                    }
+                }
+            })
+            { IsBackground = true }.Start();
+
         }
     }
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
index 4826777..023c828 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
@@ -207,6 +207,7 @@
             };
         }
 
+        bool curDimmerStatus = false;
         /// <summary>
         /// 鐏厜璋冨厜浜嬩欢
         /// </summary>
@@ -225,12 +226,7 @@
                 //    }.Show(MainPage.BaseView);
                 //    return;
                 //}
-                new System.Threading.Thread(() =>
-                {
-                    System.Threading.Thread.Sleep(200);
-                    onDimmerBar = false;
-                })
-                { IsBackground = true }.Start();
+                curDimmerStatus = false;
                 function.SetAttrState(FunctionAttributeKey.Brightness, dimmerBar.Progress);
                 System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                 d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString());
@@ -241,44 +237,42 @@
             {
                 dimmerBar.OnStartTrackingTouchEvent = (sender, e) =>
                 {
-                    onDimmerBar = true;
+                    curDimmerStatus = onDimmerBar = true;
                 };
                 dimmerBar.OnProgressChangedEvent = (sender, e) =>
                 {
-                    //function.fadeTime = 0;
-                    //if (!btnSwitch.IsSelected)
-                    //{
-                    //    dimmerBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1;
-                    //}
-                    //btnSwitch.IsSelected = e > 0 ? true : false;
-                    //function.brightness = e;
-                    //function.trait_on_off.curValue = e > 0 ? "on" : "off";
+                    if (!btnSwitch.IsSelected)
+                    {
+                        dimmerBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1;
+                    }
+                    btnSwitch.IsSelected = e > 0 ? true : false;
+                    function.trait_on_off.curValue = e > 0 ? "on" : "off";
 
-                    //if (e == 0 || e == 100)
-                    //{
-                    //    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    //    d.Add(FunctionAttributeKey.Brightness, function.brightness.ToString());
-                    //    Control.Ins.SendWriteCommand(function, d);
-                    //}
-                    //else
-                    //{
-                    //    if (200 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
-                    //    {
-                    //        function.refreshTime = DateTime.Now;
-                    //        new System.Threading.Thread(() =>
-                    //        {
-                    //            //Control.Send(CommandType_A.write, function);
-                    //            System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    //            d.Add(FunctionAttributeKey.Brightness, function.brightness.ToString());
-                    //            Control.Ins.SendWriteCommand(function, d);
-                    //        })
-                    //        { IsBackground = true }.Start();
-                    //    }
-                    //    else
-                    //    {
-                    //        MainPage.Log("skip dimmer control!!");
-                    //    }
-                    //}
+                    if (e == 0 || e == 100)
+                    {
+                        System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                        d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                        Control.Ins.SendWriteCommand(function, d);
+                    }
+                    else
+                    {
+                        if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds)
+                        {
+                            function.refreshTime = DateTime.Now;
+                            new System.Threading.Thread(() =>
+                            {
+                                //Control.Send(CommandType_A.write, function);
+                                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                                d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                                Control.Ins.SendWriteCommand(function, d);
+                            })
+                            { IsBackground = true }.Start();
+                        }
+                        else
+                        {
+                            MainPage.Log("skip dimmer control!!");
+                        }
+                    }
                 };
             }
         }

--
Gitblit v1.8.0