




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LED显示屏异步控制卡通讯协议一 协议概述本协议协议采用链路层和传输层和节目应用层三层协议模式。链路层协议将传输层协议进行封装打包,包括添加起始符,添加结束符,计算并添加CRC校验(校验算法见附录),对数据段进行关键字符转义。传输层协议是用于发送控制命令,或者节目数据拆分组包的协议。对于控制命令,一条控制命令形成一个传输层的数据包;对于节目数据,一次节目数据的发送,对应多个传输层数据包(起始包,数据包,数据包,数据包,结束包;一个起始包,多个数据包,一个结束包)。节目应用层协议,是播放节目的数据,包括节目属性头部,页面,内码文字,数字时钟,图像等元素的协议定义。二 链路层协议1. 链路层协议定义编号名称长度(字节)描述1起始符(0x55)1链路层数据包的起始符2数据段N链路层数据包的数据段3结束符(0xAA)1链路层数据包的结束符2. 数据段协议描述数据段数据是由应用层形成的数据转换形成的,其转换过程如下:1) 应用层数据+CRC校验(2字节)2) 对数据(包括CRC校验值)进行转义,替换掉数据中的关键字符。0x55 替换为 0xBB 0x560xAA 替换为 0xBB 0xAB0xBB 替换为 0xBB 0xBC三 控制命令协议(传输层)1. 协议结构说明 PC到控制卡名称数据长度取值说明Command26:校正控制卡时间9:读取电源状态10:设置电源状态11:读取亮度12:设置亮度命令代码srcAddr10源地址dstAddr1目标地址(控制卡地址)SerialNo4电源,亮度值DataN附加数据,根据命令代码不同,定义不同/C语言代码宏定义和数据结构定义#define PKC_SET_TIME 6#define PKC_GET_POWER 9#define PKC_SET_POWER 10#define PKC_GET_BRIGHT 11#define PKC_SET_BRIGHT 12typedef struct PKG_HEADER WORD Command; BYTE srcAddr; BYTE dstAddr; DWORD SerialNo; /DWORD型数据包号使系统可传输4G数据TPKG_Header, *PPKG_Header; 控制卡到PC名称数据长度取值说明Command23:应答标识应答代码,固定值srcAddr1源地址(控制卡地址)dstAddr10目标地址SerialNo4包序列号,或者电源和亮度值SrcCommand2命令代码(从PC发来的协议中取得)Result2命令执行结果/C语言代码宏定义和数据结构定义#define PKC_RESPOND 3typedef struct PKG_RESPOND TPKG_Header Header; WORD Command; WORD Result;TPKG_Respond, *PPKG_Respond;2. 校正控制卡时间 PC到控制卡项目成员取值说明Command6SerialNo0Data要校正的时间值采用如下时间值结构typedef struct SYSTEMTIME WORD year; WORD month; WORD week; WORD day; WORD hour; WORD minute; WORD second; WORD msecond;TSystemTime, *PSystemTime; 控制卡到PC项目成员取值说明Command6SerialNo0SrcCommand6Result13. 读取电源状态 PC到控制卡项目成员取值说明Command9SerialNo0Data无没有附加数据 控制卡到PC项目成员取值说明Command3SerialNo=0电源关闭=1电源开启返回的电源状态SrcCommand9Result14. 设置电源状态 PC到控制卡项目成员取值说明Command10SerialNo=0电源关闭=1电源开启要设置的电源状态Data无没有附加数据 控制卡到PC项目成员取值说明Command3SerialNo=0电源关闭=1电源开启返回的电源状态SrcCommand10Result15. 读取亮度 PC到控制卡项目成员取值说明Command11SerialNo0Data无没有附加数据 控制卡到PC项目成员取值说明Command3SerialNo0到7返回的亮度值SrcCommand11Result16. 设置亮度 PC到控制卡项目成员取值说明Command12SerialNo0到7要设置的亮度值Data无没有附加数据 控制卡到PC项目成员取值说明Command3SerialNo0到7返回的亮度值SrcCommand12Result1四 节目数据拆分组包协议(传输层)1. 拆分组包发送节目数据时,节目数据要按照每包512字节的长度进行拆分组包发送。例如节目数据长度为1200字节时,则会拆成3包,分别为512字节,512字节,176字节。那么,实际发送过程为PC起始包第1个数据包第2个数据包第3个数据包结束包控制卡起始包应答数据包1应答数据包2应答数据包3应答结束包应答2. 协议结构说明组包协议与命令协议结构一样,只是命令代码不同。 PC到控制卡名称数据长度取值说明Command20:起始包1:结束包2:数据包命令代码srcAddr10源地址dstAddr1目标地址(控制卡地址)SerialNo4从0开始编号起始包=0第1个数据包=1第2个数据包=2第n个数据包=n(最后一个)结束包=n+1包序列号DataN节目数据起始包和结束包时,该段不填/C语言代码宏定义和数据结构定义#define PKC_BEGIN 0#define PKC_END 1#define PKC_DATA 2 控制卡到PC名称数据长度取值说明Command23:应答标识应答代码,固定值srcAddr1源地址(控制卡地址)dstAddr10目标地址SerialNo4包序列号(从PC发来的协议中取得)SrcCommand2命令代码(从PC发来的协议中取得)Result21:包正确(可以发送下一个包)0:数据错误(需要重新发送该包)命令执行结果/C语言代码宏定义和数据结构定义#define PKC_RESPOND 3typedef struct PKG_RESPOND TPKG_Header Header; WORD Command; WORD Result;TPKG_Respond, *PPKG_Respond;五 节目数据协议说明(节目应用层)1. 协议概述播放节目的数据,包括节目数据头部,页面,内码文字,数字时钟,图像等元素的协议定义。节目属性头部:Root页面:Leaf显示对象(文字、日期时间、图像等):ObjectRootLeafObjectObjectObjectLeafObjectObjectObject节目数据组织2. 节目数据头部名称数据长度说明id2节目代码 17:发送节目 18:下载节目Count2页面数量Size4数据长度,TRoot长度+所有子页面长度Type2节目类型 1:单路数据 2:RG双路数据Reserved2保留/节目数据头部typedef struct ROOT WORD id; /节目代码 WORD count; /标识页面数目 DWORD size; /标识整个数据流字节数(包含数据字节数和该元素本身字节数之和) WORD type; /节目类型 WORD Reserved;TRoot, *PRoot;3. 页面名称数据长度说明id2页面代码 0x30Count2对象数量Time4页面显示时间Elapse4置0Size4数据长度,TLeaf长度+所有子对象长度/页面typedef struct LEAF WORD id; /页面标识 WORD count; /数据对象数目 DWORD time; /页面显示时间 DWORD elapse; /该字段用于单片机填写运行时已过时间,对计算机此端无用 DWORD size; /对象字节数TLeaf, *PLeaf;4. 内码文字对象名称数据长度说明Object头部id2对象代码 =0x33Transparent2是否透明 置1Size4数据长度,TObject长度+所有子数据长度Left2显示区域左坐标Top-2显示区域上坐标Right2显示区域右坐标Bottom2显示区域下坐标Method2显示方式Speed2显示速度 置1Param8置0Color4红色:0xFF;绿色:0xFF00;黄色:0xFFFFFontSet4字体 =0:16点阵宋体; =1:24点阵宋体StrN文字字符串,必须以0为结尾,长度为4的倍数例如:要显示“ABCDE”,那么此处Str的字节数为8,分别为:A,B,C,D,E,0,0, 0typedef struct OBJECT WORD id; /对象标识 WORD transparent; /是否透明 DWORD size; /对象字节数 TRect rect; /对象显示区域TObject, *PObject;typedef struct PLAYPARAM short x,y; DWORD time;TPlayParam;typedef struct STRING TObject object; /对象的一般定义 WORD method; /显示方式 WORD speed; /显示速度 TPlayParam param; /预留参数空间给单片机 DWORD color; /字符颜色 DWORD fontset; /字符集(一般情况 0=16点阵 1=24点阵)TString, *PString;5. 图像对象名称数据长度说明TObject头部id2对象代码 =0x31Transparent2是否透明 置1Size4数据长度,TObject长度+所有子数据长度Left2显示区域左坐标Top-2显示区域上坐标Right2显示区域右坐标Bottom2显示区域下坐标Method2显示方式Speed2显示速度 置1Param8置0TPixels点阵头部Id20x36Width2图像宽度Height2图像高度Bits2对单色屏,置1;对双色屏,置4Size4数据长度,TPixels长度+点阵数据长度DataN点阵数据,如何定义下面有说明typedef struct WINDOW TObject object; /对象的一般定义 WORD method; /显示方式 WORD speed; /显示速度 TPlayParam param; /预留参数空间给单片机TWindow, *PWindow;typedef struct PIXELS WORD id; /对象标识 WORD width; /点阵宽度 WORD height; /点阵高度 WORD bits; /每象素位数 DWORD size; /对象大小TPixels, *PPixels;Data的定义说明:对于RG双路数据的显示屏,每个像素点占用2个Bit。图像数据采用列为主的方式,点阵数据是一列一列存储的,每列的数据占用的字节数必须为4的倍数,不足的用0补齐。例如,一个16宽*12高的图片,共有16列数据,每列数据有12个点;因为每个字节有4个像素,所以12点要3个字节,加上补4字节对齐的一个字节,每列占用4字节;整个图像占用4*16=64字节。数据使用DWORD类型来存储,下面是一列数据的例子(x,y)-R表示此位是图像中坐标为x,y的像素点的红色;当像素点为红色、黄色时,此Bit置1,否则置0。(x,y)-G表示此位是图像中坐标为x,y的像素点的绿色;当像素点为绿色、黄色时,此Bit置1,否则置0。以图像左上角为起始点(0,0)3130292827262524(0,0)-R(0,0)-G(0,1)-R(0,1)-G(0,2)-R(0,2)-G(0,3)-R(0,3)-G2322212019181716(0,4)-R(0,4)-G(0,5)-R(0,5)-G(0,6)-R(0,6)-G(0,7)-R(0,7)-G15141312111098(0,8)-R(0,8)-G(0,9)-R(0,9)-G(0,10)-R(0,10)-G(0,11)-R(0,11)-G76543210000000006. 日期时间对象名称数据长度说明Object头部id2页面代码 =0x32Transparent2是否透明 置1Size4数据长度,TObject长度+所有子数据长度Left2显示区域左坐标Top-2显示区域上坐标Right2显示区域右坐标Bottom2显示区域下坐标Offset4置0Format01格式Index01点阵编号Format11格式Index11点阵编号Format21格式Index21点阵编号Format31格式Index31点阵编号Format41格式Index41点阵编号Format51格式Index51点阵编号Format61格式Index61点阵编号Format71格式Index71点阵编号Format81格式Index81点阵编号Format91格式Index91点阵编号Format101格式Index101点阵编号Format111格式Index111点阵编号Format121格式Index121点阵编号Format131格式Index131点阵编号Format141格式Index141点阵编号Format151格式Index151点阵编号TPixelSet点阵组头部Id2点阵组标识代码 =0x37Count2点阵组中的点阵数量Size4数据长度,TPixelSet长度+所有子数据长度点阵0TPixels点阵头部Id20x36Width2图像宽度Height2图像高度Bits2对单色屏,置1;对双色屏,置4Size4数据长度,TPixels长度+点阵数据长度DataN点阵数据,如何定义下面有说明点阵1TPixels点阵头部Id20x36Width2图像宽度Height2图像高度Bits2对单色屏,置1;对双色屏,置4Size4数据长度,TPixels长度+点阵数据长度DataN点阵数据,如何定义下面有说明点阵2TPixels点阵头部Id20x36Width2图像宽度Height2图像高度Bits2对单色屏,置1;对双色屏,置4Size4数据长度,TPixels长度+点阵数据长度DataN点阵数据,如何定义下面有说明typedef struct OBJECT WORD id; /对象标识 WORD transparent; /是否透明 DWORD size; /对象字节数 TRect rect; /对象显示区域TObject, *PObject;typedef struct PIXELS WORD id; /对象标识 WORD width; /点阵宽度 WORD height; /点阵高度 WORD bits; /每象素位数 DWORD size; /对象大小TPixels, *PPixels;typedef struct _PIXELSETWORD id; /对象标识WORD count; /点阵数量DWORD size; /对象大小TPixelSet, *PPixelSet;Format和Index是成对的,Format表示要显示的内容类型,Index表示对应后面点阵组中的索引号。Format的取值为1到8,分别对应1年2月3日4星期5时6分7秒8固定字。当Format=1(2,3,5,6,7)时,如果Index=0,表示显示的是年(月日时分秒)的十位;Index=1,表示显示的是年(月日时分秒)的个位。此时,点阵组中,第0到9个点阵应该是数字0到9的点阵。当Format=8时,Index表示点阵组中的索引号。当Format=4是,表示要显示星期,此时Index 必须设为0x7F,并且点阵0到点阵6分别对应日、 一、 二、 三、 四、 五、 六的文字。举例:年月日的显示,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仙侠直播活动方案
- 代写公司策划方案
- 代理品牌活动策划方案
- 代驾公司下午茶活动方案
- 以毒攻毒活动方案
- 价格法宣传月活动方案
- 企业参访活动方案
- 仿古射箭活动方案
- 企业书协送春联活动方案
- 企业元宵喜乐会活动方案
- 2025届河南省洛阳市等两地高三下学期三模历史试题(含答案)
- 智能口罩设计优化-洞察阐释
- 2025浙江宁波市余姚市市属企业面向社会招聘企业员工68人笔试参考题库附带答案详解
- 2025年4月八大员-劳务员练习题库与参考答案解析
- 2025-2030肺癌手术行业市场现状供需分析及投资评估规划分析研究报告
- 农村饮水安全工程可行性研究报告
- DL∕T 1094-2018 电力变压器用绝缘油选用导则
- (正式版)SH∕T 3541-2024 石油化工泵组施工及验收规范
- 粒子加速器控制系统课件1-概述课件
- 美国CLIA88质量要求
- 不停车称重系统
评论
0/150
提交评论