XFusion API v1.3.0
载入中...
搜索中...
未找到
gatt

Generic Attribute Profile 更多...

gatt 的协作图:

结构体

struct  xf_ble_gattc_desc_found_t
 BLE GATTC 搜寻到的特征描述符 更多...
 
struct  xf_ble_gattc_desc_found_set_t
 BLE GATTC 搜寻到的特征描述符集合信息 更多...
 
struct  xf_ble_gattc_chara_found_t
 BLE GATTC 搜寻到的特征 更多...
 
struct  xf_ble_gattc_chara_found_set_t
 BLE GATTC 搜寻到的特征集合信息 更多...
 
struct  xf_ble_gattc_service_found_t
 BLE GATTC 搜寻到的服务 更多...
 
struct  xf_ble_gattc_service_found_set_t
 BLE GATTC 搜寻到的服务集合信息 更多...
 
struct  xf_ble_evt_param_scan_t
 BLE GAP 扫描参数设置事件的参数 更多...
 
struct  xf_ble_evt_param_scan_result_t
 BLE GAP 收到扫描结果事件的参数 更多...
 
struct  xf_ble_evt_param_connect_t
 BLE GAP 连接事件的参数 更多...
 
struct  xf_ble_evt_param_disconnect_t
 BLE GAP 断连事件的参数 更多...
 
struct  xf_ble_evt_param_gattc_service_found_t
 BLE GATTC 搜寻到服务结构事件的参数 更多...
 
struct  xf_ble_evt_param_gattc_mtu_changed_t
 BLE GATTC MTU 改变事件的参数 更多...
 
struct  xf_ble_evt_param_gattc_write_t
 BLE GATTC 写完成事件的参数 更多...
 
struct  xf_ble_evt_param_gattc_read_cmpl_t
 BLE GATTC 读完成事件的参数 更多...
 
struct  xf_ble_evt_param_gattc_notify_t
 BLE GATTC 接收到通知或指示事件的参数 更多...
 
union  xf_ble_gattc_evt_cb_param_t
 BLE GATTC 客户端事件回调参数 更多...
 
struct  xf_ble_gatts_chara_desc_t
 BLE GATTS 特征描述符信息 更多...
 
struct  xf_ble_gatts_chara_value_t
 BLE GATTS 特征值信息。 注意,这里省略掉了 特征值声明属性中的属性类型,即特征 UUID(特征声明中的), 因为此类型仅包含于特征描述声明中,便于查看。 更多...
 
struct  _xf_ble_gatts_chara_t
 BLE GATTS 特征信息 更多...
 
struct  _xf_ble_gatts_service_t
 
struct  xf_ble_gatts_ntf_ind_t
 BLE GATTS 发送通知或指示的信息 更多...
 
struct  xf_ble_gatts_response_value_t
 BLE GATTS 响应 (回应) 值信息 更多...
 
struct  xf_ble_evt_param_pair_end_t
 BLE GATTS 配对结束事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_add_service_t
 BLE GATTS 服务添加事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_del_service_t
 BLE GATTS 服务删除事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_add_chara_t
 BLE GATTS 服务删除事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_add_chara_desc_t
 BLE GATTS 特征描述符添加事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_service_start_t
 BLE GATTS 服务启动事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_service_stop_t
 BLE GATTS 服务停止事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_read_req_t
 BLE GATTS 接收到读请求事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_write_req_t
 BLE GATTS 接收到写请求事件的参数 更多...
 
struct  xf_ble_evt_param_gatts_mtu_t
 BLE GATTS MTU变更事件的参数 更多...
 
union  xf_ble_gatts_evt_cb_param_t
 GATT 服务端事件回调参数 更多...
 

宏定义

#define XF_BLE_ATTR_SET_END_FLAG   NULL
 属性集合的结束标记值
 

类型定义

typedef xf_err_t(* xf_ble_gattc_event_cb_t) (xf_ble_gattc_event_t event, xf_ble_gattc_evt_cb_param_t param)
 BLE GATTC 事件回调函数原型
 
typedef xf_err_t(* xf_ble_gatts_event_cb_t) (xf_ble_gatts_event_t event, xf_ble_gatts_evt_cb_param_t param)
 BLE GATTS 事件回调函数原型
 
typedef struct _xf_ble_gatts_chara_t xf_ble_gatts_chara_t
 BLE GATTS 特征信息
 
