车辆管理系统的设备运维管理建设

车辆管理系统越来越成熟,设备价格越做越低。但设备一旦出去后,运城运维变得越来越重要。

这些运维包含:升级,设备检测,标定,远程诊断,车辆在线状态分析等。

制定一个统一的协议是十分必要的。考虑到实际现状,运营平台首先要兼容性好。

我们 制定了运维管理平台的统一协议以满足各个厂家的实际运维的需要。

运维服务器通信协议

V0.1  初稿

修订记录

作者

版本

说明

日期

邓铁山

0.1

2023年6月16

1协议基础

1.1 通信方式

通信协议采用TCP,平台作为服务器端,终端作为客户端。

1.2 数据类型

协议消息中使用的数据类型见 表 1

1 数据类型

数据类型

描述及要求

BYTE

无符号单字节整型(字节,8 位)

WORD

无符号双字节整型(字,16 位)

DWORD

无符号四字节整型(双字,32 位)

BYTE[n]

n 字节

BCD[n]

8421 码,n 字节

STRING

GBK 编码,若无数据,置空

1.3 传输规则

协议采用大端模式(big-endian)的网络字节序来传递字和双字。

约定如下:

——字节(BYTE)的传输约定:按照字节流的方式传输;

——字(WORD)的传输约定:先传递高八位,再传递低八位;

——双字(DWORD)的传输约定:先传递高 24 位,然后传递高 16 位,再传递高八位,

最后传递低八位。

1.4 消息的组成

1.4.1 消息结构

每条消息由标识位、消息头、消息体和校验码组成,消息结构图如图 1 所示:

1 消息结构图

标识位

消息头

消息体

检验码

标识位

1.4.2 标识位

采用 0x7e 表示,若校验码、消息头以及消息体中出现 0x7e,则要进行转义处理,转义规则定义如下:

0x7e <————> 0x7d 后紧跟一个 0x02;

0x7d <————> 0x7d 后紧跟一个 0x01。

转义处理过程如下:

发送消息时:消息封装——>计算并填充校验码——>转义;

接收消息时:转义还原——>验证校验码——>解析消息。

示例:

发送一包内容为 0x30 0x7e 0x08 0x7d 0x55 的数据包,则经过封装如下:0x7e 0x30 7d 0x02 0x08 0x7d 0x01 0x55 0x7e。

1.4.3 消息头

消息头内容详见 表 2

2 消息头内容

起始字节

 字段

 数据类型  

描述及要求

0

消息 ID

WORD

2

消息体属性

WORD

消息体属性格式结构图见图 2

4

终端手机号

BCD[6] /BCD[10]

注意:系统支持JT808-2011,2013和JT2019版本

10

消息流水号

WORD

按发送顺序从 0 开始循环累加

12

消息包封装项

如果消息体属性中相关标识位确定消息分包处理,则该项有内容,否则无该项

消息体属性格式结构图如图 2 所示:

2 消息体属性格式结构图

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

版本标志

分包

数据加密方式

消息体长度

0:2019以前版本

1:2019版本的设备

数据加密方式:

——bit10~bit12 为数据加密标识位;

——当此三位都为 0,表示消息体不加密;

——当第 10 位为 1,表示消息体经过 RSA 算法加密;

——其他保留。

分包:

当消息体属性中第 13 位为 1 时表示消息体为长消息,进行分包发送处理,具体分包信息由消息包封装项决定;若第 13 位为 0,则消息头中无消息包封装项字段。

消息包封装项内容见 表 3

3 消息包封装项内容

起始字节

字段

数据类型

描述及要求

0

消息总包数

WORD

该消息分包后的总包数

2

包序号

WORD

从 1 开始

1.4.4 校验码

校验码指从消息头开始,同后一字节异或,直到校验码前一个字节,占用一个字节。

2通信连接

2.1 连接的建立

终端与平台的数据日常连接可采用 TCP方式,终端复位后应尽快与平台建立连接,连接建立后立即向平台发送终端鉴权消息进行鉴权。

2.2 连接的维持

连接建立和终端鉴权成功后,在没有正常数据包传输的情况下,终端应周期性向平台发送终端心跳消息,平台收到后向终端发送平台通用应答消息,发送周期由终端参数指定。

