From d099a65ce3f5f8ed9ba345f8f3bdcf617fa4af75 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 08 十一月 2023 09:55:40 +0800 Subject: [PATCH] 更改udp --- HDL_ON/DAL/DriverLayer/UdpSocket.cs | 326 +++++++++++++++++++--- HDL_ON/Entity/Function/Function.cs | 2 HDL_ON/DAL/DriverLayer/AsyncUdpServer.cs | 453 ++++++++++++++++++++++++++++++++ HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs | 11 HDL_ON/DAL/Server/HttpServerRequest.cs | 4 HDL_ON/DAL/DriverLayer/Packet.cs | 18 HDL_ON/DAL/Mqtt/MqttClient.cs | 2 HDL_ON/HDL_ON.projitems | 2 8 files changed, 749 insertions(+), 69 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/AsyncUdpServer.cs b/HDL_ON/DAL/DriverLayer/AsyncUdpServer.cs new file mode 100644 index 0000000..097344b --- /dev/null +++ b/HDL_ON/DAL/DriverLayer/AsyncUdpServer.cs @@ -0,0 +1,453 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading.Tasks; + +namespace HDL_ON.DAL.DriverLayer +{ + //class AsyncUdpServer + /// <summary> + /// UdpClient 瀹炵幇寮傛UDP鏈嶅姟鍣� + /// </summary> + public class AsyncUdpServer + { + #region Fields + /// <summary> + /// 鏈嶅姟鍣ㄧ▼搴忓厑璁哥殑鏈�澶у鎴风杩炴帴鏁� + /// </summary> + private int _maxClient; + + /// <summary> + /// 褰撳墠鐨勮繛鎺ョ殑瀹㈡埛绔暟 + /// </summary> + //private int _clientCount; + + /// <summary> + /// 鏈嶅姟鍣ㄤ娇鐢ㄧ殑寮傛UdpClient + /// </summary> + private UdpClient _server; + + /// <summary> + /// 瀹㈡埛绔細璇濆垪琛� + /// </summary> + //private List<AsyncUDPState> _clients; + + private bool disposed = false; + + /// <summary> + /// 鏁版嵁鎺ュ彈缂撳啿鍖� + /// </summary> + private byte[] _recvBuffer; + + #endregion + + #region Properties + + /// <summary> + /// 鏈嶅姟鍣ㄦ槸鍚︽鍦ㄨ繍琛� + /// </summary> + public bool IsRunning { get; private set; } + /// <summary> + /// 鐩戝惉鐨処P鍦板潃 + /// </summary> + public IPAddress Address { get; private set; } + /// <summary> + /// 鐩戝惉鐨勭鍙� + /// </summary> + public int Port { get; private set; } + /// <summary> + /// 閫氫俊浣跨敤鐨勭紪鐮� + /// </summary> + public Encoding Encoding { get; set; } + + #endregion + + #region 鏋勯�犲嚱鏁� + + /// <summary> + /// 寮傛UdpClient UDP鏈嶅姟鍣� + /// </summary> + /// <param name="listenPort">鐩戝惉鐨勭鍙�</param> + public AsyncUdpServer(int listenPort) + : this(IPAddress.Any, listenPort, 10240) + { + } + + /// <summary> + /// 寮傛UdpClient UDP鏈嶅姟鍣� + /// </summary> + /// <param name="localEP">鐩戝惉鐨勭粓缁撶偣</param> + public AsyncUdpServer(IPEndPoint localEP) + : this(localEP.Address, localEP.Port, 10240) + { + } + + /// <summary> + /// 寮傛UdpClient UDP鏈嶅姟鍣� + /// </summary> + /// <param name="localIPAddress">鐩戝惉鐨処P鍦板潃</param> + /// <param name="listenPort">鐩戝惉鐨勭鍙�</param> + /// <param name="maxClient">鏈�澶у鎴风鏁伴噺</param> + public AsyncUdpServer(IPAddress localIPAddress, int listenPort, int maxClient) + { + this.Address = localIPAddress; + this.Port = listenPort; + this.Encoding = Encoding.Default; + + _maxClient = maxClient; + //_clients = new List<AsyncUDPSocketState>(); + _server = new UdpClient(new IPEndPoint(this.Address, this.Port)); + uint IOC_IN = 0x80000000; + uint IOC_VENDOR = 0x18000000; + uint SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12; + + _server.Client.IOControl((int)SIO_UDP_CONNRESET, new byte[] { Convert.ToByte(false) }, null); + + _recvBuffer = new byte[_server.Client.ReceiveBufferSize]; + } + + #endregion + + #region Method + /// <summary> + /// 鍚姩鏈嶅姟鍣� + /// </summary> + /// <returns>寮傛TCP鏈嶅姟鍣�</returns> + public void Start() + { + try + { + if (!IsRunning) + { + IsRunning = true; + _server.EnableBroadcast = true; + _server.BeginReceive(ReceiveDataAsync, null); + } + } + catch (Exception e) { } + } + + /// <summary> + /// 鍋滄鏈嶅姟鍣� + /// </summary> + public void Stop() + { + try + { + //if (IsRunning) + { + IsRunning = false; + _server.Close(); + //TODO 鍏抽棴瀵规墍鏈夊鎴风鐨勮繛鎺� + + } + } + catch (Exception e) { } + } + + /// <summary> + /// 鎺ユ敹鏁版嵁鐨勬柟娉� + /// </summary> + /// <param name="ar"></param> + private void ReceiveDataAsync(IAsyncResult ar) + { + bool isReceive = false; + try + { + var udpState = new AsyncUDPState(); + IPEndPoint remote = null; + udpState.buffer = _server.EndReceive(ar, ref remote); ; + udpState.remote = remote; + udpState.udpClient = _server; + + isReceive = true; + receive(); + + //瑙﹀彂鏁版嵁鏀跺埌浜嬩欢 + RaiseDataReceived(udpState); + } + catch (Exception) + { + //TODO 澶勭悊寮傚父 + RaiseOtherException(null); + } + finally + { + if (!isReceive) + { + receive(); + } + } + } + + void receive() + { + if (IsRunning && _server != null) + { + int count = 10; + while (0 < count--) + { + try + { + _server.BeginReceive(ReceiveDataAsync, null); + break; + } + catch (Exception e) + { + System.Threading.Thread.Sleep(100); + } + } + } + + } + + /// <summary> + /// 鍙戦�佹暟鎹� + /// </summary> + /// <param name="msg"></param> + /// <param name="remote"></param> + public void Send(byte[] data, IPEndPoint remote) + { + try + { + RaisePrepareSend(null); + _server.BeginSend(data, data.Length, remote, new AsyncCallback(SendCallback), null); + } + catch (Exception) + { + //TODO 寮傚父澶勭悊 + RaiseOtherException(null); + } + } + + private void SendCallback(IAsyncResult ar) + { + //if (ar.IsCompleted) + { + try + { + _server.EndSend(ar); + //娑堟伅鍙戦�佸畬姣曚簨浠� + RaiseCompletedSend(null); + } + catch (Exception) + { + //TODO 鏁版嵁鍙戦�佸け璐ヤ簨浠� + RaiseOtherException(null); + } + } + + } + #endregion + + #region 浜嬩欢 + /// <summary> + /// 鎺ユ敹鍒版暟鎹簨浠� + /// </summary> + public event EventHandler<AsyncUDPEventArgs> DataReceived; + + private void RaiseDataReceived(AsyncUDPState state) + { + if (DataReceived != null) + { + DataReceived(this, new AsyncUDPEventArgs(state)); + } + } + + /// <summary> + /// 鍙戦�佹暟鎹墠鐨勪簨浠� + /// </summary> + public event EventHandler<AsyncUDPEventArgs> PrepareSend; + + /// <summary> + /// 瑙﹀彂鍙戦�佹暟鎹墠鐨勪簨浠� + /// </summary> + /// <param name="state"></param> + private void RaisePrepareSend(AsyncUDPState state) + { + if (PrepareSend != null) + { + PrepareSend(this, new AsyncUDPEventArgs(state)); + } + } + + /// <summary> + /// 鏁版嵁鍙戦�佸畬姣曚簨浠� + /// </summary> + public event EventHandler<AsyncUDPEventArgs> CompletedSend; + + /// <summary> + /// 瑙﹀彂鏁版嵁鍙戦�佸畬姣曠殑浜嬩欢 + /// </summary> + /// <param name="state"></param> + private void RaiseCompletedSend(AsyncUDPState state) + { + if (CompletedSend != null) + { + CompletedSend(this, new AsyncUDPEventArgs(state)); + } + } + + /// <summary> + /// 缃戠粶閿欒浜嬩欢 + /// </summary> + public event EventHandler<AsyncUDPEventArgs> NetError; + /// <summary> + /// 瑙﹀彂缃戠粶閿欒浜嬩欢 + /// </summary> + /// <param name="state"></param> + private void RaiseNetError(AsyncUDPState state) + { + if (NetError != null) + { + NetError(this, new AsyncUDPEventArgs(state)); + } + } + + /// <summary> + /// 寮傚父浜嬩欢 + /// </summary> + public event EventHandler<AsyncUDPEventArgs> OtherException; + /// <summary> + /// 瑙﹀彂寮傚父浜嬩欢 + /// </summary> + /// <param name="state"></param> + private void RaiseOtherException(AsyncUDPState state, string descrip) + { + if (OtherException != null) + { + OtherException(this, new AsyncUDPEventArgs(descrip, state)); + } + } + private void RaiseOtherException(AsyncUDPState state) + { + RaiseOtherException(state, ""); + } + #endregion + + #region Close + /// <summary> + /// 鍏抽棴涓�涓笌瀹㈡埛绔箣闂寸殑浼氳瘽 + /// </summary> + /// <param name="state">闇�瑕佸叧闂殑瀹㈡埛绔細璇濆璞�</param> + public void Close(AsyncUDPState state) + { + if (state != null) + { + //_clients.Remove(state); + //_clientCount--; + //TODO 瑙﹀彂鍏抽棴浜嬩欢 + } + } + /// <summary> + /// 鍏抽棴鎵�鏈夌殑瀹㈡埛绔細璇�,涓庢墍鏈夌殑瀹㈡埛绔繛鎺ヤ細鏂紑 + /// </summary> + public void CloseAllClient() + { + //foreach (AsyncUDPSocketState client in _clients) + //{ + // Close(client); + //} + //_clientCount = 0; + //_clients.Clear(); + } + + #endregion + + #region 閲婃斁 + /// <summary> + /// Performs application-defined tasks associated with freeing, + /// releasing, or resetting unmanaged resources. + /// </summary> + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + + /// <summary> + /// Releases unmanaged and - optionally - managed resources + /// </summary> + /// <param name="disposing"><c>true</c> to release + /// both managed and unmanaged resources; <c>false</c> + /// to release only unmanaged resources.</param> + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + try + { + Stop(); + if (_server != null) + { + _server = null; + } + } + catch (SocketException) + { + //TODO + RaiseOtherException(null); + } + } + disposed = true; + } + } + #endregion + } +} +public class AsyncUDPState +{ + // Client socket. + public UdpClient udpClient = null; + // Size of receive buffer. + public const int BufferSize = 1024; + // Receive buffer. + public byte[] buffer = new byte[BufferSize]; + // Received data string. + public StringBuilder sb = new StringBuilder(); + + public IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0); +} +/// <summary> +/// UdpClient 寮傛UDP鏈嶅姟鍣ㄤ簨浠跺弬鏁扮被 +/// </summary> +public class AsyncUDPEventArgs : EventArgs +{ + /// <summary> + /// 鎻愮ず淇℃伅 + /// </summary> + public string _msg; + + /// <summary> + /// 瀹㈡埛绔姸鎬佸皝瑁呯被 + /// </summary> + public AsyncUDPState _state; + + /// <summary> + /// 鏄惁宸茬粡澶勭悊杩囦簡 + /// </summary> + public bool IsHandled { get; set; } + + public AsyncUDPEventArgs(string msg) + { + this._msg = msg; + IsHandled = false; + } + public AsyncUDPEventArgs(AsyncUDPState state) + { + this._state = state; + IsHandled = false; + } + public AsyncUDPEventArgs(string msg, AsyncUDPState state) + { + this._msg = msg; + this._state = state; + IsHandled = false; + } + +} diff --git a/HDL_ON/DAL/DriverLayer/Packet.cs b/HDL_ON/DAL/DriverLayer/Packet.cs index 0e8f8dc..99f46b8 100644 --- a/HDL_ON/DAL/DriverLayer/Packet.cs +++ b/HDL_ON/DAL/DriverLayer/Packet.cs @@ -12,11 +12,11 @@ /// </summary> public class Packet { - /// <summary> - /// 缂撳啿鍖哄ぇ灏� - /// Link鍗忚鐜板湪涓�涓寘鐨勬暟鎹瘮杈冨ぇ锛岀紦鍐插尯澶皬瀛樹笉瀹屽叏閮ㄦ暟鎹� 2023-07-14 16:03:56 wxr - /// </summary> - public const int Size = 1024 * 10; + ///// <summary> + ///// 缂撳啿鍖哄ぇ灏� + ///// Link鍗忚鐜板湪涓�涓寘鐨勬暟鎹瘮杈冨ぇ锛岀紦鍐插尯澶皬瀛樹笉瀹屽叏閮ㄦ暟鎹� 2023-07-14 16:03:56 wxr + ///// </summary> + //public const int Size = 2000; /// <summary> /// 鎺ユ敹鍒扮殑鏁版嵁 @@ -28,11 +28,15 @@ /// </summary> public System.Net.EndPoint RemoteEndPoint; - public Packet() + public Packet(int lenght) { - this.Bytes = new byte[Size]; + this.Bytes = new byte[lenght]; + RemoteEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Any, 0); } + + + public Packet(byte[] data, System.Net.EndPoint remoteEndPoint) { this.Bytes = data; diff --git a/HDL_ON/DAL/DriverLayer/UdpSocket.cs b/HDL_ON/DAL/DriverLayer/UdpSocket.cs index df9662a..50ceeac 100644 --- a/HDL_ON/DAL/DriverLayer/UdpSocket.cs +++ b/HDL_ON/DAL/DriverLayer/UdpSocket.cs @@ -1,4 +1,222 @@ -锘縰sing System; +锘�//using System; +//using System.Net.Sockets; +//using System.Net; + +//namespace HDL_ON.DriverLayer +//{ +// public class UdpSocket +// { +// static UdpSocket _busSocket; +// public static UdpSocket _BusSocket +// { +// get +// { +// if(_busSocket == null) +// { +// _busSocket = new UdpSocket(); +// } +// return _busSocket; +// } +// } + +// //鏈湴Socket +// private Socket busSocket; +// public int Port = 0; +// /// <summary> +// /// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳� +// /// </summary> +// public void Start (int port = 0) +// { +// if (IsRunning) +// { +// if (port == Port) +// { +// return; +// } +// else +// { +// busSocket.Close(); +// } +// } +// if (port != 0) +// Port = port; +// if (Port == 0) +// return; + +// busSocket = new Socket (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); +// busSocket.EnableBroadcast = true; +// try { +// busSocket.Bind(new IPEndPoint(IPAddress.Any, Port)); + +// busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188"))); +// relinkCount = 0; +// } +// catch (Exception ex){ +// MainPage.Log ($"udp port bind error : {ex.Message}"); + +// busSocket = null; +// return; +// } + +// asyncBeginReceive(); + +// MainPage.Log ($"udp port : {port}"); +// } + +// /// <summary> +// /// 鍋滄Socket +// /// </summary> +// public void Stop() +// { +// if(busSocket == null) +// { +// return; +// } +// if (!IsRunning) +// { +// return; +// } +// try +// { +// busSocket.Close(); +// relinkCount = 0; +// } +// catch { } +// busSocket = null; +// MainPage.Log("Socket鍏抽棴"); +// } + +// /// <summary> +// /// 褰撳墠鐨凷ocket鏄惁杩愯 +// /// </summary> +// public bool IsRunning +// { +// get +// { +// return null == busSocket ? false : true; +// } +// } + +// /// <summary> +// /// 寮�濮嬪紓姝ユ帴鏀舵暟鎹� +// /// </summary> +// private void asyncBeginReceive() +// { +// if (!IsRunning) +// { +// return; +// } +// if(busSocket == null) +// { +// return; +// } + +// try { +// Packet packet = new Packet (); +// busSocket.BeginReceiveFrom (packet.Bytes, 0, packet.Bytes.Length, SocketFlags.None, ref packet.RemoteEndPoint, new AsyncCallback (asyncEndReceive), packet); +// } +// catch (Exception e) { +// System.Threading.Thread.Sleep (1); +// Console.WriteLine("asyncBeginReceive " + relinkCount ); +// if (relinkCount == 0) +// { +// relinkCount = 1; +// asyncBeginReceive(); +// } +// Console.WriteLine($"asyncBeginReceive {e.Message}"); +// } +// } +// /// <summary> +// /// 閲嶈繛娆℃暟 +// /// </summary> +// private int relinkCount = 0; + + + +// /// <summary> +// /// 寮傛鎺ユ敹鏁版嵁缁撴潫 +// /// </summary> +// /// <param name="iar"></param> +// private void asyncEndReceive(IAsyncResult iar) +// { +// if (!IsRunning) +// { +// return; +// } +// try +// { +// if (busSocket == null) +// { +// return; +// } +// asyncBeginReceive(); +// Packet packet = (Packet)iar.AsyncState; +// int len = busSocket.EndReceiveFrom(iar, ref packet.RemoteEndPoint); + +// byte[] bytes = packet.Bytes; +// packet.Bytes = new byte[len]; +// Array.Copy(bytes, 0, packet.Bytes, 0, packet.Bytes.Length); + +// //MainPage.Log($"鎺ユ敹{packet.RemoteEndPoint}鏁版嵁"); +// //mqtt杩炴帴鏁版嵁璇诲彇 A鍗忚缃戠粶璁惧淇℃伅璇诲彇鍥炲 澶勭悊 +// if (((IPEndPoint)packet.RemoteEndPoint).Port == 8585) +// { +// Control.Ins.ConvertReceiveData(bytes, ((IPEndPoint)packet.RemoteEndPoint).Address.ToString()); +// } +// else if (((IPEndPoint)packet.RemoteEndPoint).Port == 6000)//澶勭悊bus 6000绔彛鐨勬暟鎹� +// { +// packet.Manager(); +// } + +// } +// catch (Exception ex) +// { +// MainPage.Log($"寮傛鎺ユ敹鏁版嵁缁撴潫 {ex.Message},{((Packet)iar.AsyncState).Bytes}"); +// } +// } + +// /// <summary> +// /// 寮傛鍙戦�佹暟鎹� +// /// </summary> +// /// <param name="tempPacket"></param> +// public void AsyncBeginSend(Packet tempPacket) +// { +// try +// { +// if (!IsRunning) +// { +// tempPacket.HaveSendCount++; +// return; +// } +// tempPacket.FlagDateTime = System.DateTime.Now; +// tempPacket.HaveSendCount++; +// busSocket.BeginSendTo(tempPacket.Bytes, 0, tempPacket.Bytes.Length, SocketFlags.None, tempPacket.RemoteEndPoint, new AsyncCallback(asyncEndSend), tempPacket); +// } +// catch (Exception ex) +// { +// MainPage.Log($"AsyncBeginSend error {ex.Message}"); +// } +// } + +// /// <summary> +// /// 寮傛鍙戦�佹暟鎹粨鏉� +// /// </summary> +// /// <param name="iar"></param> +// private void asyncEndSend(IAsyncResult iar) +// { +// Packet tempUDPPacketBuffer = (Packet)iar.AsyncState; +// try +// { +// int bytesSent = busSocket.EndSendTo(iar); +// } +// catch { + +// } +// } +// } +//} + +using System; using System.Net.Sockets; using System.Net; @@ -8,16 +226,16 @@ { static UdpSocket _busSocket; public static UdpSocket _BusSocket - { - get - { - if(_busSocket == null) - { + { + get + { + if (_busSocket == null) + { _busSocket = new UdpSocket(); - } + } return _busSocket; - } - } + } + } //鏈湴Socket private Socket busSocket; @@ -25,53 +243,55 @@ /// <summary> /// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳� /// </summary> - public void Start (int port = 0) - { + public void Start(int port = 0) + { if (IsRunning) { if (port == Port) - { - return; + { + return; } - else - { - busSocket.Close(); + else + { + busSocket.Close(); } - } + } if (port != 0) Port = port; if (Port == 0) return; - busSocket = new Socket (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); - busSocket.EnableBroadcast = true; - try { + busSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + busSocket.EnableBroadcast = true; + try + { busSocket.Bind(new IPEndPoint(IPAddress.Any, Port)); busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188"))); relinkCount = 0; } - catch (Exception ex){ - MainPage.Log ($"udp port bind error : {ex.Message}"); + catch (Exception ex) + { + MainPage.Log($"udp port bind error : {ex.Message}"); busSocket = null; - return; - } + return; + } - asyncBeginReceive(); + asyncBeginReceive(); - MainPage.Log ($"udp port : {port}"); - } + MainPage.Log($"udp port : {port}"); + } /// <summary> /// 鍋滄Socket /// </summary> public void Stop() { - if(busSocket == null) - { + if (busSocket == null) + { return; - } + } if (!IsRunning) { return; @@ -97,6 +317,8 @@ } } + byte []receiveBytes = new byte[2000]; + /// <summary> /// 寮�濮嬪紓姝ユ帴鏀舵暟鎹� /// </summary> @@ -106,29 +328,35 @@ { return; } - if(busSocket == null) - { + if (busSocket == null) + { return; - } + } - try { - Packet packet = new Packet (); - busSocket.BeginReceiveFrom (packet.Bytes, 0, packet.Bytes.Length, SocketFlags.None, ref packet.RemoteEndPoint, new AsyncCallback (asyncEndReceive), packet); - } - catch (Exception e) { - System.Threading.Thread.Sleep (1); - Console.WriteLine("asyncBeginReceive " + relinkCount ); + try + { + int len = busSocket.Receive(receiveBytes, SocketFlags.None); + + Packet packet = new Packet(len); + + System.Array.Copy(receiveBytes, packet.Bytes, len); + packet.Manager(); + } + catch (Exception e) + { + System.Threading.Thread.Sleep(1); + Console.WriteLine("asyncBeginReceive " + relinkCount); if (relinkCount == 0) { relinkCount = 1; asyncBeginReceive(); } - Console.WriteLine($"asyncBeginReceive {e.Message}"); - } + Console.WriteLine($"asyncBeginReceive {e.Message}"); + } } /// <summary> - /// 閲嶈繛娆℃暟 - /// </summary> + /// 閲嶈繛娆℃暟 + /// </summary> private int relinkCount = 0; @@ -209,9 +437,11 @@ { int bytesSent = busSocket.EndSendTo(iar); } - catch { - - } + catch + { + + } } } -} \ No newline at end of file +} + diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index 4353a7f..9aa07d3 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -565,7 +565,7 @@ //SetGatewayOnlineResetCheck(); //var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey); //bus鏁版嵁瑙f瀽 - var packet = new Packet(); + var packet = new Packet(e.ApplicationMessage.Payload.Length); if (!string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.aesKey)) { diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs index 46ccea0..6a3994e 100644 --- a/HDL_ON/DAL/Server/HttpServerRequest.cs +++ b/HDL_ON/DAL/Server/HttpServerRequest.cs @@ -710,7 +710,7 @@ if (mHomeGatewayRes.Count > 0) { DB_ResidenceData.Instance.HomeGateway = mHomeGatewayRes[0];//缃戝叧鐘舵�� - DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes[0].gatewayStatus; + HDL_ON.DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes[0].gatewayStatus; DB_ResidenceData.Instance.SaveResidenceData(); return revertObj.Code; } @@ -776,7 +776,7 @@ var mHomeGatewayRes = Newtonsoft.Json.JsonConvert.DeserializeObject<HomeGatewayInfo>(revertObj.Data.ToString()); if (mHomeGatewayRes != null) { - DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes.gatewayStatus; + HDL_ON.DriverLayer.Control.Ins.GatewayOnline_Cloud = mHomeGatewayRes.gatewayStatus; } } return revertObj.Code; diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index 011c185..fa97357 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -2305,7 +2305,7 @@ /// <summary> /// 绾㈠鐑按鍣� /// </summary> - public const string HeaterIr = " ir.water_heater"; + public const string HeaterIr = "ir.water_heater"; /// <summary> /// 绾㈠椋庢墖 /// </summary> diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems index 1c8edc2..3f704ce 100644 --- a/HDL_ON/HDL_ON.projitems +++ b/HDL_ON/HDL_ON.projitems @@ -171,7 +171,6 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\AddMemberScanPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberManagementPageBLL.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\MemberPermissionPage.cs" /> - <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\MemberManagement\ChooseShareMemberTargetListPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\AddDevciePage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\DeviceListPage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\4-PersonalCenter\AddFunction\BrandListPage.cs" /> @@ -595,6 +594,7 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Constant.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneTargetTypeChoosePage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAutomationListChoosePage.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)DAL\DriverLayer\AsyncUdpServer.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" /> diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs index 1228ec0..85a2377 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalDataPage.cs @@ -242,7 +242,7 @@ if (MainPage.Increase) { - bodyScrolView.Height = Application.GetRealHeight(541); + bodyScrolView.Height = Application.GetRealHeight(541-10); } headPortraitView = new FrameLayout() @@ -858,16 +858,9 @@ #endregion - bodyView.AddChidren(new Button() - { - Y = Application.GetRealHeight(622), - Height = 1, - BackgroundColor = CSS_Color.DividingLineColor, - }); - btnLogout = new Button() { - Y = Application.GetRealHeight(623), + Y = Application.GetRealHeight(624), Height = Application.GetRealHeight(50), TextAlignment = TextAlignment.Center, TextSize = CSS_FontSize.SubheadingFontSize, -- Gitblit v1.8.0