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/Controls/DeviceCard/DeviceColorLightCardControl.cs |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
index 757165b..f62b952 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/DeviceColorLightCardControl.cs
@@ -17,9 +17,9 @@
         /// 鍒濆鍖栨帶浠�
         /// </summary>
         /// <param name="i_device"></param>
-        public override void InitControl(CommonDevice i_device)
+        public override void InitControl(CommonDevice i_device, Common.Room i_nowSelectRoom)
         {
-            base.InitControl(i_device);
+            base.InitControl(i_device, i_nowSelectRoom);
 
             //娣诲姞璺宠浆娣卞害鍗$墖淇℃伅浜嬩欢
             this.AddDetailInfoEvent(i_device);
@@ -28,6 +28,21 @@
             var btnSwitch = this.AddSwitchControl();
             btnSwitch.ButtonClickEvent += (sender, e) =>
             {
+                //鑾峰彇褰撳墠浜害
+                int level = Convert.ToInt32(i_device.GetType().InvokeMember("Level", System.Reflection.BindingFlags.GetField, null, i_device, null));
+                //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹�
+                if (Common.Config.Instance.Home.IsVirtually == true)
+                {
+                    //鐩存帴鍙樻洿缂撳瓨
+                    ((LightBase)i_device).OnOffStatus = btnSwitch.IsSelected == true ? 0 : 1;
+                    if (((LightBase)i_device).OnOffStatus == 1 && level == 0)
+                    {
+                        //濡傛灉褰撳墠鏄墦寮�鐘舵��,骞朵笖浜害涓�0鐨勮瘽,鍒欓渶瑕佸彉鎴�100%浜害
+                        i_device.GetType().InvokeMember("Level", System.Reflection.BindingFlags.SetField, null, i_device, new object[] { 100 });
+                    }
+                    this.RefreshControlInfo(this.device);
+                    return;
+                }
                 bool setStatu = !btnSwitch.IsSelected;
                 //鍙樻洿鍗$墖鐘舵��
                 this.SetCardOpenStatu(setStatu);
@@ -38,7 +53,21 @@
                 {
                     //鎵撳紑
                     this.SetDeviceStatuText(Language.StringByID(R.MyInternationalizationString.uOpen1));
-                    i_device.SwitchControl(1);
+                    if (level == 0)
+                    {
+                        //濡傛灉褰撳墠鏄墦寮�鐘舵��,骞朵笖浜害涓�0鐨勮瘽,鍒欓渶瑕佸彉鎴�100%浜害
+                        i_device.GetType().InvokeMember("SetLevel", System.Reflection.BindingFlags.InvokeMethod, null, i_device, new object[] { 254 });
+                    }
+                    else
+                    {
+                        i_device.SwitchControl(1);
+                        HdlThreadLogic.Current.RunThread(() =>
+                        {
+                            //鑾峰彇鐏厜浜害
+                            System.Threading.Thread.Sleep(300);
+                            HdlDeviceAttributeLogic.Current.SendLevelStatuComand(i_device);
+                        });
+                    }
                 }
                 else
                 {
@@ -65,7 +94,8 @@
 
                 //褰╃伅,璋冨厜鍣ㄧ被鍨嬬殑娣卞害鍗$墖鐣岄潰
                 var form = new ControlForm.DeviceColorLightDetailCardForm();
-                form.AddForm(i_device, UserCenter.HdlRoomLogic.Current.CurrentRoom, 965, 1316);
+                form.RowOrCardControl = this;
+                form.AddForm(i_device, this.nowSelectRoom, 965, 1316);
                 form.FormCloseEvent += this.CardDetailInfoBackEvent;
             };
         }
@@ -93,6 +123,11 @@
         /// </summary>
         public override void SendStatuComand()
         {
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹�,鍒欐鍔熻兘鏃犳晥
+                return;
+            }
             //妫�娴嬭兘鍚﹀彂閫佽幏鍙栫姸鎬佸懡浠�
             if (this.CheckCanSendStatuComand() == true)
             {

--
Gitblit v1.8.0