The source code was moved to v1/src/ but the Dockerfile still referenced src/ directly, causing build failures. Updated all COPY paths, uvicorn module paths, test paths, and bandit scan paths. Also added missing v1/__init__.py for Python module resolution. Fixes #33 Co-Authored-By: claude-flow <ruv@ruv.net>
40 lines
1.0 KiB
C
40 lines
1.0 KiB
C
/**
|
|
* @file nvs_config.h
|
|
* @brief Runtime configuration via NVS (Non-Volatile Storage).
|
|
*
|
|
* Reads WiFi credentials and aggregator target from NVS.
|
|
* Falls back to compile-time Kconfig defaults if NVS keys are absent.
|
|
* This allows a single firmware binary to be shipped and configured
|
|
* per-device using the provisioning script.
|
|
*/
|
|
|
|
#ifndef NVS_CONFIG_H
|
|
#define NVS_CONFIG_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/** Maximum lengths for NVS string fields. */
|
|
#define NVS_CFG_SSID_MAX 33
|
|
#define NVS_CFG_PASS_MAX 65
|
|
#define NVS_CFG_IP_MAX 16
|
|
|
|
/** Runtime configuration loaded from NVS or Kconfig defaults. */
|
|
typedef struct {
|
|
char wifi_ssid[NVS_CFG_SSID_MAX];
|
|
char wifi_password[NVS_CFG_PASS_MAX];
|
|
char target_ip[NVS_CFG_IP_MAX];
|
|
uint16_t target_port;
|
|
uint8_t node_id;
|
|
} nvs_config_t;
|
|
|
|
/**
|
|
* Load configuration from NVS, falling back to Kconfig defaults.
|
|
*
|
|
* Must be called after nvs_flash_init().
|
|
*
|
|
* @param cfg Output configuration struct.
|
|
*/
|
|
void nvs_config_load(nvs_config_t *cfg);
|
|
|
|
#endif /* NVS_CONFIG_H */
|