From 264f86c363a6a019fac8eb138877fee9e4734e2d Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期六, 21 八月 2021 17:45:44 +0800
Subject: [PATCH] Merge branch 'WJC' into wxr7

---
 HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs     |   12 
 HDL-ON_Android/Assets/Language.ini                             |   79 ++--
 HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs |   28 +
 HDL-ON_iOS/Resources/Phone/LogicIcon/security.png              |    0 
 HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs           |  106 +++++
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs           |   79 ++++
 HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs            |   28 +
 HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs        |   79 ++++
 HDL-ON_iOS/Resources/Language.ini                              |   82 ++--
 HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs         |   35 +
 HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs     |    7 
 HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs               |    5 
 HDL-ON_Android/Assets/Phone/LogicIcon/security.png             |    0 
 HDL_ON/Common/R.cs                                             |    8 
 HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs            |  423 ++++++++----------------
 15 files changed, 578 insertions(+), 393 deletions(-)

diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini
index 895b1a4..b23332d 100644
--- a/HDL-ON_Android/Assets/Language.ini
+++ b/HDL-ON_Android/Assets/Language.ini
@@ -810,43 +810,7 @@
 6095=More than 30 add buttons
  
  
-7108=Leak/No Leak
-7109=Leak
-7110=No leak
-7111=Water leaking/no water leaking
-7112=Water leaking
-7113=No water leaking
-7114=Someone/Nobody
-7115=Someone
-7116=Nobody
-7117=Open/Close
-7118=On
-7119=Close
-7120=Anti-dismantling function
-7121=Online
-7122=Not online
-7123=Air quality
-7124=Excellent
-7125=Good
-7126=Poor
-7127=Send notification
-7128=Notification content
-7129=(within 100 characters)
-7130=Account selection
-7131=App push
-7132=Automation
-7133=Executed
-7134=Target State
-7135=Tumble
-7136=Temperature
-7137=Humidity
-7138=PM2.5
-7139=CO2
-7140=TVOC
-7141=Exceeding
-7142=Serious
-7143=High
-7144=excellence
+
  
  
 6000=Rename
@@ -975,6 +939,46 @@
 7105=Light pollution: 75 ~ 115ug/m3
 7106=Moderate pollution: 115 ~ 150ug/m3
 7107=Heavy pollution: > 150ug/m3
+7108=Leak/No Leak
+7109=Leak
+7110=No leak
+7111=Water leaking/no water leaking
+7112=Water leaking
+7113=No water leaking
+7114=Someone/Nobody
+7115=Someone
+7116=Nobody
+7117=Open/Close
+7118=On
+7119=Close
+7120=Anti-dismantling function
+7121=Online
+7122=Not online
+7123=Air quality
+7124=Excellent
+7125=Good
+7126=Poor
+7127=Send notification
+7128=Notification content
+7129=(within 100 characters)
+7130=Account selection
+7131=App push
+7132=Automation
+7133=Executed
+7134=Target State
+7135=Tumble
+7136=Temperature
+7137=Humidity
+7138=PM2.5
+7139=CO2
+7140=TVOC
+7141=Exceeding
+7142=Serious
+7143=High
+7144=excellence
+7145=Security
+7146=Add security
+7146=娣诲姞瀹夐槻
     
 9000=Please sign in with new cell phone number.
 9001=Please sign in with new email address.
@@ -2041,6 +2045,7 @@
 7142=涓ラ噸
 7143=鍋忛珮
 7144=浼樼
+7145=瀹夐槻
  
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
 9001=璇蜂娇鐢ㄦ柊鐨勯偖绠辫处鍙风櫥褰旳PP
diff --git a/HDL-ON_Android/Assets/Phone/LogicIcon/security.png b/HDL-ON_Android/Assets/Phone/LogicIcon/security.png
new file mode 100644
index 0000000..6514330
--- /dev/null
+++ b/HDL-ON_Android/Assets/Phone/LogicIcon/security.png
Binary files differ
diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini
index 14e0b7c..853795f 100644
--- a/HDL-ON_iOS/Resources/Language.ini
+++ b/HDL-ON_iOS/Resources/Language.ini
@@ -824,43 +824,7 @@
 6095=More than 30 add buttons
  
  
-7108=Leak/No Leak
-7109=Leak
-7110=No leak
-7111=Water leaking/no water leaking
-7112=Water leaking
-7113=No water leaking
-7114=Someone/Nobody
-7115=Someone
-7116=Nobody
-7117=Open/Close
-7118=On
-7119=Close
-7120=Anti-dismantling function
-7121=Online
-7122=Not online
-7123=Air quality
-7124=Excellent
-7125=Good
-7126=Poor
-7127=Send notification
-7128=Notification content
-7129=(within 100 characters)
-7130=Account selection
-7131=App push
-7132=Automation
-7133=Executed
-7134=Target State
-7135=Tumble
-7136=Temperature
-7137=Humidity
-7138=PM2.5
-7139=CO2
-7140=TVOC
-7141=Exceeding
-7142=Serious
-7143=High
-7144=excellence
+
  
  
 6000=Rename
@@ -989,6 +953,47 @@
 7105=Light pollution: 75 ~ 115ug/m3
 7106=Moderate pollution: 115 ~ 150ug/m3
 7107=Heavy pollution: > 150ug/m3
+7108=Leak/No Leak
+7109=Leak
+7110=No leak
+7111=Water leaking/no water leaking
+7112=Water leaking
+7113=No water leaking
+7114=Someone/Nobody
+7115=Someone
+7116=Nobody
+7117=Open/Close
+7118=On
+7119=Close
+7120=Anti-dismantling function
+7121=Online
+7122=Not online
+7123=Air quality
+7124=Excellent
+7125=Good
+7126=Poor
+7127=Send notification
+7128=Notification content
+7129=(within 100 characters)
+7130=Account selection
+7131=App push
+7132=Automation
+7133=Executed
+7134=Target State
+7135=Tumble
+7136=Temperature
+7137=Humidity
+7138=PM2.5
+7139=CO2
+7140=TVOC
+7141=Exceeding
+7142=Serious
+7143=High
+7144=excellence
+7145=Security
+7146=Add security
+
+
     
 9000=Please sign in with new cell phone number.
 9001=Please sign in with new email address.
@@ -2068,6 +2073,9 @@
 7142=涓ラ噸
 7143=鍋忛珮
 7144=浼樼
+7145=瀹夐槻
+7146=娣诲姞瀹夐槻
+
  
 9000=璇蜂娇鐢ㄦ柊鐨勬墜鏈鸿处鍙风櫥褰旳PP
 9001=璇蜂娇鐢ㄦ柊鐨勯偖绠辫处鍙风櫥褰旳PP
