金桔蓝牙网关蓝牙连接协议说明

下发蓝牙链接

http://127.0.0.1:8888/ac/station?cmd=setblelink_type&mac=10.00.00.63.42.42&stationId=10002095&type=test2

参数说明:

字段 描述
cmd 命令类型,固定为setblelink_type
mac 设备的mac地址
stationId 用哪个网关进行连接
type 连接的类型名,就是刚刚保存的test2

下发连接后,基站会反馈此次下发蓝牙连接的执行结果,通过推送接口推送(注意下发命令通过http接口的,依然会通过推送接口推送此反馈消息)

{ 
    "Gateway": "10000060", 
    "NodeId": "00000000", 
    "SystemId": "10990145", 
    "Type": "ble_set_link_result", 
    "addr": "100000614242", 
    "set_result": "OK"
}

字段描述:

字段 描述
Gateway 基站的ID
NodeId 忽略
SystemId ACserver的系统id
Type 此消息类型固定为ble_set_link_result
addr 该蓝牙连接的mac地址
set_result 该命令的执行结果,该类型有三个结果:OK-执行成功;ALREADY-该mac地址已经在建立蓝牙连接的列表中,不需要再建立连接了;OUT_OF_NUMBER-蓝牙连接的数量超过基站的最大连接数,不能为该设备建立蓝牙连接。

下发蓝牙发送:

HTTP请求接口:
http://127.0.0.1:8888/ac/station?cmd=blelinksend&mac=39.99.99.99.44.42&stationId=10000060&data=11,22,34,55
字段描述:

字段 描述
cmd 命令类型,固定为blelinksend
mac 设备的mac地址
stationId 用哪个网关进行连接
data 需要发送的内容,是英文逗号分开的十六进制数据

下发蓝牙读取:

HTTP请求接口:
http://127.0.0.1:8888/ac/station?cmd=blelinkread&mac=39.99.99.99.44.42&stationId=10000060&rxuuid=0001

字段 描述
cmd 命令类型,固定为blelinkread
mac 设备的mac地址
stationId 用哪个网关进行连接
rxuuid 连接的读取的uuid特征码

下发蓝牙断开:

http://127.0.0.1:8888/ac/station?cmd=setbledisconnect&mac=39.99.99.99.44.42&stationId=10000060

字段 描述
cmd 命令类型,固定setbledisconnect
mac 设备的mac地址
stationId 用哪个网关进行连接

下发连接后,基站会反馈此次下发蓝牙连接的执行结果,通过推送接口推送(注意下发命令通过http接口的,依然会通过推送接口推送此反馈消息)

{ 
    "Gateway": "10000060", 
    "NodeId": "00000000", 
    "SystemId": "10990145", 
    "Type": "ble_set_disconnect_result", 
    "addr": "100000614349", 
    "link_status": "NOLINK", 
    "set_result": "OK"
}

参数描述:

字段 描述
Gateway 基站的ID
NodeId 忽略
SystemId ACserver的系统id
Type 此消息类型固定为ble_set_disconnect_result
addr 该蓝牙连接的mac地址
set_result 该命令的执行结果,该类型有两个结果:OK-执行成功;NO_ADDR-该mac地址不在蓝牙连接的列表中(不一定建立连接,不在列表中)。
link_status 断开连接前,该基站是不是对该设备建立了连接,该类型有两个结果:NOLINK-没有建立蓝牙连接;CONNECTED-已经建立了蓝牙连接。

上传蓝牙连接成功消息

上传成功消息有两种,一种是ble_evt_bleconnect 此消息是建立了蓝牙物理链接,但是此时并未找到服务,所以并不能发送和读取数据;另一种是ble_evt_connected 此消息是找到服务,此时开始可以进行发送数据和接收数据。
蓝牙成功消息:

{ 
    "Gateway": "10000060", 
    "NodeId": "10000061", 
    "SystemId": "10990145", 
    "Type": "ble_evt_bleconnect", 
    "mac": "100000614242"
}

