LED显示屏通讯协议 1
2014-05-03 10:11
459 查看
以下说明均以心恬科技的XT-106控制卡作为硬件基础设备。
与LED显示屏通讯,第一步是建立连接(我们称之为Hello)。
网络通讯协议方式为UDP,可以自己定义UDP数据包结构,也可以利用系统提供的Socket工具来访问LED显示屏。
准备好硬件(显示屏配置成功)之后就可以试图通过代码来与显示屏建立连接了。
首先进行UDP的组包,我们以C#为例:
关于广播地址,视网络环境而定。调试代码过程中注意防火墙拦截,如使用WinPcap自行组包便可以忽略防火墙。
下面,建立一个线程来监听LED显示屏返回的Hello数据包。
发送至LED显示屏的UDP数据端口为9888,LED显示屏返回至设备的UDP数据端口为9889.
与LED显示屏通讯,第一步是建立连接(我们称之为Hello)。
网络通讯协议方式为UDP,可以自己定义UDP数据包结构,也可以利用系统提供的Socket工具来访问LED显示屏。
准备好硬件(显示屏配置成功)之后就可以试图通过代码来与显示屏建立连接了。
首先进行UDP的组包,我们以C#为例:
public void Hello() { byte[] data = new byte[256]; data[0] = 0xF2; data[1] = 0xFF; for (int i = 0; i < 8; i++) { data[2 + i] = 0xFF; } IPAddress Adrr = IPAddress.Parse("255.255.255.255"); // IPAddress Adrr = IPAddress.Parse("239.0.0.1"); IPEndPoint ipep = new IPEndPoint(Adrr, 9888); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); newsock.EnableBroadcast = true; newsock.SendTo(data, ipep); newsock.Close(); }
关于广播地址,视网络环境而定。调试代码过程中注意防火墙拦截,如使用WinPcap自行组包便可以忽略防火墙。
下面,建立一个线程来监听LED显示屏返回的Hello数据包。
Thread nthread=null; nthread = new Thread(new ThreadStart(ListenStart)); nthread.IsBackground = true; nthread.Start(); public void ListenStart() { UdpClient udp = new UdpClient(9889); udp.EnableBroadcast = true; IPEndPoint AllIPEndPoint = new IPEndPoint(IPAddress.Any, 9889); do { byte[] mesg = udp.Receive(ref AllIPEndPoint); if (mesg[0] == 0xF2 && mesg[1] == 0xFF) { Dispatcher.Invoke((Action)delegate { // Do Something ... }); // Do Something ... } mesg = new byte[] { }; } while (true); }
发送至LED显示屏的UDP数据端口为9888,LED显示屏返回至设备的UDP数据端口为9889.
相关文章推荐
- 20140503
- http,socket,tcp/ip 网络传输与通讯知识总结
- Python3.3 print函数用法,print 格式化输出
- 【Leetcode系列之一】Leetcode OJ 10道入门题研究
- 他日若遂凌云志,敢笑黄巢不丈夫
- 重構列表
- JavaScript打印网页指定区域的例子
- session存储和机制
- 添加第三方类库造成的linker command failed with exit code 1 (use -v to see invocation)的错误调试
- java 数据流DataOutputStream和DataInputstream
- uva10250
- Linux下which、whereis、locate、find 命令的区别
- 【LeetCode】Reverse Integer
- 手机开发之Web App和Native App 谁将是未来
- Zxing图片识别 从相册选二维码图片解析总结
- js:对象的创建(为prototype做铺垫)
- ORACLE 创建表空间、用户、授权
- 并发管理器1——概念
- [c.y.j]spring redis utils
- VS2012 离线帮助文档帮错 指定的用于安装帮助内容的位置无效, 的处理办法