diff --git a/HDL-ON_iOS/Resources/Phone/LogicIcon/security.png b/HDL-ON_iOS/Resources/Phone/LogicIcon/security.png
new file mode 100644
index 0000000..6514330
--- /dev/null
+++ b/HDL-ON_iOS/Resources/Phone/LogicIcon/security.png
Binary files differ
diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs
index 7fad7c1..3160dc2 100644
--- a/HDL_ON/Common/R.cs
+++ b/HDL_ON/Common/R.cs
@@ -2539,6 +2539,14 @@
         /// 浼樼
         /// </summary>
         public const int youxiu = 7144;
+        /// <summary>
+        /// 瀹夐槻
+        /// </summary>
+        public const int anfang = 7145;
+        /// <summary>
+        /// 娣诲姞瀹夐槻
+        /// </summary>
+        public const int addSecurityLogic = 7046;
 
 
         #region LE鏂板
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
index 3f835d8..65f2bec 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddInputType.cs
@@ -49,9 +49,16 @@
                 functionView.frameLayout.Y = Application.GetRealHeight(0);
             }
 
+            //鍦烘櫙
+            LogicView.SelectTypeView sceneView = new LogicView.SelectTypeView();
+            sceneView.frameLayout.Y = functionView.frameLayout.Bottom;
+            sceneView.btnText.TextID = StringId.Scenes;
+            sceneView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
+            viewLayout.AddChidren(sceneView.FLayoutView());
+
             //瀹ゅ鍙樺寲
             LogicView.SelectTypeView shiwaiView = new LogicView.SelectTypeView();
-            shiwaiView.frameLayout.Y = functionView.frameLayout.Bottom;
+            shiwaiView.frameLayout.Y = sceneView.frameLayout.Bottom;
             shiwaiView.btnText.TextID = StringId.shiwaibainhua;
             shiwaiView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
             
@@ -78,6 +85,11 @@
                 funTpye.Show(LogicMethod.condition_if);
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             };
+            //鍦烘櫙鐐瑰嚮浜嬩欢
+            sceneView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                SceneMethod();
+            };
             //瀹ゅ鍙樺寲
             shiwaiView.btnClick.MouseUpEventHandler += (sen, e) => {
                 Weather weather = new Weather();
@@ -88,5 +100,70 @@
             #endregion
 
         }
+
+        /// <summary>
+        /// 娣诲姞鍦烘櫙
+        /// </summary>
+        public void SceneMethod()
+        {
+            var sceneList = LogicMethod.CurrLogicMethod.GetSceneList();
+            List<string> nameList = new List<string>();
+            for (int i = 0; i < sceneList.Count; i++)
+            {
+                var scene = sceneList[i];
+                nameList.Add(scene.name);
+            }
+            PublicInterface publicInterface = new PublicInterface();
+            publicInterface.FrameOrVv(this, nameList, new List<string> { }, StringId.addSceneLogic, (index) =>
+            {
+                var sceneSelecetd = sceneList[index];
+                Input input = new Input();
+                input.sid = sceneSelecetd.sid;
+                input.condition_type = "10";
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                LogicMethod.CurrLogicMethod.dictionary(dic, "key", "scene");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
+                LogicMethod.CurrLogicMethod.dictionary(dic, "value", "on");
+                input.condition.Add(dic);
+                AddCondition(input);
+                LogicMethod.CurrLogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            });
+        }
+
+        /// <summary>
+        /// 娣诲姞鏉′欢
+        /// </summary>
+        /// <param name="input"></param>
+        private void AddCondition(Input input)
+        {
+            ///璁板綍绱㈠紩鍊�
+            int index = -1;
+            for (var i = 0; i < Logic.currlogic.input.Count; i++)
+            {
+                var condition_type = Logic.currlogic.input[i].condition_type;
+                if (condition_type == "10")
+                {
+                    ///鎵惧埌鏍囪绱㈠紩锛岄��鍑哄惊鐜綋
+                    index = i;
+                    break;
+                }
+            }
+            if (index != -1)
+            {
+                //绉婚櫎鏃ф暟鎹�
+                Logic.currlogic.input.RemoveAt(index);
+                //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�
+                Logic.currlogic.input.Insert(index, input);
+            }
+            else
+            {
+                Logic.currlogic.input.Add(input);
+            }
+        }
     }
 }
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
index cdb06f7..31845a4 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/AddTarget.cs
@@ -36,11 +36,18 @@
             viewLayout.AddChidren(functionView.FLayoutView());
 
             //鍦烘櫙
-            LogicView.SelectTypeView sceneView = new LogicView.SelectTypeView();
+            LogicView.SelectTypeView sceneView= new LogicView.SelectTypeView();
             sceneView.frameLayout.Y = functionView.frameLayout.Bottom;
             sceneView.btnText.TextID = StringId.Scenes;
             sceneView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
             viewLayout.AddChidren(sceneView.FLayoutView());
+
+            //瀹夐槻
+            LogicView.SelectTypeView securityView = new LogicView.SelectTypeView();
+            securityView.frameLayout.Y = sceneView.frameLayout.Bottom;
+            securityView.btnText.TextID = StringId.anfang;
+            securityView.btnIcon.UnSelectedImagePath = "LogicIcon/security.png";
+            viewLayout.AddChidren(securityView.FLayoutView());
 
             //寤舵椂
             LogicView.SelectTypeView delayView = new LogicView.SelectTypeView();
@@ -64,6 +71,11 @@
             sceneView.btnClick.MouseUpEventHandler += (sen, e) =>
             {
                 SceneMethod();
+            };
+            //瀹夐槻鐐瑰嚮浜嬩欢
+            securityView.btnClick.MouseUpEventHandler += (sen, e) =>
+            {
+                SecurityMethod(this);
             };
             //寤舵椂鐐瑰嚮浜嬩欢
             delayView.btnClick.MouseUpEventHandler += (sen, e) =>
@@ -92,7 +104,7 @@
                 nameList.Add(scene.name);
             }
             PublicInterface publicInterface = new PublicInterface();
-            publicInterface.FrameOrVv(this, nameList, StringId.addSceneLogic, (index) =>
+            publicInterface.FrameOrVv(this, nameList,new List<string> { }, StringId.addSceneLogic, (index) =>
             {
                 var sceneSelecetd = sceneList[index];
                 Output outputDevice = new Output();
@@ -108,7 +120,41 @@
                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
             });
         }
