Integrate filesystem

This commit is contained in:
Theo Arends 2021-01-08 17:06:17 +01:00
parent dcf22abd60
commit 28714a9ac3
3 changed files with 17 additions and 10 deletions

View File

@ -137,7 +137,8 @@ int32_t NvmErase(const char *sNvsName) {
}
void SettingsErase(uint8_t type) {
// All SDK and Tasmota data is held in default NVS partition
// SDK and Tasmota data is held in default NVS partition
// Tasmota data is held also in file /settings on default filesystem
// cal_data - SDK PHY calibration data as documented in esp_phy_init.h
// qpc - Tasmota Quick Power Cycle state
// main - Tasmota Settings data
@ -147,7 +148,8 @@ void SettingsErase(uint8_t type) {
// nvs_flash_erase(); // Erase RTC, PHY, sta.mac, ap.sndchan, ap.mac, Tasmota etc.
r1 = NvmErase("qpc");
r2 = NvmErase("main");
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota data (%d,%d)"), r1, r2);
r3 = TfsDeleteFile(TASM_FILE_SETTINGS);
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota data (%d,%d,%d)"), r1, r2, r3);
break;
case 1: case 4: // Reset 3 or WIFI_FORCE_RF_CAL_ERASE = SDK parameter area
r1 = esp_phy_erase_cal_data_in_nvs();
@ -157,7 +159,8 @@ void SettingsErase(uint8_t type) {
case 2: // Not used = QPC and Tasmota parameter area (0x0F3xxx - 0x0FBFFF)
r1 = NvmErase("qpc");
r2 = NvmErase("main");
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota data (%d,%d)"), r1, r2);
r3 = TfsDeleteFile(TASM_FILE_SETTINGS);
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota data (%d,%d,%d)"), r1, r2, r3);
break;
case 3: // QPC Reached = QPC, Tasmota and SDK parameter area (0x0F3xxx - 0x0FFFFF)
// nvs_flash_erase(); // Erase RTC, PHY, sta.mac, ap.sndchan, ap.mac, Tasmota etc.
@ -166,14 +169,15 @@ void SettingsErase(uint8_t type) {
// r3 = esp_phy_erase_cal_data_in_nvs();
// r3 = NvmErase("cal_data");
// AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota (%d,%d) and PHY data (%d)"), r1, r2, r3);
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota data (%d,%d)"), r1, r2);
r3 = TfsDeleteFile(TASM_FILE_SETTINGS);
AddLog_P(LOG_LEVEL_DEBUG, PSTR(D_LOG_APPLICATION D_ERASE " Tasmota data (%d,%d,%d)"), r1, r2, r3);
break;
}
}
uint32_t SettingsRead(void *data, size_t size) {
uint32_t source = 1;
if (!TfsLoadFile("/settings", (uint8_t*)data, size)) {
if (!TfsLoadFile(TASM_FILE_SETTINGS, (uint8_t*)data, size)) {
source = 0;
NvmLoad("main", "Settings", data, size);
}
@ -181,7 +185,7 @@ uint32_t SettingsRead(void *data, size_t size) {
}
void SettingsWrite(const void *pSettings, unsigned nSettingsLen) {
TfsSaveFile("/settings", (const uint8_t*)pSettings, nSettingsLen);
TfsSaveFile(TASM_FILE_SETTINGS, (const uint8_t*)pSettings, nSettingsLen);
NvmSave("main", "Settings", pSettings, nSettingsLen);
}

View File

@ -225,6 +225,9 @@ const uint16_t LOG_BUFFER_SIZE = 4000; // Max number of characters in lo
#error "Arduino ESP8266 Core versions before 2.7.1 are not supported"
#endif
#define TASM_FILE_SETTINGS "/settings"
#define TASM_FILE_ZIGBEE "/zb"
#ifndef MQTT_MAX_PACKET_SIZE
#define MQTT_MAX_PACKET_SIZE 1200 // Bytes
#endif

View File

@ -305,7 +305,7 @@ void loadZigbeeDevices(bool dump_only = false) {
return;
}
#ifdef USE_UFILESYS
TfsLoadFile("/zb", spi_buffer, z_spi_len);
TfsLoadFile(TASM_FILE_ZIGBEE, spi_buffer, z_spi_len);
#endif
z_dev_start = spi_buffer;
#endif // ESP32
@ -370,7 +370,7 @@ void saveZigbeeDevices(void) {
#endif // ESP8266
#ifdef ESP32
#ifdef USE_UFILESYS
TfsLoadFile("/zb", spi_buffer, z_spi_len);
TfsLoadFile(TASM_FILE_ZIGBEE, spi_buffer, z_spi_len);
#endif
#endif // ESP32
@ -390,7 +390,7 @@ void saveZigbeeDevices(void) {
#endif // ESP8266
#ifdef ESP32
#ifdef USE_UFILESYS
TfsSaveFile("/zb", spi_buffer, z_spi_len);
TfsSaveFile(TASM_FILE_ZIGBEE, spi_buffer, z_spi_len);
#endif
AddLog_P(LOG_LEVEL_INFO, PSTR(D_LOG_ZIGBEE "Zigbee Devices Data saved in %s (%d bytes)"), PSTR("Flash"), buf_len);
#endif // ESP32
@ -426,7 +426,7 @@ void eraseZigbeeDevices(void) {
#endif // ESP8266
#ifdef ESP32
#ifdef USE_UFILESYS
TfsInitFile("/zb", z_block_len, 0xFF);
TfsInitFile(TASM_FILE_ZIGBEE, z_block_len, 0xFF);
#endif
AddLog_P(LOG_LEVEL_INFO, PSTR(D_LOG_ZIGBEE "Zigbee Devices Data erased (%d bytes)"), z_block_len);
#endif // ESP32