From 132ef8524e38d06da8cf74292a3ac1eff065bb1b Mon Sep 17 00:00:00 2001
From: tzy <274116637@qq.com>
Date: 星期二, 23 三月 2021 16:38:01 +0800
Subject: [PATCH] 整好新风的UI,待真实设备测试

---
 HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs |  240 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 213 insertions(+), 27 deletions(-)

diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
index d0745a8..19bca3c 100644
--- a/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
+++ b/HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/Method.cs
@@ -8,6 +8,36 @@
 {
     public class Method
     {
+        /// <summary>
+        /// 绋嬪簭涓诲叆鍙�
+        /// </summary>
+        /// <param name="frame"></param>
+        /// <param name="function"></param>
+        public void MainView(FrameLayout frame, Entity.Function function,Action action)
+        {
+            Pir pirDevice = new Pir();
+            if (function != null)
+            {//鏁版嵁杞崲
+                pirDevice.name = function.name;
+                pirDevice.deviceId = function.deviceId;
+                pirDevice.sid = function.sid;
+                pirDevice.online = function.online;
+            }
+            Pir.currPir = pirDevice;
+            GetControlList(frame, () =>
+            {
+                Application.RunOnMainThread(() =>
+                {
+                    var page = new PirMain();
+                    MainPage.BasePageView.AddChidren(page);
+                    page.Show();
+                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
+                    page.BackAction += () => {
+                        action?.Invoke();
+                    };
+                });
+            }, Pir.currPir);
+        }
 
         /// <summary>
         /// 绠$悊浣嶇疆
@@ -84,7 +114,8 @@
                     if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
                     {
                         string sid = responsePackNew.Data.ToString();
-                        mqttdate = MqttDate(sid);
+                        controldata = "";
+                        mqttdate = MqttDate("閬ユ帶鍣�", sid);
                         if (mqttdate != null)
                         {
                             control.sid = sid;
@@ -180,10 +211,24 @@
                                 var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Pir>(str);
                                 if (pirJosn != null)
                                 {
-                                    if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
+
+/* 椤圭洰鈥淗DL-ON_iOS鈥濈殑鏈悎骞剁殑鏇存敼
+鍦ㄦ涔嬪墠:
+                                    if (null == Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
+鍦ㄦ涔嬪悗:
+                                    if (null == list.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
+*/
+                                    if (null == PirDevice.Pir.pirDeviceList.Find((c) => c.deviceId == pirJosn.deviceId))
                                     {
 
-                                        Pir.pirDeviceList.Add(pirJosn);
+
+/* 椤圭洰鈥淗DL-ON_iOS鈥濈殑鏈悎骞剁殑鏇存敼
+鍦ㄦ涔嬪墠:
+                                        Pir.pirDeviceList.Add(pirJosn);
+鍦ㄦ涔嬪悗:
+                                        list.pirDeviceList.Add(pirJosn);
+*/
+                                        PirDevice.Pir.pirDeviceList.Add(pirJosn);
 
                                     }
                                 }
@@ -226,7 +271,7 @@
 
         }
         /// <summary>
-        /// 鑾峰彇閬ユ帶鍣ㄥ垪琛�
+        /// 鑾峰彇鎵�鏈夌孩澶栧疂閬ユ帶鍣ㄥ垪琛�
         /// </summary>
         /// <param name="action">鍥炶皟鍑芥暟</param>
         public static void GetControlList(Action action)
@@ -281,6 +326,64 @@
             { IsBackground = true }.Start();
 
         }
+
+        /// <summary>
+        /// 鑾峰彇鍗曚釜绾㈠瀹濋仴鎺у櫒鍒楄〃
+        /// </summary>
+        /// <param name="action">鍥炶皟鍑芥暟</param>
+        public static void GetControlList(FrameLayout frame ,Action action, Pir pirDevice)
+        {
+            Loading loading = new Loading();
+            frame.AddChidren(loading);
+            loading.Start();
+            new System.Threading.Thread(() =>
+            {
+                try
+                {
+
+                    try
+                    {
+                        var responsePackNew = PirSend.ControlList(pirDevice);
+                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+                        {
+                            var jArray = JArray.Parse(responsePackNew.Data.ToString());
+                            for (int a = 0; a < jArray.Count; a++)
+                            {
+                                var jay = jArray[a];
+                                //鏁版嵁杩斿簭鍒楀寲涓篖ogic瀵硅薄
+                                var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
+                                var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(str);
+                                if (pirJosn != null)
+                                {
+                                    if (null == pirDevice.FunctioList.Find((c) => c.sid == pirJosn.sid))
+                                    {
+                                        pirDevice.FunctioList.Add(pirJosn);
+                                    }
+                                }
+
+                            }
+                        }
+
+                    }
+                    catch { }
+
+
+                }
+                catch { }
+                finally
+                {
+
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                        action();
+                    });
+                }
+
+            })
+            { IsBackground = true }.Start();
+
+        }
         /// <summary>
         /// 鑾峰彇璁惧璇︽儏閫氳繃(spk,sid)
         /// </summary>
