Add config.h/config.cpp for DeviceConfig NVS persistence using Arduino Preferences library. Add minimal main.cpp stub. Fix partition table overlap (nvs 0x6000→0x5000, otadata 0xf000→0xe000) so firmware builds. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
793 B
C
25 lines
793 B
C
// firmware/src/config.h
|
|
#pragma once
|
|
#include <Arduino.h>
|
|
|
|
struct DeviceConfig {
|
|
String device_id; // e.g. "dc-0042"
|
|
String location_id; // e.g. "retailer-123"
|
|
String hmac_secret; // 32-byte hex string
|
|
String wifi_ssid;
|
|
String wifi_pass;
|
|
uint8_t line_offset; // 0-100, percent of frame height for virtual line
|
|
};
|
|
|
|
// Load all config from NVS. Returns false if device_id/location_id/hmac_secret missing.
|
|
bool config_load(DeviceConfig& cfg);
|
|
|
|
// Save WiFi credentials to NVS (called by provisioning after captive portal).
|
|
bool config_save_wifi(const String& ssid, const String& pass);
|
|
|
|
// Returns true if wifi_ssid is set in NVS.
|
|
bool config_has_wifi();
|
|
|
|
// Erase WiFi credentials only (factory reset — preserves device_id etc).
|
|
void config_clear_wifi();
|