7. vble_simple无线收发接口介绍

7.1. 简介

本章介绍应用层封装、管理简易GATT收发接口的vble_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服务管理分层“

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函数即初始化主机

  1. 返回值:无

7.3.2. 函数void vble_smpl_slave_select(void)

备注

该函数实现选择蓝牙从机配置,调用该函数后再调用init函数即初始化从机

  1. 返回值:无

7.3.3. 函数void vble_smpl_init(void)

备注

该函数实现初始化蓝牙并根据主/从机身份开启搜索/广播

  1. 返回值:无

7.3.4. 函数void vble_smpl_exit(void)

备注

该函数实现断开连接并退出蓝牙

  1. 返回值:无

7.3.5. 函数int vble_smpl_send_api(u8 *data, u16 len)

备注

该函数实现发送数据给远端

  1. data:发送数据buff;

  2. len:发送数据长度;

  3. 返回值:0:成功 非0:失败;

7.3.6. 函数void vble_smpl_recv_register(void *priv, int (*callback_func)(u8 *buf, u16 len))

备注

该函数实现注册接收回调函数

  1. priv:私有参数;

  2. callback_fun:注册的接收回调;

  3. 返回值:无;

7.3.7. 函数u32 vble_smpl_ioctl(u32 cmd, int arg)

备注

该函数实现获取或者设置蓝牙相关状态和配置;

  1. 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:获取当前连接状态;

  2. arg:参数;

  3. 返回值:0:成功 非0:失败;