9#include "pixelkey_errors.h"
18#define CONFIG_DATA_VERSION (1)
21typedef struct st_config_neopixel_phy
28static_assert(
sizeof(
config_neopixel_phy_t) == 4,
"config_neopixel_phy_t must be 4 bytes or an upgrade path provided.");
39typedef struct st_config_data
70static_assert(offsetof(
config_data_t, header) == 0,
"Config header must be the first element of config_data_t.");
71static_assert(offsetof(
config_data_t, header.
crc) == 0,
"CRC must start at byte 0.");
76typedef struct st_config_api
void config_register(config_api_t const *p_instance)
Register an API to be used as the current instance.
Definition: config.c:88
config_api_t const * config(void)
Get a pointer to the current API instance.
Definition: config.c:53
config_data_t const * config_get_or_default(void)
Gets a pointer to the saved configuration values or the defaults if an error occurs.
Definition: config.c:71
config_data_t const * config_default(void)
Get a pointer to the default configuration values.
Definition: config.c:62
pixelkey_error_t config_validate(void)
Validates and updates NV memory config if needed; can only be called after config_register.
Definition: config.c:100
pixelkey_error_t
PixelKey errors.
Definition: pixelkey_errors.h:11
Configuration instance API.
Definition: config.h:77
Configuration structure.
Definition: config.h:40
uint32_t num_neopixels
Number of attached neopixels.
Definition: config.h:64
uint8_t max_rgb_value
Maximum brightness allowed for any RGB channel.
Definition: config.h:65
uint16_t crc
CRC-CCITT of all the following fields in the structure.
Definition: config.h:48
float gamma_factor
Gamma correction factor.
Definition: config.h:62
uint32_t echo_enabled
COM echo is enabled.
Definition: config.h:56
uint8_t version
Configuration struct version.
Definition: config.h:50
uint32_t framerate
Frame rate.
Definition: config.h:63
uint32_t gamma_enabled
Gamma correction is enabled.
Definition: config.h:57
uint32_t flags
Configuration flags as a word.
Definition: config.h:60
config_neopixel_phy_t neopixel_phy
PHY configuration.
Definition: config.h:66
uint8_t length
Size of the configuration data struct at the time of save.
Definition: config.h:49
Provides configuration of the NeoPixel PHY to support other chipsets.
Definition: config.h:22
uint8_t duty_cycle_b1
Duty cycle of 1-bit.
Definition: config.h:25
uint8_t duty_cycle_b0
Duty cycle of 0-bit.
Definition: config.h:24
uint16_t frequency_khz
Symbol frequency, in KHz, for the NeoPixel phy.
Definition: config.h:23