有源电子标签通信协议

(一)协议概述

读卡器负责接收附近定位电子标签的消息,并及时上报给电脑客户端(客户自己的平台软件)。客户端接收到各读卡器上报的标签信息,根据电子标签距各天线的距离,计算出标签的实际位置。

客户端在网络读卡器设备上进行登记后,读卡器会主动向客户端上报接收到的标签信息,期间客户端需要定时向读卡器发心跳指令,以保持登记有效。具体操作为,客户端需要先发送登记请求(CMD_LOGIN_REQ)给读卡器,读卡器回登记应答(CMD_LOGIN_ACK)进行确认。登记完成后,客户端需要定时(建议10秒)向读卡器发心跳指令,读卡器回心跳确认,读卡器超过1分钟收不到心跳消息,则认为登记失效。登记有效期间,读卡器读到的任何标签信息都会即时上报给相关客户端。

(二)协议描述

1、网络协议

采用TCP/IP协议簇中的UDP协议作为提供服务的基础协议。

UDP协议服务器端口号暂定为4099。

2、网络传输顺序

双字节、四字节或多字节内容,则先发送高字节后发送低字节。

发送一个字节内容时,先发送高位比特,后发送低位比特。

3、消息格式

信息单元长度(字节)备注
协议鉴别语40x44535246(ASCII “DSRF”)
协议版本号1BIT7-3:主版本号 BIT2-0:子版本号 (当前版本“0.2”  0x02)
消息ID1 
CRC16位校验216位CRC校验码(包括内容长度)
消息内容长度2 
消息内容  
消息格式

4、消息ID定义

消息名称方向
登录请求应用软件->读卡器1
登录确认读卡器->应用软件2
发送电子标签信息读卡器->应用软件3
发送心跳请求应用软件->读卡器4
心跳请求确认读卡器->应用软件5
呼叫标签请求应用软件->读卡器6
呼叫标签确认读卡器->应用软件7
呼叫标签拒绝读卡器->应用软件8
发送短信请求应用软件->读卡器9
发送短信确认读卡器->应用软件10
发送短信拒绝读卡器->应用软件11
批量呼叫标签请求应用软件->读卡器12
批量呼叫标签确认读卡器->应用软件13
批量呼叫标签拒绝读卡器->应用软件14
消息ID定义

(三)消息交互流程

(四)消息内容描述

1、登录请求(0x01)

说明:

用户应用软件发送登录请求给读卡器

消息内容:

长度(字节)内容
16用户名(字符串)
16密码(字符串)

注1:

读卡器的缺省用户名为”admin”、缺省密码为“888888”。

注2:

字符串为以字符‘\0’(0x00)作为截止符的一串字符。

消息示例:

44 53 52 46 02 01 82 b6 00 20 61 64 6d 69 6e 00 00 00 00 00 00 00 00 00 00 00 38 38 38 38 38 38 00 00 00 00 00 00 00 00 00 00

消息解析

2、登录确认(0x02)

说明:

读卡器确认应用软件的登录请求

消息内容:

长度(字节)内容
2登录结果(0成功其他值失败)
消息内容

消息示例:

44 53 52 46 02 02E4 A1 00 02 00 00

登录确认信息

3、电子标签数据(0x03)

说明:

读卡器发送读取的电子标签数据给应用软件

消息内容:

长度(字节)内容
1分站地址码
4电子标签卡号
1电子标签属性
0~7扩展数据字节
1无线信号场强(dBm)

分站地址码:1字节,网络读卡器自己和接入的无线读卡器的编码。如果是网络读卡器本身读到的标签,则分站号为0。如果是扩展的无线读卡器读到的标签,则分站号为无线读卡器的地址码+1(1~16)。

电子标签卡号:4字节,读到的电子标签的ID码。

标签属性

位0 欠压标志。1:欠压    0:正常

位1-3  标签类型。0:普通标签  1:声光标签    6:标签模块

位4 保留。

位5-7 扩展数据长度。必要时,标签可以上传一些扩展数据(如湿度、湿度等数据),扩展数据区紧跟属性字节,长度可以为0—7个字节。

扩展数据字节: 0—7个字节,扩展数据的长度在属性字节中说明,可以携带一些标签特有的数据,如温度、温度等数据。最多可以有7个字节,也可以没有。

无线信号场强:1字节,读到电子标签信号时测量到的无线场强,根据场强值可以计算得到标签的距离。范围(-128dBm~0dBm)

该字节值越大,实际的无线信号强度越大,则该标签离读卡器越近。

消息示例:

消息示例: 44 53 52 46 02 03 8E 77 00 07 01 00 1B 81 7A 00 AB

4、握手请求(0x04)

说明:

应用软件为保持登录状态,周期性的向读卡器发送握手请求消息。

消息内容:  无

消息示例:

44 53 52 46 02 04 b0 01 00 00

5、握手确认(0x05)

