skald.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 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 
44 #ifndef NET_SKALD_H
45 #define NET_SKALD_H
46 
47 #include <stdint.h>
48 
49 #include "ztimer.h"
50 #include "net/ble.h"
51 #include "net/netdev/ble.h"
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
60 #ifndef SKALD_ADV_CHAN
61 #define SKALD_ADV_CHAN { 37, 38, 39 }
62 #endif
63 
67 typedef struct {
68  uint8_t u8[16];
69 } skald_uuid_t;
70 
74 typedef struct {
78  uint8_t cur_chan;
79  uint32_t adv_itvl_ms;
80 } skald_ctx_t;
81 
85 void skald_init(void);
86 
96 
103 
111 void skald_generate_random_addr(uint8_t *buf);
112 
113 #ifdef __cplusplus
114 }
115 #endif
116 
117 #endif /* NET_SKALD_H */
BLE specific adaption for the Netdev API.
void skald_adv_start(skald_ctx_t *ctx)
Start advertising the given packet.
void skald_init(void)
Initialize Skald and the underlying radio.
void skald_generate_random_addr(uint8_t *buf)
Generate a random public address.
void skald_adv_stop(skald_ctx_t *ctx)
Stop the ongoing advertisement.
uint32_t ztimer_now_t
type for ztimer_now() result
Definition: ztimer.h:311
BLE packet structure (as defined by the BLE standard)
Definition: ble.h:104
Advertising context holding the advertising data and state.
Definition: skald.h:74
ztimer_t timer
timer for scheduling advertising events
Definition: skald.h:76
uint32_t adv_itvl_ms
advertising interval [ms]
Definition: skald.h:79
uint8_t cur_chan
keep track of advertising channels
Definition: skald.h:78
netdev_ble_pkt_t pkt
packet holding the advertisement (GAP) data
Definition: skald.h:75
ztimer_now_t last
last timer trigger (for offset compensation)
Definition: skald.h:77
UUID representation format used by Skald.
Definition: skald.h:67
ztimer structure
Definition: ztimer.h:319
General BLE values as defined by the BT standard.
ztimer API