From 4a83749337096aae6dd5ec4f44f16653fbc7268a Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 10 三月 2021 16:19:52 +0800
Subject: [PATCH] 2021-03-10 1.合并

---
 HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs |  226 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 156 insertions(+), 70 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
index 3e848e6..aa73f74 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Electrical/ClothesHangerPage.cs
@@ -64,8 +64,6 @@
             //鍒濆鍖栫涓�涓储寮曢〉鐨勫唴瀹�
             this.InitFrameWhiteContent1();
 
-            //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
-            this.RefreshNowDeviceStatuMemory(this.device);
             //鍒锋柊鐣岄潰鐘舵��
             this.RefreshFormStatu();
             //璇诲彇鐘舵��
@@ -126,6 +124,62 @@
             };
             FrameWhiteCentet1.AddChidren(btnDown);
 
+            #region 鎺у埗
+            btnUp.MouseDownEventHandler = (sender, e) => {
+                btnUp.IsSelected = true;
+            };
+            btnUp.MouseUpEventHandler = (sender, e) => {
+                new System.Threading.Thread(() =>
+                {
+                    System.Threading.Thread.Sleep(2000);
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnUp.IsSelected = false;
+                    });
+                })
+                { IsBackground = true }.Start();
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.Position, "up");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            //----
+            btnStop.MouseDownEventHandler = (sender, e) => {
+                btnStop.IsSelected = true;
+            };
+            btnStop.MouseUpEventHandler = (sender, e) => {
+                new System.Threading.Thread(() =>
+                {
+                    System.Threading.Thread.Sleep(2000);
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnStop.IsSelected = false;
+                    });
+                })
+                { IsBackground = true }.Start();
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.Position, "stop");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            //-----
+            btnDown.MouseDownEventHandler = (sender, e) => {
+                btnDown.IsSelected = true;
+            };
+            btnDown.MouseUpEventHandler = (sender, e) => {
+                new System.Threading.Thread(() =>
+                {
+                    System.Threading.Thread.Sleep(2000);
+                    Application.RunOnMainThread(() =>
+                    {
+                        btnDown.IsSelected = false;
+                    });
+                })
+                { IsBackground = true }.Start();
+                Dictionary<string, string> d = new Dictionary<string, string>();
+                d.Add(FunctionAttributeKey.Position, "down");
+                Control.Ins.SendWriteCommand(device, d);
+            };
+            #endregion
+
             #endregion
 
             #region 鑿滃崟
@@ -152,10 +206,12 @@
             {
                 FrameWhiteCentet1.AddChidren(hotDryView);
 
-                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-                    device.SetAttrState(FunctionAttributeKey.HotDry, "true");
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+                {
+                    string onoff = hotDryView.Lighting ? "false" : "true";
+                    device.SetAttrState(FunctionAttributeKey.HotDry, onoff);
                     Dictionary<string, string> d = new Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.HotDry, "true");
+                    d.Add(FunctionAttributeKey.HotDry, onoff);
                     Control.Ins.SendWriteCommand(device, d);
                 };
                 hotDryView.SetThouchEvent(eventHandler);
@@ -173,16 +229,18 @@
             windDryView.Height = Application.GetRealHeight(74);
             if (attrs.Contains(menu[1]))
             {
-                if(index == 1)
+                if (index == 1)
                 {
                     windDryView.Gravity = Gravity.CenterHorizontal;
                 }
                 FrameWhiteCentet1.AddChidren(windDryView);
 
-                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-                    device.SetAttrState(FunctionAttributeKey.WindDry, "true");
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+                {
+                    string onoff = windDryView.Lighting ? "false" : "true";
+                    device.SetAttrState(FunctionAttributeKey.WindDry, onoff);
                     Dictionary<string, string> d = new Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.WindDry, "true");
+                    d.Add(FunctionAttributeKey.WindDry, onoff);
                     Control.Ins.SendWriteCommand(device, d);
                 };
                 windDryView.SetThouchEvent(eventHandler);
@@ -190,7 +248,7 @@
                 index++;
             }
 
-            
+
 
             disinfectView = new ClothesHangerControl(
                                 "FunctionIcon/Electrical/ClothesHanger/ClothesHangerDisinfectIcon.png",
@@ -202,7 +260,7 @@
             disinfectView.Height = Application.GetRealHeight(74);
             if (attrs.Contains(menu[2]))
             {
-                if(index == 1)
+                if (index == 1)
                 {
                     disinfectView.Gravity = Gravity.CenterHorizontal;
                 }
@@ -212,10 +270,12 @@
                 }
                 FrameWhiteCentet1.AddChidren(disinfectView);
 
-                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
-                    device.SetAttrState(FunctionAttributeKey.Disinfect, "true");
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+                {
+                    string onoff = disinfectView.Lighting ? "false" : "true";
+                    device.SetAttrState(FunctionAttributeKey.Disinfect, onoff);
                     Dictionary<string, string> d = new Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.Disinfect, "true");
+                    d.Add(FunctionAttributeKey.Disinfect, onoff);
                     Control.Ins.SendWriteCommand(device, d);
                 };
                 disinfectView.SetThouchEvent(eventHandler);
