diff options
| author | info@mode42.com <info@mode42.com> | 2026-08-07 18:15:00 +0000 |
|---|---|---|
| committer | info@mode42.com <info@mode42.com> | 2026-08-07 18:15:00 +0000 |
| commit | d393e0c30192611d4cac65a5429fd7180ce1f49c (patch) | |
| tree | 7e47bd930340c75c4802801a81f3bd17c2469d9f /firmware/c1224/include/config.h | |
Initial pushmain
Diffstat (limited to 'firmware/c1224/include/config.h')
| -rw-r--r-- | firmware/c1224/include/config.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/firmware/c1224/include/config.h b/firmware/c1224/include/config.h new file mode 100644 index 0000000..07b1093 --- /dev/null +++ b/firmware/c1224/include/config.h @@ -0,0 +1,58 @@ +/** + * Operator INI texts + sense tuning — defaults in FW, overlay from flash. + * SPDX-License-Identifier: GPL-3.0-or-later + */ +#ifndef C1224_CONFIG_H +#define C1224_CONFIG_H + +#include <stdbool.h> +#include <stdint.h> +#include <stddef.h> + +#define C1224_TEXT_MAX 48 + +typedef struct { + char starting[C1224_TEXT_MAX]; + char ready[C1224_TEXT_MAX]; + char fault[C1224_TEXT_MAX]; + char sending[C1224_TEXT_MAX]; + char signal[C1224_TEXT_MAX]; + char packet[C1224_TEXT_MAX]; + char power[C1224_TEXT_MAX]; + char idle[C1224_TEXT_MAX]; + /* Terminal-facing identity (CDC ID) */ + char callsign[C1224_TEXT_MAX]; + char device_id[C1224_TEXT_MAX]; + /* Extra CDC ASCII — quiet=1 default; never suppresses fixed boot banner */ + bool quiet; /* true = no unsolicited STATUS/PROBE/CONFIG ASCII */ + /* Sense tuning */ + bool cdt_active_high; /* false = active-low (default pull-up idle) */ + uint16_t packet_hold_ms; + uint16_t packet_edge_min; + uint16_t packet_window_ms; +} c1224_config_t; + +void config_init(void); +const c1224_config_t *config_get(void); +c1224_config_t *config_mutable(void); +/** True when extra unsolicited CDC ASCII (STATUS/PROBE/CONFIG) is allowed. */ +bool config_unsolicited_ok(void); + +/** Apply defaults (RAM only). */ +void config_load_defaults(void); +/** Load overlay from flash INI region if valid. */ +bool config_load_flash(void); +/** Persist current config as INI text to flash. */ +bool config_save_flash(void); +/** Erase flash overlay (next boot = defaults only until SAVE). */ +bool config_erase_flash(void); + +/** SET KEY=value (case-insensitive key). Returns false if unknown key. */ +bool config_set_kv(const char *key, const char *value); +/** GET KEY → copy value into buf. */ +bool config_get_kv(const char *key, char *buf, size_t buflen); + +/** Dump INI-like text to USB (printf). */ +void config_dump_ini(void); + +#endif |
