feat: Add network credential settings for FTP and HTTP servers, add editable credential changes for hotspot

This commit is contained in:
altsysrq
2026-01-04 16:56:43 -06:00
parent 1aaec3d98d
commit 90e20b49b7
10 changed files with 334 additions and 24 deletions

View File

@@ -12,7 +12,7 @@ CrossPointSettings CrossPointSettings::instance;
namespace {
constexpr uint8_t SETTINGS_FILE_VERSION = 1;
// Increment this when adding new persisted settings fields
constexpr uint8_t SETTINGS_COUNT = 22;
constexpr uint8_t SETTINGS_COUNT = 28;
constexpr char SETTINGS_FILE[] = "/.crosspoint/settings.bin";
} // namespace
@@ -49,6 +49,12 @@ bool CrossPointSettings::saveToFile() const {
serialization::writePod(outputFile, scheduleNetworkMode);
serialization::writePod(outputFile, scheduleHour);
serialization::writePod(outputFile, scheduleAutoShutdown);
serialization::writeString(outputFile, ftpUsername);
serialization::writeString(outputFile, ftpPassword);
serialization::writeString(outputFile, httpUsername);
serialization::writeString(outputFile, httpPassword);
serialization::writeString(outputFile, apSsid);
serialization::writeString(outputFile, apPassword);
outputFile.close();
Serial.printf("[%lu] [CPS] Settings saved to file\n", millis());
@@ -119,6 +125,18 @@ bool CrossPointSettings::loadFromFile() {
if (++settingsRead >= fileSettingsCount) break;
serialization::readPod(inputFile, scheduleAutoShutdown);
if (++settingsRead >= fileSettingsCount) break;
serialization::readString(inputFile, ftpUsername);
if (++settingsRead >= fileSettingsCount) break;
serialization::readString(inputFile, ftpPassword);
if (++settingsRead >= fileSettingsCount) break;
serialization::readString(inputFile, httpUsername);
if (++settingsRead >= fileSettingsCount) break;
serialization::readString(inputFile, httpPassword);
if (++settingsRead >= fileSettingsCount) break;
serialization::readString(inputFile, apSsid);
if (++settingsRead >= fileSettingsCount) break;
serialization::readString(inputFile, apPassword);
if (++settingsRead >= fileSettingsCount) break;
} while (false);
inputFile.close();