服务链接成功消息:

{ 
    "Gateway": "10000060", 
    "NodeId": "10000061", 
    "SystemId": "10990145", 
    "Type": "ble_evt_connected", 
    "data_length": "247", 
    "link": 0, 
    "mac": "100000614242", 
    "services": [ 
        { 
            "type": "VENDOR", 
            "uuid": "0001"
        }, 
        { 
            "type": "SIG", 
            "uuid": "0001"
        }, 
        { 
            "Characteristic": [ 
                { 
                    "auth_signed_wr": 0, 
                    "broadcast": 0, 
                    "indicate": 0, 
                    "notify": 0, 
                    "read": 0, 
                    "type": "VENDOR", 
                    "uuid": "0004", 
                    "write": 1, 
                    "write_wo_resp": 1
                }, 
                { 
                    "auth_signed_wr": 0, 
                    "broadcast": 0, 
                    "indicate": 0, 
                    "notify": 1, 
                    "read": 0, 
                    "type": "VENDOR", 
                    "uuid": "0005", 
                    "write": 0, 
                    "write_wo_resp": 0
                }
            ], 
            "type": "VENDOR", 
            "uuid": "F001"
        }
    ]
}

服务链接成功消息下面,有services字段,将扫描到的服务列表上传,一般可以可忽略。

蓝牙接收消息:

{ 
    "Gateway": "10000060", 
    "NodeId": "10000061", 
    "SystemId": "10990145", 
    "Type": "ble_evt_rxd", 
    "data": "01,02,03,04", 
    "mac": "100000614242"
}

此消息为通知服务uuid收到的节点上传的数据,data字段里包含了上传的十六进制数据,用逗号分开。
蓝牙读取消息:

{ 
    "Gateway": "10000060", 
    "NodeId": "10000061", 
    "SystemId": "10990145", 
    "Type": "ble_evt_read", 
    "data": "01,02,03,04", 
    "mac": "100000614242"
}

此消息为读取服务uuid收到的节点上传的数据,data字段里包含了上传的十六进制数据,用逗号分开。

蓝牙连接超时消息:

{ 
    "Gateway": "10000060", 
    "NodeId": "10000061", 
    "SystemId": "10990145", 
    "Type": "ble_evt_timeout", 
    "mac": "100000614242", 
    "status": "connected"
}

此消息为连接时限超过设定的超时时间,status字段代表了是否是处于连接状态的连接超时。

蓝牙连接断开消息:
{ 
    "Gateway": "10000060", 
    "NodeId": "10000061", 
    "SystemId": "10990145", 
    "Type": "ble_evt_disconnected", 
    "mac": "100000614242", 
    "reason": "22"
}

此消息为断开蓝牙消息,reason为内部调试使用,客户可忽略。

获取蓝牙网关连接信息

调用接口:
http://127.0.0.1:8888/ac/station?cmd=station_read_connection_info&ids=10000060
推送数据推送:

{ 
    "Gateway": "10000060", 
    "NodeId": "00000000", 
    "SystemId": "10990145", 
    "Type": "ble_station_connection_info", 
    "conn": [ 
        { 
            "addr": "3F,FF,FF,FF,44,42", 
            "addtime": "2020-11-20 12:21:58", 
            "conn_status": "connected", 
            "data_len": 247, 
            "timeout": "2020-11-20 10:18:37"
        }
    ]
}
字段 描述
conn 字段里包含当前连接的数组:
addr 连接蓝牙设备的地址
addtime 连接蓝牙设备的开始时间
timeout 连接蓝牙设备的超时时间
conn_status 当前状态是不是已经建立连接
data_len 该连接单次发送的最大字节数
上一篇:HAProxy


下一篇:【编写环境二】python库scipy.stats各种分布函数生成、以及随机数生成【泊松分布、正态分布等】