typedef struct _xf_ble_gatts_service_t xf_ble_gatts_service_t
 BLE GATTS 服务信息
 

枚举

enum  xf_ble_gattc_write_type_t { XF_BLE_GATT_WRITE_TYPE_NO_RSP = 1 , XF_BLE_GATT_WRITE_TYPE_WITH_RSP }
 BLE GATTC 写请求的类型 更多...
 
enum  xf_ble_gap_scanned_adv_type_t {
  XF_BLE_GAP_SCANNED_ADV_TYPE_CONN = 0x00 , XF_BLE_GAP_SCANNED_ADV_TYPE_CONN_DIR = 0x01 , XF_BLE_GAP_SCANNED_ADV_TYPE_SCAN = 0x02 , XF_BLE_GAP_SCANNED_ADV_TYPE_NONCONN = 0x03 ,
  XF_BLE_GAP_SCANNED_ADV_TYPE_SCAN_RSP = 0x04
}
 Ble scan result event type, to indicate the result is scan response or advertising data or other 更多...
 
enum  xf_ble_gatt_attr_permission_t {
  XF_BLE_GATT_ATTR_PERMISSION_READ = 0x01 , XF_BLE_GATT_ATTR_PERMISSION_WRITE = 0x02 , XF_BLE_GATT_ATTR_PERMISSION_ENCRYPTION_NEED = 0x04 , XF_BLE_GATT_ATTR_PERMISSION_AUTHENTICATION_NEED = 0x08 ,
  XF_BLE_GATT_ATTR_PERMISSION_AUTHORIZATION_NEED = 0x10 , XF_BLE_GATT_ATTR_PERMISSION_MITM_NEED = 0x20
}
 BLE GATT 属性权限 更多...
 
enum  xf_ble_gatt_chara_property_t {
  XF_BLE_GATT_CHARA_PROPERTY_BROADCAST = 0x01 , XF_BLE_GATT_CHARA_PROPERTY_READ = 0x02 , XF_BLE_GATT_CHARA_PROPERTY_WRITE_NO_RSP = 0x04 , XF_BLE_GATT_CHARA_PROPERTY_WRITE = 0x08 ,
  XF_BLE_GATT_CHARA_PROPERTY_NOTIFY = 0x10 , XF_BLE_GATT_CHARA_PROPERTY_INDICATE = 0x20 , XF_BLE_GATT_CHARA_PROPERTY_SIGNED_WRITE = 0x40 , XF_BLE_GATT_CHARA_PROPERTY_EXT_RELIABLE_WRITE = 0x0080 ,
  XF_BLE_GATT_CHARA_PROPERTY_EXT_AUX_WRITE = 0x0100 , XF_BLE_GATT_CHARA_PROPERTY_EXT_READ_ENC = 0x0200 , XF_BLE_GATT_CHARA_PROPERTY_EXT_READ_AUTHEN = 0x0400 , XF_BLE_GATT_CHARA_PROPERTY_EXT_READ_AUTHOR = 0x0800 ,
  XF_BLE_GATT_CHARA_PROPERTY_EXT_WRITE_ENC = 0x1000 , XF_BLE_GATT_CHARA_PROPERTY_EXT_WRITE_AUTHEN = 0x2000 , XF_BLE_GATT_CHARA_PROPERTY_EXT_WRITE_AUTHOR = 0x4000
}
 BLE 特征的特性 (property) 更多...
 
enum  xf_ble_gatt_chara_desc_type_t {
  XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_EXT_PROPERTIES , XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_USER_DESC , XF_BLE_GATT_CHARA_DESC_TYPE_CLIENT_CHARA_CFG , XF_BLE_GATT_CHARA_DESC_TYPE_SERVER_CHARA_CFG ,
  XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_PRESENTATION_FORMAT , XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_AGGREGATE_FORMAT
}
 BLE GATT 特征描述符类型 更多...
 
enum  xf_ble_gatt_service_type_t { XF_BLE_GATT_SERVICE_TYPE_PRIMARY , XF_BLE_GATT_SERVICE_TYPE_SECONDARY }
 BLE GATT 服务类型 更多...
 
