Loading...
Searching...
No Matches
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
29
30#include "host/ble_gap.h"
31
32#ifdef __cplusplus
33extern "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)
87
91typedef struct {
92 uint32_t adv_itvl_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
139int nimble_autoadv_add_field(uint8_t type, const void *data, size_t data_len);
140
155void nimble_autoadv_set_gap_cb(ble_gap_event_fn *cb, void *cb_arg);
156
166void 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]