nRF Connect SDK Bare Metal API 2.0.99
Loading...
Searching...
No Matches
ble_adv_data.h
1/*
2 * Copyright (c) 2012 - 2024 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
13#ifndef BLE_ADV_DATA_H__
14#define BLE_ADV_DATA_H__
15
16#include <stdint.h>
17#include <stdbool.h>
18#include <ble.h>
19#include <ble_types.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
50
68
76 ble_uuid_t *uuid;
80 uint8_t len;
81};
82
101
113 uint16_t len;
117 uint8_t *data;
118};
119
127 uint16_t service_uuid;
131 uint16_t len;
135 uint8_t *data;
136};
137
175
204uint32_t ble_adv_data_encode(const struct ble_adv_data *ble_adv_data, uint8_t *buf, uint16_t *len);
205
233uint16_t ble_adv_data_search(const uint8_t *buf, uint16_t len, uint16_t *offset, uint8_t ad_type);
234
251uint8_t *ble_adv_data_parse(const uint8_t *buf, uint16_t len, uint8_t ad_type);
252
264bool ble_adv_data_name_find(const uint8_t *buf, uint16_t len, const char *name);
265
282bool ble_adv_data_short_name_find(const uint8_t *buf, uint16_t len, const char *name,
283 const uint8_t short_name_min_len);
284
296bool ble_adv_data_uuid_find(const uint8_t *buf, uint16_t len, const ble_uuid_t *uuid);
297
309bool ble_adv_data_appearance_find(const uint8_t *buf, uint16_t len, const uint16_t *appearance);
310
325bool ble_adv_data_manufacturer_data_find(const uint8_t *buf, uint16_t len,
326 const uint8_t *target_data, uint8_t target_data_len);
327
328#ifdef __cplusplus
329}
330#endif
331
332#endif /* BLE_ADV_DATA_H__ */
333
ble_adv_data_name_type
Advertising data name type.
Definition ble_adv_data.h:54
@ BLE_ADV_DATA_FULL_NAME
Include full device name in advertising data.
Definition ble_adv_data.h:66
@ BLE_ADV_DATA_SHORT_NAME
Include short device name in advertising data.
Definition ble_adv_data.h:62
@ BLE_ADV_DATA_NO_NAME
Include no device name in advertising data.
Definition ble_adv_data.h:58
uint8_t * ble_adv_data_parse(const uint8_t *buf, uint16_t len, uint8_t ad_type)
Parse encoded Advertising or Scan Response data.
bool ble_adv_data_short_name_find(const uint8_t *buf, uint16_t len, const char *name, const uint8_t short_name_min_len)
Search encoded Advertising data for a device shortened name.
bool ble_adv_data_name_find(const uint8_t *buf, uint16_t len, const char *name)
Search encoded Advertising data for a complete local name.
bool ble_adv_data_uuid_find(const uint8_t *buf, uint16_t len, const ble_uuid_t *uuid)
Search encoded Advertising data for a UUID (16-bit or 128-bit).
bool ble_adv_data_manufacturer_data_find(const uint8_t *buf, uint16_t len, const uint8_t *target_data, uint8_t target_data_len)
Search encoded Advertising data for manufacturer-specific data.
uint32_t ble_adv_data_encode(const struct ble_adv_data *ble_adv_data, uint8_t *buf, uint16_t *len)
Encode data in the Advertising and Scan Response data format.
ble_adv_data_le_role
Advertising data LE Role types.
Definition ble_adv_data.h:28
@ BLE_ADV_DATA_ROLE_BOTH_PERIPH_PREFERRED
Peripheral and Central Role supported, peripheral is preferred.
Definition ble_adv_data.h:44
@ BLE_ADV_DATA_ROLE_NOT_PRESENT
LE Role AD structure not present.
Definition ble_adv_data.h:32
@ BLE_ADV_DATA_ROLE_ONLY_CENTRAL
Only Central Role supported.
Definition ble_adv_data.h:40
@ BLE_ADV_DATA_ROLE_BOTH_CENTRAL_PREFERRED
Peripheral and Central Role supported, central is preferred.
Definition ble_adv_data.h:48
@ BLE_ADV_DATA_ROLE_ONLY_PERIPH
Only Peripheral Role supported.
Definition ble_adv_data.h:36
uint16_t ble_adv_data_search(const uint8_t *buf, uint16_t len, uint16_t *offset, uint8_t ad_type)
Search Advertising or Scan Response data for specific data types.
bool ble_adv_data_appearance_find(const uint8_t *buf, uint16_t len, const uint16_t *appearance)
Search encoded Advertising data for an appearance.
uint16_t min_conn_interval
Minimum connection interval.
Definition ble_adv_data.h:92
uint16_t max_conn_interval
Maximum connection interval.
Definition ble_adv_data.h:99
Connection interval.
Definition ble_adv_data.h:86
uint16_t len
Manufacturer data length.
Definition ble_adv_data.h:113
uint16_t company_identifier
Company identifier code.
Definition ble_adv_data.h:109
uint8_t * data
Manufacturer data.
Definition ble_adv_data.h:117
Manufacturer specific data.
Definition ble_adv_data.h:105
uint16_t service_uuid
Service UUID.
Definition ble_adv_data.h:127
uint16_t len
Service data length.
Definition ble_adv_data.h:131
uint8_t * data
Service data.
Definition ble_adv_data.h:135
Service data.
Definition ble_adv_data.h:123
ble_uuid_t * uuid
UUID.
Definition ble_adv_data.h:76
uint8_t len
Length of the UUID list.
Definition ble_adv_data.h:80
Advertising data UUID list.
Definition ble_adv_data.h:72
struct ble_adv_data_uuid_list complete
Definition ble_adv_data.h:158
bool include_ble_device_addr
Definition ble_adv_data.h:151
uint8_t short_name_len
Definition ble_adv_data.h:147
struct ble_adv_data::@3 uuid_lists
struct ble_adv_data_conn_int * periph_conn_int
Definition ble_adv_data.h:171
struct ble_adv_data_manufacturer * manufacturer_data
Definition ble_adv_data.h:173
struct ble_adv_data::@4 srv_list
uint8_t flags
Definition ble_adv_data.h:153
enum ble_adv_data_name_type name_type
Definition ble_adv_data.h:145
bool include_appearance
Definition ble_adv_data.h:149
struct ble_adv_data_service * service
Definition ble_adv_data.h:164
uint8_t len
Definition ble_adv_data.h:166
int8_t * tx_power_level
Definition ble_adv_data.h:169
struct ble_adv_data_uuid_list more_available
Definition ble_adv_data.h:156
struct ble_adv_data_uuid_list solicited
Definition ble_adv_data.h:160
Advertising data options.
Definition ble_adv_data.h:143