enum  xf_ble_gatt_err_t {
  XF_BLE_GATT_ERR_SUCCESS = 0x00 , XF_BLE_GATT_ERR_INVALID_HANDLE = 0x01 , XF_BLE_GATT_ERR_READ_NOT_PERMITTED = 0x02 , XF_BLE_GATT_ERR_WRITE_NOT_PERMITTED = 0x03 ,
  XF_BLE_GATT_ERR_INVALID_PDU = 0x04 , XF_BLE_GATT_ERR_INSUFFICIENT_AUTHENTICATION = 0x05 , XF_BLE_GATT_ERR_REQUEST_NOT_SUPPORTED = 0x06 , XF_BLE_GATT_ERR_INVALID_OFFSET = 0x07 ,
  XF_BLE_GATT_ERR_INSUFFICIENT_AUTHORIZATION = 0x08 , XF_BLE_GATT_ERR_PREPARE_QUEUE_FULL = 0x09 , XF_BLE_GATT_ERR_ATTRIBUTE_NOT_FOUND = 0x0A , XF_BLE_GATT_ERR_ATTRIBUTE_NOT_LONG = 0x0B ,
  XF_BLE_GATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0x0C , XF_BLE_GATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH = 0x0D , XF_BLE_GATT_ERR_UNLIKELY_ERROR = 0x0E , XF_BLE_GATT_ERR_INSUFFICIENT_ENCRYPTION = 0x0F ,
  XF_BLE_GATT_ERR_UNSUPPORTED_GROUP_TYPE = 0x10 , XF_BLE_GATT_ERR_INSUFFICIENT_RESOURCES = 0x11 , XF_BLE_GATT_ERR_DATABASE_OUT_OF_SYNC = 0x12 , XF_BLE_GATT_ERR_VALUE_NOT_ALLOWED = 0x13 ,
  XF_BLE_GATT_ERR_APP_ERROR_START = 0x80 , XF_BLE_GATT_ERR_APP_ERROR_END = 0x9F , XF_BLE_GATT_ERR_COMMON_PROFILE_AND_SERVICE_START = 0xE0 , XF_BLE_GATT_ERR_COMMON_PROFILE_AND_SERVICE_END = 0xFF
}
 BLE GATT 操作错误码 更多...
 

函数

xf_err_t xf_ble_gattc_app_register (xf_ble_uuid_info_t *app_uuid, uint8_t *app_id)
 BLE GATTC 客户端注册
 
xf_err_t xf_ble_gattc_app_unregister (uint8_t app_id)
 BLE GATTC 客户端注销
 
xf_err_t xf_ble_gattc_discover_service (uint8_t app_id, uint16_t conn_id, xf_ble_uuid_info_t *service_uuid, xf_ble_gattc_service_found_set_t **service_set_info)
 BLE GATTC 搜寻服务(指定 UUID 或 尝试搜寻所有服务)
 
xf_err_t xf_ble_gattc_discover_chara (uint8_t app_id, uint16_t conn_id, uint16_t start_handle, uint16_t end_handle, xf_ble_uuid_info_t *chara_uuid, xf_ble_gattc_chara_found_set_t **out_chara_set)
 BLE GATTC 搜寻特征(指定 UUID 或 尝试搜寻所有特征)
 
xf_err_t xf_ble_gattc_request_read_by_handle (uint8_t app_id, uint16_t conn_id, uint16_t handle)
 BLE GATTC 通过句柄发起读请求
 
xf_err_t xf_ble_gattc_request_read_by_uuid (uint8_t app_id, uint16_t conn_id, uint16_t start_handle, uint16_t end_handle, const xf_ble_uuid_info_t *uuid)
 BLE GATTC 通过 UUID 发起读请求
 
xf_err_t xf_ble_gattc_request_write (uint8_t app_id, uint16_t conn_id, uint16_t handle, uint8_t *value, uint16_t value_len, xf_ble_gattc_write_type_t write_type)
 BLE GATTC 发起写请求
 
xf_err_t xf_ble_gattc_request_exchange_mtu (uint8_t app_id, uint16_t conn_id, uint16_t mtu_size)
 BLE GATTC 发送 MTU 协商
 
xf_err_t xf_ble_gattc_event_cb_register (xf_ble_gattc_event_cb_t evt_cb, xf_ble_gattc_event_t events)
 BLE GATTC 事件回调注册
 
xf_err_t xf_ble_gatts_app_register (xf_ble_uuid_info_t *app_uuid, uint8_t *app_id)
 BLE GATTS 服务端注册
 
xf_err_t xf_ble_gatts_app_unregister (uint8_t app_id)
 BLE GATTS 服务端注销
 
