通信命令分类090116.docx

上传人:b****3 文档编号:12630099 上传时间:2023-04-21 格式:DOCX 页数:83 大小:43.08KB
下载 相关 举报
通信命令分类090116.docx_第1页
第1页 / 共83页
通信命令分类090116.docx_第2页
第2页 / 共83页
通信命令分类090116.docx_第3页
第3页 / 共83页
通信命令分类090116.docx_第4页
第4页 / 共83页
通信命令分类090116.docx_第5页
第5页 / 共83页
点击查看更多>>
下载资源
资源描述

通信命令分类090116.docx

《通信命令分类090116.docx》由会员分享,可在线阅读,更多相关《通信命令分类090116.docx(83页珍藏版)》请在冰豆网上搜索。

通信命令分类090116.docx

通信命令分类090116

1.命令格式设计

大部分报文由用户在BS端发起,然后设备端或者服务器端接收报文,并处理;

用户可以在BS端发起:

查询类,设置类,更新类和其他类;

设备端或者服务器端发起:

心跳类,注册类;

消息接收者(设备端和服务器)被动发起:

回复类;

命令头格式:

1-13为消息头部,任何消息必须包含这个部分;

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7(年两字节,月日时分秒各一个字节)

4-10

3

失效时间

7字节,

11-17

4

长度

4字节

18-21

5

消息类型

1字节

22

6

方向

1字节(1为上行)(0为下行)

23

7

下行消息目的地级别

1字节(Service程序向上报告是Service程序的级别)。

1=组;0=点位

24

8

25-28

9

组ID

4字节,上行时是发起者,下行时为目的地

29-32

10

点位ID

4字节,上行时是发起者,下行时为目的地

33-36

11

指令

1字节

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

1.1.校验段CheckMsg

暂时不管

1.2.发送时间SendTime

消息发送时,发送者本地时钟。

1.3.失效时间InvalidationTime

消息发送后,如果超过“失效时间”这个时间点,就丢弃掉;

新增:

+失效时间,即到了某个时间点,该报文如果还没有发出,或者发出去,还没有收到回复;就要失去效用,即需要丢弃;

1.4.长度Length

以字节数表示的消息的总长度,包括协议头部以及消息内容扩展。

1.5.消息类型MsgType

即命令分类,消息主要分为以下几个大类

消息类型

符号名

备注

心跳类

M_MSGTYPE_BASE

0x01

注册类

M_MSGTYPE_REGISTER

0x02

查询类

M_MSGTYPE_QUERY

0x03

设置类

M_MSGTYPE_SET

0x04

更新类

M_MSGTYPE_UPDATE

0x05

其他类

M_MSGTYPE_OTHER

0x06

回复报文

M_MSGTYPE_ANSWER

0x07

1.6.方向Direct

主要有3个方向,定义消息方向的目的是简化路由器对消息的处理。

Ø上行=1:

表示播放器向上级发送的消息,路由器直接向上转发。

Ø下行=0:

表示上级节点发送给播放器的消息,路由器根据具体的消息级别进行转发。

最新定义:

消息方向

符号名

备注

上行

M_DIRCTION_UP

0x01

下行

M_DIRECTION_DOWN

0x00

1.7.下行消息目的地级别Destination

表示接收该消息的组织。

路由器根据消息的级别和消息的域、组、节点等信息对消息进行路由。

3=目的地为:

中心服务器

2=目的地为:

域服务器

1=目的地为:

组服务器

0=目的地为:

点位(播放器)

目的地

符号名

备注

中心服务器

M_DESTINATION_CENTRAL

0x03

域服务器

M_DESTINATION_DOMAIN

0x02

组服务器

M_DESTINATION_GROUP

0x01

点位(播放器)

M_DESTINATION_SITE

0x00

任何其他值都认为是错误的。

1.8.域DomainID、组IDGroupID、点位IDNodeID:

Ø对于上行消息,域、组ID、点位ID表示消息的发出者的ID

如果节点是域服务器,则域<>0and组ID=0and点位ID=0

如果节点是组服务器,则域<>0and组ID<>0 and点位ID=0

如果节点是点位,则域<>0and组ID<>0 and点位ID<>0

Ø对于下行消息,域、组ID、点位ID表示消息的目的地

如果域<>0and组ID=0and点位ID=0,则消息发给域服务器。

但是需要具体分析消息的目的地。

如果域<>0and组ID<>0and点位ID=0,则组服务器是接收者。

但是需要具体分析消息的目的地。

如果节点是点位,则域<>0and组ID<>0 and点位ID<>0,这个时候目的地是确定的。

新增:

可能群发的命令,以及如何处理群发的任务;

1.如果需要群发,判断第6,7,8,9字段;

