Skald, who advertises to the world

Skald, a minimalistic BLE advertising stack. More...

Detailed Description

Skald, a minimalistic BLE advertising stack.

About

Skald is a very minimalistic BLE implementation, implementing the broadcaster role only. With this focus, the stack allows for setting up different kind of beacons using an extremely low memory footprint.

Design Decisions and Limitations

Implementation state

Supported:

Limitations:

Modules

 Skald about iBeacon
 Skald's simple iBeacon abstraction.
 
 Skald compile configurations
 
 Skald meets Eddy
 Skald's Eddystone implementation.
 

Files

file  skald.h
 Skald's basic interface.
 

Data Structures

struct  skald_uuid_t
 UUID representation format used by Skald. More...
 
struct  skald_ctx_t
 Advertising context holding the advertising data and state. More...
 

Macros

#define ADV_CH_37   37,
 Define advertising channel 37 if CONFIG_ADV_CH_37_DISABLE is not set.
 
#define ADV_CH_38   38,
 Define advertising channel 38 if CONFIG_ADV_CH_38_DISABLE is not set.
 
#define ADV_CH_39   39
 Define advertising channel 39 if CONFIG_ADV_CH_39_DISABLE is not set.
 
#define SKALD_ADV_CHAN   { ADV_CH_37 ADV_CH_38 ADV_CH_39 }
 List of advertising channels.
 

Functions

void skald_init (void)
 Initialize Skald and the underlying radio.
 
void skald_adv_start (skald_ctx_t *ctx)
 Start advertising the given packet. More...
 
void skald_adv_stop (skald_ctx_t *ctx)
 Stop the ongoing advertisement. More...
 
void skald_generate_random_addr (uint8_t *buf)
 Generate a random public address. More...
 

Function Documentation

◆ skald_adv_start()

void skald_adv_start ( skald_ctx_t ctx)

Start advertising the given packet.

The packet will be send out each advertising interval (see CONFIG_SKALD_INTERVAL) on each of the defined advertising channels (see SKALD_ADV_CHAN).

Parameters
[in,out]ctxstart advertising this context

◆ skald_adv_stop()

void skald_adv_stop ( skald_ctx_t ctx)

Stop the ongoing advertisement.

Parameters
[in,out]ctxstop advertising this context

◆ skald_generate_random_addr()

void skald_generate_random_addr ( uint8_t *  buf)

Generate a random public address.

Note
buf must be able to hold BLE_ADDR_LEN (6) bytes
Parameters
[out]bufthe generated address is written to this buffer