From 5efaaab958a0f4a91ad9d76b5d5fea0ea3fc3f41 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 01 十二月 2020 16:24:19 +0800 Subject: [PATCH] 2020-12-01 1.请求路径修改。 2.切换住宅或者查询住宅列表增加获取网关列表。 3.房间增加默认图片选择、比例调整为16:9。4.优化图片裁剪。 --- HDL_ON/DAL/DriverLayer/Control.cs | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 102 insertions(+), 3 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index ed155f1..7f51627 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Text; using HDL_ON.Entity; namespace HDL_ON.DriverLayer @@ -34,6 +35,18 @@ return _control; } } + int _msg_id = 1; + /// <summary> + /// 閫氳ID + /// </summary> + public int msg_id + { + get + { + return _msg_id++; + } + } + bool _gatewayOnline = false; /// <summary> /// 缃戝叧鏄惁鍦ㄧ嚎 @@ -88,14 +101,14 @@ /// <summary> /// 鎵撳紑Udp /// </summary> - public void OpenUdp() + public void OpenUdp(int port) { if (myUdp == null) { myUdp = new Control_Udp(); } - UdpSocket._BusSocket.Start(); + UdpSocket._BusSocket.Start(port); } /// <summary> /// 鎵撳紑tcp瀹㈡湇绔� @@ -122,7 +135,8 @@ /// </summary> public void SearchLoaclGateway() { - OpenUdp(); + OpenUdp(DB_ResidenceData.residenceData.GatewayType == 0 ? 6000 : 8585); + if (DB_ResidenceData.residenceData.GatewayType == 0) { myUdp.ControlBytesSend(Command.ReadGateway, 255, 255, new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) }); @@ -224,6 +238,91 @@ sendSidObj.type = "device_sid"; sendSidObj.command = "get_list_response"; } + /// <summary> + /// 杞崲閫氳鏁版嵁 + /// </summary> + public byte[] ConvertSendBodyData(string topic, string bodyDataString) + { + string topicString = "Topic:" + topic + "\r\n"; + byte[] bodyBytes = Encoding.ASCII.GetBytes(bodyDataString); + string lengthString = "Length:" + bodyBytes.Length.ToString() + "\r\n" + "\r\n"; + + string sendDataString = topicString + lengthString + bodyDataString; + byte[] sendDataBytes = Encoding.ASCII.GetBytes(sendDataString); + + return sendDataBytes; + } + /// <summary> + /// 杞崲鎺ユ敹鍒扮殑鏁版嵁 + /// </summary> + /// <returns></returns> + public void ConvertReceiveData(byte[] receiveBytes) + { + var reString = Encoding.UTF8.GetString(receiveBytes); + AnalysisReceiveData(reString); + } + /// <summary> + /// 杞崲鎺ユ敹鍒扮殑鏁版嵁 + /// </summary> + /// <returns></returns> + public LocalCommunicationData AnalysisReceiveData(string receiveString) + { + LocalCommunicationData receiveObj = new LocalCommunicationData(); + + var res = receiveString.Split("\r\n\r\n"); + + if (res.Length == 2) + { + var topics = res[0].Split("\r\n"); + MainPage.Log(res[1]); + foreach (var ts in topics) + { + var key = ts.Split(":"); + switch (key[0]) + { + case "Topic": + receiveObj.Topic = key[1]; + break; + case "Length": + receiveObj.Length = Convert.ToInt32(key[1]); + break; + } + } + + //楠岃瘉鏈夋晥鏁版嵁闀垮害 + if (res[1].Length != receiveObj.Length) + { + MainPage.Log($"鏀跺埌鏁版嵁鍖呴暱搴︿笉澶�"); + return receiveObj; + } + receiveObj.BodyDataString = res[1]; + + var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); + if (bodyJObj == null) + { + return receiveObj; + } + switch (receiveObj.Topic) + { + case CommunicationTopic.SearchLoaclGateway: + var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString()); +#if DEBUG + if (UserInfo.Current.AccountString == "464027401@qq.com") + { + DB_ResidenceData.residenceData.residenceGatewayMAC = "0000000000000000"; + } +#endif + if (device.device_mac == DB_ResidenceData.residenceData.residenceGatewayMAC) + { + Control.Ins.GatewayOnline = true; + } + break; + } + } + return receiveObj; + + } + } } \ No newline at end of file -- Gitblit v1.8.0