XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_ble_types.h
浏览该文件的文档.
1
20#ifndef __XF_BLE_TYPES_H__
21#define __XF_BLE_TYPES_H__
22
23/* ==================== [Includes] ========================================== */
24
25#include "xf_utils.h"
26
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38/* ==================== [Defines] =========================================== */
39
40#define XF_BLE_IS_ENABLE 1
41
42/* ==================== [Typedefs] ========================================== */
43
47#define XF_BLE_ADDR_LEN 6
48
52#define XF_BLE_ADDR_PRINT_FMT "%02X:%02X:%02X:%02X:%02X:%02X"
53
59#define XF_BLE_ADDR_EXPAND_TO_ARG(addr) (addr)[0],(addr)[1],(addr)[2],(addr)[3],(addr)[4],(addr)[5]
60
83
87typedef struct {
88 uint8_t addr[XF_BLE_ADDR_LEN];
91
100
105 union {
107 uint8_t _invalid;
108 };
109 union {
110 uint16_t uuid16;
111 uint32_t uuid32;
112 uint8_t uuid128[XF_BLE_UUID_TYPE_128];
113 };
115
126
137
148
149#define _XF_BLE_UUID16_INIT(uuid16) \
150 { \
151 .type = XF_BLE_UUID_TYPE_16, \
152 .value = (uuid16), \
153 }
154
155#define _XF_BLE_UUID32_INIT(uuid32) \
156 { \
157 .type = XF_BLE_UUID_TYPE_32, \
158 .value = (uuid32), \
159 }
160
161#define _XF_BLE_UUID128_INIT(uuid128 ...) \
162 { \
163 .type = XF_BLE_UUID_TYPE_128, \
164 .value = { uuid128 }, \
165 }
166
171#define XF_BLE_DECLARE_UUID16(uuid16) \
172 ((xf_ble_uuid_info_t *) (&(xf_ble_uuid16_info_t) _XF_BLE_UUID16_INIT(uuid16)))
173
178#define XF_BLE_DECLARE_UUID32(uuid32) \
179 ((xf_ble_uuid_info_t *) (&(xf_ble_uuid32_info_t) _XF_BLE_UUID32_INIT(uuid32)))
180
185#define XF_BLE_DECLARE_UUID128(uuid128...) \
186 ((xf_ble_uuid_info_t *) (&(xf_ble_uuid128_info_t) _XF_BLE_UUID128_INIT(uuid128)))
187
192#define XF_BLE_INVALID_ATTR_HANDLE (0x0000)
193
197typedef uint16_t xf_ble_attr_handle_t;
198
205 uintptr_t _untyped;
207 uint8_t val_u8;
208 uint16_t val_u16;
209 uint32_t val_u32;
210
211 uint8_t *ptr_u8;
212 uint16_t *ptr_u16;
213 uint32_t *ptr_u32;
214
215 uint8_t array_u8[sizeof(uintptr_t)];
216 uint16_t array_u16[sizeof(uintptr_t) / sizeof(uint16_t)];
217 uint32_t array_u32[sizeof(uintptr_t) / sizeof(uint32_t)];
219
234
235/* FIXME gap 与 gatt 事件以及事件回调分离 */
236
251
262
263/* ==================== [Global Prototypes] ================================= */
264
265/* ==================== [Macros] ============================================ */
266
267#ifdef __cplusplus
268} /* extern "C" */
269#endif
270
276#endif /* __XF_BLE_TYPES_H__ */
#define __packed
取消结构体在编译过程中的优化对齐,按照实际占用字节数进行对齐。
Definition xf_attr.h:124
xf_ble_gattc_event_t
BLE GATTC 事件
struct __packed _xf_ble_uuid32_info_t xf_ble_uuid32_info_t
BLE 32-bit UUID 信息
uint16_t xf_ble_attr_handle_t
BLE 属性句柄
xf_ble_addr_type_t
蓝牙地址类型,完全遵循蓝牙标准进行定义
struct __packed _xf_ble_uuid128_info_t xf_ble_uuid128_info_t
BLE 128-bit UUID 信息
xf_ble_uuid_type_t
BLE UUID 类型 (长度类型)
#define XF_BLE_ADDR_LEN
BLE 地址长度
struct __packed _xf_ble_uuid16_info_t xf_ble_uuid16_info_t
BLE 16-bit UUID 信息
xf_ble_gatts_event_t
BLE GATTS 事件
union _xf_ble_var_uintptr_t xf_ble_var_uintptr_t
BLE 中类型可变的数据
struct __packed _xf_ble_uuid_info_t xf_ble_uuid_info_t
BLE UUID 信息 (多种长度类型通用)
xf_ble_gap_event_t
BLE GAP 事件
@ XF_BLE_GATTC_EVT_DISCOVER_SERVICE_COMPLETE
@ XF_BLE_GATTC_EVT_WRITE_COMPLETE
@ XF_BLE_GATTC_EVT_MTU_CHANGED
@ XF_BLE_GATTC_EVT_RECV_NOTIFICATION_OR_INDICATION
@ XF_BLE_GATTC_EVT_READ_COMPLETE
@ XF_BT_ADDR_TYPE_RPA_RANDOM
@ XF_BT_ADDR_TYPE_RANDOM_DEV
@ XF_BT_ADDR_TYPE_RPA_PUBLIC
@ XF_BT_ADDR_TYPE_PUBLIC_DEV
@ XF_BLE_UUID_TYPE_16
@ XF_BLE_UUID_TYPE_32
@ XF_BLE_UUID_TYPE_128
@ XF_BLE_GATTS_EVT_REQ_READ
@ XF_BLE_GATTS_EVT_ADD_CHARA
@ XF_BLE_GATTS_EVT_REQ_WRITE
@ XF_BLE_GATTS_EVT_SERVICE_STOP
@ XF_BLE_GATTS_EVT_SERVICE_START
@ XF_BLE_GATTS_EVT_DEL_SERVICE
@ XF_BLE_GATTS_EVT_ADD_SERVICE
@ XF_BLE_GATTS_EVT_ADD_DESC
@ XF_BLE_GATTS_EVT_MTU_CHANGED
@ XF_BLE_GAP_EVT_CONNECT
@ XF_BLE_GAP_ADV_STOPPED
@ XF_BLE_GAP_EVT_PAIR_END
@ XF_BLE_GAP_EVT_SCAN_RESULT
@ XF_BLE_GAP_ADV_STARTED
@ XF_BLE_GAP_EVT_CONN_PARAMS_UPDATE
@ _XF_BLE_GAP_EVT_ENUM_END
@ XF_BLE_GAP_EVT_SCAN_PARAM_SET
@ XF_BLE_GAP_EVT_DISCONNECT
BLE 128-bit UUID 信息
xf_ble_uuid_type_t type
BLE 16-bit UUID 信息
xf_ble_uuid_type_t type
BLE 32-bit UUID 信息
xf_ble_uuid_type_t type
BLE UUID 信息 (多种长度类型通用)
xf_ble_uuid_type_t len_type
BLE 地址信息
xf_ble_addr_type_t type
BLE 中类型可变的数据
uint8_t array_u8[sizeof(uintptr_t)]
uint32_t array_u32[sizeof(uintptr_t)/sizeof(uint32_t)]
uint16_t array_u16[sizeof(uintptr_t)/sizeof(uint16_t)]