From fefffbc9451499013b7af2a15fac0ccc3b394364 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 15 四月 2024 16:31:25 +0800
Subject: [PATCH] 去掉Siri先
---
HDL_ON/DAL/DriverLayer/UdpSocket.cs | 627 ++++++++++++++++++--------------------------------------
1 files changed, 204 insertions(+), 423 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/UdpSocket.cs b/HDL_ON/DAL/DriverLayer/UdpSocket.cs
index 50ceeac..f6f9c40 100644
--- a/HDL_ON/DAL/DriverLayer/UdpSocket.cs
+++ b/HDL_ON/DAL/DriverLayer/UdpSocket.cs
@@ -1,447 +1,228 @@
-锘�//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;
+锘縰sing 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;
- }
- }
+ 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;
+ //鏈湴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));
+ try
+ {
+ busSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
+ busSocket.EnableBroadcast = true;
+ }catch(Exception ex)
+ {
+ MainPage.Log("Socket 寮傚父 : " + ex.Message);
+ }
+ 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.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;
- }
+ busSocket = null;
+ return;
+ }
- asyncBeginReceive();
+ asyncBeginReceive();
- MainPage.Log($"udp port : {port}");
- }
+ 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>
+ /// 鍋滄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>
+ /// 褰撳墠鐨凷ocket鏄惁杩愯
+ /// </summary>
+ public bool IsRunning
+ {
+ get
+ {
+ return null == busSocket ? false : true;
+ }
+ }
- byte []receiveBytes = new byte[2000];
+ /// <summary>
+ /// 寮�濮嬪紓姝ユ帴鏀舵暟鎹�
+ /// </summary>
+ private void asyncBeginReceive()
+ {
+ if (!IsRunning)
+ {
+ return;
+ }
+ if (busSocket == null)
+ {
+ return;
+ }
- /// <summary>
- /// 寮�濮嬪紓姝ユ帴鏀舵暟鎹�
- /// </summary>
- private void asyncBeginReceive()
- {
- if (!IsRunning)
- {
- return;
- }
- if (busSocket == null)
- {
- return;
- }
-
- 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}");
- }
- }
- /// <summary>
- /// 閲嶈繛娆℃暟
- /// </summary>
- private int relinkCount = 0;
+ 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);
+ /// <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);
+ 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();
- }
+ //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}");
- }
- }
+ }
+ 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="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
- {
+ /// <summary>
+ /// 寮傛鍙戦�佹暟鎹粨鏉�
+ /// </summary>
+ /// <param name="iar"></param>
+ private void asyncEndSend(IAsyncResult iar)
+ {
+ Packet tempUDPPacketBuffer = (Packet)iar.AsyncState;
+ try
+ {
+ int bytesSent = busSocket.EndSendTo(iar);
+ }
+ catch
+ {
- }
- }
- }
-}
-
+ }
+ }
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0