905协议以5b开头5d结尾,转成ascii就是[]这两个符号,905是用中括号括起来的消息,
消息构成=[+消息头+消息体+crc+]
业务逻辑是消息头与消息体两部分组成
消息头=数据长度+消息序列号+业务类型标识(重要)+协议版本号+是否加密+密钥
消息头中最重要的就是业务类型标识,服务端与客户端根据此标识进行动作.
消息体每种都不一样,根据业务逻辑来规定
905中的业务逻辑分两大类,一种是定长的,一种是不定长的
定长的就是长度固定,按位置去解析数据
不定长的按内部标识符解析
定长消息的也进行了分类,一类是简单的消息(如登录,注销,心跳),一类是复杂的消息(如车辆动态信息交换),
消息简单的这种定长消息,便于描述只有几个有限的元素,
消息复杂的要区分消息类型,比如:车辆动态信息交换,要说明交换是什么类型的信息,比如位置信息,营运信息,
那么如何去区分呢,那么只能在消息体中再规定一个位置来表示是位置信息还是营运信息,这个就是子业务类型标志
比如上传车辆位置消息
[数据长度+消息序列号+0x2100+协议版本号+是否加密+密钥(后面是消息体)+0x2101 ]