xf_err_t xf_ble_gatts_add_service_to_app_profile (uint8_t app_id, xf_ble_gatts_service_t *service)
 BLE GATTS 向服务端 (应用) 添加服务
 
xf_err_t xf_ble_gatts_start_service (uint8_t app_id, uint16_t service_handle)
 BLE GATTS 服务开启
 
xf_err_t xf_ble_gatts_stop_service (uint8_t app_id, uint16_t service_handle)
 BLE GATTS 服务停止
 
xf_err_t xf_ble_gatts_del_services_all (uint8_t app_id)
 BLE GATTS 删除所有服务
 
xf_err_t xf_ble_gatts_send_notification (uint8_t app_id, uint16_t conn_id, xf_ble_gatts_ntf_ind_t *param)
 BLE GATTS 发送通知
 
xf_err_t xf_ble_gatts_send_indication (uint8_t app_id, uint16_t conn_id, xf_ble_gatts_ntf_ind_t *param)
 BLE GATTS 发送指示
 
xf_err_t xf_ble_gatts_send_response (uint8_t app_id, uint16_t conn_id, uint32_t trans_id, xf_ble_gatt_err_t err_code, xf_ble_gatts_response_value_t *rsp)
 BLE GATTS 发送 (请求的) 响应
 
xf_err_t xf_ble_gatts_event_cb_register (xf_ble_gatts_event_cb_t evt_cb, xf_ble_gatts_event_t events)
 BLE GATTS 事件回调注册
 

详细描述

Generic Attribute Profile

宏定义说明

◆ XF_BLE_ATTR_SET_END_FLAG

#define XF_BLE_ATTR_SET_END_FLAG   NULL

属性集合的结束标记值

注解
一般出现在构造服务结构时, 多个服务、特征、描述符等属性的集合的结尾部分, 一般是标记属性的 UUID 项(关键项)为 'XF_BLE_ATTR_SET_END_FLAG' 表示结束(主要是为了更好显示结束的位置)
由于结束标记的特殊性(NULL),用户构造时也可以 对属性集合中表示结束的最后一个属性成员结构直接置 0,如: ([attr_set_type]) { {...}, {...}, {0} }
示例
examples/wireless/ble/sample_gatt_server/main/xf_main.c.

在文件 xf_ble_gatt_server_types.h57 行定义.

类型定义说明

◆ xf_ble_gattc_event_cb_t

typedef xf_err_t(* xf_ble_gattc_event_cb_t) (xf_ble_gattc_event_t event, xf_ble_gattc_evt_cb_param_t param)

BLE GATTC 事件回调函数原型

参数
event事件,见 xf_ble_gattc_event_t
param事件回调参数,见 xf_ble_gattc_evt_cb_param_t
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

在文件 xf_ble_gatt_client.h199 行定义.

◆ xf_ble_gatts_event_cb_t

typedef xf_err_t(* xf_ble_gatts_event_cb_t) (xf_ble_gatts_event_t event, xf_ble_gatts_evt_cb_param_t param)

BLE GATTS 事件回调函数原型

参数
event事件,见 xf_ble_gatts_event_t
param事件回调参数,见 xf_ble_gatts_evt_cb_param_t
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

在文件 xf_ble_gatt_server.h170 行定义.

◆ xf_ble_gatts_chara_t

BLE GATTS 特征信息

◆ xf_ble_gatts_service_t

BLE GATTS 服务信息

在文件 xf_ble_gatt_server_types.h102 行定义.

枚举类型说明

◆ xf_ble_gattc_write_type_t

BLE GATTC 写请求的类型

枚举值
XF_BLE_GATT_WRITE_TYPE_NO_RSP 

无需 (对端) 响应 (写命令)

XF_BLE_GATT_WRITE_TYPE_WITH_RSP 

需要 (对端) 回应 (写请求)

在文件 xf_ble_gatt_client_types.h43 行定义.

◆ xf_ble_gap_scanned_adv_type_t

Ble scan result event type, to indicate the result is scan response or advertising data or other

BLE GAP 扫描结果中的事件类型,扫描响应、广播数据或其他类型

枚举值
XF_BLE_GAP_SCANNED_ADV_TYPE_CONN 

Connectable undirected advertising (ADV_IND)

XF_BLE_GAP_SCANNED_ADV_TYPE_CONN_DIR 

Connectable directed advertising (ADV_DIRECT_IND)

XF_BLE_GAP_SCANNED_ADV_TYPE_SCAN 