2.3 连接的断开

平台和终端均可根据 TCP 协议主动断开连接,双方都应主动判断 TCP 连接是否断开。

平台判断 TCP 连接断开的方法:

——根据 TCP 协议判断出终端主动断开;

——相同身份的终端建立新连接,表明原连接已断开;

——在一定的时间内未收到终端发出的消息,如终端心跳。

终端判断 TCP 连接断开的方法:

——根据 TCP 协议判断出平台主动断开;

——数据通信链路断开;

——数据通信链路正常,达到重传次数后仍未收到应答。

3 数据格式

3.1 终端通用应答

消息 ID0x0001

终端通用应答消息体数据格式见 表 4

4 终端通用应答消息体数据格式

起始字节

字段

数据类型

描述及要求

0

应答流水号

WORD

对应的平台消息的流水号

2

应答 ID

WORD

对应的平台消息的 ID

4

结果

BYTE

0:成功/确认;

1:失败;

2:消息有误;

3:不支持

3.2 平台通用应答

消息 ID0x8001

平台通用应答消息体数据格式见 表 5

5 平台通用应答消息体数据格式

起始字节

字段

数据类型

描述及要求

0

应答流水号

WORD

对应的平台消息的流水号

2

应答 ID

WORD

对应的平台消息的 ID

4

结果

BYTE

0:成功/确认;

1:失败;

2:消息有误;

3:不支持;

4:报警处理确认;

3.3 终端心跳

消息 ID0x0002

终端心跳数据消息体为空。

3.4 补传分包请求

消息ID:0x8003。

补传分包请求消息体数据格式见表6。

6 补传分包请求消息体数据格式

起始字节

字段

数据类型

描述及要求

0

原始消息流水号

WORD

对应要求补传的原始消息第一包的消息流水号

4

重传包总数

BYTE

n

5

重传包 ID 列表

BYTE[2*n]

重传包序号顺序排列,如“包 ID1 包 ID2......

包 IDn”。

注: 对此消息的应答应采用原始消息将重传包ID列表中的分包重发一次,与原始分包

消息完全一致。

3.5 终端鉴权

消息ID:0x0102。

终端鉴权消息体数据格式见表7。

7 终端鉴权消息体数据格式

起始字节

字段

数据类型

描述及要求

0

鉴权码

STRING

终端重连后上报鉴权码

注: 对此消息的应答应采用通用应答,设备不存在时回复不支持。

3.6 注册

消息ID:0X0900。

起始字节

字段

数据类型

描述及要求

0

制造商ID

BYTE[5]

请填写平台给制造商分配的制造商ID,默认为5个字节的ASCII码

4

客户名长度

Byte

客户名称长度

5

客户名

String

客户名

设备通过注册后,将直接被添加到该供应商对应的分组下。

通用应答

376 设置终端参数

消息ID:0x9103。 与0X8103区分,不影响原有业务。

设置终端参数消息体数据格式见表8。

8终端参数消息体数据格式

起始字节

字段

数据类型

描述及要求

0

参数类型

BYTE

参数类型见 表9

1

参数体

xml格式参数文件

表9 参数类型表

类型ID

描述及要求

0

PARAM_TYPE_TDBASIC = 0,//JTBaseSet_t

1

PARAM_TYPE_OSD,//OsdSet_t 1

2

PARAM_TYPE_STORE,//StoreSet_t 2

3

PARAM_TYPE_SERVER,//ServerSet_t 3

4

PARAM_TYPE_DIALUP,//DialupSet_t 4

5

PARAM_TYPE_LOCAL,//LocalSet_t 5

6

PARAM_TYPE_CLOCK,//ClockSet_t 6

7

PARAM_TYPE_RSBASE,//RsBaseSet_t 7

8

PARAM_TYPE_POWER,//PowerSet_t 8

9

PARAM_TYPE_VIDEOOUT,//VideoOut_t 9

10

PARAM_TYPE_IO,//IOSet_t 10

11

PARAM_TYPE_UPGRADE,//UpgradeSet_t 11

12

