changed partition to littlefs, not working yet
This commit is contained in:
6
RotaxMonitor/partitions/no_ota_10mb_littlefs.csv
Normal file
6
RotaxMonitor/partitions/no_ota_10mb_littlefs.csv
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# ESP32 Partition Table
|
||||||
|
# Name, Type, SubType, Offset, Size
|
||||||
|
nvs, data, nvs, 0x9000, 0x4000
|
||||||
|
phy_init, data, phy, 0xd000, 0x1000
|
||||||
|
factory, app, factory, 0x10000, 0x300000
|
||||||
|
littlefs, data, littlefs, 0x310000, 0xCF0000
|
||||||
|
@@ -10,8 +10,8 @@
|
|||||||
|
|
||||||
[env:esp32-s3-devkitc1-n16r8]
|
[env:esp32-s3-devkitc1-n16r8]
|
||||||
board = esp32-s3-devkitc1-n16r8
|
board = esp32-s3-devkitc1-n16r8
|
||||||
board_build.partitions = partitions/no_ota_10mb_spiffs.csv
|
board_build.partitions = partitions/no_ota_10mb_littlefs.csv
|
||||||
board_build.filesystem = spiffs
|
board_build.filesystem = littlefs
|
||||||
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
|
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
|
||||||
framework = arduino
|
framework = arduino
|
||||||
lib_deps =
|
lib_deps =
|
||||||
@@ -21,7 +21,7 @@ lib_deps =
|
|||||||
me-no-dev/AsyncTCP@^3.3.2
|
me-no-dev/AsyncTCP@^3.3.2
|
||||||
me-no-dev/ESPAsyncWebServer@^3.6.0
|
me-no-dev/ESPAsyncWebServer@^3.6.0
|
||||||
upload_protocol = esptool
|
upload_protocol = esptool
|
||||||
upload_port = COM8
|
upload_port = COM4
|
||||||
upload_speed = 921600
|
upload_speed = 921600
|
||||||
monitor_port = COM4
|
monitor_port = COM4
|
||||||
monitor_speed = 921600
|
monitor_speed = 921600
|
||||||
|
|||||||
@@ -126,30 +126,30 @@ void save_history(const PSRAMVector<ignitionBoxStatus> &history, const std::file
|
|||||||
// Initialize SPIFFS
|
// Initialize SPIFFS
|
||||||
if (!SAVE_HISTORY_TO_SPIFFS)
|
if (!SAVE_HISTORY_TO_SPIFFS)
|
||||||
return;
|
return;
|
||||||
// auto spiffs_guard = SPIFFSGuard(); // use RAII guard to ensure SPIFFS is properly mounted and unmounted
|
// auto spiffs_guard = LITTLEFSGuard(); // use RAII guard to ensure SPIFFS is properly mounted and unmounted
|
||||||
|
|
||||||
if (SPIFFS.totalBytes() - SPIFFS.usedBytes() < min_free) // check if at least 1MB is free for saving history
|
if (LittleFS.totalBytes() - LittleFS.usedBytes() < min_free) // check if at least 1MB is free for saving history
|
||||||
{
|
{
|
||||||
LOG_ERROR("Not enough space in SPIFFS to save history");
|
LOG_ERROR("Not enough space in SPIFFS to save history");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::filesystem::path file_path = file_name;
|
std::filesystem::path file_path = file_name;
|
||||||
if (file_name.root_path() != "/spiffs")
|
if (file_name.root_path() != "/littlefs")
|
||||||
file_path = std::filesystem::path("/spiffs") / file_name;
|
file_path = std::filesystem::path("/littlefs") / file_name;
|
||||||
|
|
||||||
auto save_flags = std::ios::out;
|
auto save_flags = std::ios::out;
|
||||||
if (first_save && SPIFFS.exists(file_path.c_str()))
|
if (first_save && LittleFS.exists(file_path.c_str()))
|
||||||
{
|
{
|
||||||
first_save = false;
|
first_save = false;
|
||||||
save_flags |= std::ios::trunc; // overwrite existing file
|
save_flags |= std::ios::trunc; // overwrite existing file
|
||||||
SPIFFS.remove(file_path.c_str()); // ensure file is removed before saving to avoid issues with appending to existing file in SPIFFS
|
LittleFS.remove(file_path.c_str()); // ensure file is removed before saving to avoid issues with appending to existing file in SPIFFS
|
||||||
LOG_INFO("Saving history to SPIFFS, new file:", file_path.c_str());
|
LOG_INFO("Saving history to LittleFS, new file:", file_path.c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
save_flags |= std::ios::app; // append to new file
|
save_flags |= std::ios::app; // append to new file
|
||||||
LOG_INFO("Saving history to SPIFFS, appending to existing file:", file_path.c_str());
|
LOG_INFO("Saving history to LittleFS, appending to existing file:", file_path.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ofstream ofs(file_path, save_flags);
|
std::ofstream ofs(file_path, save_flags);
|
||||||
@@ -197,5 +197,5 @@ void save_history(const PSRAMVector<ignitionBoxStatus> &history, const std::file
|
|||||||
}
|
}
|
||||||
|
|
||||||
ofs.close();
|
ofs.close();
|
||||||
LOG_INFO("Ignition A history saved to SPIFFS, records written: ", history.size());
|
LOG_INFO("Ignition A history saved to LittleFS, records written: ", history.size());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
// System Includes
|
// System Includes
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <DebugLog.h>
|
#include <DebugLog.h>
|
||||||
#include <SPIFFS.h>
|
#include <LittleFS.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
@@ -24,22 +24,22 @@ struct dataSaveParams
|
|||||||
const std::filesystem::path file_path;
|
const std::filesystem::path file_path;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SPIFFSGuard
|
class LITTLEFSGuard
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SPIFFSGuard()
|
LITTLEFSGuard()
|
||||||
{
|
{
|
||||||
if (!SPIFFS.begin(true))
|
if (!LittleFS.begin(true))
|
||||||
{
|
{
|
||||||
LOG_ERROR("Failed to mount SPIFFS");
|
LOG_ERROR("Failed to mount LittleFS");
|
||||||
}
|
}
|
||||||
LOG_INFO("SPIFFS mounted successfully");
|
LOG_INFO("SPIFFS mounted successfully");
|
||||||
}
|
}
|
||||||
|
|
||||||
~SPIFFSGuard()
|
~LITTLEFSGuard()
|
||||||
{
|
{
|
||||||
SPIFFS.end();
|
LittleFS.end();
|
||||||
LOG_INFO("SPIFFS unmounted successfully");
|
LOG_INFO("LittleFS unmounted successfully");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ void loop()
|
|||||||
// global variables
|
// global variables
|
||||||
bool running = true;
|
bool running = true;
|
||||||
const uint32_t max_queue = 128;
|
const uint32_t max_queue = 128;
|
||||||
|
const uint32_t filter_k = 10;
|
||||||
PSRAMVector<ignitionBoxStatus> ignA_history_0(max_history);
|
PSRAMVector<ignitionBoxStatus> ignA_history_0(max_history);
|
||||||
PSRAMVector<ignitionBoxStatus> ignA_history_1(max_history);
|
PSRAMVector<ignitionBoxStatus> ignA_history_1(max_history);
|
||||||
auto *active_history = &ignA_history_0;
|
auto *active_history = &ignA_history_0;
|
||||||
@@ -221,15 +222,15 @@ void loop()
|
|||||||
int64_t last = esp_timer_get_time();
|
int64_t last = esp_timer_get_time();
|
||||||
uint32_t missed_firings12 = 0;
|
uint32_t missed_firings12 = 0;
|
||||||
uint32_t missed_firings34 = 0;
|
uint32_t missed_firings34 = 0;
|
||||||
ignitionBoxStatusAverage ignA_avg(max_queue); // moving average calculator for ignition box A with a window of 100 samples
|
ignitionBoxStatusAverage ignA_avg(filter_k); // moving average calculator for ignition box A with a window of 100 samples
|
||||||
|
|
||||||
AsyncWebServer server(80);
|
AsyncWebServer server(80);
|
||||||
AsyncWebSocket ws("/ws");
|
AsyncWebSocket ws("/ws");
|
||||||
ws.onEvent(onWsEvent);
|
ws.onEvent(onWsEvent);
|
||||||
server.addHandler(&ws);
|
server.addHandler(&ws);
|
||||||
|
|
||||||
auto spiffs_guard = SPIFFSGuard(); // use RAII guard to ensure SPIFFS is properly mounted and unmounted
|
auto spiffs_guard = LITTLEFSGuard(); // use RAII guard to ensure SPIFFS is properly mounted and unmounted
|
||||||
server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.html");
|
server.serveStatic("/", LittleFS, "/").setDefaultFile("index.html");
|
||||||
server.begin();
|
server.begin();
|
||||||
|
|
||||||
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
|
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request)
|
||||||
|
|||||||
Reference in New Issue
Block a user