Scannable undirected advertising (ADV_SCAN_IND)

XF_BLE_GAP_SCANNED_ADV_TYPE_NONCONN 

Non connectable undirected advertising (ADV_NONCONN_IND)

XF_BLE_GAP_SCANNED_ADV_TYPE_SCAN_RSP 

Scan Response (SCAN_RSP)

在文件 xf_ble_gatt_client_types.h109 行定义.

◆ xf_ble_gatt_attr_permission_t

BLE GATT 属性权限

枚举值
XF_BLE_GATT_ATTR_PERMISSION_READ 

可读

XF_BLE_GATT_ATTR_PERMISSION_WRITE 

可写

XF_BLE_GATT_ATTR_PERMISSION_ENCRYPTION_NEED 

需要加密

XF_BLE_GATT_ATTR_PERMISSION_AUTHENTICATION_NEED 

需要认证

XF_BLE_GATT_ATTR_PERMISSION_AUTHORIZATION_NEED 

需要授权

XF_BLE_GATT_ATTR_PERMISSION_MITM_NEED 

需要MITM保护

在文件 xf_ble_gatt_common.h50 行定义.

◆ xf_ble_gatt_chara_property_t

BLE 特征的特性 (property)

注解
1. 此处并不是严格按蓝牙标准进行定义 ———— 一字节 8 个特征的基本特性类型,
而是 多字节 8 个基本特性类型 + 拓展特性类型的类型定义。
2. 拓展类型从 基于蓝牙标准 1 字节基本特性类型的最高位( 0x80 ) 开始替换续接为拓展特性类型。
3. 拓展类型名字都带上 EXT (暂定),以便开发者查阅、对比官方描述
枚举值
XF_BLE_GATT_CHARA_PROPERTY_BROADCAST 

广播特征值:允许对该特征值进行广播

XF_BLE_GATT_CHARA_PROPERTY_READ 

读特征值:允许读取特征值

XF_BLE_GATT_CHARA_PROPERTY_WRITE_NO_RSP 

写特征值且无需响应:允许写入特征值 (没有响应)

XF_BLE_GATT_CHARA_PROPERTY_WRITE 

写特征值且需要响应:允许写入特征值 (有响应)

XF_BLE_GATT_CHARA_PROPERTY_NOTIFY 

通知特征值:允许向客户端进行特征值通知 (无需确认)

XF_BLE_GATT_CHARA_PROPERTY_INDICATE 

指示特征值:允许向客户端进行特征值指示 (需要确认)

XF_BLE_GATT_CHARA_PROPERTY_SIGNED_WRITE 

签名写特征值:允许对特征值进行签名写操作

XF_BLE_GATT_CHARA_PROPERTY_EXT_RELIABLE_WRITE 
XF_BLE_GATT_CHARA_PROPERTY_EXT_AUX_WRITE 
XF_BLE_GATT_CHARA_PROPERTY_EXT_READ_ENC 
XF_BLE_GATT_CHARA_PROPERTY_EXT_READ_AUTHEN 
XF_BLE_GATT_CHARA_PROPERTY_EXT_READ_AUTHOR 
XF_BLE_GATT_CHARA_PROPERTY_EXT_WRITE_ENC 
XF_BLE_GATT_CHARA_PROPERTY_EXT_WRITE_AUTHEN 
XF_BLE_GATT_CHARA_PROPERTY_EXT_WRITE_AUTHOR 

在文件 xf_ble_gatt_common.h69 行定义.

◆ xf_ble_gatt_chara_desc_type_t

BLE GATT 特征描述符类型

枚举值
XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_EXT_PROPERTIES 

0x2900, CEP:Characteristic Extended Properties

XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_USER_DESC 

0x2901, CUD:Characteristic User Description

XF_BLE_GATT_CHARA_DESC_TYPE_CLIENT_CHARA_CFG 

0x2902, CCC:Client Characteristic Configuration

XF_BLE_GATT_CHARA_DESC_TYPE_SERVER_CHARA_CFG 

0x2903, SCC:Server Characteristic Configuration

XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_PRESENTATION_FORMAT 

0x2904, CPF:Characteristic Presentation Format

XF_BLE_GATT_CHARA_DESC_TYPE_CHARA_AGGREGATE_FORMAT 

0x2903, CAF:Characteristic Aggregate Format

在文件 xf_ble_gatt_common.h92 行定义.

