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 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 SKALD_INTERVAL   (1 * US_PER_SEC)
 Static advertising interval.
 
#define SKALD_ADV_CHAN   { 37, 38, 39 }
 Static list of used 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 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