nrfcxx
0.1.0
C++-17 Framework for Nordic nRF5 Devices
|
Beacon providing system state information. More...
#include <nrfcxx/sd/beacon.hpp>
Data Structures | |
struct | frame_s |
Frame content for this beacon. More... | |
Public Member Functions | |
SystemStateBeacon (const systemState &system_state) | |
Constructor for beacon requires a systemState reference. | |
Public Member Functions inherited from nrfcxx::sd::Beacon | |
virtual | ~Beacon () |
The beacon is stopped on destruction. | |
state_e | state () const |
Return the current beacon state. More... | |
int | validate () const |
Test whether the beacon is in a valid state. More... | |
unsigned int | min_interval_utt () const |
Minimum interval between transmissions, in uptime ticks. | |
unsigned int | interval_utt () const |
Current interval between transmissions, in uptime ticks. | |
unsigned int | max_interval_utt () const |
Maximum interval between transmissions, in uptime ticks. | |
unsigned int | prepare_backoff_utt () const |
Duration before beacon transmission that a pre-transmission notification will occur, in uptime ticks. | |
int | set_interval (unsigned int utt) |
Configure a fixed interval. More... | |
int | set_interval (unsigned int min_utt, unsigned int max_utt) |
Configure an exponential back-off interval. More... | |
int | set_prepare_backoff (notifier_type notify, unsigned int backoff_utt) |
Configure notification that a beacon will transmit soon. More... | |
void | set_tx_notify (notifier_type notify) |
Configure notification that a beacon is being sent. More... | |
uint8_t | dt_flags () const |
Get the GAP ASD Flags data type value to use in the beacon. | |
void | dt_flags (uint8_t v) |
Set the GAP ASD Flags data type value to use in the beacon. | |
int8_t | dt_tx_power () const |
Get the GAP ASD Tx Power data type value to use in the beacon. | |
void | dt_tx_power (int8_t v) |
Set the GAP ASD Tx Power data type value to use in the beacon. | |
int | reset_interval () |
Reset the interval so the beacon is retransmitted as quickly as possible. More... | |
int | activate () |
Enable the beacon. More... | |
int | deactivate () |
Disable the beacon. | |
unsigned int | tx_count () const |
Return the number of transmissions since activation. | |
template<typename FT > | |
crc_type | update_crc (FT *bp) |
Helper to store a checksum immediately following a frame instance. More... | |
Data Fields | |
const systemState & | system_state |
The systemState instance from which information is taken. | |
Static Public Attributes | |
static constexpr uint8_t | FRAME_TYPE = 1 |
Value used for frame_s::frame_type. | |
Static Public Attributes inherited from nrfcxx::sd::Beacon | |
static constexpr size_t | MAX_MSD_LENGTH = 19 + sizeof(crc_type) |
The maximum length of a Manufacturer Specific Data PDU. More... | |
static constexpr uint16_t | COMPANY_ID = -1 |
The value to be used as the company ID for manufacturer specific data. More... | |
static constexpr uint8_t | APP_FRAME_TYPE_BASE = 0x80 |
Minimum value for frame_prefix_s::frame_type available for application beacons. More... | |
static constexpr uint8_t | APP_FRAME_TYPE_LIMIT = 0xEF |
Maximum value for frame_prefix_s::frame_type available for application beacons. More... | |
static constexpr uint8_t | FRAME_TYPE_TEST = 0xFF |
Frame type reserved for test applications. | |
Additional Inherited Members | |
Public Types inherited from nrfcxx::sd::Beacon | |
enum | state_e : uint8_t { INVALID = 0, FAILED, INACTIVE, CANCELLED, SCHEDULED_PREPARE, SCHEDULED, READY, ACTIVE } |
Values representing the beacon state. More... | |
using | crc_type = uint16_t |
Natively-supported checksum is CRC-16/DNP. | |
Static Public Member Functions inherited from nrfcxx::sd::Beacon | |
static const telemetry_state_type & | telemetry_state () |
Access the current telemetry state. | |
static const Beacon * | active () |
static void | set_notify (notifier_type notify) |
Register the notifier that signals application to process a beacon event. | |
static int | process_event () |
Method to be invoked by main loop when a beacon-related event occurs. | |
static int | process_completion () |
Method to be invoked by main loop when the beacon has been transmitted. | |
static void | telemetry_state_setup (const systemState::state_type &ss, bool is_reset, bool retained) |
Function to maintain beacon telemetry state across resets. More... | |
Protected Member Functions inherited from nrfcxx::sd::Beacon | |
Beacon () | |
Construct a new beacon. | |
virtual int | pre_activate_ () |
Called by activate() to make sure everything needed for activation is present. | |
crc_type | update_crc_ (uint8_t *sp, size_t span) |
Function to calculate a checksum and store it after the data. More... | |
Beacon providing system state information.
This basically exposes all the important information from systemState::state_type captured at boot, along with the relative heap and stack use.
This beacon is configured with:
It is not expected that the beacon interval will be reset, nor that the content of the beacon will change after a state state reached within the first few minutes after reset.