@@ -319,54 +422,118 @@
             })
             { IsBackground = true }.Start();
         }
+
         /// <summary>
         /// 鍙戦�佸懡浠ょ嚎绋�
         /// </summary>
         /// <param name="control">鍙戦�佹暟鎹璞�</param>
         /// <param name="action">鍥炶皟鍑芥暟</param>
         /// <param name="str">鍒ゆ柇瀛楃</param>
+        /// <param name="view">鍒ゆ柇log鐖舵帶浠�</param>
         /// <param name="frame">log鐖舵帶浠�</param>
         /// <param name="dialog">log鐖舵帶浠�</param>
-        public void ThreadSend(Control control, Action<HDL_ON.DAL.Server.ResponsePackNew> action, string str, FrameLayout frame, Dialog dialog)
+        public static void ThreadSend(Control control, Action<ResponsePackNew> action, string str,string view, FrameLayout frame, Dialog dialog)
         {
+           
+            //鍔犺浇log
+            Loading loading = new Loading();
+            if (view == "dialog")
+            {
+                dialog.AddChidren(loading);
+            }
+            else
+            {
+                frame.AddChidren(loading);
+            }
+            loading.Start();
+            ResponsePackNew responsePackNew = null;
+            new System.Threading.Thread(() =>
+            {
+                try
+                {
+                    if (str == "鍒犻櫎")
+                    {
+                        responsePackNew = PirSend.DeleteDevice(control.deviceId);
+                    }
+                    else if (str == "淇敼鍚嶇О")
+                    {
 
+                        responsePackNew = PirSend.DeviceRename(control.deviceId, control.name);
+                    }
+                    else if (str == "鍒犻櫎鎸夐敭") {
+                       // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name);
+                    }
+                }
+                catch { }
+                finally
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        loading.Hide();
+                        if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
+                        {
+                            action(responsePackNew);
+                        }
+                        else
+                        {
+                            Method method = new Method();
+                            method.ErrorShow(responsePackNew, "");
+                        }
+
+                    });
+                }
+
+            })
+            { IsBackground = true }.Start();
 
 
         }
-
-
         /// <summary>
-        /// MQTT涓婚鎺ㄩ�佷笅鏉ョ殑鏁版嵁
+        /// MQTT涓婚鎺ㄩ�佷笅鏉ョ殑閬ユ帶鍣ㄦ暟鎹�
         /// </summary>
-        public static string mqttdata = ""; 
+        public static string controldata = "";
+        /// <summary>
+        /// MQTT涓婚鎺ㄩ�佷笅鏉ユ寜閿殑鏁版嵁
+        /// </summary>
+        public static string buttondata = "";
         /// <summary>
         /// 鍒ゆ柇杩欎釜涓婚鏄惁鏄坊鍔犻仴鎺у櫒涓婚
         /// </summary>
+        /// <param name="text">琛ㄧず涓嶅悓涓婚鏁版嵁</param>
         /// <param name="sid">鍞竴鏍囪瘑</param>
         /// <param name="timeValue">绛夊緟鏃堕棿鍊�</param>
         /// <returns></returns>
