From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 16 七月 2024 13:59:56 +0800
Subject: [PATCH] 增加全部挂断

---
 HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs |  303 +++++++++++++++++++++++++++++++------------------
 1 files changed, 191 insertions(+), 112 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
index cdaef53..6a9bac7 100644
--- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using HDL_ON.DriverLayer;
 using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
 using HDL_ON.UI.Music;
 using Shared;
 
@@ -9,54 +10,60 @@
 {
     public partial class FunctionControlZone
     {
-        /// <summary>
-        /// 鏇存柊寮�鍏崇姸鎬�
-        /// </summary>
-        /// <param name="upfunc"></param>
-        public static void UpdataOnOffState(Function upfunc)
-        {
-            if(bodyDiv!= null)
-            {
-                Application.RunOnMainThread(() => {
-                    if(bodyDiv.Tag.ToString() == upfunc.sid)
-                    {
-                        for (var o = 0; o < bodyDiv.ChildrenCount; o++)
-                        {
-                            if (bodyDiv.GetChildren(o).GetType() == typeof(Button))
-                            {
-                                var btn = bodyDiv.GetChildren(o) as Button;
-                                if (btn.Tag != null)
-                                {
-                                    if (btn.Tag.ToString() == upfunc.sid + "_Switch")// + "_DimmerBar")
-                                    {
-                                        btn.IsSelected = upfunc.trait_on_off.curValue.ToString() == "on";
-                                    }
-                                }
-                            }
-                            else if (bodyDiv.GetChildren(o).GetType() == typeof(DiyImageSeekBar))
-                            {
-                                var btn = bodyDiv.GetChildren(o) as DiyImageSeekBar;
-                                if (btn.Tag != null)
-                                {
-                                    if (btn.Tag.ToString() == upfunc.sid + "_DimmerBar")
-                                    {
-                                        btn.Progress = Convert.ToInt32(upfunc.GetAttrState(FunctionAttributeKey.Brightness));
-                                    }
-                                }
-                            }
-                        }
+        //    /// <summary>
+        //    /// 鏇存柊寮�鍏崇姸鎬�
+        //    /// </summary>
+        //    /// <param name="upfunc"></param>
+        //    public static void UpdataOnOffState(Function upfunc)
+        //    {
+        //        if(bodyDiv!= null)
+        //        {
+        //            Application.RunOnMainThread(() => {
+        //                if(bodyDiv.Tag.ToString() == upfunc.sid)
+        //                {
+        //                    for (var o = 0; o < bodyDiv.ChildrenCount; o++)
+        //                    {
+        //                        if (bodyDiv.GetChildren(o).GetType() == typeof(Button))
+        //                        {
+        //                            var btn = bodyDiv.GetChildren(o) as Button;
+        //                            if (btn.Tag != null)
+        //                            {
+        //                                if (btn.Tag.ToString() == upfunc.sid + "_Switch")// + "_DimmerBar")
+        //                                {
+        //                                    btn.IsSelected = upfunc.trait_on_off.curValue.ToString() == "on";
+        //                                }
+        //                            }
+        //                        }
+        //                        else if (bodyDiv.GetChildren(o).GetType() == typeof(DiyImageSeekBar))
+        //                        {
+        //                            var btn = bodyDiv.GetChildren(o) as DiyImageSeekBar;
+        //                            if (btn.Tag != null)
+        //                            {
+        //                                if (btn.Tag.ToString() == upfunc.sid + "_DimmerBar")
+        //                                {
+        //                                    btn.Progress = Convert.ToInt32(upfunc.GetAttrState(FunctionAttributeKey.Brightness));
+        //                                }
+        //                            }
+        //                        }
+        //                    }
 
-                    }
+        //                }
+        //            });
+        //        }
+        //    }
+        /// <summary>
+        /// 鏇存柊鍦ㄧ嚎鐘舵��
+        /// </summary>
+        public void UpdataOnline(bool online)
+        {
+            if (bodyDiv != null)
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    bodyDiv.BackgroundColor = online ? CSS_Color.MainBackgroundColor : CSS_Color.PromptingColor2;
+                    bodyDiv.btnOffline.Visible = !online;
                 });
             }
-        }
-        /// <summary>
-        /// 鏇存柊浜害鐘舵��
-        /// </summary>
-        /// <param name="upfunc"></param>
-        static void UpdataBrightnessState(Function upfunc)
-        {
-
         }
 
         /// <summary>
@@ -79,6 +86,18 @@
 
             btnSwitch.MouseUpEventHandler = (sender, e) =>
             {
+                //DriverLayer.Control.Ins.GatewayOnline_Cloud = false;
+                //DriverLayer.Control.Ins.GatewayOnline_Local = true;
+                //if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnSwitch.IsSelected = !btnSwitch.IsSelected;
 
                 if(SPK.NotStatusSpkList.Contains( function.spk ))
@@ -109,34 +128,24 @@
         }
         #region 鐏厜鐨勪簨浠跺垪琛�
 
-        /// <summary>
-        /// 鐏厜寮�鍏充簨浠�
-        /// </summary>
-        void LoadEvent_LightSwitch(Button btnSwitch)
-        {
-            btnSwitch.MouseUpEventHandler += (sender, e) =>
-            {
-                btnSwitch.IsSelected = !btnSwitch.IsSelected;
-                new System.Threading.Thread(() =>
-                {
-                    if (SPK.LightSpkList().Contains( function.spk))
-                    {
-                        function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
-                        Dictionary<string, string> d = new Dictionary<string, string>();
-                        d.Add("on_off", function.trait_on_off.curValue.ToString());
-                        Control.Ins.SendWriteCommand(function, d);
-                    }
-                })
-                { IsBackground = true }.Start();
-            };
-        }
+
 
         /// <summary>
         /// 鐏厜浜害璋冭妭浜嬩欢
         /// </summary>
         void LoadEvent_LightDimming(DiyImageSeekBar dimmerControlBar)
         {
-            if(function.spk == SPK.LightDimming || function.spk == SPK.LightRGB)
+            if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+            {
+                //new Tip()
+                //{
+                //    CloseTime = 1,
+                //    Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //    Direction = AMPopTipDirection.None,
+                //}.Show(MainPage.BaseView);
+                return;
+            }
+            if (function.spk == SPK.LightDimming || function.spk == SPK.LightRGB || function.spk == SPK.LightCCT)
             {
                 dimmerControlBar.OnStartTrackingTouchEvent = (sender, e) => {
                     onDimmerBar = true;
@@ -152,32 +161,32 @@
                 };
                 dimmerControlBar.OnProgressChangedEvent = (sender, e) => {
                     dimmerControlBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1;
-                    //light.brightness = e;
-                    //light.trait_on_off.curValue = e > 0 ? "on" : "off";
+                    function.SetAttrState(FunctionAttributeKey.Brightness, e);
+                    function.trait_on_off.curValue = e > 0 ? "on" : "off";
 
-                    //if (e == 0 || e == 100)
-                    //{
-                    //    //Control.Send(CommandType_A.write, light);
-                    //    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    //    d.Add("brightness", light.brightness.ToString());
-                    //    Control.Ins.SendWriteCommand(light, d);
-                    //}
-                    //else
-                    //{
-                    //    var tm = (DateTime.Now - light.refreshTime).TotalMilliseconds;
-                    //    Console.WriteLine("skip time "+tm);
-                    //    if (300 < tm)
-                    //    {
-                    //        light.refreshTime = DateTime.Now;
-                    //        new System.Threading.Thread(() =>
-                    //        {
-                    //            System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    //            d.Add("brightness", light.brightness.ToString());
-                    //            Control.Ins.SendWriteCommand(light, d);
-                    //        })
-                    //        { IsBackground = true }.Start();
-                    //    }
-                    //}
+                    if (e == 0 || e == 100)
+                    {
+                        //Control.Send(CommandType_A.write, light);
+                        System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                        d.Add("brightness", e.ToString());
+                        Control.Ins.SendWriteCommand(function, d);
+                    }
+                    else
+                    {
+                        var tm = (DateTime.Now - function.refreshTime).TotalMilliseconds;
+                        Console.WriteLine("skip time " + tm);
+                        if (500 < tm)
+                        {
+                            function.refreshTime = DateTime.Now;
+                            new System.Threading.Thread(() =>
+                            {
+                                System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                                d.Add("brightness", e.ToString());
+                                Control.Ins.SendWriteCommand(function, d);
+                            })
+                            { IsBackground = true }.Start();
+                        }
+                    }
                 };
             }
 
@@ -192,41 +201,71 @@
         /// <param name="btnStop"></param>
         /// <param name="btnOpen"></param>
         /// <param name="btnClose"></param>
-        void LoadEvent_ControlCurtain(Button btnStop, Button btnOpen, Button btnClose, Function curtain)
+        void LoadEvent_ControlCurtain(Button btnStop, Button btnOpen, Button btnClose)
         {
             btnClose.MouseUpEventHandler = (sender, e) =>
             {
+                //if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnClose.IsSelected = true;
                 btnStop.IsSelected = false;
                 btnOpen.IsSelected = false;
-                curtain.trait_on_off.curValue = "off";
-                curtain.SetAttrState(FunctionAttributeKey.Percent, 0);
+                function.trait_on_off.curValue = "off";
+                function.SetAttrState(FunctionAttributeKey.Percent, 0);
                 Dictionary<string, string> d = new Dictionary<string, string>();
-                d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
-                Control.Ins.SendWriteCommand(curtain, d);
+                d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
+                Control.Ins.SendWriteCommand(function, d);
             };
 
             btnStop.MouseUpEventHandler = (sender, e) =>
             {
+                //if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnStop.IsSelected = true;
                 btnClose.IsSelected = false;
                 btnOpen.IsSelected = false;
-                curtain.trait_on_off.curValue = "stop";
+                function.trait_on_off.curValue = "stop";
                 Dictionary<string, string> d = new Dictionary<string, string>();
-                d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
-                Control.Ins.SendWriteCommand(curtain, d);
+                d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
+                Control.Ins.SendWriteCommand(function, d);
             };
 
             btnOpen.MouseUpEventHandler = (sender, e) =>
             {
+                //if (!function.online)//绂荤嚎涓嶅厑璁告搷浣�
+                //{
+                //    new Tip()
+                //    {
+                //        CloseTime = 1,
+                //        Text = Language.StringByID(StringId.DeviceOfflineCannotOption),
+                //        Direction = AMPopTipDirection.None,
+                //    }.Show(MainPage.BaseView);
+                //    return;
+                //}
                 btnOpen.IsSelected = true;
                 btnClose.IsSelected = false;
                 btnStop.IsSelected = false;
-                curtain.trait_on_off.curValue = "on";
-                curtain.SetAttrState(FunctionAttributeKey.Percent, 100);
+                function.trait_on_off.curValue = "on";
+                function.SetAttrState(FunctionAttributeKey.Percent, 100);
                 Dictionary<string, string> d = new Dictionary<string, string>();
-                d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString());
-                Control.Ins.SendWriteCommand(curtain, d);
+                d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
+                Control.Ins.SendWriteCommand(function, d);
             };
         }
         #endregion
@@ -243,6 +282,16 @@
             };
             btnUp.MouseUpEventHandler = (sender, e) =>
             {
+                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+                {
+                    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);
@@ -264,6 +313,16 @@
             };
             btnDown.MouseUpEventHandler = (sender, e) =>
             {
+                if (!function.isOnline())//绂荤嚎涓嶅厑璁告搷浣�
+                {
+                    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);
@@ -291,7 +350,7 @@
         /// <param name="btnOpen"></param>
         /// <param name="btnClose"></param>
         /// <param name="curtain"></param>
-        void LoadEvent_ControlMusic(Button btnPlay,Button btnNext,Button btnPrev, A31MusicModel a31player) 
+        void LoadEvent_ControlMusic(Button btnPlay,Button btnNext,Button btnPrev, Function a31player) 
         {
             if (a31player == null)
                 return;
@@ -299,7 +358,10 @@
             btnPrev.MouseDownEventHandler = (sender, e) =>
             {
                 btnPrev.IsSelected = true;
-                SendMethod.Previous(a31player);
+                a31player.SetAttrState("song_step", "up");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "up");
+                SendMethod.Current.SendControlCommand(a31player, dic);
             };
             btnPrev.MouseUpEventHandler = (sender, e) =>
             {
@@ -308,24 +370,30 @@
             ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
             btnPlay.MouseDownEventHandler = (sender, e) =>
             {
+                string status = "off";
                 if (btnPlay.IsSelected)
                 {
                     btnPlay.IsSelected = false;
-                    SendMethod.Pause(a31player);
-                    a31player.A31PlayStatus.status = "pause";
+                    status = "off";
                 }
                 else
                 {
                     btnPlay.IsSelected = true;
-                    SendMethod.Play(a31player);
-                    a31player.A31PlayStatus.status = "play";
+                    status = "on";
                 }
+                a31player.SetAttrState("on_off", status);
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("on_off", status);
+                SendMethod.Current.SendControlCommand(a31player, dic);
             };
             ///涓嬩竴鏇茬偣鍑讳簨浠�
             btnNext.MouseDownEventHandler = (sender, e) =>
             {
                 btnNext.IsSelected = true;
-                SendMethod.Next(a31player);
+                a31player.SetAttrState("song_step", "down");
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "down");
+                SendMethod.Current.SendControlCommand(a31player, dic);
             };
             btnNext.MouseUpEventHandler = (sender, e) =>
             {
@@ -339,7 +407,18 @@
         /// </summary>
         void LoadEvent_DivSkipEvent()
         {
-            var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor);
+            //if (function.spk == SPK.GroupControl)
+            //{
+            //    EventHandler<MouseEventArgs> handler = (sender, e) => {
+            //        var dialog = new GroupControlPage(FunctionList.List.groupControls.Find((obj) => obj.sid == function.sid));
+            //        dialog.ShowDialog();
+            //    };
+            //    this.MouseUpEventHandler = handler;
+            //    btnName.MouseUpEventHandler = handler;
+            //    btnFromFloor.MouseUpEventHandler = handler;
+            //    return;
+            //}
+            var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor, UI2.FuntionControlView.VideoDoorLock.CommonMethod.Comerom.room,this.action);
             this.MouseUpEventHandler = eventHandler;
             btnName.MouseUpEventHandler = eventHandler;
             btnFromFloor.MouseUpEventHandler = eventHandler;

--
Gitblit v1.8.0