-
+        /// <summary>
+        /// 娣诲姞瀹夐槻
+        /// </summary>
+        public void SecurityMethod(FrameLayout frameLayout, bool edit=false, int index1=-1)
+        {
+            List<string> stateList = new List<string>();
+            if (edit&& index1 != -1) {
+                Output output = Logic.currlogic.output[index1];
+                var security = LogicMethod.CurrLogicMethod.GetSecurity(output.sid);
+                stateList.Add(security.name);
+            }
+            var securityList = LogicMethod.CurrLogicMethod.GetSecurityList(); 
+            List<string> nameList = new List<string>();
+            for (int i = 0; i < securityList.Count; i++)
+            {
+                var security = securityList[i];
+                nameList.Add(security.name); 
+            }
+            PublicInterface publicInterface = new PublicInterface();
+            publicInterface.FrameOrVv(frameLayout, nameList, stateList, StringId.addSecurityLogic,(index) =>
+            {
+                var securitySelecetd = securityList[index];
+                Output outputDevice = new Output();
+                outputDevice.target_type = "3";
+                outputDevice.sid = securitySelecetd.sid;
+                //娌″暐浣滅敤锛屼负浜嗗彂閫佹暟鎹牸寮忕粺涓�;
+                outputDevice.status = new List<Dictionary<string, string>> { new Dictionary<string, string> { { "key", "security" }, { "value", "0" } } };
+                AddOutput(outputDevice,true);
+                LogicMethod.CurrLogicMethod.RemoveAllView();
+                AddLogic addLogic = new AddLogic();
+                MainPage.BasePageView.AddChidren(addLogic);
+                addLogic.Show();
+                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+            });
+        }
         /// <summary>
         /// 寤舵椂鏃堕棿鏂规硶
         /// </summary>
@@ -137,7 +183,7 @@
             if (edit)
             {
                 Output output = Logic.currlogic.output[index];
-                if (output.target_type == "3")
+                if (output.target_type == "4")
                 {
                     List<Dictionary<string, string>> dicList = output.status as List<Dictionary<string, string>>;
                     foreach (var dic in dicList)
@@ -169,7 +215,7 @@
                 }
                 Output outputTime= new Output();
                 outputTime.sid = LogicMethod.CurrLogicMethod.NewSid();
-                outputTime.target_type = "3";
+                outputTime.target_type = "4";
                 Dictionary<string, string> dic = new Dictionary<string, string>();
                 LogicMethod.CurrLogicMethod.dictionary(dic, "key", "delay");
                 LogicMethod.CurrLogicMethod.dictionary(dic, "value", timepoint);
@@ -195,23 +241,34 @@
 
             };
         }
-
         /// <summary>
         /// 娣诲姞鐩爣
         /// </summary>
         /// <param name="target"></param>
-        private void AddOutput(Output target)
+        /// <param name="bool_if">琛ㄧず鍚敤涓嶅悓鏉′欢</param>
+        private void AddOutput(Output target,bool bool_if=false)
         {
             int indexValue = -1;
             for (int i = 0; i < Logic.currlogic.output.Count; i++)
             {
-                if (Logic.currlogic.output[i].sid == target.sid)
+                if (bool_if)
                 {
-                    indexValue = i;
-                    break;
+                    ///瀹夐槻鍏佽涓�绉�
+                    if (Logic.currlogic.output[i].target_type == target.target_type)
+                    {
+                        indexValue = i;
+                        break;
+                    }
+                }
+                else
+                {
+                    if (Logic.currlogic.output[i].sid == target.sid)
+                    {
+                        indexValue = i;
+                        break;
+                    }
                 }
             }
-
             if (indexValue != -1)
             {
                 Logic.currlogic.output.RemoveAt(indexValue);
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
index 398c19a..22c90d5 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -504,6 +504,17 @@
                             }
                         }
                         break;
+                    case "10":
+                        {
+                            //鐢╯id鎵惧埌鍦烘櫙锛�
+                            var scene = LogicMethod.CurrLogicMethod.GetSecne(inputCondition.sid);
+                            inputView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
+                            inputView.btnNextIcon.Visible = false;
+                            inputView.btnClick.Visible = false;
+                            //鏄剧ず鍦烘櫙鍚嶇О
+                            inputView.btnText.Text = scene.name;
+                        }
+                        break;
 
                 }
                 //鍐嶆缂栬緫鏉′欢鐘舵�佺偣鍑讳簨浠�
@@ -755,6 +766,7 @@
                                 MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                             }
                             break;
+                     
                     }
                 };
                 ///鍒犻櫎鎺т欢
@@ -1088,6 +1100,15 @@
                         break;
                     case "3":
                         {
+                            //鐢╯id鎵惧埌瀹夐槻锛�
+                            var security = LogicMethod.CurrLogicMethod.GetSecurity(outputTarget.sid);
+                            targetView.btnIcon.UnSelectedImagePath = "LogicIcon/security.png";
+                            //鏄剧ず瀹夐槻鍚嶇О 
+                            stateStr = security.name;
+                        }
+                        break;
+                    case "4":
+                        {
                             targetView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png";
                             foreach (var dic in dicList)
                             {
@@ -1139,7 +1160,12 @@
                             break;
                         case "3":
                             {
-
+                                AddTarget addTarget = new AddTarget();
+                                addTarget.SecurityMethod(thisView, edit, indexVulae);
+                            }
+                            break;
+                        case "4":
+                            {
                                 FrameLayout fLayout = new FrameLayout
                                 {
                                     BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
index f076168..19c31ea 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -93,6 +93,8 @@
         /// 浜戠澶╂皵鏉′欢=6;
         /// 鏌愪釜閫昏緫/鍦烘櫙鐨勮緭鍑烘潯浠�=7;
         /// 鍦扮悊鍥存爮=8;
+        /// 绌烘皵璐ㄩ噺=9;
+        /// 鍦烘櫙=10;
         /// </summary>
         public string condition_type = "";
         public List<Dictionary<string, string>> condition = new List<Dictionary<string, string>>();
@@ -119,7 +121,8 @@
         /// 閫昏緫杈撳嚭鐩爣绫诲瀷
         /// 璁惧=1;
         /// 鍦烘櫙=2;
-        /// 寤舵椂=3;
+        /// 瀹夐槻=3;
+        /// 寤舵椂=4;
         /// </summary>
         public string target_type = "";
         public List<Dictionary<string, string>> status = new List<Dictionary<string, string>>();
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
index f55167c..8acfce2 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -179,12 +179,21 @@
             return Entity.FunctionList.List.GetDeviceFunctionList();
         }
         /// <summary>
-        /// 鑾峰彇缃戝叧鍦烘櫙鍒楄〃
+        /// 鑾峰彇鍦烘櫙鍒楄〃
         /// </summary>
         /// <returns></returns>
         public List<HDL_ON.Entity.Scene> GetSceneList()
         {
             return HDL_ON.Entity.FunctionList.List.scenes;
+        }
+
+        /// <summary>
+        /// 鑾峰彇瀹夐槻鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        public List<HDL_ON.Entity.SecurityAlarm> GetSecurityList() 
+        {
+            return FunctionList.List.securities;
         }
         /// <summary>
         /// 鑾峰彇鎴块棿鐨勮澶囧垪琛�
@@ -217,7 +226,7 @@
             return deviceLists;
         }
         /// <summary>
-        /// 鑾峰彇褰撲釜璁惧
+        /// 鑾峰彇璁惧锛堝姛鑳斤級瀵硅薄
         /// </summary>
         /// <param name="sid">璁惧鍞竴鏍囪瘑</param>
         /// <returns></returns>
@@ -238,7 +247,7 @@
         }
 
         /// <summary>
-        /// 鑾峰彇褰撲釜鍦烘櫙
+        /// 鑾峰彇鍦烘櫙瀵硅薄
         /// </summary>
         /// <param name="sid">鍦烘櫙鍞竴鏍囪瘑</param>
         /// <returns></returns>
@@ -258,6 +267,26 @@
             return scene;
         }
         /// <summary>