◆ xf_ble_gatt_service_type_t

BLE GATT 服务类型

枚举值
XF_BLE_GATT_SERVICE_TYPE_PRIMARY 

首要服务

XF_BLE_GATT_SERVICE_TYPE_SECONDARY 

次要服务

在文件 xf_ble_gatt_common.h104 行定义.

◆ xf_ble_gatt_err_t

BLE GATT 操作错误码

枚举值
XF_BLE_GATT_ERR_SUCCESS 

执行成功

XF_BLE_GATT_ERR_INVALID_HANDLE 

无效句柄

XF_BLE_GATT_ERR_READ_NOT_PERMITTED 

无读权限

XF_BLE_GATT_ERR_WRITE_NOT_PERMITTED 

无写权限

XF_BLE_GATT_ERR_INVALID_PDU 

无效 PDU

XF_BLE_GATT_ERR_INSUFFICIENT_AUTHENTICATION 

未认证

XF_BLE_GATT_ERR_REQUEST_NOT_SUPPORTED 

不支持客户端的请求

XF_BLE_GATT_ERR_INVALID_OFFSET 

无效偏移的读写

XF_BLE_GATT_ERR_INSUFFICIENT_AUTHORIZATION 

未授权

XF_BLE_GATT_ERR_PREPARE_QUEUE_FULL 

排队的 prepare writes 太多,队列已满

XF_BLE_GATT_ERR_ATTRIBUTE_NOT_FOUND 

排队的 prepare writes 太多,队列已满

XF_BLE_GATT_ERR_ATTRIBUTE_NOT_LONG 

该属性不是长属性, 不能使用 ATT_READ_BLOB_REQ PDU

XF_BLE_GATT_ERR_INSUFFICIENT_ENCRYPTION_KEY_SIZE 

用于加密此连接的加密密钥大小不足

XF_BLE_GATT_ERR_INVALID_ATTRIBUTE_VALUE_LENGTH 

用于加密此连接的加密密钥大小不足

XF_BLE_GATT_ERR_UNLIKELY_ERROR 

不可能的错误

XF_BLE_GATT_ERR_INSUFFICIENT_ENCRYPTION 

加密不足

XF_BLE_GATT_ERR_UNSUPPORTED_GROUP_TYPE 

不支持的 grouping attribute

XF_BLE_GATT_ERR_INSUFFICIENT_RESOURCES 

资源不足错误码

XF_BLE_GATT_ERR_DATABASE_OUT_OF_SYNC 

服务端与客户端未同步数据库

XF_BLE_GATT_ERR_VALUE_NOT_ALLOWED 

非法的参数值

XF_BLE_GATT_ERR_APP_ERROR_START 
XF_BLE_GATT_ERR_APP_ERROR_END 
XF_BLE_GATT_ERR_COMMON_PROFILE_AND_SERVICE_START 
XF_BLE_GATT_ERR_COMMON_PROFILE_AND_SERVICE_END 

在文件 xf_ble_gatt_common.h112 行定义.

函数说明

◆ xf_ble_gattc_app_register()

xf_err_t xf_ble_gattc_app_register ( xf_ble_uuid_info_t app_uuid,
uint8_t *  app_id 
)

BLE GATTC 客户端注册

参数
[in]app_uuid要注册的客户端 (应用) 的 UUID ,见 xf_ble_uuid_info_t
[out]app_id客户端 (应用) ID
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_client/main/xf_main.c.

◆ xf_ble_gattc_app_unregister()

xf_err_t xf_ble_gattc_app_unregister ( uint8_t  app_id)

BLE GATTC 客户端注销

参数
app_id客户端 ID
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gattc_discover_service()

xf_err_t xf_ble_gattc_discover_service ( uint8_t  app_id,
uint16_t  conn_id,
xf_ble_uuid_info_t service_uuid,
xf_ble_gattc_service_found_set_t **  service_set_info 
)

BLE GATTC 搜寻服务(指定 UUID 或 尝试搜寻所有服务)

参数
app_id客户端 ID (应用 ID )
conn_id连接 ID (链接 ID )
service_uuid指定搜寻的服务的 UUID,见 xf_ble_uuid_info_t
  • NULL 搜寻所有服务
  • (OTHER) 指定搜寻的服务的 UUID ( 注意 UUID 需要为有效值,如不能为 0 )
