简易可变限速标志通信协议(公开)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易可变限速标志通信协议 v4.1

2000.11.10

通信参数:波特率 - 9600

数据位 - 8

奇偶校验 - 无校验

停止位 - 1

流控制 - 无

定义: STX - 0x02 (帧头)

ETX - 0x03 (帧尾)

ESC - 0x1B (转义符)

发送一帧时,若帧头与帧尾之间有任意字节等于 STX,ETX 或 ESC,则需转义:

STX 转成 ESC 和 0xE7

ETX 转成 ESC 和 0xE8

ESC 转成 ESC 和 0x00

一、取简易可变限速标志故障信息

发送:

STX 1字节

ADDR 2字节

'01' 2字节

CRC 2字节

ETX 1字节

应答:

STX 1字节

ADDR 2字节

STATE 4字节

CRC 2字节

ETX 1字节

*注:① ADDR 为可变情报板地址,范围 '01' - '99','00' 为广播地址。

② CRC 的生成多项式为 G(X) = X^16 + X^12 + X^5 + 1,计算时不包括 STX。

③ STATE 为可变情报板状态,先定义如下两字节:

┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐

│15│14│13│12│11│10│ 9│ 8│ 7│ 6│ 5│ 4│ 3│ 2│ 1│ 0│

└┬┴─┴─┴─┴─┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┴┬┘││││││││││││

└────┬────┘温保防输保单显保保保

│度留雷入留像示留留留

保留异器 220V 素电

常故交管源

故障流故故

障电障障

然后每四位拆成一字符:

0x0 - 0x9 转换成 '0' - '9'

0xA - 0xF 转换成 'A' - 'F'

二、发送简易可变限速标志显示内容

发送:

STX 1字节 //0X02

ADDR 2字节 //00

'22' 2字节 //命令号

显示字符串不定长 //60

CRC 2字节 //crc

ETX 1字节 //0x03

应答:

STX 1字节

ADDR 2字节

OK 1字节

CRC 2字节

ETX 1字节

*注:① OK 为返回值,'0' 表示此命令执行成功,否则表示失败。

三、获取简易可变限速标志显示内容

发送:

STX 1字节

ADDR 2字节

'23' 2字节

CRC 2字节

ETX 1字节

应答:

STX 1字节

ADDR 2字节

显示字符串不定长

CRC 2字节

ETX 1字节

四、改变简易可变限速标志亮度调节方式

发送:

STX 1字节

ADDR 2字节

'04' 2字节

BMODE 1字节

CRC 2字节

ETX 1字节

应答:

STX 1字节

ADDR 2字节

OK 1字节

*注:① BMODE 为亮度调节方式,定义如下:

'0' - 自动调节

'1' - 手动调节

五、调节简易可变限速标志的显示亮度

发送:

STX 1字节

ADDR 2字节

'05' 2字节

RED 2字节

GREEN 2字节

BLUE 2字节

CRC 2字节

ETX 1字节

应答:

STX 1字节

ADDR 2字节

OK 1字节

CRC 2字节

ETX 1字节

*注:①此命令只有在亮度为手动调节时才合法。

② RED 为红基色亮度,范围 '00' - '31'。

③ GREEN 为绿基色亮度,范围 '00' - '31'。

④ BLUE 为蓝基色亮度,范围 '00' - '31'。

六、取简易可变限速标志的亮度调节方式和当前显示亮度

发送:

STX 1字节

ADDR 2字节

'06' 2字节

CRC 2字节

ETX 1字节

应答:

STX 1字节

ADDR 2字节

BMODE 1字节

BRI 2字节

CRC 2字节

ETX 1字节

*注:① BRI 为简易可变限速标志的当前显示亮度,范围 '00' - '31'。

七、开启或关闭简易可变限速标志

发送:

STX 1字节

flag_ON1 2字节

flag_ON2 2字节

flag_OFF1 2字节

flag_OFF2 2字节

CRC 2字节

ETX 1字节

应答:

STX 1字节

ADDR 2字节

OK 1字节

CRC 2字节

ETX 1字节

*注:①若 flag_ON1、flag_ON2 的四字节都为 '+',则开启简易可变限速标志;

若 flag_OFF1、flag_OFF2 的四字节都为 '+',则关闭简易可变限速标志。

开启优先。

【附】 CRC16 的计算

WORD gen_crc(BYTE far *frame, short frame_len)

{

BYTE c, treat, bcrc;

WORD wcrc = 0;

short i, j;

for (i = 0; i < frame_len; i++)

{

c = frame[i];

for (j = 0; j < 8; j++)

{

treat = c & 0x80;

c <<= 1;

bcrc = (wcrc >> 8) & 0x80;

wcrc <<= 1;

if (treat != bcrc)

wcrc ^= 0x1021;

}

}

return wcrc;

}

. .

相关文档
最新文档