+        /// 鑾峰彇瀹夐槻瀵硅薄
+        /// </summary>
+        /// <param name="sid">瀹夐槻鍞竴鏍囪瘑</param>
+        /// <returns></returns>
+        public HDL_ON.Entity.SecurityAlarm GetSecurity(string sid)
+        {
+            HDL_ON.Entity.SecurityAlarm security = new Entity.SecurityAlarm() { name = "Unknown" };
+            List<HDL_ON.Entity.SecurityAlarm> SecurityLists = GetSecurityList();
+            for (int i = 0; i < SecurityLists.Count; i++)
+            {
+                var sce = SecurityLists[i];
+                if (sce.sid == sid)
+                {
+                    security = sce;
+                    break;
+                }
+            }
+            return security;
+        }
+        /// <summary>
         /// 鑾峰彇鎴块棿鍚�(鍗虫槸=鍖哄煙鍚嶇О)
         /// </summary>
         /// <param name="device">璁惧</param>
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
index 372f4bb..e933b09 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -357,6 +357,8 @@
             //1-10(琛ㄧず鏉′欢鍥炬爣)鑷繁灞�閮ㄥ畾涔変负浜嗘樉绀洪�変腑鏉′欢绫诲瀷鍥炬爣
             //1-鏃堕棿鍥炬爣
             //2-鍔熻兘鍥炬爣
+            //3-浜戠鍥炬爣
+            //4-鍦烘櫙鍥炬爣
             for (int i = 0; i < logic.input.Count; i++)
             {
                 if (logic.input[i] == null)
@@ -386,6 +388,12 @@
 
                         }
                         break;
+                    case 10:
+                        {
+                            iconInt = 4;
+
+                        }
+                        break;
                 }
 
                 if (!iconIntValue.Contains(iconInt))
@@ -401,6 +409,7 @@
             //12-20(琛ㄧず鐩爣鍥炬爣)鑷繁灞�閮ㄥ畾涔変负浜嗘樉绀洪�変腑鐩爣绫诲瀷鍥炬爣
             //12-鍔熻兘鍥炬爣
             //13-鍦烘櫙鍥炬爣
+            //14-瀹夐槻鍥炬爣
             //14-寤舵椂鍥炬爣
             for (int i = 0; i < logic.output.Count; i++)
             {
@@ -423,6 +432,12 @@
                     case 3:
                         {
                             iconInt = 14;
+
+                        }
+                        break;
+                    case 4:
+                        {
+                            iconInt = 15;
 
                         }
                         break;
@@ -483,6 +498,12 @@
                             strIcon = "LogicIcon/shiwaitianqi.png";
                         }
                         break;
+                    case 4:
+                        {
+
+                            strIcon = "LogicIcon/selectTheScene.png";
+                        }
+                        break;
                     case 11:
                         {
                             //鍒嗗壊鏉′欢鍜岀洰鏍囩殑鍥炬爣
@@ -502,7 +523,14 @@
                         break;
                     case 14:
                         {
+
+                            strIcon = "LogicIcon/security.png";
+                        }
+                        break;
+                    case 15:
+                        {
                             //strIcon = "LogicIcon/timeicon.png";
+
                         }
                         break;
 
diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
index 27524ab..92fc099 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
@@ -263,7 +263,7 @@
         /// <param name="list">鏄剧ず鏁版嵁婧�</param>
         /// <param name="titleText">鏍囬</param>
         /// <param name="action">杩斿洖鍊肩储寮曞��</param>
-        public void FrameOrVv(FrameLayout frame, List<string> list, int titleText, Action<int> action)
+        public void FrameOrVv(FrameLayout frame, List<string> list, List<string> stateList, int titleText, Action<int> action)
         {
 
             int line = 0;
@@ -366,6 +366,11 @@
                 {
                     verticalRefresh.AddChidren(checkView.FLayoutView());
                 }
+
+                if (stateList.Contains(strName))
+                {
+                    checkView.btnCheckIcon.IsSelected = true;
+                }
                 checkView.btnText.Text = strName;
                 checkView.btnClick.Tag = i;//鏍囪
                 //鐐瑰嚮浜嬩欢
@@ -391,8 +396,7 @@
                 frameLayout.RemoveFromParent();
             };
 
-        }
-
+        }  
         /// <summary>
         /// 瓒呭嚭5涓厓绱犺鐢ㄦ粦鍔ㄦ帶浠�
         /// </summary>
@@ -400,7 +404,7 @@
         /// <param name="list">鏄剧ず鏁版嵁婧�</param>
         /// <param name="stateList">涔嬪墠鐘舵�佹暟鎹簮</param>
         /// <param name="titleText">鏍囬</param>