PARAM_TYPE_SPEED,//SpeedSet_t 12

13

PARAM_TYPE_GSENSOR,//GsensorSet_t 13

14

PARAM_TYPE_VOLTAGE,//VoltageSet_t 14

15

PARAM_TYPE_TEMP,//TempSet_t 15

16

PARAM_TYPE_WIFI,//WifiSet_t 16

17

PARAM_TYPE_DISPLAY,//DisplaySet_t 17

18

PARAM_TYPE_PTZ,//PtzSet_t 18

19

PARAM_TYPE_DST,//DstSet_t 19

20

PARAM_TYPE_MOTIONDETECT,//MotionDetectionSet_t 20

21

PARAM_TYPE_RECORD,//RecordSet_t 21

22

PARAM_TYPE_LANGUAGE,//LanguageSet_t 22

23

PARAM_TYPE_VLOSS,//VideoLostAlm_t 23

24

PARAM_TYPE_DISKALARM,//DiskAbnormalAlm_t 24

25

PARAM_TYPE_VERSION,//VersionInfo_t,只获取,不设置 25

26

PARAM_TYPE_PRODUCT,//Product_t,只获取,不设置 26

27

PARAM_TYPE_TTX,//ReportIntervalSet_t 27

28

PARAM_TYPE_ACCOUNT,//AccountInfo_t 28

29

PARAM_TYPE_USRDEF,//UserDefineConfig_t 29

30

PARAM_TYPE_FATIGUE,//FatigueSet_t 30

31

PARAM_TYPE_LOG, //LogSet_t 31

32

PARAM_TYPE_GB28181,//GB28181 32

33

PARAM_TYPE_GB_JT,//GbJt_s 33

34

PARAM_TYPE_DRIVINGPOSTURE, // 34

35

PARAM_TYPE_YUVBGR, // 35

36

PARAM_TYPE_AIBSD, //36

37

PARAM_TYPE_AIADAS, //37

38

PARAM_TYPE_AIDMS, //38

39

PARAM_TYPE_AI360_RECT_REGION,//39 360 标定8个棋盘的画框位置

40

PARAM_TYPE_AI360_CAR,//40 360 标定参数相机外参数

41

PARAM_TYPE_AIBSD_BD, //41

42

PARAM_TYPE_AIADAS_BD, //42

43

PARAM_TYPE_AIDMS_BD, //43

44

PARAM_TYPE_AiDMS_YB,

45

PARAM_TYPE_AiDMS_XB,

46

PARAM_TYPE_AiADAS_YB,

47

PARAM_TYPE_AiADAS_XB,

48

PARAM_TYPE_TIMING_SANP,

49

PARAM_TYPE_MS_FACE_COUNT,

3.7 查询指定终端参数

消息ID:0x9106。

查询指定终端参数消息体数据格式见表10,终端采用0x0104指令应答。

10 查询指定终端参数消息体数据格式

起始字节

字段

数据类型

描述及要求

0

参数类型

BYTE

参数类型见 表 9

3.8 查询终端参数应答

消息ID:0x9104。

查询终端参数应答消息体数据格式见表11。

11 查询终端参数应答消息体数据格式

起始字节

字段

数据类型

描述及要求

0

参数类型

BYTE

参数类型见 表 9

1

参数体

xml格式参数文件

3.9 终端控制

消息ID:0x8105。

终端控制消息体数据格式见表12。

12 终端控制消息体数据格式

起始字节

字段

数据类型

描述及要求

0

命令字

BYTE

终端控制命令字说明见 表 13

1

命令参数

STRING

命令参数格式具体见后面描述,每个字段之间采用半角”;”分隔,每个 STRING 字段先按 GBK 编码处理后再组成消息

13 终端控制命令字说明式

命令字

命令参数

描述及要求

3

终端关机

4

终端复位

5

终端恢复出厂设置

6

BYTE

格式化磁盘,类型为:

