Phase 2: LittleFS storage manager on /spiffs + shared SPI2_HOST bus

This commit is contained in:
2026-09-09 16:43:27 +02:00
parent 1771525c06
commit 02410d33d8
7 changed files with 355 additions and 6 deletions

45
main/storage_manager.h Normal file
View File

@@ -0,0 +1,45 @@
/*
* MTG RFID Companion - LittleFS storage manager
*
* Phase 2: Mounts LittleFS at /spiffs on the "storage" partition, seeds the
* default database files on first boot, and exposes file helpers used by the
* RFID/cache/web subsystems.
*/
#pragma once
#include "esp_err.h"
#ifdef __cplusplus
extern "C" {
#endif
#define STORAGE_BASE_PATH "/spiffs"
#define STORAGE_MAPPINGS STORAGE_BASE_PATH "/mappings.json"
#define STORAGE_CARDS_DIR STORAGE_BASE_PATH "/cards"
/**
* @brief Mount LittleFS and seed default files.
* @return ESP_OK on success.
*/
esp_err_t storage_manager_init(void);
/**
* @brief Check whether a file exists on the filesystem.
*/
bool storage_file_exists(const char *path);
/**
* @brief Read an entire file into a heap allocated buffer (caller frees).
* @param[out] out_buf NULL terminated buffer; NULL and out_len=0 if missing.
*/
esp_err_t storage_read_text(const char *path, char **out_buf, size_t *out_len);
/**
* @brief Write text (plus terminating newline) to a file atomically.
*/
esp_err_t storage_write_text(const char *path, const char *text);
#ifdef __cplusplus
}
#endif