zoukankan      html  css  js  c++  java
  • LED显示屏通讯协议 1

    以下说明均以心恬科技的XT-106控制卡作为硬件基础设备。

    与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.

  • 相关阅读:
    ZooKeeper 到底解决了什么问题?
    10个 Linux 命令,让你的操作更有效率
    你的镜像真的安全吗?
    谁动了我的主机? 之活用History命令
    Linux vs Unix
    Linux应急响应入门——入侵排查
    (一)Sharding-JDBC分库分表概述
    (三)微服务的注册中心—Eureka
    (二)springcloud功能组件
    (一)微服务基础
  • 原文地址:https://www.cnblogs.com/laoxizi/p/3704832.html
Copyright © 2011-2022 走看看