C# 监听串口数据并触发事件
2016-09-27 15:46
302 查看
using System; using System.Text; using System.Net; using System.Net.Sockets; namespace HtTcp { public delegate void ITCPAcsEvents_OnEventEventHandler(string _Type, string _ReturnValue); public class HtTcpAcs { public event ITCPAcsEvents_OnEventEventHandler OnEvent; public HtTcpAcs() { } public void HtTcpAcsx(string IpAddress,int IpPorts) { Socket serverSocket; IPEndPoint ephost = new IPEndPoint(IPAddress.Parse(IpAddress), IpPorts); serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); #region 发送接收 try { int counter = 0; string retrunValue = ""; string retrunType = ""; serverSocket.Connect(ephost); while (true) { //接收的消息 暂定获取1M数据 Byte[] recvBytes = new Byte[2048]; Int32 bytes = serverSocket.Receive(recvBytes, recvBytes.Length, SocketFlags.None); string msg = TcpDataHelp.ToHexString(recvBytes, recvBytes.Length).ToUpper(); //截取有效帧数据 int i = msg.IndexOf("3A") + 2; int j = msg.IndexOf("0D0A"); string strred = msg.Substring(i, j - i); string strxy = strred.Substring(0, strred.Length - 2); string strbd = strred.Substring(strred.Length - 2, 2); if (TcpValidate.CheckSumgz(strxy) == strbd) { //获取编码 string funCode = strxy.Substring(2, 2); //判断编码 区分数据解析函数 switch (funCode) { retrunValue = Convert.ToInt64(strxy.Substring(4, strxy.Length - 4), 16).ToString(); } if (OnEvent!=null) { OnEvent(funCode, retrunValue); } } //Thread.Sleep(100); } } catch (Exception ex) {
MessageBox.Show(<span style="font-family: Arial, Helvetica, sans-serif;">"连接/发送/接收过程中,发生了错误!\r\n"</span><span style="font-family: Arial, Helvetica, sans-serif;">)</span>
} finally { serverSocket.Close(); } #endregion } //监听控制器 } }
相关文章推荐
- Qt之串口编程--使用事件驱动来触发接收数据
- C#检测串口被拔掉等一些触发事件合集
- c# 与java 相同实现 自定义事件的触发及监听
- C#用串口接收事件接不全数据的处理
- 串口类的DateReceived事件---发送一次指令,就会自动触发此事件接收数据
- vs2005,combox 数据绑定和SelectedIndexChanged事件触发 引发的问题
- C#事件的定义与触发[查找]
- 在C#中使用代理的方式触发事件_转摘
- 在C#中使用代理的方式触发事件
- C#代表元及事件触发 转载
- 在C#中使用代理的方式触发事件
- 在C#中使用代理的方式触发事件
- 实用Javascript 传值, 数据验证, 事件触发总结
- 在C#中使用代理的方式触发事件
- 在C#中使用代理的方式触发事件 (委托和事件 )
- C#串口操作的数据格式
- 在C#中使用代理的方式触发事件_转摘
- 在C#中使用代理的方式触发事件
- 在C#中使用代理的方式触发事件 的简单习作
- 在C#中使用代理的方式触发事件