2.Sender需要判断是否群发,如果群发,则自己产生报文,群发;

3.群发的命令可能为查询类,更新类,其他类以及设置类中的设置时间,设置分辨率,设置关机;

4.如果群发,报文要注明群发至哪个级别,如:

群发到点位,则下行消息目的地为点位(0),域,组ID为相应内容,点位ID=0;

群发至组服务器,则下行消息目的地为组

(1),域,为相应内容,组ID=0,点位ID=0;

群发至域服务器,则下行消息目的地为域

(2),域=0,组ID=0,点位ID=0;

1.9.指令Instrution

指令需要与消息类型结合使用,用来判断消息的具体类别,及要调用相应的报文处理模块,采取的具体动作来处理。

符号名

说明

备注

CMD_BASE_HBEAT

0x01

心跳

CMD_BASE_HBREPORT

0x02

心跳报告

下级状态变化的报告报文

CMD_REG_REGISTER

0x00

注册

CMD_REG_LINK_TEST

0x01

连接测试

CMD_REG_LOGIN

0x02

播放器登陆

CMD_QUERY_DEVICE

0x01

查询设备端情况

CMD_QUERY_SERVER

0x02

查询服务器情况

CMD_SET_DATE_TIME

0x01

设置时间

CMD_SET_LOCALIP

0x02

设置本地IP

CMD_SET_CTRLIP

0x03

设置控制服务器IP

CMD_SET_FTPIP

0x04

设置FTP服务器IP

CMD_SET_RESOLUTION

0x05

设置分辨率

CMD_SET_PASSWORD

0x06

设置设备端密码

CMD_SET_DEV_RESET

0x07

设置设备/服务器重置(恢复出厂设置)

CMD_SET__DEV_INIT

0x08

设置设备/服务器初始化

CMD_SET_LOGGING

0x09

设备/服务器调试状态设定

CMD_SET_SAFETY

0x0A

安全设置(待定)

CMD_SET_PWRONOFF

0x0B

设置关机时间

CMD_UPD_FIRMWARE

0x00

更新固件

CMD_UPD_CONFIG

0x01

更新配置

CMD_UPD_PALYLIST

0x02

更新节目列表

CMD_UPD_SCROLL_TEXT

0x03

更新滚动字幕

CMD_UPD_LIST

0x04

更新列表信息

CMD_UPD_WEATHER

0x05

更新天气信息

CMD_UPD_IMMED_V

0x06

更新插播视频

CMD_UPD_IMMED_I

0x07

更新插播图片

CMD_UPD_IMMED_T

0x08

更新插播文字

CMD_UPD_LOGO

0x09

更新LOGO

OTHER_UPLD_OPERLOG

0x01

上载操作记录

OTHER_UPLD_PLAYREC

0x02

上载播放记录

OTHER_UPLD_FILELIST

0x03

上载本地文件列表

OTHER_UPLD_SYSTEM

0x04

上载系统运行记录

OTHER_DEL_FILE

0x05

删除指定文件

OTHER_PRGM_REG

0x06

文件入库

RECEIVE

0x01

收到报文回复

TASK_ERROR

0x02

任务出错回复

TASK_OVER

0x03

任务完成

DOWNLOAD_OVER

0x04

下载完成

QUERY_ANSWER_C

0x05

设备端查询回复

QUERY_ANSWER_S

0x06

服务器查询回复

具体的命令指令,见“命令格式详细”部分。

1.10.任务号TaskID

或者称为消息序列号。

A.任务号按层级编号,自动增长

——设备端0级1~9,999;

——接入/组1级10,000~19,999;

——路由/域2级20,000~29,999;

——中心3级30,000~39,999;

B.对于同一个任务号的应答,不管应答多少次,应答的任务号始终为任务发起端的任务号;

C.总是由发起者产生新任务号;

D.所有的任务号循环使用,到达最大后回头;

E.当进程退出:

——将任务号记录下来,再次启动时,将任务号+1处理;(推荐)

F.D.G..P.T,应该可以保证任务号唯一。

表一:

ActiveTask,所有未完成的任务在此记录(设备和服务器必须由这个列表来跟踪每个任务执行情况;如果一个任务执行完毕,比如获得最终应答,则从此表中删除);

表二:

TaskHistory,处理完毕的在此记录(所有接收到此报文的都有记录);

ActiveTask表需要定时序列化到硬盘,防止系统突然故障后数据丢失。

TaskHistory可以合并到系统的事件记录文件中。

G.因为新产生的任务号不会很多,一般不会出现一天就有重复任务号的情况;

H.心跳报文不考虑任务号(取0);

1.11.版本号Versions

用来标志命令格式的版本;100――――1.0目前的版本号。

