当前位置:文档之家› 通信协议书应用举例

通信协议书应用举例

//信息头+ 控制卡地址+ 命令字+ 数据区长度+ 数据内容+ 校验码

说明:

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. 网口通信采用以太网通信协议80

2.3

2. ARP和IP数据包格式

3. 传输协议采用UDP协议和ICMP协议

4. 网口通信数据区协议格式如下:

//信息头+ 控制卡地址+ 命令字+ 数据区长度+ 数据内容+ 校验码

说明:

(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异或就是校验码

//------------------数据区协议--------------------- //-------------------------------------设置屏参-------------------------------------

typedef struct _ScreenPara //0xD1

{

unsigned char ucRGBData; //低四位表示数据(0正常,1反相)

//高四位表示显示颜色(0表示R+G或1表示G+R) unsigned short lHPixels; //横向点数(32-2048)

unsigned short lVPixels; //纵向点数(16-256)

}ScreenPara;

发送内容顺序: 数据类型(0xD1) + 结构体(ScreenPara)内容

//------------------------------设置扫描方式-----------------------------------

typedef struct _ScanMode //0xD2

{ unsigned char ucScanType; //扫描方式

//0静态扫描, 1两扫, 2四扫, 3八扫, 4十六扫unsigned char ucScanOutput; //扫描输出

//1每区1行, 2每区2行, 4每区4行,

//8每区8行, 16每区16行

unsigned char ucHeapRowCol; //最低六位打折列数, 4四列, 8八列, 16十六列

//bit6表示行顺序, bit7表示列顺序(0正常, 1反相) unsigned char ucScanRate; //扫描频率

}ScanMode;

发送内容顺序: 数据类型(0xD2) + ScanMode

//-------------------------------设置硬件参数-------------------------------------

typedef struct _HardwareSet //0xD3

{

unsigned char ucCardAdd; //控制卡地址(1~255)

unsigned long UartBaud; //串口波特率

unsigned short usPortID; //端口号(5000~6000)

unsigned short usIP[2]; //IP地址(先低字节,后高字节)

unsigned short SubnetMask[2]; //子网掩码

unsigned short GatewayIP[2]; //默认网关

}HardwareSet;

发送内容顺序: 数据类型(0xD3) + HardwareSet

//-------------------------------回读硬件参数---------------------------------

上位机:

注意:数据区为空(数据长度为0)

下位机应答:

typedef struct _HardwareSet //0xD4

{

unsigned char ucCardAdd; //控制卡地址(1~255)

unsigned long UartBaud; //串口波特率

unsigned short usPortID; //端口号(5000~6000)

unsigned short usIP[2]; //IP地址(先低字节,后高字节)

unsigned short SubnetMask[2]; //子网掩码

unsigned short GatewayIP[2]; //默认网关

}HardwareSet;

//---------------------------节目-----------------------------------------

typedef struct _TIME1302 //时间

{

unsigned char chSec; // seconds after the minute - [0,59]

unsigned char chMin; // minutes after the hour - [0,59]

unsigned char chHour; // hours after the midnight - [0,23]

unsigned char chDate; // day of the month - [1,31]

unsigned char chMon; // months since January - [0,11]

unsigned char chDay; // days since Sunday - [0,6]

unsigned short usYear; //4位年

}TIME1302;

相关主题