[in,out]service_set_info传入服务集合信息类型的指针变量的地址, 该指针变量将会被修改为指向搜寻到的服务服务集合信息的地址。 见 xf_ble_gattc_service_found_set_t ,例:
xf_ble_gattc_service_found_set_t *svc_set_info = NULL;
......
xf_err_t xf_ble_gattc_discover_service(uint8_t app_id, uint16_t conn_id, xf_ble_uuid_info_t *service_uuid, xf_ble_gattc_service_found_set_t **service_set_info)
BLE GATTC 搜寻服务(指定 UUID 或 尝试搜寻所有服务)
BLE GATTC 搜寻到的服务集合信息
static uint8_t s_app_id
Definition xf_main.c:50
static uint8_t s_conn_id
Definition xf_main.c:51
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_client/main/xf_main.c.

◆ xf_ble_gattc_discover_chara()

xf_err_t xf_ble_gattc_discover_chara ( uint8_t  app_id,
uint16_t  conn_id,
uint16_t  start_handle,
uint16_t  end_handle,
xf_ble_uuid_info_t chara_uuid,
xf_ble_gattc_chara_found_set_t **  out_chara_set 
)

BLE GATTC 搜寻特征(指定 UUID 或 尝试搜寻所有特征)

参数
app_id客户端 ID (应用 ID)
conn_id连接 ID (链接 ID )
start_handle服务起始句柄
end_handle服务结束句柄
chara_uuid指定搜寻的服务的 UUID,见 xf_ble_uuid_info_t
[in,out]out_chara_set传入特征集合信息类型的指针变量的地址, 该指针变量将会被修改为指向搜寻到的特征集合信息的地址。 见 xf_ble_gattc_chara_found_set_t ,例:
xf_ble_gattc_chara_found_set_t *chara_set_info = NULL;
......
xf_ble_gattc_discover_chara(s_app_id, s_conn_id, svc->start_hdl, svc->end_hdl, NULL, &svc->chara_set_info);
xf_err_t xf_ble_gattc_discover_chara(uint8_t app_id, uint16_t conn_id, uint16_t start_handle, uint16_t end_handle, xf_ble_uuid_info_t *chara_uuid, xf_ble_gattc_chara_found_set_t **out_chara_set)
BLE GATTC 搜寻特征(指定 UUID 或 尝试搜寻所有特征)
BLE GATTC 搜寻到的特征集合信息
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_client/main/xf_main.c.

◆ xf_ble_gattc_request_read_by_handle()

xf_err_t xf_ble_gattc_request_read_by_handle ( uint8_t  app_id,
uint16_t  conn_id,
uint16_t  handle 
)

BLE GATTC 通过句柄发起读请求

参数
app_id客户端 ID (应用 ID)
conn_id连接 ID (链接 ID )
handle句柄
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_client/main/xf_main.c.

◆ xf_ble_gattc_request_read_by_uuid()

xf_err_t xf_ble_gattc_request_read_by_uuid ( uint8_t  app_id,
uint16_t  conn_id,
uint16_t  start_handle,
uint16_t  end_handle,
const xf_ble_uuid_info_t uuid 
)

BLE GATTC 通过 UUID 发起读请求

参数
app_id客户端 ID (应用 ID)
conn_id连接 ID (链接 ID )
start_handle起始句柄
end_handle结束句柄
uuid指定的 UUID
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gattc_request_write()

xf_err_t xf_ble_gattc_request_write ( uint8_t  app_id,
uint16_t  conn_id,
uint16_t  handle,
uint8_t *  value,
uint16_t  value_len,
xf_ble_gattc_write_type_t  write_type 
)

BLE GATTC 发起写请求

参数
app_id客户端 ID (应用 ID)
conn_id连接 ID (链接 ID )
handle句柄
value要写的数据
value_len要写的数据的长度
write_type写请求类型,见 xf_ble_gattc_write_type_t
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_client/main/xf_main.c.

◆ xf_ble_gattc_request_exchange_mtu()

xf_err_t xf_ble_gattc_request_exchange_mtu ( uint8_t  app_id,
uint16_t  conn_id,
uint16_t  mtu_size 
)

BLE GATTC 发送 MTU 协商

参数
app_id客户端 ID (应用 ID)
conn_id连接 ID (链接 ID )
mtu_size协商的 MTU 大小
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gattc_event_cb_register()

xf_err_t xf_ble_gattc_event_cb_register ( xf_ble_gattc_event_cb_t  evt_cb,
xf_ble_gattc_event_t  events 
)