typedef enum{

DISK_PORT_UNKNOWN = 0,

DISK_PORT_SATA1=1,

DISK_PORT_SATA2=2,

DISK_PORT_SATA3=3,

DISK_PORT_SATA4=4,

DISK_PORT_SD1=5,

DISK_PORT_SD2=6,

DISK_PORT_SD3=7,

DISK_PORT_SD4=8,

DISK_PORT_USB1=9,

DISK_PORT_USB2=10,

DISK_PORT_FLASH0=11,//config

DISK_PORT_FLASH1=12,//nor ext

DISK_PORT_FLASH2=13,//nand

DISK_PORT_FLASH3=14,//EMMC

DISK_PORT_IMAX

}DISK_PORT_E;

3.10 位置信息汇报

消息ID:0x0200。

该包建议平时不上传,只在开机和特殊报警时候上传。

位置信息汇报消息体由位置基本信息和位置附加信息项列表组成,消息结构图如图3所示:

图3 位置汇报消息结构图

位置基本信息

位置附加信息项列表

位置附加信息项列表由各位置附加信息项组合,也可没有,根据消息头中的长度字段确定。

位置基本信息数据格式见表14。

表14 位置基本信息数据格式

起始字节

字段

数据类型

描述及要求

0

报警标志

DWORD

报警标志位定义见表 15

4

状态

DWORD

状态位定义见 表 16

8

纬度

DWORD

以度为单位的纬度值乘以 10 的 6 次方,精确到百万

分之一度

12

经度

DWORD

以度为单位的经度值乘以 10 的 6 次方,精确到百万

分之一度

16

高程

WORD

海拔高度,单位为米(m)

18

速度

WORD

1/10km/h

20

方向

WORD

0-359,正北为 0,顺时针

22

时间

BCD[6]

YY-MM-DD-hh-mm-ss(GMT+8 时间,本标准中之后涉 及的时间均采用此时区)

表15 报警标志位定义

定义

说明

0

1

16 状态位定义

状态

0

1

位置附加信息项格式见 表 17。

表 17 位置附加信息项格式

字段

数据类型

描述及要求

附加信息 ID

BYTE

1-255

附加信息长度

BYTE

附加信息

附加信息定义见 表 18

3.11 位置信息查询

消息 ID0x8201

位置信息查询消息体为空。

3.12 位置信息查询应答

消息ID:0x0201。

位置信息查询应答消息体数据格式见表30。

表30 位置信息查询应答消息体数据格式

起始字节

字段

数据类型

描述及要求

0

应答流水号

WORD

对应的位置信息查询消息的流水号

1

位置信息汇报

位置信息汇报见 3.10

3.13 文本信息下发

消息ID:0x8300。

文本信息下发消息体数据格式见表31。

表31 文本信息下发消息体数据格式

起始字节

字段

数据类型

描述及要求

0

标志

BYTE

保留

1

文本信息

STRING

根据表32文本信息控制指令说明,实现升级和日志下载等功能。

表32 文本信息控制指令说明

关键字

描述及要求

FTPCT

远程升级:

#FTPCT:IP,端口,用户名,密码,升级文件名;

举例:

#FTPCT:192.168.1.170,21,tjsx,123456,01_5656_5656_7788_HJAV300JT-V19062701-V18070301-V18112801-T19081402.3535.sw;

本协议只是参考,为了兼容性,平台将自定模板的方式实现该功能。

UPLOAD_LOG

日志下载:

#UPLOAD_LOG:开始时间-结束时间(YYYYMMDD-HHMMSS),ip,端口,用户名,密码

#UPLOAD_LOG:20201111-000000 20201111-235959 192.168.1.125 21 admin 123456

详细说明:

20201111-000000:日志开始时间

20201111-235959:日志结束时间

192.168.1.125:ftp服务器地址

21:ftp端口

admin:账号

123456:密码

上传后,web会自动下载到本地。

其他

供应商自己定义

3.14 状态通知

消息ID:0x1300。

通知一些处理事务的完成或者失败

起始字节

字段

数据类型

描述及要求

0

对应命令

BYTE

0:升级

1:日志下载

2-255:预留

1

状态

Byte

0:成功

1:密码不对

2:网络连接失败

3:数据不对

4:其他失败原因

3.15 终端属性查询(参考808-2013协议)

你可能感兴趣的:(运维,车载视频平台,808,平台运维管理)