如何用蓝牙网关扫描蓝牙beacon设备
- 锚点透传功能
- 透传格式
- 透传过滤
金桔蓝牙网关默认是常开蓝牙扫描,通过金桔ACserver可以关闭网关的蓝牙扫描功能,金桔蓝牙基站主要对四种设备进行扫描传输:beacon设备(锚点设备),金桔定位设备(定位卡,定位手环,资产定位等),一般蓝牙广播设备和中继。用户对接第三方蓝牙设备属于一般蓝牙广播设备,
注意,尽量对某一类数据进行扫描透传数据,如果开多种数据透传,那么降低基站带的节点数量,以下对金桔ACserver配置基站参数的说明:
锚点透传功能
透传格式
金桔蓝牙基站透传beacon数据,如果基站同时打开广播透传功能(关闭厂商数据时),那么一个beacon数据会在beacon数据的推送类型里出现,也会出现在广播数据里。
手机看到的锚点(该锚点是在*宝上买的):
锚点透传的数据如下:
{
"Gateway": "00000000",
"NodeId": "0001DD0E",
"SystemId": "10990145",
"Type": "beacon_device",
"beacon_service": "0215",
"beacon_uuid": "B5B182C7EAB14988AA99B5C1517008D9",
"data": [
{
"rssi": -57,
"station": "10000060"
}
],
"major": "1",
"majorHex": "0001",
"minor": "56590",
"minorHex": "DD0E",
"msg_type": "ble",
"rssi_level": "-59",
"vendor_id": "004C"
}
字段名称 | 说明 |
Gateway | 忽略 |
NodeId | 这里是金桔系统认为的nodeId,任何锚点设备,majorHex+minorHex 金桔都认为是nodeId,这样方便在做位置计算时区分锚点设备。 |
SystemId | Acserver的Id,在config/setting.js里配置 |
Type | 固定为beacon_device |
beacon_service | beacon的服务类型,一般是 0215, |
beacon_uuid | Beacon 的UUID 值 |
major | 十进制的major值 |
majorHex | 十六进制的major值,用于方便计算 |
minor | 十进制的minor值 |
minorHex | 十六进制的minor值,用于方便计算 |
msg_type | 固定为ble |
rssi_level | Beacon的校准rssi值,在beacon中设置 |
vendor_id | 厂商的ID,一般标准苹果的ibeacon是004C |
data | 这里面是一个数组,代表每个基站收到该广播的信号强度,因为一个beacon广播可能被多个基站收到,这里值可以做三角定位用 |
透传过滤
因为锚点是公共功能设备,在基站的周边可能存在多个其他不准备透传的设备,所以基站可以通过major值来进行过滤,过滤配置在基站位置中:
基站只透传过滤掩码“逻辑与”过滤值的设备,例如:
我们配置过滤掩码为0xFFFF 过滤值为0x3000,那么major除了0x3000以外的锚点设备将都不能透传。
如果我们配置过滤掩码为0xFF00 过滤值为0x3000,那么major除了0x30**以外的锚点设备将都不能透传。