BLE GATTC 事件回调注册

参数
evt_cb事件回调,见 xf_ble_gattc_event_cb_t
events事件,见 xf_ble_gattc_event_t
注解
当前仅支持所有事件注册在同一个回调,暂不支持指定事件对应单独的回调, 所以 参数 'events' 填 0 即可
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_client/main/xf_main.c.

◆ xf_ble_gatts_app_register()

xf_err_t xf_ble_gatts_app_register ( xf_ble_uuid_info_t app_uuid,
uint8_t *  app_id 
)

BLE GATTS 服务端注册

参数
[in]app_uuid要注册的服务端 (应用) 的 UUID ,见 xf_ble_uuid_info_t
[out]app_id服务端 (应用) ID
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_server/main/xf_main.c.

◆ xf_ble_gatts_app_unregister()

xf_err_t xf_ble_gatts_app_unregister ( uint8_t  app_id)

BLE GATTS 服务端注销

参数
app_id服务端 (应用) ID
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gatts_add_service_to_app_profile()

xf_err_t xf_ble_gatts_add_service_to_app_profile ( uint8_t  app_id,
xf_ble_gatts_service_t service 
)

BLE GATTS 向服务端 (应用) 添加服务

参数
app_id服务端 (应用) ID
service要添加的服务信息 ,见 xf_ble_gatts_service_t
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_server/main/xf_main.c.

◆ xf_ble_gatts_start_service()

xf_err_t xf_ble_gatts_start_service ( uint8_t  app_id,
uint16_t  service_handle 
)

BLE GATTS 服务开启

参数
app_id服务端 (应用) ID
service_handle指定的服务句柄
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_server/main/xf_main.c.

◆ xf_ble_gatts_stop_service()

xf_err_t xf_ble_gatts_stop_service ( uint8_t  app_id,
uint16_t  service_handle 
)

BLE GATTS 服务停止

参数
app_id服务端 (应用) ID
service_handle指定的服务句柄
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gatts_del_services_all()

xf_err_t xf_ble_gatts_del_services_all ( uint8_t  app_id)

BLE GATTS 删除所有服务

参数
app_id服务端 (应用) ID
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gatts_send_notification()

xf_err_t xf_ble_gatts_send_notification ( uint8_t  app_id,
uint16_t  conn_id,
xf_ble_gatts_ntf_ind_t param 
)

BLE GATTS 发送通知

参数
app_id服务端 (应用) ID
conn_id链接 (连接) ID
param发送的通知的信息,见 xf_ble_gatts_ntf_ind_t
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_server/main/xf_main.c.

◆ xf_ble_gatts_send_indication()

xf_err_t xf_ble_gatts_send_indication ( uint8_t  app_id,
uint16_t  conn_id,
xf_ble_gatts_ntf_ind_t param 
)

BLE GATTS 发送指示

参数
app_id服务端 (应用) ID
conn_id链接 (连接) ID
param发送的指示的信息,见 xf_ble_gatts_ntf_ind_t
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t

◆ xf_ble_gatts_send_response()

xf_err_t xf_ble_gatts_send_response ( uint8_t  app_id,
uint16_t  conn_id,
uint32_t  trans_id,
xf_ble_gatt_err_t  err_code,
xf_ble_gatts_response_value_t rsp 
)

BLE GATTS 发送 (请求的) 响应

参数
app_id服务端 (应用) ID
conn_id链接 (连接) ID
trans_id传输 ID
err_code错误码,见 xf_ble_gatt_err_t
rsp发送的响应的信息,见 xf_ble_gatts_response_value_t
返回
xf_err_t

◆ xf_ble_gatts_event_cb_register()

xf_err_t xf_ble_gatts_event_cb_register ( xf_ble_gatts_event_cb_t  evt_cb,
xf_ble_gatts_event_t  events 
)

BLE GATTS 事件回调注册

参数
evt_cb事件回调,见 xf_ble_gatts_event_cb_t
events事件,见 xf_ble_gatts_event_t
注解
当前仅支持所有事件注册在同一个回调,暂不支持指定事件对应单独的回调, 所以 参数 'events' 填 0 即可
返回
xf_err_t
  • XF_OK 成功
  • XF_FAIL 失败
  • (OTHER) xf_err_t
示例
examples/wireless/ble/sample_gatt_server/main/xf_main.c.