6. vble_complete无线收发接口介绍

6.1. 简介

本章介绍应用层封装、管理完整GATT收发接口的vble_complete管理,该封装层能让用户聚焦于蓝牙数据收发;

该封装层管理的相关章节:完整GATT服务(GATT_complete)介绍

该接口非蓝牙标准协议,仅为应用层管理接口!

主要涉及的文件如下:
  • apps/app/bsp/common/bt_user/vble_gatt/vble_complete.c

vble_complete基于完整GATT服务管理分层;
"vble_complete基于完整GATT服务管理分层“

vble_complete基于完整GATT服务管理分层

6.2. 数据发送/接收流程

使用vble实现主机发送数据给从机:
  1. 主机分别调用函数 vble_master_init_api() 进行初始化;

  2. 主机调用函数vble_slave_recv_cb_register(),注册主机用的att通道对应的接收回调函数;

  3. 主机调用函数vble_master_send_api(),使用与2步相同at第t通道发送数据给从机;

使用vble实现从机发送数据给主机:
  1. 从机分别调用函数vble_slave_init_api()进行初始化;

  2. 从机调用函数vble_slave_recv_cb_register(),注册从机用的att通道对应的接收回调函数;

  3. 从机调用函数vble_master_send_api(),使用与第2步相同att通道发送数据给主机;

详细具体使用demo可查看下方gitee链接的《完整GATT服务蓝牙收发接口demo》:

FAQ:AW30N 快速使用蓝牙接口

6.3. 接口说明

6.3.1. 函数int vble_master_recv_cb_register(u32 slv_att_idx, void *priv, void *callback_fun)

备注

该函数实现将回调函数注册到vble_slv2mstr_info中指定的slv_att_idx序号

  1. slv_att_idx:vble_slv2mstr_info结构体支持的att通道号;

  2. priv:私有参数;

  3. callback_fun:注册对应ATT通道号的接收回调函数;

  4. 返回值:0


6.3.2. 函数int vble_slave_recv_cb_register(u32 mstr_att_idx, void *priv, void *callback_fun)

备注

该函数实现将回调函数注册到vble_slv2mstr_info中指定的slv_att_idx序号

  1. slv_att_idx:vble_slv2mstr_info结构体支持的att通道号;

  2. priv:私有参数;

  3. callback_fun:注册对应ATT通道号的接收回调函数;

  4. 返回值:0;


6.3.3. 函数int vble_master_send_api(u32 mstr_att_idx, u8 *data, u16 len)

备注

该函数实现主机通过mstr_att_idx序号对应的att_handle发送数据给从机

  1. mstr_att_idx:att通道号;

  2. data:发送数据buff;

  3. len:发送数据长度;

  4. 返回值:0;


6.3.4. 函数int vble_slave_send_api(u32 slv_att_idx, u8 *data, u16 len)

备注

该函数实现从机通过mstr_att_idx序号对应的att_handle发送数据给主机

  1. slv_att_idx:att通道号;

  2. data:发送数据buff;

  3. len:发送数据长度;

  4. 返回值:0;


6.3.5. 函数int vble_ioctl(u32 cmd, int arg)

备注

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

  1. cmd:命令;
    • VBLE_IOCTL_GET_SLAVE_STATUS:获取从机当前连接状态,只能在从机模式下使用,当返回的arg为0x21时为连接成功;

    • VBLE_IOCTL_GET_MASTER_STATUS:获取主机当前连接状态,只能在主机模式下使用,当返回的arg为0x50时即为连接成功;

  2. arg:参数;

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