蓝牙手环
线上探针实时数据采集是利用蓝牙网关(TD03)去接受附近一定范围的Beacon信息;软件将多个蓝牙网关设备组成一个覆盖范围,通过UDP协议向指定的服务器上报数据每隔1S发送相应范围内的beacon信息(包括beaconMac,rssi等),每隔30S发送探针心跳报文信息(包括探针Mac等)。
系统利用UDP协议与硬件进行通信,能快速并有效地接受报文数据。
系统环境利用HUB进行POE供电TDO3,端口充足可适配18台以上设备。
软件搭载于Linux服务器上,更完善的保证了数据传输的稳定性与安全性等。
图1、定位示意图
蓝牙探针数据接口协议,按协议组成特定的报文传输数据给定位服务器。
1. 消息类型:
MU Report Message, 消息类型为 0x01
Heartbeat Message, 消息类型为 0x02
2. 消息流程:
蓝牙探针利用UDP数据传输协议1S发送一次数据报文,30S发送一次心跳报文。
图2、消息流程
利用Netty服务快速,异步的接受探针数据,软件启动,并监听服务器端某端口的数据报备,对UDP协议接受的数据进行Decoder转码。
1.接收1S上报的报文数据,对UDP上传的二进制报文数据进行转码,根据消息类型头处理判断是监测数据或是心跳报文数据,分块化进行数据处理;处理beacon数据:
2.接收 30上报的心跳报文数据,对UDP上传的二进制报文数据进行转码,根据消息类型头处理判断是监测数据或是心跳报文数据,分块化进行数据处理;处理心跳报文数据:
3.线上探针实时数据采集工作流程从TD03接收报文数据,对报文数据按照协议格式解析,解析成功后对数据进行存储。
图3、线上探针实时数据采集时序图
4.线上探针实时数据采集成功后会将相应的beacon数据,心跳报文数据存储至redis缓存中。
图4、线上探针数据存储流程图