1.12.消息内容扩展

消息的具体内容,每个命令的处理程序需要解析之,进行相应的处理,并反馈相应的消息。

具体参见“命令详解”部分。

目前只考虑了三级服务器,同时第二级、第三级也可能就是点位。

所以在配置文件及消息中需要区别两点:

节点的级别、节点的类型。

所有的报文处理的类需要从同一基类开始。

这些类需要实现一个共同的接口。

比如产生报文;解析报文;加解密等。

2.命令格式详细

1.心跳类(命名空间OLC)

新增考虑:

如果某段时间,比如:

组服务器发生故障,我的域服务器可以直接去访问到播放器;

这样,首先,域服务器要有各个点位的IP地址,密钥,主动连接到播放器,而且域服务器和点位之间要有链路可以到达;

心跳类的第10字段“指令”对照表

变量

说明

备注

HEART

0x01

心跳

HEARTREPORT

0x02

心跳报告

下级状态变化的报告报文

心跳类播放器状态

变量

说明

备注

PLAYING

0x01

播放

SLEEPING

0x02

休眠

POWEROFF

0x03

关机

播放器关机前,要发;

OFF_LINE

0x04

离线

不明问题

●心跳报文OnLine.cs

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

失效时间

7字节

11-17

4

长度

4字节

18-21

5

消息类型

=M_MSGTYPE_BASE

22

6

方向

=1

23

7

下行消息目的地级别

1字节

24

8

4字节,发起者

25-28

9

组ID

4字节,发起者

29-32

10

点位ID

4字节,发起者

33-36

11

指令

1字节=HEART

37

12

任务号

心跳不考虑任务号(0)

38-41

13

版本号

2字节

42—43

14

播放器状态

2字节=PLAYING/SLEEPING

44~45

心跳类:

(1)播放器每隔5或者10分钟把心跳报文传送给上级

(2)上级接收心跳报文后不转发,查找本地配置文件,找出自己的密钥,

(3)由解密算法把报文解密出来,验证前4个字节,如果是ABCD执行(4),否则执行(5)

(4)由一个监控程序把播放器的点位ID,状态,收到时系统的时间写入Link.xml文件中,执行(6)

(5)生成出错报文,将出错报文(解密出错),转发给消息来源地

(6)由另外一个监控程序不断的判断当前心跳时间和heart.xml文件中的播放器最迟发送过来的心跳相隔十分钟;

(7)如果连接测试不成功,服务器就向中心服务器发送一条报文修改播放器的状态,改为”离线”,生成出错报文,报告中心服务器。

否则执行(8)。

(8)服务器就向中心服务器发送一条报文修改播放器的状态,改为“有问题”。

●心跳状态报告报文HeartAlter.cs

用于服务器向上级报告自己下属的播放器状态发生改变;

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

失效时间

7字节

11-17

4

长度

4字节

18-21

5

消息类型

=M_MSGTYPE_BASE

22

6

方向

=1

23

7

下行消息目的地级别

1字节,0,

24

8

4字节,发起者

25-28

9

组ID

4字节,发起者

29-32

10

点位ID

4字节,发起者

33-36

11

指令

1字节=HEARTREPORT

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

14

点位ID

4字节

44-47

14

播放器状态

2字节=PLAYING/SLEEPING/POWEROFF/OFF_LINE

48~49

2.注册类(命名空间RGC)

注册类第10字段“指令”对照表:

变量

说明

备注

REGISTER

0x00

注册

LINK_TEST

0x01

连接测试

LOGIN

0x02

播放器登陆

●注册Register.cs

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

失效时间

7字节

11-17

4

长度

4字节

18-21

5

消息类型

1字节=M_MSGTYPE_REGISTER

22

6

方向

=1

23

7

下行消息目的地级别

1字节

24

8

4字节,上行时是发起者,下行时为目的地

25-28

9

组ID

4字节,上行时是发起者,下行时为目的地

29-32

10

点位ID

4字节,上行时是发起者,下行时为目的地

33-36

11

指令

1字节=REGISTER

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

14

用户账号

20字节

44—63

15

用户密码

20字节

64—83

16

携带消息内容

固件版本号等(考虑是否要增加其他内容)

84~

要求回复:

如果注册成功,则回复任务成功报文;否则回复,任务失败,及失败原因;

注册失败原因类别(账号密码错误,点位不存在等)

(1)收到报文后查找本地基本配置文件,找出自己的密钥

(2)由解密算法把报文解密出来,验证前4个字节,如果是ABCD执行(3),否则执行(7)

(3)收到报文后需要查找服务器的配置文件,来判断本机的类型。

如果本机服务器不是中心服务器,就要在配置文件中查找上级服务器的IP和端口向上转发,上级服务器接收后逐级转发,退出。