-        public Cloud MqttDate(string sid, int timeValue = 10)
+        public Cloud MqttDate(string text, string sid, int timeValue = 10)
         {
             Cloud cloud = null;
             var dateTime = DateTime.Now;
             while ((DateTime.Now - dateTime).TotalMilliseconds < timeValue * 1000)
             {
-                if (!string.IsNullOrEmpty(mqttdata))
+                string str = "";
+                if (text == "閬ユ帶鍣�")
+                {
+                    str = controldata;
+                }
+                else if (text == "鎸夐敭")
+                {
+                    str = buttondata;
+                }
+
+                if (!string.IsNullOrEmpty(controldata))
                 {
                     try
                     {
-                        var cloudjson = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(mqttdata);
+                        var cloudjson = Newtonsoft.Json.JsonConvert.DeserializeObject<Cloud>(str);
                         for (int i = 0; i < cloudjson.objects.Count; i++)
                         {
                             var objects = cloudjson.objects[i];
                             if (sid == objects.sid)
                             {
                                 cloud = cloudjson;
-                                mqttdata = "";
                                 break;
                             }
                         }
-                        if (cloud!=null)
+                        if (cloud != null)
                         {
                             break;
                         }
@@ -381,44 +548,63 @@
         /// 閿欒鐮佹彁绀�
         /// </summary>
         /// <param name="responsePackNew"></param>
-        /// <param name="str"></param>
-        public void ErrorShow(ResponsePackNew responsePackNew=null, string str = "")
+        /// <param name="text">鑷畾涔夐敊璇枃鏈�</param>
+        /// <param name="popValue">寮规绫诲瀷锛�1=闂儊寮规锛�</param>
+        public void ErrorShow(ResponsePackNew responsePackNew, string text, int popValue = 1)
         {
-            if (str == "鍒犻櫎閬ユ帶鍣�")
+            string str = "";
+            if (text == "鍒犻櫎閬ユ帶鍣�")
             {
-                new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.delFail));
-            } else if (str == "璇诲彇绾㈠瀹濆垪琛ㄥけ璐�") {
-
-                new Intelligence.Automation.LogicView.TipPopView().FlashingBox("璇诲彇绾㈠瀹濆垪琛ㄥけ璐�");
+                str = Language.StringByID(StringId.delFail);
+            }
+            else if (text == "璇诲彇绾㈠瀹濆垪琛ㄥけ璐�")
+            {
+                str = "璇诲彇绾㈠瀹濆垪琛ㄥけ璐�"; //Language.StringByID(StringId.delFail);
             }
             else
             {
-
                 if (responsePackNew != null)
                 {
+
                     switch (responsePackNew.Code)
                     {
 
                         case "14005":
                             {
-                                new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
+                                str = Language.StringByID(StringId.gatewayNotOnline);
+
                             }
                             break;
                         case "10807":
                             {
-                                //绾㈠瀹濅笅閬ユ帶鍣ㄨ秴杩囨渶澶�(10涓�)鏁伴噺闄愬埗
-                                new Intelligence.Automation.LogicView.TipPopView().FlashingBox("绾㈠瀹濅笅閬ユ帶鍣ㄨ秴杩囨渶澶�(10涓�)鏁伴噺闄愬埗");
+                                str = "绾㈠瀹濅笅閬ユ帶鍣ㄨ秴杩囨渶澶�(10涓�)鏁伴噺闄愬埗";// Language.StringByID(StringId.gatewayNotOnline);
+
+
+                            }
+                            break;
+                        case "2":
+                            {
+                                str = "绯荤粺缁存姢涓瓇璇风◢鍚庡啀璇晘";
                             }
                             break;
                         default:
                             {
-                                new Intelligence.Automation.LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
+                                str ="鑾峰彇鏁版嵁澶辫触" ;// Language.StringByID(StringId.saveFail);
                             }
                             break;
 
                     }
                 }
-
+            }
+            switch (popValue)
+            {
+                case 1:
+                    {
+                        new Intelligence.Automation.LogicView.TipPopView().FlashingBox(str);
+                    }
+                    break;
+                case 2: { } break;
+                case 3: { } break;
             }
         }
 

--
Gitblit v1.8.0