1、WMMP协议终端开发说明V10WMMP协议终端开发说明V1.01. WMMP协议概述本协议为实现行业终端与M2M平台数据通信过程而设计。协议建立在UDP协议之上,如下图所示。 由于GPRS网络带宽较窄,延迟较大,不适于采用TCP协议进行通信。而采用UDP协议无连接方式传输,其优点是效率高,流量小,节省网络带宽资源。缺点是没有确认机制,有可能引起丢包,根据实际经验发现,采用UDP方式传输,丢包率能控制在1%以下,通过在UDP的上层应用层协议实现类似TCP的包确认和重传机制,从而提高通信效率及可靠性。本协议使用的端口暂定为 9991,数据包以同步方式交互,如不作特殊说明,每一个数据包必须有一个响应
2、。本协议中的WORD和DWORD数值都采用网络字节序(高位在前,低位在后)。2. WMMP协议通信方式行业终端与M2M平台共有两种连接方式:长连接和短连接。所谓长连接,指在一个过程中可以连续发送多个数据包,如果没有数据包发送,需要行业终端发送心跳包以维持此连接。短连接是指通信双方有数据交互时,就建立一个WMMP过程,数据发送完成后,则断开此WMMP过程。长连接过程中采用了心跳作为维持、监测链路的手段。而短连接由于数据的交互在较短的时间内完成,可以不需要心跳包来维持链路,但仍然需要通过心跳包告知M2M平台它的运行状态,以便进行监控和故障报警。2.1长连接通信双方以客户服务器方式建立WMMP过程,
3、用于双方信息的相互提交。当信道上没有数据传输时,行业终端应每隔时间C发送心跳包以维持此连接,当心跳包发出超过时间T后未收到响应,应立即再发送心跳包,再连续发送N-1次后仍未得到响应则结束此过程。参数C、T、N原则上应可配置,现阶段建议取值为:C=1分钟,T=15秒,N=3。消息采用同步方式发送,长连接的操作流程举例如下图所示:2.2短连接行业终端平时处于下线,当本地由于数据需要传输或达到定时上线时间等类似策略时,行业终端作为客户端以客户-服务器方式建立WMMP过程,传送数据完成后,结束该过程。通信消息发送后等待T秒后未收到响应,应立即重发,再连续发送N-1 次后仍未得到响应则停发。现阶段建议取
4、值为:T=15 秒,N=3。尽管是短连接,为了M2M平台对终端的监控和管理,终端仍然需要通过短信向平台发送心跳包。短连接的操作流程与长连接一致,唯一的区别在于平台并非通过心跳包来判断终端链路的存在,而是判断终端是否处于工作状态。3. WMMP协议命令说明消息类型Command_id说明LOGIN0x0001终端向平台发送的登录包LOGIN_ACK0x8001平台向终端发送的连接登录响应包LOGOUT0x0002终端与平台之间发送的断开连接包LOGOUT_ACK0x8002终端与平台之间发送的断开连接响应包HEART_BEAT0x0003终端向平台发送的维持过程连接包HEART_BEAT_ACK
5、0x8003平台向终端发送的维持过程连接回应包TRANSPARENT_DATA0x0004可以双向传输的透明数据包TRANSPARENT_DATA_ACK0x8004对可以双向传输的透明数据包的响应CONFIG_GET0x0005平台向终端发送的读取行业终端的配置信息包CONFIG_GET_ACK0x8005终端向平台发送的响应包,上报配置信息CONFIG_SET0x0006平台向终端发送的设置命令包或者设置参数包CONFIG_SET_ACK0x8006终端向平台发送的设置响应包CONFIG_TRAP0x0007行业终端向M2M平台上报的TRAP信息,包括告警信息。CONFIG_TRAP_AC
6、K0x8007M2M平台对行业终端上报告信息的响应。CONFIG_REQ0x000A终端向平台发起请求配置参数CONFIG_REQ_ACK0x800A平台向终端发送的请求配置参数的响应包REMOTE_CTRL0x000B平台向终端发送的远程控制包REMOTE_CTRL_ACK0x000B终端向平台发送的远程控制响应包PL_DOWNLOAD0x000C平台发起下载更新通知PL_DOWNLOAD_ACK0x800C终端对平台发起下载更新通知的响应31 包头格式 字段长度(字节)备注消息头报文总长度2消息类型代码2Command ID流水号4报文协议版本2保留字2取值始终为0终端序列号16(待定)3
7、2 终端注册(LOGIN)注册流程:(终端平台分配序列号模式使用,预制序列号的终端直接登录)终端发送注册包时,包头中的终端序列号后8位必须为0。终端注册成功后,必须保存终端序列号和注册成功状态。下次终端重新启动或者换卡重新启动后,读取终端保存的注册状态和终端序列号,注册状态是注册成功时,终端直接登录。 LOGIN字段名字节数描述注册包IMEI16定长字段,16字节,对于15字节的IMEI号,则后面补0。IMSI15IMSI号码例如:字段长度(字节)内容消息头报文总长度20x003B消息类型代码20x0001流水号40x00000001报文协议版本20x0101保留字20x0000终端序列号16
8、A001000100000000包体IMEI16123456789012345IMSI15460001369435781LOGIN_ACK字段名字节数描述注册响应包定长字段部分Status 1返回注册结果0:注册成功;1:非法终端序列号; 2:通信协议版本不兼容;3:改为短信方式注册;其他:保留。终端序列号16平台分配/记录的终端序列号例如:字段长度(字节)内容消息头报文总长度20x002d消息类型代码20x8001流水号40x00000001报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体Status1Ox00终端序列号16A001000107
9、00000133 终端登录(LOGIN)终端发送登录包时,包头中的终端序列号为平台在注册成功应答中分配给终端的序列号或者终端预制的序列号。LOGIN登录包Terminal Version不定长终端版本号,空字符结尾0,最长不超过8个字节IMSI15IMSI号码终端配置参数的CRC32校验4终端配置信息的CRC32校验和。TAG组部分0x30064Cellular ID,终端所在小区标识(高16位表示LAC,低16位表示CI)(可选)0x30071SigIntensity,本地信号场强,0100(可选)0x3010终端外设,(可选字段)外设类型采用2个字节编码,允许扩展,目前系统预留了如下外设编
10、码:0x0001PRN:打印机0x0002SCAN:扫描枪0x0003POS:POS刷卡器0x0004IC:IC卡感应器0x0005KEY:密码小键盘0x0006PHONE:外接话机DEV的值为外设编码的序列,无间隔,例如:TAGLenValue0x301060x000100020003表示三个外设编号分别为0x0001, 0x0002, 0x0003终端配置参数的CRC32说明:M2M平台通过对比平台存储的用户定制配置参数(参数可以是配置TAG OX00010X0013内任意组合,但必须包含心跳TAG,参数配置举例见下表格)的CRC32校验和以及终端上报的本地配置参数CRC32校验和,判断终
11、端的配置参数内容与平台存储的信息是否一致。如果不一致,则触发参数配置流程,参见流程D。CRC部分根据TAG的值由小到大排列TLV组来算出CRC32值。用户定制配置参数举例:字段名字节数描述0x0002STRING网络接入点名称(APN)0x0007STRING平台短信特服号0x0009STRING平台的IP地址0x000aWORD平台的端口0x0011DWORD心跳间隔(PERIOD),4字节整形0x0012STRING业务应用USSD短信特服号码例如:字段长度(字节)内容消息头报文总长度20x0041消息类型代码20x0001流水号40x00000001报文协议版本20x0101保留字20x
12、0000终端序列号16A001000107000001包体Terminal Version501010IMSI15460001369435781终端配置参数的CRC32校验40x21ae3bCellular ID2(TAG)0x30062(LENGTH)0x00044(VALUE)0x1876AB00SigIntensity2(TAG)0x30072(LENGTH)0x00011(VALUE)0x26LOGIN_ACK字段名字节数描述登录响应包定长字段部分Status1返回注册结果0:登录成功,并需要下发配置数据1:非法IMSI2:非法终端序列号; 3:通信协议版本不兼容;4:登录成功,但不需
13、要下发配置5:终端没有REGIST(注册)6:改为短信方式登录其他:保留。CurTime4当前系统时间:从197011起到当前的秒数计算例如:字段长度(字节)内容消息头报文总长度20x0021消息类型代码20x8001流水号40x00000001报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体Status1Ox04CurTime40x4631B837终端注册和登录平台处理流程图:1、GPRS方式流程A流程B2、SMS和USSD方式流程C流程D34 终端退出(LOGOUT) LOGOUT字段名字节数描述定长字段部分LogoutReason10:正常
14、退出,进入等待激活模式;1:准备升级;(此项一般由行业终端端发起)2:故障断开;3:应用新配置;(此项一般由行业终端端发起);4:心跳超时;5:故障退出,进入等待激活模式其他:保留。例如:字段长度(字节)内容消息头报文总长度20x001D消息类型代码20x0002流水号40x00000002报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体LogoutReason1Ox00LOGOUT_ACK 无包体例如:字段长度(字节)内容消息头报文总长度20x001C消息类型代码20x8002流水号40x00000002报文协议版本20x0101保留字20x0
15、000终端序列号16A00100010700000135 终端心跳包(HEART_BEAT) HEART_BEAT字段名字节数描述TAG组部分0x30064Cellular ID,终端所在小区标识(高16位表示LAC,低16位表示CI)(可选)0x30071SigIntensity,本地信号场强,0100(可选)例如:字段长度(字节)内容消息头报文总长度20x0029消息类型代码20x0003流水号40x00000003报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体Cellular ID2(TAG)0x30062(LENGTH)0x00044(
16、VALUE)0x1876AB00SigIntensity2(TAG)0x30072(LENGTH)0x00011(VALUE)0x26HEART_BEAT_ACK 无包体例如:字段长度(字节)内容消息头报文总长度20x001C消息类型代码20x8003流水号40x00000003报文协议版本20x0101保留字20x0000终端序列号16A00100010700000136 终端上报信息(CONFIG_TRAP) 3.6.1 告警产生上报字段名字节数描述TAG组部分0x300DAlarm_Code,双字,表示告警原因的告警代码。0x0001:短信方式连接入服务器失败(通讯告警)0x0002:U
17、SSD方式连接入服务器失败(通讯告警)0x0003:GPRS方式连接入服务器失败(通讯告警)0x0004:GPRS无法打开(通讯告警)0x0005:GPS模块故障(终端硬件告警)0x0006:终端自检测故障(终端硬件告警)0x0007:短信提交信息超时(通讯告警)0x0008:终端电源故障(终端硬件告警)0x0009:超门限告警(终端硬件告警)0x000A:终端升级失败(终端软件告警)0x000B:信号强度弱(终端硬件告警)0x000C:拨号失败(终端硬件告警)0x000D:误码过多(终端软件告警)0x000E:企业业务平台连接失败(通讯告警)0x000F:未收到平台服务器的任何数据包0x00
18、10:与平台协议版本不匹配0x0011:内存出错0x0012:应用文件损坏0x0013:业务应用服务器平台无法访问0x0014:监控平台无法访问0x0015:打印机异常0x0016:扫描枪异常0x0017:POS刷卡器异常0x0018:IC卡感应器异常0x0019:密码小键盘异常0x001A:外接话机异常其他:系统保留其值的形式为:0x0001例如:字段长度(字节)内容消息头报文总长度20x0022消息类型代码20x0007流水号40x00000007报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体上报告警产生2(TAG)0x300D2(LENG
19、TH)0x00022(VALUE)0x0001 3.6.2告警恢复上报字段名字节数描述TAG组部分0x300EAlarm_Code,双字,表示告警原因的告警代码。0x0001:短信方式连接入服务器失败(通讯告警)0x0002:USSD方式连接入服务器失败(通讯告警)0x0003:GPRS方式连接入服务器失败(通讯告警)0x0004:GPRS无法打开(通讯告警)0x0005:GPS模块故障(终端硬件告警)0x0006:终端自检测故障(终端硬件告警)0x0007:短信提交信息超时(通讯告警)0x0008:终端电源故障(终端硬件告警)0x0009:超门限告警(终端硬件告警)0x000A:终端升级失败
20、(终端软件告警)0x000B:信号强度弱(终端硬件告警)0x000C:拨号失败(终端硬件告警)0x000D:误码过多(终端软件告警)0x000E:企业业务平台连接失败(通讯告警)0x000F:未收到平台服务器的任何数据包0x0010:与平台协议版本不匹配0x0011:内存出错0x0012:应用文件损坏0x0013:业务应用服务器平台无法访问0x0014:监控平台无法访问0x0015:打印机异常0x0016:扫描枪异常0x0017:POS刷卡器异常0x0018:IC卡感应器异常0x0019:密码小键盘异常0x001A:外接话机异常其他:系统保留其值的形式为:0x0001例如:字段长度(字节)内容
21、消息头报文总长度20x0022消息类型代码20x0007流水号40x00000007报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体上报告警恢复2(TAG)0x300E2(LENGTH)0x00022(VALUE)0x00013.6.3终端上报统计数据 字段名字节数描述TAG组部分0x20084终端发送短信成功条数(可选)0x20094终端发送短信失败条数(可选)0x200A4终端接收短信条数(可选)0x200B4终端Gprs数据通信流量(可选)0x200C4终端USSD成功条数(可选)0x200D4终端USSD失败条数(可选)0x200E4终端
22、接收USSD条数(可选)例如:字段长度(字节)内容消息头报文总长度20x0024消息类型代码20x0007流水号40x00000007报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体上报统计数据2(TAG)0x200B2(LENGTH)0x00044(VALUE)0x000000113.6.4终端上报通信方式字段名字节数描述TAG组部分0x400511字节。采集(统计、监控、业务)数据传送方式:1SMS; 2USSD; 3GPRS; 4其他;例如:字段长度(字节)内容消息头报文总长度20x0021消息类型代码20x0007流水号40x000000
23、07报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体上报通信方式2(TAG)0x40052(LENGTH)0x00011(VALUE)0x01CONFIG_TRAP_ACK字段名字节数描述定长字段Status10:数据正确;1:数据无效; 其他:失败,原因待定。TAG组2*Tag数目可选,数据无效的TAG组例如:字段长度(字节)内容消息头报文总长度20x001D消息类型代码20x8007流水号40x00000007报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体Status10x0037 终端和应用
24、业务数据交互(TRANSPARENT_DATA)TRANSPARENT_DATA字段名字节数属性描述交互数据n 终端和应用交互信息例如:字段长度(字节)内容消息头报文总长度20x0020消息类型代码20x0004流水号40x00000004报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体数据信息40X01020304TRANSPARENT_DATA_ACK字段名字节数属性描述响应数据n 响应数据例如:字段长度(字节)内容消息头报文总长度20x0020消息类型代码20x8004流水号40x00000004报文协议版本20x0101保留字20x000
25、0终端序列号16A001000107000001包体数据信息40X0506070838终端请求的参数配置(CONFIG_REQ)CONFIG_REQ字段名字节数描述TAG组2TAG数目由配置参数标识组成,如 0x000200070009000a00120011(参数范围见下表格)请求参数范围:字段名字节数描述0x0002STRING网络接入点名称(APN)0x0007STRING平台短信特服号0x0009STRING平台的IP地址0x000aWORD平台的端口0x0011DWORD心跳间隔(PERIOD),4字节整形0x0012STRING业务应用USSD短信特服号码例如:字段长度(字节)内容消息头报文总长度20x0022消息类型代码20x000A流水号40x0000000A报文协议版本20x0101保留字20x0000终端序列号16A001000107000001包体数据信息60x00020009000aCONFIG_REQ_ACK字段名字节数描述定长字段部分Status响应结果代码0接收成功1数据无效其他:失败,原因待定。TAG组部分0x0002STRING网络接入点名称(APN)0x0007STRING
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1