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