From e53a1951d6aa07ad22aad9816da4703496fcbccd Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期五, 27 十一月 2020 14:27:16 +0800
Subject: [PATCH] 1127最新合并代码,合并嘉乐更新

---
 HDL_ON/DAL/DriverLayer/Control_TcpServer.cs |  138 ++++++++++++++++------------------------------
 1 files changed, 48 insertions(+), 90 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_TcpServer.cs b/HDL_ON/DAL/DriverLayer/Control_TcpServer.cs
index 2208fde..5d6292d 100644
--- a/HDL_ON/DAL/DriverLayer/Control_TcpServer.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_TcpServer.cs
@@ -171,101 +171,59 @@
                 Thread.Sleep(100);
             }
         }
-        string tcpFunctionOidJsonString = "";
         /// <summary>
         /// 鑾峰彇鍒楄〃鏁版嵁鍥炶皟鏂规硶
         /// </summary>
         public Action<string> GetListResponseAction;
+        string tcpFunctionOidJsonString = "";
         /// <summary>
         /// 澶勭悊tcp鏁版嵁
         /// </summary>
-        void AnalysisTcpData(Socket socket, string tcpDataString)
+        void AnalysisTcpData(Socket socket, string tcpBodyDataString)
         {
-            MainPage.Log($"tcpDataString: {tcpDataString}");
-            var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(tcpDataString);
-            if (obj == null)
+            MainPage.Log($"0001 tcpDataString:\r\n {tcpBodyDataString}");
+            var tcpDataObj = Control.Ins.AnalysisReceiveData(tcpBodyDataString);
+            if (tcpDataObj.BodyDataString == null)
             {
                 return;
             }
-            var tcpCommand = obj.GetValue("command").ToString();
-            var tcpType = obj.GetValue("type").ToString();
-
-            switch (tcpCommand)
+            switch (tcpDataObj.Topic)
             {
-                //鑾峰彇鏁版嵁杩斿洖
-                case "get_list_response":
-                    GetListResponseAction?.Invoke(tcpDataString);
+                case CommunicationTopic.AddDeviceOids:
+                    tcpFunctionOidJsonString = tcpDataObj.BodyDataString;
                     break;
-                /*
-                case "search":// 閫傜敤浜庢悳绱�
-                case "read":// 鐢ㄤ簬渚濇璇诲彇鐩稿叧绫诲瀷淇℃伅鐘舵��
-                case "set_list":// 淇敼鍒楄〃
-                case "write":// 鐢ㄤ簬渚濇鎺у埗鐩稿叧绫诲瀷淇℃伅
-                case "delete":// 鐢ㄤ簬鍒犻櫎鐩稿叧鎿嶄綔
-                case "initialize":// 鍒濆鍖�
-                case "find":// 璁惧瀹氫綅
-                case "get":// 鐢ㄤ簬鑾峰彇sid褰撳墠鐘舵��
-                case "set":// 鐢ㄤ簬鎺у埗sid鐩稿叧鍙傛暟
-                */
-                case "add":// 鐢ㄤ簬澧炲姞鍔熻兘
-                    switch (tcpType)
+                case CommunicationTopic.AddFunctions:
+                    var addSidFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<TcpTransmissionSidsObj>(tcpDataObj.BodyDataString);
+                    Application.RunOnMainThread(() =>
                     {
-                        case "device_oid":// 鐢ㄤ簬鍘熺敓鎬佽澶囪鍐欑浉鍏虫搷浣�
-                            tcpFunctionOidJsonString = tcpDataString;
-                            break;
-                        case "device_sid":
-                            var addSidFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<TcpTransmissionObject>(tcpDataString);
-                            Application.RunOnMainThread(() =>
-                            {
-                                var tipDialog = new UI.UpdataTcpResidenceDataDialog();
-                                var tcpLocalFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(Newtonsoft.Json.JsonConvert.SerializeObject(addSidFunction.objects));
-                                tipDialog.ShowDialog(tcpLocalFunction, tcpFunctionOidJsonString);
-                            });
-                            break;
-                    }
+                        var tipDialog = new UI.UpdataTcpResidenceDataDialog();
+                        var tcpLocalFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(Newtonsoft.Json.JsonConvert.SerializeObject(addSidFunction.objects));
+                        tipDialog.ShowDialog(tcpLocalFunction, tcpFunctionOidJsonString);
+                    });
                     break;
-                case "get_list"://鑾峰彇鍒楄〃
-                    switch (tcpType)
-                    {
-                        /*
-                        case "space":// 閫傜敤浜庡叏閮ㄨ澶�, 鑾峰彇绌洪棿淇℃伅
-                        case "device":// 缃戝叧鎴栬�呭叾浠朅璁惧
-                        case "device_mac":// 鐢ㄤ簬璁惧鏈鸿韩鍙风爜鐩稿叧鎿嶄綔
-                        case "scene":// 鐢ㄤ簬鍦烘櫙鍔熻兘璇诲啓
-                        case "security":// 鐢ㄤ簬瀹夐槻鍔熻兘璇诲啓
-                        case "remote":// 鐢ㄤ簬杩滅▼淇℃伅璇诲啓鎿嶄綔
-                        case "logic":// 鐢ㄤ簬閫昏緫鑷姩鍖栬鍐欐搷浣�
-                        case "global":// 鐢ㄤ簬缁勬挱鎼滅储A璁惧
-                            */
-                        case "device_oid":// 鐢ㄤ簬鍘熺敓鎬佽澶囪鍐欑浉鍏虫搷浣�
-                            var bytes = FileUtils.ReadFile("AProtocolData_FunctionOid");
-                            //var jsonString = System.Text.Encoding.UTF8.GetString(bytes);
-                            //if (!string.IsNullOrEmpty(jsonString))
-                            if (bytes.Length > 0)
-                            {
-                                socket.Send(bytes);
-                                MainPage.Log($"send oid list to 8586 prot :{ System.Text.Encoding.UTF8.GetString(bytes)}");
-                            }
-                            break;
-                        case "device_sid":// 鐢ㄤ簬鍔熻兘妯″瀷璇诲啓鎿嶄綔
-                            var sendSidObj = new TcpTransmissionObject();
-                            sendSidObj.from_oid = "";
-                            sendSidObj.to_oid = "";
-                            sendSidObj.time_stamp = "";
-                            sendSidObj.type = "device_sid";
-                            sendSidObj.command = "get_list_response";
-                            //杞崲鎴恇us闇�瑕佺殑鏁版嵁鏍煎紡
-                            var localFunction = DB_ResidenceData.functionList.GetAllFunction();
-                            var localFunctionString = Newtonsoft.Json.JsonConvert.SerializeObject(localFunction);
-                            var tcpFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<List<TcpObject>>(localFunctionString);
+                case CommunicationTopic.BusPcGetAppOids:
 
-                            sendSidObj.objects.AddRange(tcpFunction);
-                            var sendSidJson = Newtonsoft.Json.JsonConvert.SerializeObject(sendSidObj);
-                            var sendSidBytes = System.Text.Encoding.UTF8.GetBytes(sendSidJson);
-                            socket.Send(sendSidBytes, sendSidBytes.Length, SocketFlags.OutOfBand);
-                            MainPage.Log($"send sid list to 8586 prot :{sendSidJson}");
-                            break;
+                    var bytes = FileUtils.ReadFile(DB_ResidenceData.OidSavePathName);
+                    if (bytes.Length > 0)
+                    {
+                        socket.Send(bytes);
+                        MainPage.Log($"send oid list to 8586 prot :{ System.Text.Encoding.UTF8.GetString(bytes)}");
                     }
+                    break;
+                case CommunicationTopic.BusPcGetAppSids:
+                    var sendSidObj = new TcpTransmissionSidsObj();
+                    sendSidObj.id = Control.Ins.msg_id.ToString();
+                    sendSidObj.time_stamp = "";
+                    //杞崲鎴恇us闇�瑕佺殑鏁版嵁鏍煎紡
+                    var localFunction = DB_ResidenceData.functionList.GetAllFunction();
+                    var localFunctionString = Newtonsoft.Json.JsonConvert.SerializeObject(localFunction);
+                    var tcpFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BusSidObj>>(localFunctionString);
+
+                    sendSidObj.objects.AddRange(tcpFunction);
+                    var sendSidJson = Newtonsoft.Json.JsonConvert.SerializeObject(sendSidObj);
+                    var sendSidBytes = System.Text.Encoding.UTF8.GetBytes(sendSidJson);
+                    socket.Send(sendSidBytes, sendSidBytes.Length, SocketFlags.OutOfBand);
+                    MainPage.Log($"send sid list to 8586 prot :{sendSidJson}");
                     break;
             }
         }