-        /// <param name="action">杩斿洖鍊肩储寮曞��</param>
+        /// <param name="action">杩斿洖鍊煎垪琛�</param>
         public void FrameOrVvList(FrameLayout frame, List<string> list, List<string> stateList, int titleText, Action<List<string>> action)
         {
 
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
index d651ae9..097d477 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
@@ -97,6 +97,8 @@
             ///鍒囨崲鎾斁妯″紡鐐瑰嚮浜嬩欢;
             playView.playOrderBtn.MouseUpEventHandler += (sender, e) =>
              {
+                 //single/single_cycle/order/list_cycle/random
+                 string modeValueString = string.Empty; 
                  string msg = Language.StringByID(StringId.switchTo);
                  switch (A31MusicModel.Current.A31PlayStatus.loop)
                  {
@@ -119,8 +121,9 @@
                          break;
                  }
                  new PublicAssmebly().TipMsgAutoClose(msg, false,1000);
-                 string url = "http://" + A31MusicModel.Current.IPAddress + "/httpapi.asp?command=setPlayerCmd:" + "loopmode:" + A31MusicModel.Current.A31PlayStatus.loop;
-                 SendMethod.SendCommand(url);
+                 Dictionary<string, string> dic = new Dictionary<string, string>();
+                 dic.Add("mode",modeValueString);
+                 //SendMethod.sendMethod.SendControlCommand(,dic);
              };
             ///娣诲姞鍠滅埍鐐瑰嚮浜嬩欢;
             playView.loveBtn.MouseUpEventHandler += (sender, e) =>
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
index 01c7106..6c88a70 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/MusicMain.cs
@@ -3,6 +3,8 @@
 using Shared;
 using Shared.IO;
 using System.Net;
+using HDL_ON.Entity;
+
 namespace HDL_ON.UI.Music
 {
     public class MusicMain : FrameLayout
@@ -56,19 +58,22 @@
         /// <summary>
         ///  鏄剧ず鍔犺浇鐣岄潰
         /// </summary>
-        public  static Loading loading = new Loading();
+        public static Loading loading = new Loading();
         /// <summary>
         /// 瀹氫箟鍏ㄥ眬瀵硅薄
         /// </summary>
         VerticalRefreshLayout verticalRefresh;
+        /// <summary>
+        /// 涓轰簡闊充箰鍒锋柊鐘舵�佸畾涔夊叏灞�瀵硅薄
+        /// </summary>
+        MusicView musicView = new MusicView();
         public void Show()
         {
-
             #region 鐣岄潰甯冨眬
             this.BackgroundColor = MusicColor.ViewColor;
             var topView = new TopView();
             this.AddChidren(topView.TopFLayoutView());
-            topView.topNameBtn.TextID =StringId.a31Music;
+            topView.topNameBtn.TextID = StringId.a31Music;
             topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
             {
                 RemoveFromParent();
@@ -84,200 +89,71 @@
 
             verticalRefresh.BeginHeaderRefreshingAction += () =>
             {
-                SeachMusic(false);
-
+                SeachMusic();
             };
             this.AddChidren(loading);
+            SeachMusic();
 
-            if (A31MusicModel.A31MusicModelList.Count == 0)
-            {
-                SeachMusic(true);
-            }
-            else
-            {
-                clearA31Threads();
-               //verticalRefresh.RemoveAll();
-                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
-                {
-                    var a31player = A31MusicModel.A31MusicModelList[i];
-                    ///杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬�
-                    if (!a31player.IsCanShow)
-                    {
-                        continue;
-                    }
-                    if (A31MusicModel.A31MusicModelList.Count - 1 == i)
-                    {
-                        a31player.IsEnd = true;
-                    }
-                    else
-                    {
-                        a31player.IsEnd = false;
-                    }
-                    ///鍔犺浇鐣岄潰鏃堕粯璁や笉鍦ㄧ嚎
-                    ///杩欓噷鏍囪鏄负浜嗕笉璇诲彇涓嶅湪绾挎挱鏀惧櫒鐘舵��
-                    a31player.IsOnLine = false;
-                    MusicListView(a31player);
-                }
-                ///璇诲彇姝g‘鐨勪俊鎭紝鍖呮嫭IP鍜岀鍙e強鍚嶇О
-                SendMethod.Seach((obj) =>
-                {
-                    try
-                    {
-                        if (obj == null)
-                        {
-                            ///杩欓噷瑕佽鍙栦富浠庡叧绯�
-                            readServerOrClientMode();
-                            A31MusicModel.Save();
-                            return;
-                        }
-                        var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => music.UniqueDeviceName == obj.UniqueDeviceName);
-                        if (a31MusicModel != null)
-                        {
-                            a31MusicModel.IPAddress = obj.IPAddress;
-                            a31MusicModel.Port = obj.Port;
-                            a31MusicModel.Name = obj.Name;
-                            a31MusicModel.IsCanShow = true;
-                            a31MusicModel.IsOnLine = true;
-                        }
-                    }
-                    catch (Exception e) { MainPage.Log(e.Message); }
-                });
-            }
         }
         /// <summary>
         /// 鍒锋柊鎾斁鍣ㄥ垪琛�
         /// </summary>
-        /// <param name="Yes">鏄惁鏄剧ず鍒锋柊鍥炬爣</param>
-        void SeachMusic(bool Yes = false)
+        void SeachMusic()
         {
-            for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+            Application.RunOnMainThread(() =>
             {
-                var a31player = A31MusicModel.A31MusicModelList[i];
-                a31player.IsCanShow = false;
-                a31player.IsOnLine = false;
-            }
-            if (Yes)
-            {
-                //涓轰簡绗竴娆¤繘鏉og涓�涓�;
-                loading.Start();
-            }
-            SendMethod.Seach((obj) =>
-            {
-                if (obj == null)
+                verticalRefresh.RemoveAll();
+                for (int i = 0; i < SendMethod.sendMethod.GetMusicList.Count; i++)
                 {
-                    readServerOrClientMode();
-                    A31MusicModel.Save();
-                    if (!Yes)
+                    var playerFunction = SendMethod.sendMethod.GetMusicList[i]; 
+                    if (!playerFunction.online)
                     {
-                        ///绛夊緟璺戝畬鍦ㄥ叧闂�
-                        verticalRefresh.EndHeaderRefreshing();
+                        //杩囨护鎺変笉鍦ㄧ嚎鐨勯煶涔愭挱鏀惧櫒
+                        continue;
                     }
-                    Application.RunOnMainThread(() =>
-                    {
-                        if (Yes)
-                        {
-                            //涓轰簡绗竴娆¤繘鏉og涓�涓�;
-                            loading.Hide();
-                        }
-                        verticalRefresh.RemoveAll();
-                        for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
-                        {
-                            var a31player = A31MusicModel.A31MusicModelList[i];
-                            //杩欎釜鐘舵�佹槸涔嬪墠淇濆瓨鐨勶紝鍔犺浇瀹屾垚鍚庤鏍囪涓轰笉鍦ㄧ嚎锛屽悗闈㈠啀璇诲彇姝g‘鐨勭姸鎬�
-                            if (!a31player.IsCanShow)
-                            {
-                                continue;
-                            }
-                            if (A31MusicModel.A31MusicModelList.Count - 1 == i)
-                            {
-                                a31player.IsEnd = true;
-                            }
-                            else
-                            {
-                                a31player.IsEnd = false;
-                            }
-                            MusicListView(a31player);
-                        }
-                       //A31MusicModel.ReadMusicStates();
+                    MusicListView(playerFunction);
+                }
 
-                    });
-                    return;
-                }
-                var a31MusicModel = A31MusicModel.A31MusicModelList.Find((music) => { return music.UniqueDeviceName == obj.UniqueDeviceName; });
-                if (a31MusicModel == null)
-                {
-                    //涓嶆槸鎴戜滑鏀寔鐨勫搧鐗屼笉鏀寔
-                    if (obj.Name != null)
-                    {
-                        obj.sid = "030101123456780909020123AABB" + obj.UniqueDeviceName;
-                        A31MusicModel.A31MusicModelList.Add(obj);
-                    }
-                }
-                else
-                {
-                    a31MusicModel.IPAddress = obj.IPAddress;
-                    a31MusicModel.Port = obj.Port;
-                    a31MusicModel.Name = obj.Name;
-                    a31MusicModel.IsCanShow = true;
-                    a31MusicModel.IsOnLine = true;
-                }
             });
 
         }
         /// <summary>
         /// 鏄剧ず闊充箰鍒楄〃鐨勬柟娉�
         /// </summary>
-        void MusicListView(A31MusicModel a31player)
+        void MusicListView(Function player) 
         {
-            MusicView musicView = new MusicView();
             musicView.View(verticalRefresh);
-            musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
-            musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
-            musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
-            if (a31player.IsEnd)
-            {
-                musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12);
-            }
+            musicView.singerBtn.Text = player.GetAttrState("song_name");
+            musicView.songNameBtn.Text = player.GetAttrState("song_name");
+            musicView.musicNameBtn.Text = player.name;
+            //if (player.IsEnd)
+            //{
+            //    musicView.muiscFl.Height = Application.GetRealHeight(12 + 139 + 12);
+            //}
 
             musicView.collectIconBtn.MouseUpEventHandler += (sender, e) =>
             {
                 musicView.collectIconBtn.IsSelected = !musicView.collectIconBtn.IsSelected;
-                if (a31player.ServerClientType == 1)
+                if (musicView.collectIconBtn.IsSelected)
                 {
-                    if (musicView.collectIconBtn.IsSelected)
-                    {
-                        a31player.MainPlayCollection = true;
-                    }
-                    else
-                    {
-                        a31player.MainPlayCollection = false;
-                    }
+                    player.collect = true;
                 }
                 else
                 {
-                    if (musicView.collectIconBtn.IsSelected)
-                    {
-                        a31player.collect = true;
-                    }
-                    else
-                    {
-                        a31player.collect = false;
-                    }
+                    player.collect = false;
                 }
-                A31MusicModel.Save();
             };
 
             EventHandler<MouseEventArgs> clickMergence = (sender, e) =>
             {
-                if (a31player.ServerClientType == 0)
-                {
-                    new View.DialogView { }.PlayMergence(a31player);
-                }
-                else if (a31player.ServerClientType == 1)
-                {
-                    new View.DialogView { }.DetachPlayMergence(a31player);
-
-                }
+                //if (player.ServerClientType == 0)
+                //{
+                //    new View.DialogView { }.PlayMergence(player);
+                //}
+                //else if (player.ServerClientType == 1)
+                //{
+                //    new View.DialogView { }.DetachPlayMergence(player);
+                //}
             };
             musicView.mergeBjBtn.MouseUpEventHandler += clickMergence;
             musicView.mergeBtn.MouseUpEventHandler += clickMergence;
@@ -285,7 +161,6 @@
 
             EventHandler<MouseEventArgs> clickPlayView = (sender, e) =>
             {
-                A31MusicModel.Current = a31player;//褰撳墠鎾斁鍣�
                 var a31PlayMusicPage = new A31PlayMusicPage();
                 MainPage.BasePageView.AddChidren(a31PlayMusicPage);
                 a31PlayMusicPage.Show();
@@ -302,7 +177,9 @@
             musicView.prevBtn.MouseDownEventHandler += (sender, e) =>
             {
                 musicView.prevBtn.IsSelected = true;
-                SendMethod.Previous(a31player);
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "up");
+                SendMethod.sendMethod.SendControlCommand(player, dic);
             };
             musicView.prevBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -311,24 +188,28 @@
             ///鏆傚仠/鎾斁鐐瑰嚮浜嬩欢
             musicView.playBtn.MouseDownEventHandler += (sender, e) =>
             {
+                string status = "off";
                 if (musicView.playBtn.IsSelected)
                 {
                     musicView.playBtn.IsSelected = false;
-                    SendMethod.Pause(a31player);
-                    a31player.A31PlayStatus.status = "pause";
+                    status = "off";
                 }
                 else
                 {
                     musicView.playBtn.IsSelected = true;
-                    SendMethod.Play(a31player);
-                    a31player.A31PlayStatus.status = "play";
+                    status = "on";
                 }
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("on_off", status);
+                SendMethod.sendMethod.SendControlCommand(player, dic);
             };
             ///涓嬩竴鏇茬偣鍑讳簨浠�
             musicView.nextBtn.MouseDownEventHandler += (sender, e) =>
             {
                 musicView.nextBtn.IsSelected = true;
-                SendMethod.Next(a31player);
+                Dictionary<string, string> dic = new Dictionary<string, string>();
+                dic.Add("song_step", "down");
+                SendMethod.sendMethod.SendControlCommand(player, dic);
             };
             musicView.nextBtn.MouseUpEventHandler += (sender, e) =>
             {
@@ -340,47 +221,49 @@
                 while (true)
                 {
                     System.Threading.Thread.Sleep(1000);
-                    if (!a31player.IsOnLine)
+                    if (!player.online)
                     {
                         continue;
                     }
-                    SendMethod.ReadStatus(a31player);
+                    //SendMethod.ReadStatus(player);
+                     SendMethod.sendMethod.RefreshDeviceStatus(player,new List<string> { player.deviceId });
+                 
                     Application.RunOnMainThread(() =>
                     {
-                        musicView.singerBtn.Text = a31player.A31PlayStatus.Artist;
-                        musicView.songNameBtn.Text = a31player.A31PlayStatus.Title;
-                        musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(a31player);
-                        if (a31player.A31PlayStatus.status == "play")
-                        {
-                            musicView.playBtn.IsSelected = true;
-                        }
-                        else
-                        {
-                            musicView.playBtn.IsSelected = false;
-                        }
-                        musicView.regionBtn.Text = a31player.GetRoomListName();
-                        if (a31player.ServerClientType == 1)
-                        {
-                            if (a31player.MainPlayCollection)
-                            {
-                                musicView.collectIconBtn.IsSelected = true;
-                            }
-                            else
-                            {
-                                musicView.collectIconBtn.IsSelected = false;
-                            }
-                        }
-                        else
-                        {
-                            if (a31player.collect)
-                            {
-                                musicView.collectIconBtn.IsSelected = true;
-                            }
-                            else
-                            {
-                                musicView.collectIconBtn.IsSelected = false;
-                            }
-                        }
+                        //musicView.singerBtn.Text = player.A31PlayStatus.Artist;
+                        //musicView.songNameBtn.Text = player.A31PlayStatus.Title;
+                        //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player);
+                        //if (player.A31PlayStatus.status == "play")
+                        //{
+                        //    musicView.playBtn.IsSelected = true;
+                        //}
+                        //else
+                        //{
+                        //    musicView.playBtn.IsSelected = false;
+                        //}
+                        //musicView.regionBtn.Text = player.GetRoomListName();
+                        //if (player.ServerClientType == 1)
+                        //{
+                        //    if (player.MainPlayCollection)
+                        //    {
+                        //        musicView.collectIconBtn.IsSelected = true;
+                        //    }
+                        //    else
+                        //    {
+                        //        musicView.collectIconBtn.IsSelected = false;
+                        //    }
+                        //}
+                        //else
+                        //{
+                        //    if (player.collect)
+                        //    {
+                        //        musicView.collectIconBtn.IsSelected = true;
+                        //    }
+                        //    else
+                        //    {
+                        //        musicView.collectIconBtn.IsSelected = false;
+                        //    }
+                        //}
                     });
                 }
             })
@@ -388,99 +271,67 @@
             musicThread.Start();
             threadLists.Add(musicThread);
         }
