通信协议书应用举例.docx
- 文档编号:3921328
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:12
- 大小:20.12KB
通信协议书应用举例.docx
《通信协议书应用举例.docx》由会员分享,可在线阅读,更多相关《通信协议书应用举例.docx(12页珍藏版)》请在冰豆网上搜索。
通信协议书应用举例
//-------------------串口通信协议----------------
//信息头+控制卡地址+命令字+数据区长度+数据内容+校验码
说明:
1.信息头:
四个字节,内容依次为:
0x51,0x44,0x45,0x4C
2.控制卡地址:
单字节,范围为1~255(0为广播地址)
3.命令字:
单字节
⑴发送设置屏参的命令字为0xD1
⑵发送设置扫描方式的命令字为0xD2
⑶发送设置硬件参数的命令字为0xD3
⑷发送回读硬件参数的命令字为0xD4
⑸发送节目数据的命令字为0xD5
⑹发送定时开关机的命令字为0xD6
⑺发送校准时间的命令字为0xD7
⑻发送显示屏当前节目内容回读的命令字为0xD8
⑼发送调节显示屏亮度的命令字为0xD9
⑽下位机回送接收状态的命令字为0xDD
⑾发送通信结束的命令字为0xFD
4.数据区长度:
双字节,表示本次发送的数据区长度,但是每次发送的信息内容的长度最大为512字,数据区长度未标明的其值为0
5.数据内容:
主要是上位机将要发给下位机的数据,需要注意:
数据发送顺序必须严格按照数据协议的规则发送.
6.校验码:
双字节
“信息头+控制卡地址+命令字+信息内容长度+信息内容”中的所有数据的每个字依次异最终所得结果再与0x5555异或就是校验码
//------------------网口通信协议------------------
1.网口通信采用以太网通信协议802.3
2.ARP和IP数据包格式
3.传输协议采用UDP协议和ICMP协议
4.网口通信数据区协议格式如下:
//信息头+控制卡地址+命令字+数据区长度+数据内容+校验码
说明:
(1)信息头:
四个字节,内容依次为:
0x51,0x44,0x45,0x4C
(2)控制卡地址:
单字节,范围为1~255(0为广播地址)
(3)命令字:
单字节
1发送设置屏参的命令字为0xD1
2发送设置扫描方式的命令字为0xD2
3发送设置硬件参数的命令字为0xD3
4发送回读硬件参数的命令字为0xD4
5发送节目数据的命令字为0xD5
6发送定时开关机的命令字为0xD6
7发送校准时间的命令字为0xD7
8发送显示屏当前节目内容回读的命令字为0xD8
9发送调节显示屏亮度的命令字为0xD9
10下位机回送接收状态的命令字为0xDD
11发送通信结束的命令字为0xFD
(4)数据区长度:
双字节,表示本次发送的数据区长度,但是每次发送的信息内容的长度最大为512字,数据区长度未标明的其值为0
(5)数据内容:
主要是上位机将要发给下位机的数据,需要注意:
数据发送顺序必须严格按照数据协议的规则发送.
(6)校验码:
双字节
“信息头+控制卡地址+命令字+信息内容长度+信息内容”中的所有数据的每个字依次异最终所得结果再与0x5555异或就是校验码
//------------------数据区协议---------------------
//-------------------------------------设置屏参-------------------------------------
typedefstruct_ScreenPara//0xD1
{
unsignedcharucRGBData;//低四位表示数据(0正常,1反相)
//高四位表示显示颜色(0表示R+G或1表示G+R)
unsignedshortlHPixels;//横向点数(32-2048)
unsignedshortlVPixels;//纵向点数(16-256)
}ScreenPara;
发送内容顺序:
数据类型(0xD1)+结构体(ScreenPara)内容
//------------------------------设置扫描方式-----------------------------------
typedefstruct_ScanMode//0xD2
{unsignedcharucScanType;//扫描方式
//0静态扫描,1两扫,2四扫,3八扫,4十六扫
unsignedcharucScanOutput;//扫描输出
//1每区1行,2每区2行,4每区4行,
//8每区8行,16每区16行
unsignedcharucHeapRowCol;//最低六位打折列数,4四列,8八列,16十六列
//bit6表示行顺序,bit7表示列顺序(0正常,1反相)
unsignedcharucScanRate;//扫描频率
}ScanMode;
发送内容顺序:
数据类型(0xD2)+ScanMode
//-------------------------------设置硬件参数-------------------------------------
typedefstruct_HardwareSet//0xD3
{
unsignedcharucCardAdd;//控制卡地址(1~255)
unsignedlongUartBaud;//串口波特率
unsignedshortusPortID;//端口号(5000~6000)
unsignedshortusIP[2];//IP地址(先低字节,后高字节)
unsignedshortSubnetMask[2];//子网掩码
unsignedshortGatewayIP[2];//默认网关
}HardwareSet;
发送内容顺序:
数据类型(0xD3)+HardwareSet
//-------------------------------回读硬件参数---------------------------------
上位机:
注意:
数据区为空(数据长度为0)
下位机应答:
typedefstruct_HardwareSet//0xD4
{
unsignedcharucCardAdd;//控制卡地址(1~255)
unsignedlongUartBaud;//串口波特率
unsignedshortusPortID;//端口号(5000~6000)
unsignedshortusIP[2];//IP地址(先低字节,后高字节)
unsignedshortSubnetMask[2];//子网掩码
unsignedshortGatewayIP[2];//默认网关
}HardwareSet;
//---------------------------节目-----------------------------------------
typedefstruct_TIME1302//时间
{
unsignedcharchSec;//secondsaftertheminute-[0,59]
unsignedcharchMin;//minutesafterthehour-[0,59]
unsignedcharchHour;//hoursafterthemidnight-[0,23]
unsignedcharchDate;//dayofthemonth-[1,31]
unsignedcharchMon;//monthssinceJanuary-[0,11]
unsignedcharchDay;//dayssinceSunday-[0,6]
unsignedshortusYear;//4位年
}TIME1302;
typedefstruct_User_FontSet
{
//char*strFontName;//字体的名称
//charcFontBold;//字体是否加粗
//charcFontItaic;//字体是否是斜体
//charcFontUnderline;//字体是否带下划线
//COLORREFcolorFont;//字体的颜色
ShortsFontSize;//字体的大小
shortsAlignStyle;//对齐方式0-左对齐1-居中2-右对齐
}User_FontSet;
typedefstruct_COLORREF
{
unsignedcharucR;
unsignedcharucG;
unsignedcharucB;
}COLORREF;
//窗口信息
typedefstruct_User_PartInfo//注意:
各个区位置不能重叠且不能超出屏幕范围
{
unsignedshortulX;//窗口的起点X,X方向坐标为16的倍数
unsignedshortulY;//窗口的起点Y
unsignedshortulWidth;//窗体的宽度,宽度应该为16的倍数
unsignedshortulHeight;//窗体的高度
shortsFrameMode;//边框宽度0无边框1单线2双线3三线
COLORREFFrameColor;//边框颜色,r=g=b=0黑,
//红色,r=255,g=0,b=0
//绿色,r=0,g=255,b=0
//蓝,r=0,g=0,b=255
//黄r=255,g=255,b=0
}User_PartInfo;
//特技
typedefstruct_User_MoveSet//动画方式
{
unsignedcharucActionType;//特技
unsignedcharucActionSpeed;//速度,取值0~15步长
unsignedcharucClear;//是否需要清除背景(0不清除,1清除)
unsignedcharucClearSpeed;//清场速度,取值0~15
unsignedcharucClearActionType;//清场方式
unsignedcharucFrameTime;//更新时间(每帧),单位ms,取值20~200,能被10整除
unsignedshortsHoldTime;//在屏幕上停留的时间,单位0.1秒
}User_MoveSet;
//节目播放方式
typedefstruct_User_PlaySet
{
unsignedcharucPlayMode;//bit0、bit1表示系统模式,0表示图片模式,1文字模式
//bit2、bit3播放模式,0按顺序连续播放,1限时播放
//bit4定时播放,0不定时播放,1定时播放
//bit5、bit6、bit7循环播放模式0每天,1日期,2星期
unsignedlongulLimitTimes;//定时播放时间
TIME1302StartPlayTimes;//播放开始时间
//注意:
在此chDay的每一位代表一天,最高位无效
TIME1302StopPlayTimes;//播放结束时间
}User_PlaySet;
//文本信息
Typedefstruct_User_PerText
{
UnsignedlongSelfPot;//指向本文本存放的地址
UnsignedlongNextPot;//指向下一文本存放的地址(如果是最后一个指向第一个)
User_MoveSetMoveSet;//特技动作方式设置
Unsignedchar*pData;//本文本的内容(位图信息)
}User_PerText;
//窗体信息
Typedefstruct_User_PerZone
{
unsignedcharucPartType;//分区类型
//0图形文本1文本2单行文本3静止文本
//4表格
//5时间日期
//6计时
//7温度
User_PartInfoPartInfo;//分区信息
COLORREFBkColor;//背景颜色
unsignedshortTextAmot;//文本总数
User_PerTextPerText;//文本信息
}User_PerZone;
//节目内容
typedefstruct_User_PerProgram
{
unsignedcharucProID;//节目ID号,从0开始排序
COLORREFBkColor;//背景颜色
User_PlaySetPlaySet;//播放设置
unsignedshortContAmot;//窗体数量小于20
//注意:
每个节目最多能添加十个图文区,五个时间区,一个温度区,三个倒计时区
unsignedlongPerContPot[20];//指向各个窗体的地址(无为0)
User_PerZonePerZone;//窗体信息
}User_PerProgram;
typedefstruct_User_Program//0xD5
{
unsignedshortProAmo;//节目数量(最大10个)
unsignedlongPerProPot[10];//指向各个节目内容初始地址(无为0)
User_PerProgramPerPro;//节目内容
}User_Program;
若有多个节目按照上面节目发送顺序依次发送每个节目的内容
若有多个窗体按照上面节目发送顺序依次发送每个窗体的内容
若有多个文本按照上面节目发送顺序依次发送每个文本的内容
//-----------------------------------------------------
显示屏当前节目内容回读0xD8:
数据区为:
显示屏当前播放的节目内容(数据格式与发给下位机的节目内容相同)
//-----------------------------------------------------
调节显示屏亮度0xD9:
数据长度为2字节,有效值为1~8000
//----------------下位机回送接收状态的数据区格式----------------
数据区长度16
0为正常接收
非0为错误接收
1为校验码错误
//-----------------------------------------------------
发送通信结束内容:
数据类型(0xFD)+结束符号四个字节(0x71+0x64+0x65+0x6C)
位图数据格式要求:
⑴文本:
①位图宽度为本窗体的宽度。
特技中的左移、右移、上移、下移不能出现不全的字,
位图宽度不足时用背景色填补。
②位图高度不限,但高度必须为本窗体高度的整数倍。
本窗体高度中也不允许出现不全的字,不足时用背景色填补。
⑵单行文本:
①位图宽度为本窗体的宽度。
特技中的右移、上移、下移不能出现不全的字,而左移除了停留时间为0之外也不能出现不全的字,不足时用背景色填补。
②位图高度不限,但高度必须为本窗体高度的整数倍。
本窗体高度中也不允许出现不全的字,不足时用背景色填补。
⑶静止文本:
1位图宽度为本窗体的宽度。
2位图高度为本窗体的高度。
3所有内容要能一次性的显示在本窗体内。
⑷有边框时,需要加上边框并把文字放在边框内。
/*
动画方式:
iActionType清除方式:
iClearActionType
0-随机0-不清场1-随机
1-翻页2-快速清除
2-左覆盖3-左覆盖
3-右覆盖4-右覆盖
4-上覆盖5-上覆盖
5-下覆盖6-下覆盖
6-左上角覆盖(直线)7-左上角覆盖(直线)
7-右上角覆盖(直线)8-右上角覆盖(直线)
8-左下角覆盖(直线)9-左下角覆盖(直线)
9-右下角覆盖(直线)10-右下角覆盖(直线)
10-左上角覆盖(斜线)11-左上角覆盖(斜线)
11-右上角覆盖(斜线)12-右上角覆盖(斜线)
12-左下角覆盖(斜线)13-左下角覆盖(斜线)
13-右下角覆盖(斜线)14-右下角覆盖(斜线)
14-水平百叶15-水平百叶
15-垂直百叶16-垂直百叶
16-左右对开17-左右对开
17-上下对开18-上下对开
18-左右闭合19-左右闭合
19-上下闭合20-上下闭合
20-左移21-左移
21-右移22-右移
22-上移23-上移
23-下移24-下移
24-左上角移25-马赛克(小)
25-右上角移26-马赛克(中)
26-左下角移27-马赛克(大)
27-右下角移28-渐变
28-中间向四周(矩形)29-中间向四周(矩形)
29-四周向中间(矩形)30-四周向中间(矩形)
30-中间向四周(菱形)31-中间向四周(十字)
31-四周向中间(菱形)32-四周向中间(十字)
32-中间向四周(十字)33-中间向四周(菱形)
33-四周向中间(十字)34-四周向中间(菱形)
*/
typedefstruct_User_Timer//计时区
{
char*chTitle;//显示文字内容
User_PartInfoPartInfo;//分区信息
COLORREFBkColor;//背景颜色,黑-0,红-255,绿-65280,黄-65535
unsignedcharucTexts;//固定文字个数,不能超过
User_FontSetFontInfo;//字体设置
TIME1302reachTime;//到达日期
unsignedcharucDispSign;//是否显示标志
//bit0是否显示秒0-不显示1-显示
//bit1是否显示分钟
//bit2是否显示小时
//bit3是否显示天
//bit4单行还是多行,0-单行,1-多行
}User_Timer;
typedefstruct_User_DateTime//日期时间区参数
{
char*chTitle;//添加显示文字
User_PartInfoPartInfo;//分区信息
COLORREFBkColor;//背景颜色,
User_FontSetFontInfo;//字体设置
unsignedcharucDisplayType;//低四位表示显示风格,高四位表示年份位数0到4
//0-"3/10/2006星期六10:
20:
30"
//1-"2006-03-10星期六10:
20:
30"
//2-"2006年3月10日星期六10点20分30秒"
//3-模拟时钟
unsignedcharDispSign;//是否显示标志
//最高位表示单行还是多行,0-单行1-多行
//bit6表示是否显示年,0-不显示,1-显示
//bit5表示是否显示月
//bit4表示是否显示天
//bit3表示是否显示星期
//bit2表示是否显示小时
//bit1表示是否显示分钟
//bit0表示是否显示秒
}User_DateTime;
typedefstruct_User_Temperature//温度区
{
User_PartInfoPartInfo;//分区信息
COLORREFBkColor;//背景颜色
User_FontSetFontInfo;//字体设置
char*chTitle;//标题
shortsDisplayType;//显示格式:
0-度1-°C
}User_Temperature;
//------------------------------------定时开关机----------------------------
typedefstruct_ONOFFTime
{
unsignedcharchSec;//secondsaftertheminute-[0,59]
unsignedcharchMin;//minutesafterthehour-[0,59]
unsignedcharchHour;//hoursafterthemidnight-[0,23]
}ONOFFTime;
typedefstruct_SetONOFFTime//0xD5
{
unsignedcharucENSign;//是否使能1使能0关闭
ONOFFTimeOnTime;//开机时间
ONOFFTimeOffTime;//关机时间
}SetONOFFTime;
发送顺序:
数据类型(0xD5)+结构体(SetONOFFTime)内容
//-----------------------------------校准时间-------------------------------
typedefstruct_CheckTime1302//0xD6
{
TIME1302CheckTime;
}CheckTime1302;
发送顺序:
数据类型(0xD6)+结构体(CheckTime1302)内容
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通信 协议书 应用 举例