@@ -362,17 +320,15 @@
     }
 
     /// <summary>
-    /// bus杞欢浼犺緭鍔熻兘鐨勫璞�
+    /// bus杞欢浼犺緭鍔熻兘鐨剆id鍒楄〃瀵硅薄
     /// </summary>
-    public class TcpTransmissionObject
+    public class TcpTransmissionSidsObj
     {
-        public List<TcpObject> objects = new List<TcpObject>();
+        public List<BusSidObj> objects = new List<BusSidObj>();
 
-        public string from_oid = "";
-        public string to_oid = "";
+        public string id = "";
         public string time_stamp = "";
-        public string type = "";
-        public string command = "";
+
     }
 
     /// <summary>
@@ -381,21 +337,23 @@
     /// Function瀵硅薄鍖呭惈浜嗚瀵硅薄鐨勬墍鏈夊唴瀹癸紝
     /// 姝ゅ璞′负浜嗗噺灏戜紶杈撴暟鎹娇鐢�
     /// </summary>
-   public class TcpObject
+   public class BusSidObj
     {
         public string sid = "";// "0301011234567801012301230123";
 
         /// <summary>
-        /// A鍗忚鍔熻兘鐨勭壒鎬�
-        /// 濡傦細鏄疉C鍔熻兘锛氱壒鎬э細on_off,mode,fan,temperature
-        /// attri
+        /// A鍗忚鍔熻兘鐨勫睘鎬�
+        /// 濡傦細鏄疉C鍔熻兘锛氬睘鎬э細on_off,mode,fan,temperature
         /// </summary>
-        public List<Trait> function = new List<Trait>();
+        public List<FunctionAttributes> attributes = new List<FunctionAttributes>();
 
         /// <summary>
         /// 澶囨敞
         /// </summary>
         public string name;
+
+        public string omodel;
+
     }
 
 }
\ No newline at end of file

--
Gitblit v1.8.0