+
         /// <summary>
-        /// 璇诲彇涓讳粠鍏崇郴
+        ///鎸囧畾鍒锋柊鐣岄潰
         /// </summary>
-        void readServerOrClientMode()
+        /// <param name="strView">鍒ゆ柇瀛楃</param>
+        public void RefreshView(string strView)
         {
-            try
+            Application.RunOnMainThread(() =>
             {
-                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
+                try
                 {
-                    var a31player = A31MusicModel.A31MusicModelList[i];
-                    if (!a31player.IsOnLine)
+                  
+                    for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
                     {
-                        continue;
-                    }
-                    try
-                    {
-                        a31player.ServerClientType = 0;
-                        var result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
-                        if (result == null && result == "Failed")
+                        var view = MainPage.BasePageView.GetChildren(i);
+                        if (strView == view.Tag.ToString())
                         {
-                            result = SendMethod.OpenWeb("http://" + a31player.IPAddress + "/httpapi.asp?command=multiroom:getSlaveList");
-                        }
-                        if (result != null && result != "Failed")
-                        {
-                            a31player.Slave = Newtonsoft.Json.JsonConvert.DeserializeObject<Slaves>(result);
-                        }
-                    }
-                    catch (Exception e)
-                    {
-                        var d = e.Message;
-                    }
-                }
-
-                //鍒嗘瀽涓讳粠鍏崇郴
-                for (int i = 0; i < A31MusicModel.A31MusicModelList.Count; i++)
-                {
-                    var a31player = A31MusicModel.A31MusicModelList[i];
-                    if (!a31player.IsOnLine)
-                    {
-                        continue;
-                    }
-                    try
-                    {
-                        if (a31player.Slave != null && "0" != a31player.Slave.slaves)
-                        {
-                            a31player.ServerClientType = 1;//涓荤殑
-                            string str = a31player.Name;
-                            for (int j = 0; j < a31player.Slave.slave_list.Count; j++)
+                            if (view.GetType() == typeof(MusicMain))
                             {
-
-                                var slave = a31player.Slave.slave_list[j];
-                                str = str + "+" + slave.name;
-                                var tempA31Player = A31MusicModel.A31MusicModelList.Find((obj) => slave.uuid.Replace("uuid:", "") == obj.UniqueDeviceName);
-                                if (tempA31Player == null)
-                                {
-                                    A31MusicModel.A31MusicModelList.Add(new A31MusicModel
-                                    {
-                                        sid = "030101123456780909020123AABB" + slave.uuid.Replace("uuid:", ""),
-                                        ServerClientType = -1,//浠庣殑
-                                        IPAddress = slave.ip,
-                                        MainPlayIP = a31player.IPAddress,
-                                        UniqueDeviceName = slave.uuid.Replace("uuid:", ""),
-                                        Name = slave.name,
-                                        IsCanShow = false,
-                                        IsOnLine = false,//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
-                                    });
-                                }
-                                //濡傛灉鎵惧埌灏辨洿鏂颁负浠庣殑
-                                else
-                                {
-                                    tempA31Player.ServerClientType = -1;//浠庣殑
-                                    tempA31Player.IPAddress = slave.ip;
-                                    tempA31Player.MainPlayIP = a31player.IPAddress;
-                                    tempA31Player.Name = slave.name;
-                                    tempA31Player.UniqueDeviceName = slave.uuid.Replace("uuid:", "");
-                                    tempA31Player.IsCanShow = false;
-                                    tempA31Player.IsOnLine = false;//true浣滅敤涓轰簡璇诲彇浠庢挱鏀惧櫒鐨勯煶閲�
-
-                                }
+                                //musicView.singerBtn.Text = player.A31PlayStatus.Artist;
+                                //musicView.songNameBtn.Text = player.A31PlayStatus.Title;
+                                //musicView.musicNameBtn.Text = new View.DialogView { }.NamePlayer(player);
+                                //if (player.A31PlayStatus.status == "play")
+                                //{
+                                //    musicView.playBtn.IsSelected = true;
+                                //}
+                                //else
+                                //{
+                                //    musicView.playBtn.IsSelected = false;
+                                //}
+                                //musicView.regionBtn.Text = player.GetRoomListName();
+                                //if (player.ServerClientType == 1)
+                                //{
+                                //    if (player.MainPlayCollection)
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = true;
+                                //    }
+                                //    else
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = false;
+                                //    }
+                                //}
+                                //else
+                                //{
+                                //    if (player.collect)
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = true;
+                                //    }
+                                //    else
+                                //    {
+                                //        musicView.collectIconBtn.IsSelected = false;
+                                //    }
+                                //}
                             }
-                            a31player.MainPlayName = str;
                         }
-                    }
-                    catch (Exception e)
-                    {
-                        var ss = e.Message;
+
                     }
                 }
-
-            }
-            catch { }
+                catch { }
+            });
         }