如果本机是中心服务器就进行注册执行第(4)步。

(4)读取配置文件,读出本机的域,组ID,点位ID,与报文的中的7,8,9字段“域”“组ID”“点位ID”是否一样;如果相同执行(5),否则执行(7)

(5)如果注册成功,执行(6),否则执行(7)

(6)回复任务成功报文,执行(8)

(7)生成出错报文,注册失败原因类别(解密不成功,账号密码错误,点位不存在等)

(8)查找配置文件,查找出消息来源地密钥,回复生成的报文,把回复的报文写入日志文件,退出

●连接测试LinkTest.cs

上级服务器发起,用于测试和下级的连接链路是否通,下级设备的连接链路是否存在.

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

11-17

4

长度

4字节

18-21

5

消息类型

1字节=M_MSGTYPE_REGISTER

22

6

方向

1字节(1为上行)(0为下行)

23

7

下行消息目的地级别

1字节2=域;1=组;0=点位

24

8

4字节,目的地

25-28

9

组ID

4字节,目的地

29-32

10

点位ID

4字节,目的地

33-36

11

指令

1字节=LINK_TEST

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

●登陆Login.cs

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

11-17

4

长度

4字节

18-21

5

消息类型

1字节=M_MSGTYPE_REGISTER

22

6

方向

1字节(1为上行)(0为下行)

23

7

下行消息目的地级别

1字节1=组;0=点位

24

8

4字节,发起者

25-28

9

组ID

4字节,发起者

29-32

10

点位ID

4字节,发起者

33-36

11

指令

1字节=LOGIN

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

14

用户名

20字节

44—63

15

密码

20字节

64--83

3.查询类(命名空间CONC)

查询类第10字段“指令”对照表:

变量

说明

备注

QUERY_SERVER

0x01

查询设备端情况

QUERY_CLIENT

0x02

查询服务器情况

●服务端查询SercersQuery.cs

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

失效时间

7字节

11-17

4

长度

4字节

18-21

5

消息类型

1字节=M_MSGTYPE_QUERY

22

6

方向

=0

23

7

下行消息目的地级别

1字节

24

8

4字节,目的地

25-28

9

组ID

4字节,目的地

29-32

10

点位ID

4字节,(空)

33-36

11

指令

1字节=QUERY_SERVER

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

●设备端查询ClientQuery.cs

查询服务器或者播放器的相关状况。

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节

4-10

3

失效时间

7字节

11-17

4

长度

4字节

18-21

5

消息类型

1字节=M_MSGTYPE_QUERY

22

6

方向

=0

23

7

下行消息目的地级别

1字节

24

8

4字节,目的地

25-28

9

组ID

4字节,目的地

29-32

10

点位ID

4字节,目的地

33-36

11

指令

1字节=QUERY_CLIENT

37

12

任务号

4字节

38-41

13

版本号

2字节

42—43

4.设置类(命名空间STC)

设置类,第10个字段“指令”对照表。

符号名

备注

CMD_SET_DATE_TIME

0x01

设置时间

CMD_SET_LOCALIP

0x02

设置本地IP

CMD_SET_CTRLIP

0x03

设置控制服务器IP

CMD_SET_FTPIP

0x04

设置FTP服务器IP

CMD_SET_RESOLUTION

0x05

设置分辨率

CMD_SET_PASSWORD

0x06

设置设备端密码

CMD_SET_RESTART

0x07

设置设备/服务器重置(恢复出厂设置)

CMD_SET_SAFETY_INT

0x08

设置设备/服务器初始化

CMD_SET_SAFETY_MODE

0x09

设备/服务器调试状态设定

CMD_SET_SAFE

0x0A

安全设置(待定)

CMD_SET_POWEROFF

0x0B

设置关机时间

●设置时间SetTime.cs

序号

名称

说明

内容

偏移

1

校验段

4字节

0-3

2

发送时间

7字节当前日期时间

4-10

3

失效时间

7字节

11-17

4

长度

18-21

5

消息类型

1字节=M_MSGTYPE_SET

22

6

方向

0

23

7

下行消息目的地级别

2=域;1=组;0=点位

24

8

播放器或服务器的域

25-28

9

组ID

29-32

10

点位ID

33-36

11

指令

1字节=CMD_SET_DATE_TIME

37

12

任务号

4字节

38-41

13

版本号

100

42—43

14

系统时间

发送时间,7字节

44-50

回复“设置成功报文”即可。

如出错,回复出错报文。

●设置IP(本地IPSetLocalIP.cs,控制服务器IPSetCtrIP.cs,FTP服务器IPSetFtpIP.cs)

同时要更新配置文件

序号

名称

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1