.. _vble_complete无线收发接口介绍: vble_complete无线收发接口介绍 =================================== 简介 ######################## 本章介绍应用层封装、管理完整GATT收发接口的vble_complete管理,该封装层能让用户聚焦于蓝牙数据收发; 该封装层管理的相关章节::ref:`完整GATT服务(GATT_complete)介绍` **该接口非蓝牙标准协议,仅为应用层管理接口!** 主要涉及的文件如下: - apps/app/bsp/common/bt_user/vble_gatt/vble_complete.c vble_complete基于完整GATT服务管理分层; .. image:: vble_gatt_profile_position.png :alt: "vble_complete基于完整GATT服务管理分层“ :align: center .. centered:: vble_complete基于完整GATT服务管理分层 数据发送/接收流程 ######################## 使用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 快速使用蓝牙接口 `_ 接口说明 ######################## 函数int vble_master_recv_cb_register(u32 slv_att_idx, void \*priv, void \*callback_fun) **************************************************************************************** .. note:: 该函数实现将回调函数注册到vble_slv2mstr_info中指定的slv_att_idx序号 1. slv_att_idx:vble_slv2mstr_info结构体支持的att通道号; 2. priv:私有参数; 3. callback_fun:注册对应ATT通道号的接收回调函数; 4. 返回值:0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数int vble_slave_recv_cb_register(u32 mstr_att_idx, void \*priv, void \*callback_fun) **************************************************************************************** .. note:: 该函数实现将回调函数注册到vble_slv2mstr_info中指定的slv_att_idx序号 1. slv_att_idx:vble_slv2mstr_info结构体支持的att通道号; 2. priv:私有参数; 3. callback_fun:注册对应ATT通道号的接收回调函数; 4. 返回值:0; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数int vble_master_send_api(u32 mstr_att_idx, u8 \*data, u16 len) *************************************************************************** .. note:: 该函数实现主机通过mstr_att_idx序号对应的att_handle发送数据给从机 1. mstr_att_idx:att通道号; 2. data:发送数据buff; 3. len:发送数据长度; 4. 返回值:0; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数int vble_slave_send_api(u32 slv_att_idx, u8 \*data, u16 len) *************************************************************************** .. note:: 该函数实现从机通过mstr_att_idx序号对应的att_handle发送数据给主机 1. slv_att_idx:att通道号; 2. data:发送数据buff; 3. len:发送数据长度; 4. 返回值:0; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 函数int vble_ioctl(u32 cmd, int arg) *************************************************************************** .. note:: 该函数实现获取或者设置蓝牙相关状态和配置 1. cmd:命令; * VBLE_IOCTL_GET_SLAVE_STATUS:获取从机当前连接状态,只能在从机模式下使用,当返回的arg为0x21时为连接成功; * VBLE_IOCTL_GET_MASTER_STATUS:获取主机当前连接状态,只能在主机模式下使用,当返回的arg为0x50时即为连接成功; 2. arg:参数; 3. 返回值:0:成功 非0:失败;