@@ -232,10 +292,11 @@
             lightingView.Height = Application.GetRealHeight(74);
             if (attrs.Contains(menu[3]))
             {
-                if(index >2)
+                if (index > 2)
                 {
                     lightingView.Y = Application.GetRealHeight(409);
-                }else
+                }
+                else
                 {
                     lightingView.Y = Application.GetRealHeight(304);
                     if (index == 1)
@@ -249,7 +310,8 @@
                 }
                 FrameWhiteCentet1.AddChidren(lightingView);
 
-                EventHandler<MouseEventArgs> eventHandler = (sender, e) => {
+                EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
+                {
                     string onoff = lightingView.Lighting ? "off" : "on";
                     device.SetAttrState(FunctionAttributeKey.OnOff, onoff);
                     Dictionary<string, string> d = new Dictionary<string, string>();
@@ -260,6 +322,32 @@
 
                 index++;
             }
+
+            #endregion
+
+
+            #region 鏃堕棿璁剧疆
+            var timeSetView = new ClothesHangerControl(
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerTimeIcon.png",
+                                "FunctionIcon/Electrical/ClothesHanger/ClothesHangerTimeIconOn.png",
+                                Language.StringByID(StringId.Time),
+                                "");
+            timeSetView.Width = Application.GetRealWidth(96);
+            timeSetView.Height = Application.GetRealHeight(74);
+            timeSetView.Y = Application.GetRealHeight(409);
+            timeSetView.X = Application.GetRealWidth(266 - 33);
+
+
+            EventHandler<MouseEventArgs> eventHandler_timeSetView = (sender, e) =>
+            {
+                var setTimePage = new ClothesHangerSetTimePage(device);
+                MainPage.BasePageView.AddChidren(setTimePage);
+                setTimePage.LoadPage();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            };
+            timeSetView.SetThouchEvent(eventHandler_timeSetView);
+
+            FrameWhiteCentet1.AddChidren(timeSetView);
 
             #endregion
         }
@@ -276,8 +364,6 @@
             //涓嶆槸鍚屼竴涓笢瑗�
             if (this.device.sid != i_LocalDevice.sid) { return; }
 
-            //鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
-            this.RefreshNowDeviceStatuMemory(i_LocalDevice);
             //鍒锋柊鐣岄潰鐘舵��
             this.RefreshFormStatu();
         }
@@ -295,46 +381,48 @@
         /// </summary>
         private void RefreshFormStatu()
         {
-            Application.RunOnMainThread(() => {
+            Application.RunOnMainThread(() =>
+            {
                 btnIcon.IsSelected = true;
                 #region 鐐逛寒鏂囨湰
-                var hotDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDry);
+                var hotDryTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.HotDry);
                 if (hotDryTemp != null)
                 {
-                    hotDryView.SetViewStatus(hotDryTemp.value == "true");
+                    hotDryView.SetViewStatus(hotDryTemp.state == "true");
                 }
-                var windDryTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDry);
+                var windDryTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.WindDry);
                 if (windDryTemp != null)
                 {
-                    windDryView.SetViewStatus(windDryTemp.value == "true");
+                    windDryView.SetViewStatus(windDryTemp.state == "true");
                 }
-                var disinfectTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.Disinfect);
+                var disinfectTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.Disinfect);
                 if (disinfectTemp != null)
                 {
-                    disinfectView.SetViewStatus(disinfectTemp.value == "true");
+                    disinfectView.SetViewStatus(disinfectTemp.state == "true");
                 }
-                var lightTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.OnOff);
+                var lightTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.OnOff);
                 if (lightTemp != null)
                 {
-                    lightingView.SetViewStatus(lightTemp.value == "on");
+                    lightingView.SetViewStatus(lightTemp.state == "on");
                 }
+                Console.WriteLine($"鏃堕棿鎴筹細{device.time_stamp}  鏃堕棿锛歿device.GeteTime()} 鐑樺共:{hotDryTemp.state} 椋庡共:{windDryTemp.state} 娑堟瘨:{disinfectTemp.state} 鐏厜鐘舵�侊細{lightTemp.state}");
                 #endregion
 
                 #region 淇敼鏃堕棿
