nimble_autoadv.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2020 Freie Universität Berlin
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
30 #include "host/ble_gap.h"
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
41 #ifndef CONFIG_NIMBLE_AUTOADV_DEVICE_NAME
42 #define CONFIG_NIMBLE_AUTOADV_DEVICE_NAME "NimBLE on RIOT"
43 #endif
44 
54 #ifndef CONFIG_NIMBLE_AUTOADV_START_MANUALLY
55 #define CONFIG_NIMBLE_AUTOADV_START_MANUALLY 0
56 #endif
57 
65 #ifndef CONFIG_NIMBLE_AUTOADV_FLAG_FIELD
66 #define CONFIG_NIMBLE_AUTOADV_FLAG_FIELD 1
67 #endif
68 
77 #define NIMBLE_AUTOADV_FLAG_LEGACY (1 << 0)
78 #define NIMBLE_AUTOADV_FLAG_HD_MODE (1 << 1)
80 #define NIMBLE_AUTOADV_FLAG_CONNECTABLE (1 << 2)
81 #define NIMBLE_AUTOADV_FLAG_SCANNABLE (1 << 3)
82 #define NIMBLE_AUTOADV_FLAG_ANONYMOUS (1 << 4)
84 #define NIMBLE_AUTOADV_FLAG_SCAN_REQ_NOTIF (1 << 5)
91 typedef struct {
92  uint32_t adv_itvl_ms;
93  int32_t adv_duration_ms;
94  uint8_t flags;
95  uint8_t phy;
96  int8_t tx_power;
97  uint8_t channel_map;
98  uint8_t own_addr_type;
99  uint8_t filter_policy;
101 
108 
118 
126 
139 int nimble_autoadv_add_field(uint8_t type, const void *data, size_t data_len);
140 
155 void nimble_autoadv_set_gap_cb(ble_gap_event_fn *cb, void *cb_arg);
156 
166 void nimble_autoadv_start(ble_addr_t *addr);
167 
173 
180 
188 
189 #ifdef __cplusplus
190 }
191 #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]