下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VisionShow显示屏掌握器通讯协议通讯方式RS-232C波特率: 9600,14400,19200,38400,57600,115200可选〔由掌握软件进展设置〕数据长度:8位校验位: 无停顿位: 1位流掌握: 无RS-485RS-232C一样10/100M以太网可支持局域网或Internet,如需远程掌握可承受外置CDMA模块进展无线通讯数据构造及数据组织格式显示数据由以下的构造组成:根节点(Root)| 页面(Leaf)| 页面|-----字符串(String)数据构造特点:根节点下只能由页面节点构成,不能消灭其他节点页面节点下只能由各种对象节点构成,不能消灭根节点及页面节点第一个页面的计算公式为:leaf=(PLeaf)((DWORD)root+sizeof(TRoot));第一个对象的计算公式为:object=(PObject)((DWORD)leaf+sizeof(TLeaf));下一对象的计算公式为:leaf=(PLeaf)((DWORD)leaf+leaf->size)object=(Pobject)((DWORD)object+object->size)数据构造的C根节点(Root)#define ROOT_PLAY0x11#define ROOT_DOWNLOAD0x12#define SCREEN_UNICOLOR0x00#define SCREEN_COLOR0x01#define SCREEN_GRAY0x02#define SCREEN_FULLCOLOR0x03typedefstructROOT{WORDid; //数据流类型WORDcount;//页面数目DWORDsize;//整个数据流字节数(包含数据字节数和该元素本身字节数之和)WORDtype;//要求的显示屏类型〔单色、双色、全彩〕WORDReserved;}TRoot,*PRoot;数据构造说明:id: 说明数据流的类型,有两种数据类型ROOT_PLAYROOT_DOWNLOADsize:说明该构造及下属数据的长度之和〔Size440〕type:说明数据流所要求的显示屏类型(SCREEN_UNICOLOR,SCREEN_COLOR…)页面节点(Leaf)#define OBJECT_LEAF 0x30typedefstructLEAF{WORDid; //页面标识WORDcount;//对象数目DWORDtime; //页面显示时间单位为毫秒DWORDReserved;DWORDsize; //对象字节数}TLeaf,*PLeaf;数据构造说明:id:固定为OBJECT_LEAF对象构造#define OBJECT_STRING 0x33typedefstructRECT{ /*以左上角为原点*/shortleft;shorttop;shortright;shortbottom;}TRect,*PRect;typedefstructOBJECT{WORD id; //对象标识,固定为OBJECT_STRINGWORD flicks; //闪耀次数DWORD size; //对象字节数TRect rect; //对象显示区域}TObject;typedefstructSTRING{TObject object; //对象的一般定义WORD method; //显示方式WORD speed; //显示速度DWORD Reserved[2]DWORD color; //字符颜色:0xff=红色0xFF00=绿色0xFF0000=蓝色DWORD fontset; //字符集(一般状况0=16点阵1=24点阵)}TString,*PString;字符串数据构造说明:假设需要显示屏显示一个字符串,应当按如下步骤组织一个字符串:1.安排一段内存,内存的长度为:TString数据构造长度+字符串长度+12.填写TString3.将字符串拷贝到TStringNULL(0x00))method:显示方式1.马上显示2.左滚显示3.连续上滚4.中间向上下开放5.中间向两边开放6.中间向四周开放7.向左移入8.向右移入9.从左向右开放10.从右向左开放11.右上角移入12.右下角移入13.左上角移入14.左下角移入15.从上向下移入16.从下向上移入17.闪烁数据组织实例假定需要向显示屏发送字符串“中国人民万岁abc”,需进展如下操作:填写Root数据构造(假定已安排了足够的内存,root已指向安排的内存)root->id=ROOT_PLEAY;root->count=0;root->size=sizeof(TRoot);root->type=SCREEN_COLOR;填写Leaf数据构造leaf=(PLeaf)((DWORD)root+sizeof(TRoot));leaf->id=OBJECT_LEAF;leaf->size=sizeof(TLeaf);leaf->count=0;leaf->time=1000;root->count++; //此处需回填root对象,说明增加了一个页面root->size+=leaf->size; //同样root所下属的数据长度已增加填写String数据构造string=(PString)((DWORD)leaf+sizeof(TLeaf));string->object.id=OBJECT_STRING;string->object.rect.left=0;string->object.rect.top=0;string->object.rect.right=128;string->object.rect.bottom=32; //说明字符串显示在(0,0,128,32)这个区域内string->object.flicks=5; //5次string->method=17; //显示方式为闪耀string->speed=8; //8个时钟周期闪耀一次〔时钟周期为掌握卡设置中的单步时间〕string->color=0xFFFF; //0xff=红色0xFF00=绿色0xFF0000=蓝色,此处为黄色string->fontset=0; //字符集,0=16点阵宋体1=24点阵宋体拷贝数据str=“中国人民万岁abc”;memcpy((char*)((DWORD)string+sizeof(TString)),str,strlen(str));*((char*)((DWORD)string+sizeof(TString)+strlen(str)))=NULL; (NULL结尾)string->object.size=sizeof(TString)+strlen(str);//4字节对齐模式if (string->object.size&3) string->object.size=(string->object.size&~3)+4;//Leaf对象及Root对象leaf->count++;leaf->size+=string->object.size;root->size+=string->object.size;上面的过程执行完成后,显示数据已经组织完毕,下面就是将数据组织起来发送出去数据发送题,必需制定有效的数据组织方式,使接收方能校验数据的正确性。数据发送流程发出连接命令发出连接命令连接命令应答正确?连接命令无应答未超出指定的连接次数超出指定的连接次数退动身送连接命令应答正常发送数据帧数据帧应答正常?应答不正常,重发数据帧数据未发送完毕应答正常发送完毕数据发送完毕?发送完毕帧完毕帧应答正常数据已发送完毕完毕帧应答不正常红色表示在这个流程中属于关键的局部发送过程数据构造及常量#definePKC_BEGIN0#definePKC_END1#definePKC_DATA2#define PKC_RESPOND3#definePKP_LEADER0x55#definePKP_SUFFIX0xAA#define PKP_FILLCH 0xBB#define PKP_LENGTH 512#define PKP_MAX_LENGTHPKP_LENGTH*2+sizeof(TPKG_Header)*2typedefstructPKG_HEADER{WORD Command;BYTE srcAddr;BYTE dstAddr;DWORD SerialNo;}TPKG_Header,*PPKG_Header;typedefstructPKG_RESPOND{TPKG_Header Header;WORD Command;WORD Result;}TPKG_Respond,*PPKG_Respond;上面流程中提到的发出连接命令、发送数据帧、发送完毕帧按如下方式构造TPKG_Header header;//连接命令headermand=PKC_BEGIN;header.srcAddr=0;header.dstAddr=0;header.SerialNo=0;//数据帧headermand=PKC_DATA;header.srcAddr=0;header.dstAddr=0;header.SerialNo=当前数据帧序列号(1开头挨次递增)if (SerialNo*PKP_LENGTH<DataLength)memcpy(&header+sizeof(header),buffer+(SerialNo-1)*PKP_LENGTH,PKP_LENGTH);elsememcpy(&header+sizeof(header),buffer+(SerialNo-1)*PKP_LENGTH,DataLength-SerialNo*PKP_LENGTH);//完毕帧headermand=PKC_END;header.srcAddr=0;header.dstAddr=0;if (DataLength%PKP_LENGTH)header.SerialNo=(DataLength/PKP_LENGTH)+2;elseheader.SerialNo=(DataLength/PKP_LENGTH)+1;//例:1024字节,那么SerialNo=(1024/512)+1=3//1025字节,SerialNo=(1025/512)+2=4命令发送为了能够检测数据错误及能够准确的识别每一个命令,上面形成的数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物实验防护装备使用手册
- 外贸公司单证审核与风险防范操作手册
- 关于2026年度市场拓展计划执行说明通知函(3篇)
- 跨部门技术研讨会会议通知(7篇)
- 文化艺术策划公司活动策划与执行能力KPI考核表
- 跨境电商运营管理优化手册
- 数字媒体渠道运营效率评估表
- 安全培训考核通过通知函(7篇)
- 市场营销数字营销策略执行手册
- 2026年患者就医体验工作总结报告(2篇)
- 《铁路机车车辆》课件 项目五 制动系统
- 12精卫填海教学课件(共34张)
- 胸痛的鉴别诊断与处理专家讲座
- 2026年国能源招聘笔试真题及答案
- 2025 医药产品冷链物流温控设施设备验证 性能确认技术规范
- GB/T 24134-2026橡胶和塑料软管静态条件下耐臭氧性能的评价
- 2025年11月计算机技术与软件《中级信息安全工程师(下午卷)》试题真题及
- 2026年市政水务管理的创新发展
- 2026年教科版五年级科学上册3.5《摩擦力的比较》课件
- 深圳龙岗区建筑工务署笔试真题题库(含完整答案解析)
- 露天矿边坡管理培训课件
评论
0/150
提交评论