-                var hotDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.HotDryTimeLeft);
+                var hotDryTimeLeftTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.HotDryTimeLeft);
                 if (hotDryTimeLeftTemp != null)
                 {
-                    hotDryView.ChangeTime(hotDryTimeLeftTemp.value);
+                    hotDryView.ChangeTime(hotDryTimeLeftTemp.state);
                 }
-                var windDryTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.WindDryTimeLeft);
+                var windDryTimeLeftTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.WindDryTimeLeft);
                 if (windDryTimeLeftTemp != null)
                 {
-                    windDryView.ChangeTime(windDryTimeLeftTemp.value);
+                    windDryView.ChangeTime(windDryTimeLeftTemp.state);
                 }
-                var disinfectTimeLeftTemp = device.status.Find((sta) => sta.key == FunctionAttributeKey.DisinfectTimeLeft);
+                var disinfectTimeLeftTemp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.DisinfectTimeLeft);
                 if (disinfectTimeLeftTemp != null)
                 {
-                    disinfectView.ChangeTime(disinfectTimeLeftTemp.value);
+                    disinfectView.ChangeTime(disinfectTimeLeftTemp.state);
                 }
                 #endregion
 
@@ -346,18 +434,6 @@
 
         #region 鈻� 涓�鑸柟娉昣__________________________
 
-        /// <summary>
-        /// 鍒锋柊褰撳墠璁惧鐨勭姸鎬佺紦瀛�
-        /// </summary>
-        private void RefreshNowDeviceStatuMemory(Function i_LocalDevice)
-        {
-            foreach (var data in i_LocalDevice.status)
-            {
-                //寮�鍏�
-                //if (data.key == "on_off") { this.weepRobotData.Cleaning = data.value.ToLower() == "on"; }
-            }
-        }
-
         #endregion
     }
 
@@ -367,11 +443,15 @@
         private Button btnTitle;
         private Button btnTime;
         /// <summary>
+        /// 鍊掕鏃舵椂闂�
+        /// </summary>
+        private int leftTime = 0;
+        /// <summary>
         /// 鎺т欢鏄惁鐐逛寒
         /// </summary>
         public bool Lighting = false;
 
-        public ClothesHangerControl(string iconPath1, string iconPath2,string title,string time)
+        public ClothesHangerControl(string iconPath1, string iconPath2, string title, string time)
         {
             btnIcon = new Button()
             {
@@ -397,7 +477,7 @@
             btnTime = new Button()
             {
                 Gravity = Gravity.CenterHorizontal,
-                Y = btnTitle.Bottom,
+                Y = Application.GetRealHeight(74-32),
                 Height = Application.GetRealHeight(32),
                 Text = time,
                 TextColor = 0x00000000,
@@ -410,39 +490,50 @@
         /// 淇敼鏄剧ず鏃堕棿
         /// </summary>
         /// <param name="newTime"></param>
-        public void ChangeTime (string newTime)
+        public void ChangeTime(string newTime)
         {
-            if(newTime == "0")
+            int.TryParse(newTime, out leftTime);
+            if (leftTime > 0)
             {
-                newTime = "";
+                Application.RunOnMainThread(() =>
+                {
+                    btnTime.Text = new TimeSpan(0, leftTime, 0).ToString().Remove(5, 3);
+                });
+                leftTime--;
             }
-
-            int time = 0;
-            int.TryParse(newTime, out time);
-            time = time * 60;
-
+            else if (leftTime == 0)
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    btnTime.Text = "";
+                });
+            }
             if (countdownThread == null)
             {
-                countdownThread = new System.Threading.Thread(() => {
-                    while(true)
+                countdownThread = new System.Threading.Thread(() =>
+                {
+
+                    while (true)
                     {
-                        if(time>1)
+                        if (leftTime > 0)
                         {
                             Application.RunOnMainThread(() =>
                             {
-                                btnTime.Text = new TimeSpan(0, 0, time).ToString();
+                                btnTime.Text = new TimeSpan(0, leftTime, 0).ToString().Remove(5,3) ;
                             });
-                            System.Threading.Thread.Sleep(1000);
-                            time--;
-                        }else
+                            leftTime--;
+                        }
+                        else if(leftTime == 0)
                         {
                             Application.RunOnMainThread(() =>
                             {
                                 btnTime.Text = "";
                             });
                         }
+                        System.Threading.Thread.Sleep(60000);
                     }
-                }) { IsBackground = true };
+                })
+                { IsBackground = true };
                 countdownThread.Start();
             }
         }
@@ -450,11 +541,6 @@
         public void SetViewStatus(bool state)
         {
             btnIcon.IsSelected = btnTitle.IsSelected = btnTime.IsSelected = Lighting = state;
-        }
-
-        public bool GetViewState()
-        {
-            return Lighting;
         }
 
         /// <summary>
@@ -472,4 +558,4 @@
         /// </summary>
         System.Threading.Thread countdownThread;
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0