说明:

读卡器确认应用软件的握手请求消息

消息体中包含网络读卡器自身连接的定位天线(0号分站)的设备状态,和通过无线扩展的最多16个无线读卡器(1~16号分站)的设备状态,方便应用软件对设备进行管理。

消息内容:

长度(字节)内容
1分站数量(固定值:17  [0x11])
10号分站状态(设备本身)
161-16号分站状态(扩展的最多16个无线读卡器)
握手确认消息

状态定义:

0:正常

1:定位天线故障 

2:读卡器故障

3:读卡器拥塞(标签太多,无法及时发出导致数据丢失)

消息示例:

44 53 52 46 02 05 1E 2A 00 12 11 01 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02

握手确认

6呼叫标签请求(0x06)

说明:

当应用软件需要指定的标签发光发声光时,需发送声光提醒请求消息。

消息内容: 

长度(字节)内容
1分站地址码
4电子标签卡号
1提醒有效时长(秒)
1提醒模式
呼叫标签请求信息

提醒有效时长:

发送提醒指令后,在多长的时间内,提醒操作一直保持有效。(提醒操作失效后,标签仍会自主提醒10秒,直至超时。)

提醒模式:

呼叫模式说明
0仅绿灯闪烁
1绿灯闪烁+蜂鸣器响
2仅红灯闪烁
3红灯闪烁+蜂鸣器响
4仅红绿交替闪烁
5红绿交替闪烁+蜂鸣器响
255停止提醒

消息示例:44 53 52 46 02 06 2C F5 00 07 00 00 1D 0E 54 3C 00

7呼叫标签确认(0x07)

说明:

读卡器确认应用软件的声光提醒请求消息。应用软件如果发送了“声光提醒请求”消息,但没有收到“声光提醒确认”,需要重新发送请求消息。

消息内容:

长度(字节)内容
1分站地址码
4电子标签卡号

消息示例:44 53 52 46 02 07 CC 8E 00 05 00 00 1D 0E 54

8、呼叫标签拒绝(0x08)

说明:

读卡器无法响应应用软件的呼叫标签请求消息,比如分站不在线。

消息内容:

长度(字节)内容
1分站地址码
4电子标签卡号
1失败原因值
标签拒绝信息

9、发送短信请求(0x09)

说明:

应用软件给指定的标签发送短信(仅短信标签有效)。

消息内容: 

长度(字节)内容
1分站地址码
4标签ID
2短信编号(0~29999)
1年(实际年份-2020)
1
1
1
1
1
1短信内容长度(0~110)
110短信内容
短信发送信息请求

10、发送短信确认(0x0A)

说明:

读卡器确认收到了应用软件的短信消息。

消息内容:

长度(字节)内容
1分站地址码
4标签ID
发送短信确认

11、发送短信拒绝(0x0B)

说明:

读卡器接收到应用软件的短信消息,但无法发送,比如分站不在线。

消息内容:

长度(字节)内容
1分站地址码
4标签ID
1失败原因值
发送短信拒绝

12、批量呼叫标签请求(0x0C)

说明:

当应用软件需要同时呼叫一批标签时,需发送批量呼叫标签请求消息。一条消息支持最多呼叫80个标签。

消息内容: 

长度(字节)内容
1分站地址码
1提醒有效时长(秒)
1标签数量(1~80)
4标签1卡号
1标签1提醒模式
4标签2卡号
1标签2提醒模式
。。。。。。 
4标签N卡号
1标签N提醒模式
批量呼叫标签

提醒有效时长:

发送提醒指令后,在多长的时间内,提醒操作一直保持有效。(提醒操作失效后,标签仍会自主提醒10秒,直至超时。)

呼叫模式:

一般定义如下(各声光标签定义可能略有不同)

呼叫模式说明
0仅绿灯闪烁
1绿灯闪烁+蜂鸣器响
2仅红灯闪烁
3红灯闪烁+蜂鸣器响
4仅红绿交替闪烁
5红绿交替闪烁+蜂鸣器响
255停止提醒
呼叫模式

消息示例:44 53 52 46 02 0C 2B2A 00 12 01 3C 03 00 1D 0E 54 00 00 1D 0E 55 00 00 1D 0E 56 00

13、批量呼叫标签确认(0x0D)

说明:

读卡器确认应用软件的批量呼叫标签请求消息。应用软件如果发送了“批量呼叫标签请求”消息,但没有收到“批量呼叫标签确认”,需要重新发送请求消息。

消息内容:消息内容: 

长度(字节)内容
1分站地址码

消息示例:44 53 52 46 02 0D90B1 00 01 01

批量呼叫确认

14、批量呼叫标签拒绝(0x0E)

说明:

读卡器无法响应应用软件的批量呼叫标签请求消息,比如分站不在线。

消息内容:

长度(字节)内容
1分站地址码
1失败原因值
批量呼叫拒绝