Loading...
Searching...
No Matches
nimble_autoadv.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Freie Universität Berlin
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
26
27#include "host/ble_gap.h"
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
38#ifndef CONFIG_NIMBLE_AUTOADV_DEVICE_NAME
39#define CONFIG_NIMBLE_AUTOADV_DEVICE_NAME "NimBLE on RIOT"
40#endif
41
51#ifndef CONFIG_NIMBLE_AUTOADV_START_MANUALLY
52#define CONFIG_NIMBLE_AUTOADV_START_MANUALLY 0
53#endif
54
62#ifndef CONFIG_NIMBLE_AUTOADV_FLAG_FIELD
63#define CONFIG_NIMBLE_AUTOADV_FLAG_FIELD 1
64#endif
65
74#define NIMBLE_AUTOADV_FLAG_LEGACY (1 << 0)
75#define NIMBLE_AUTOADV_FLAG_HD_MODE (1 << 1)
77#define NIMBLE_AUTOADV_FLAG_CONNECTABLE (1 << 2)
78#define NIMBLE_AUTOADV_FLAG_SCANNABLE (1 << 3)
79#define NIMBLE_AUTOADV_FLAG_ANONYMOUS (1 << 4)
81#define NIMBLE_AUTOADV_FLAG_SCAN_REQ_NOTIF (1 << 5)
84
88typedef struct {
89 uint32_t adv_itvl_ms;
91 uint8_t flags;
92 uint8_t phy;
93 int8_t tx_power;
94 uint8_t channel_map;
95 uint8_t own_addr_type;
96 uint8_t filter_policy;
98
105
115
123
136int nimble_autoadv_add_field(uint8_t type, const void *data, size_t data_len);
137
152void nimble_autoadv_set_gap_cb(ble_gap_event_fn *cb, void *cb_arg);
153
163void nimble_autoadv_start(ble_addr_t *addr);
164
170
177
185
186#ifdef __cplusplus
187}
188#endif
int nimble_autoadv_get_adv_instance(void)
Return the advertisement instance.
void nimble_autoadv_cfg_update(nimble_autoadv_cfg_t *cfg)
Set struct for additional arguments specifying the particulars of the advertising procedure.
void nimble_autoadv_reset(nimble_autoadv_cfg_t *cfg)
Reset all data regarding the advertising process.
int nimble_autoadv_add_field(uint8_t type, const void *data, size_t data_len)
Add a new field to the given advertising data.
void nimble_autoadv_init(const nimble_autoadv_cfg_t *cfg)
Initialize autoadv module.
void nimble_autoadv_stop(void)
Stop the automated advertising procedure.
void nimble_autoadv_set_gap_cb(ble_gap_event_fn *cb, void *cb_arg)
Set the callback for gap events.
void nimble_autoadv_start(ble_addr_t *addr)
Start the automated advertising procedure.
void nimble_autoadv_get_cfg(nimble_autoadv_cfg_t *cfg)
Gets struct for additional arguments specifying the particulars of the advertising procedure.
Parameter set used to configure accepting connections (advertising)
uint8_t channel_map
specify custom channel map
uint8_t flags
advertising flags
int8_t tx_power
specify TX power to be used
uint8_t filter_policy
Advertising Filter policy.
uint8_t own_addr_type
specify our own address type to use
uint32_t adv_itvl_ms
advertising interval [ms]
uint8_t phy
PHY mode.
int32_t adv_duration_ms
advertising interval [ms]