7. vble_simple无线收发接口介绍
7.1. 简介
- 本章介绍应用层封装、管理简易GATT收发接口的vble_simple管理:
该封装层统一收发接口忽略主从特性,让用户聚焦于蓝牙数据收发
该封装层管理的相关章节:简易GATT服务(GATT_simple)介绍
该接口非蓝牙标准协议,仅为应用层管理接口!
- 主要涉及的文件如下:
apps/app/bsp/common/bt_user/vble_gatt/vble_simple.c
apps/app/bsp/common/bt_user/vble_gatt/vble_simple.h
从v1.3.0 版本开始,更新连接间隔(interval)与连接超时的时间(timeout)配置移到apps/app/bsp/common/bt_user/vble_gatt/vble_simple.h
- vble_simple基于简易GATT服务管理分层;
vble_simple基于简易GATT服务管理分层
7.2. 数据发送/接收流程
vble_gatt_simple管理旨在统一主从机接口,通过挂载ble_master_ops接口或者ble_slave_ops接口到vble_att_ops中,选择成为主机或者从机;
- 使用流程(可参考BLE对讲机应用流程):
调用函数ble_clock_init()进行蓝牙硬件初始化;
调用函数vble_smpl_master_select()或函数vble_smpl_slave_select()配置成为主机或从机;
调用函数vble_smpl_init()进行初始化;
调用函数vble_smpl_recv_register()注册接收回调函数;
调用函数vble_smpl_send_api()发送数据;
调用函数vble_smpl_ioctl(VBLE_SMPL_GET_STATUS, &ble_status)获取当前蓝牙状态;
7.3. 接口说明
7.3.1. 函数void vble_smpl_master_select(void)
备注
该函数实现选择蓝牙主机配置,调用该函数后再调用init函数即初始化主机
返回值:无
7.3.2. 函数void vble_smpl_slave_select(void)
备注
该函数实现选择蓝牙从机配置,调用该函数后再调用init函数即初始化从机
返回值:无
7.3.3. 函数void vble_smpl_init(void)
备注
该函数实现初始化蓝牙并根据主/从机身份开启搜索/广播
返回值:无
7.3.4. 函数void vble_smpl_exit(void)
备注
该函数实现断开连接并退出蓝牙
返回值:无
7.3.5. 函数int vble_smpl_send_api(u8 *data, u16 len)
备注
该函数实现发送数据给远端
data:发送数据buff;
len:发送数据长度;
返回值:0:成功 非0:失败;
7.3.6. 函数void vble_smpl_recv_register(void *priv, int (*callback_func)(u8 *buf, u16 len))
备注
该函数实现注册接收回调函数
priv:私有参数;
callback_fun:注册的接收回调;
返回值:无;
7.3.7. 函数u32 vble_smpl_ioctl(u32 cmd, int arg)
备注
该函数实现获取或者设置蓝牙相关状态和配置;
- cmd:命令;
VBLE_SMPL_UPDATE_CONN_INTERVAL:配置连接interval参数,在配置该参数时,由于timeout的时间至少满足interval与latency的2倍(timeout>=interval*latency*2),因此在配置interval时也需要重新配置一下timeout;
VBLE_SMPL_GET_NAME:获取主从机标识名;
VBLE_SMPL_GET_STATUS:获取当前连接状态;
arg:参数;
返回值:0:成功 非0:失败;