首页 > 编程知识 正文

蓝牙网关方案,支持蓝牙网关

时间:2023-05-04 13:25:43 阅读:270929 作者:2338

下发蓝牙链接

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

参数说明:

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

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

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

字段描述:

字段描述Gateway基站的IDNodeId忽略SystemIdACserver的系统idType此消息类型固定为ble_set_link_resultaddr该蓝牙连接的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命令类型,固定为blelinksendmac设备的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命令类型,固定为blelinkreadmac设备的mac地址stationId用哪个网关进行连接rxuuid连接的读取的uuid特征码下发蓝牙断开:

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

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

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

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

参数描述:

字段描述Gateway基站的IDNodeId忽略SystemIdACserver的系统idType此消息类型固定为ble_set_disconnect_resultaddr该蓝牙连接的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" }, { "欢呼的路人": [ { "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该连接单次发送的最大字节数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。