-
     }
 
 }
diff --git a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
index dd36144..0a3fc25 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Music/SendMethod.cs
@@ -4,12 +4,28 @@
 using System.Net.Sockets;
 using System.Security;
 using System.Text;
+using HDL_ON.DAL.Server;
+using HDL_ON.Entity;
 using Shared;
 
 namespace HDL_ON.UI.Music
 {
     public class SendMethod
     {
+        private static SendMethod m_sendMethod=null;
+        public static SendMethod sendMethod
+        {
+            get
+            {
+                if (m_sendMethod == null)
+                {
+                    m_sendMethod = new SendMethod();
+                }
+                return m_sendMethod;
+            }
+
+        }
+
         /// <summary>
         ///鎼滅储A31闊充箰鎾斁鍣�
         /// </summary>
@@ -209,7 +225,7 @@
                 a31MusicModel.A31PlayStatus.loop = se.SearchForTextOfTag("LoopMode");
                 a31MusicModel.A31PlayStatus.Source = se.SearchForTextOfTag("PlayMedium");
                 a31MusicModel.A31PlayStatus.playSource = se.SearchForTextOfTag("TrackSource");
-                a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;amp;"); 
+                a31MusicModel.A31PlayStatus.TrackURL = se.SearchForTextOfTag("TrackURI").Replace("&", "&amp;amp;");
 
             }
             catch (Exception ex)
@@ -463,7 +479,8 @@
         /// <param name="volume">Volume.</param>
         public static void ControlVolume(int volume, A31MusicModel a31player)
         {
-            System.Threading.Tasks.Task.Run(() => {
+            System.Threading.Tasks.Task.Run(() =>
+            {
                 A31MusicModel.ProgressDateTime = DateTime.Now;
                 try
                 {
@@ -526,7 +543,7 @@
                 musicInfo.URL = track.SearchForTextOfTag("URL").Replace("&", "&amp;amp;");
                 var metadata = track.SearchForTextOfTag("Metadata").Replace("&", "&amp;");
                 var item = SecurityElement.FromString(metadata).SearchForChildByTag("item");
-                musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;amp;"); 
+                musicInfo.Title = item.SearchForTextOfTag("dc:title").Replace("&", "&amp;amp;");
                 musicInfo.Artist = item.SearchForTextOfTag("upnp:artist").Replace("&", "&amp;amp;");
                 musicInfo.Album = item.SearchForTextOfTag("upnp:album").Replace("&", "&amp;amp;");
                 musicInfo.Duration = item.SearchForTextOfTag("res");
@@ -597,7 +614,7 @@
         /// <summary>
         /// 鑾峰彇褰撳墠鎾斁鐨勫垪琛�
         /// </summary>
-        public static  string GetCurrentPlayList(A31MusicModel a31player)
+        public static string GetCurrentPlayList(A31MusicModel a31player)
         {
             System.Text.StringBuilder getPlayList = new System.Text.StringBuilder();
             getPlayList.AppendLine("<?xml version=\"1.0\"encoding=\"utf-8\"?>");
@@ -656,7 +673,7 @@
         /// <param name="musicInfo">鎾斁闊充箰</param>
         /// <param name="listName">鍒楄〃鍚嶇О</param>
         /// <param name="musicList">鎺ㄩ�佸垪琛�(榛樿鎺�50棣�)</param>
-        public  static void PushList(MusicInfo musicInfo, string listName, List<MusicInfo> musicList, A31MusicModel a31player,string musicSource)
+        public static void PushList(MusicInfo musicInfo, string listName, List<MusicInfo> musicList, A31MusicModel a31player, string musicSource)
         {
 
             //鏈�澶у彂閫佺殑鏉℃暟
@@ -739,10 +756,12 @@
 
                 sb.AppendLine("&amp;lt;dc:title&amp;gt;" + tempMusicInfo.Title + "&amp;lt;/dc:title&amp;gt;");
                 sb.AppendLine("&amp;lt;dc:creator&amp;gt;DJ Sanny J&amp;lt;/dc:creator&amp;gt;");
-                if (musicSource== "鎴戠殑鍒楄〃") {
+                if (musicSource == "鎴戠殑鍒楄〃")
+                {
                     sb.AppendLine("&amp;lt;upnp:artist&amp;gt;" + listName + "&amp;lt;/upnp:artist&amp;gt;");
                 }
-                else {
+                else
+                {
                     sb.AppendLine("&amp;lt;upnp:artist&amp;gt;" + tempMusicInfo.Artist + "&amp;lt;/upnp:artist&amp;gt;");
                 }
                 sb.AppendLine("&amp;lt;upnp:album&amp;gt;" + tempMusicInfo.Album + "&amp;lt;/upnp:album&amp;gt;");
@@ -778,7 +797,7 @@
             Play(a31player.IPAddress, a31player.Port, playString.ToString());
         }
 
-       static void SendMusicLists(string ip, int port, string soapAction, string listInfo)
+        static void SendMusicLists(string ip, int port, string soapAction, string listInfo)
         {
             System.Net.WebClient webClient = new System.Net.WebClient();
             webClient.Headers.Add("SOAPACTION", "\"urn:schemas-wiimu-com:service:PlayQueue:1#" + soapAction + "\"");
@@ -788,13 +807,13 @@
                 byte[] recevieBytes = webClient.UploadData(new Uri("http://" + ip + ":" + port + "/upnp/control/PlayQueue1"), "POST", System.Text.Encoding.UTF8.GetBytes(listInfo));
                 var s = System.Text.Encoding.UTF8.GetString(recevieBytes, 0, recevieBytes.Length);
             }
-            catch(Exception e)
+            catch (Exception e)
             {
                 var d = e.Message;
             }
         }
 
-       static void Play(string ip, int port, string info)
+        static void Play(string ip, int port, string info)
         {
             System.Net.WebClient webClient = new System.Net.WebClient();
             webClient.Headers.Add("SOAPACTION", "\"urn:schemas-wiimu-com:service:PlayQueue:1#PlayQueueWithIndex\"");
@@ -882,5 +901,72 @@
             public string creator = string.Empty;
         }
 
+        /// <summary>
+        /// 鑾峰彇闊充箰鍒楄〃
+        /// </summary>
+        public List<Function> GetMusicList
+        {
+            get
+            {
+                return FunctionList.List.GetMusicList();
+            }
+        }
+        /// <summary>
+        /// 鍙戦�佹帶鍒跺懡浠�
+        /// </summary>
+        /// <param name="function">褰撳墠璁惧</param>
+        /// <param name="dic">鍙戦�佹帶鍒舵暟鎹�</param>
+        public void SendControlCommand(Function function, Dictionary<string, string> dic)
+        {
+            new System.Threading.Thread(() =>
+            {
+                DriverLayer.Control.Ins.SendWriteCommand(function, dic);
+            })
+            { IsBackground = true }.Start();
+        }
+
+        /// <summary>
+        /// 鍒锋柊璁惧鐘舵��
+        /// </summary>
+        /// <returns></returns>
+        public void RefreshDeviceStatus(Function music, List<string> functionIds)
+        {
+            try
+            {
+                Dictionary<string, object> d = new Dictionary<string, object>();
+                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+                d.Add("deviceIds", functionIds);
+                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus);
+                if (responsePackNew.Code != "0")
+                {
+                    return;
+                }
+                //鏁版嵁杩斿簭鍒楀寲涓篎unction瀵硅薄
+                var str = Newtonsoft.Json.JsonConvert.SerializeObject(responsePackNew.Data.ToString());
+                var function = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(str);
+                if (function == null)
+                {
+                    return;
+                }
+                music.name = function.name;
+                music.sid = function.sid;
+                music.spk = function.spk;
+                music.status = function.status;
+                music.roomIds = function.roomIds;
+                music.attributes = function.attributes;
+            }
+            catch { }
+        }
+
+        /// <summary>
+        ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
+        /// </summary>
+        /// <returns></returns>
+        public  ResponsePackNew RequestServerhomeId(object o, string api_Url, int mTimeout = 5)
+        {
+            var requestJson = HttpUtil.GetSignRequestJson(o);
+            return HttpUtil.RequestHttpsPostFroHome(api_Url, requestJson, mTimeout);
+
+        }
     }
 }

--
Gitblit v1.8.0