开发协议约定
1.系统间约定以UDP协议通信
2.协议主体格式为
msgId=以|分隔列,以回车换行分隔行的字符串内容
注意多行数据时,数据行间以\r\n分隔(这里的\r\n是指回车换行2个ASCII字符,不是4个字符,下同)
如
1234156=1|2|4\r\n4|5|6\r\n7|8|9
3.协议通信时,如果发送者未收到对端的确认消息,则认为发送没有成功,需要重新发送。
4.msgId由发送者负责分配,使用无符号32位整数,接收者使用此序号标志返回消息,方便发送者将请求和返回消息对应起来。建议顺序分配。
5.每个消息包数据总长度需要限制在1024字节内
一.系统日志数据上报接口协议
1.上级系统监听指定端口(默认7000),等待下级系统发送数据
2.下级系统向上级系统发送格式化数据,单条数据消息格式为
msgId=学工号|时间|方向(1进2出)|门禁控制器序号(1-65535间的数字)|人员类型(0普通,1黑名单,2重点关注)|是否开门(0未开1已开)
数据字段以|分隔,数量可以根据情况扩展
如
1=201392384769|2017-05-03 12:32:26|1|33251|0|1
一次可以传送多条数据,多条数据间以 回车换行符(\r\n)分隔,如
1=201392384769|2017-05-03 12:32:26|1|33251|0|1\r\n201392382362|2017-05-03 12:35:26|2|33251|0|1
3.上级系统向上报消息的源端口发送确认消息,表示已经成功接收到数据,确认消息格式为
msgId=OK
如
1=OK
注意,UDP可能存在最小消息包,因此建议上报系统确认报文用空格补足18个字节,比如固定在MSGID=OK后加18个空白字符。这个问题未必存在。
二.获取设备列表
1.由上级系统向下级系统指定端口(默认4500)发送指令
msgId=GET_DEV_LIST
如
1=GET_DEV_LIST
2.下级系统向上级系统发回如下数据
msgId=packageId|packageCount|devId|devName|devIp|devType(预留,默认为0)
其中packageId为当前包序号(从1开始),packageCount为总包数,一包中可以有一到多条记录,多条记录间以\r\n分隔
如
1=2|5|33256|3宿舍2通道|192.168.0.155|0\r\n33257|3宿舍3通道|192.168.0.156|0
3.上级系统收到消息包后,向下级系统发回如下数据,表示接收成功
msgId=packageId=OK
如
1=2=OK
4.下级系统接收前一包接收成功的消息后,继续发送其它消息包,直接所有包成功发送为止。
三.远程开门接口协议
1.由上级系统向下级系统指定端口(默认4500)发送指令
msgId=控制器序号|方向1进2出|开门方式(预留,默认为0)
数据字段以|分隔
如
1=33251|1|0
2.下级系统向上级系统发回确认消息,表示操作是否成功
msgId=OK
如
1=OK
或者其它错误原因,如
1=设备不在线