Files
bobbycar-boardcomputer-firm…/main/stringsettings.h
T
2021-08-12 00:23:41 +02:00

86 lines
1.8 KiB
C++

#pragma once
// system includes
#include <array>
#include <string>
namespace {
struct StringSettings
{
struct ConfiguredWifi {
std::string ssid;
std::string key;
};
std::array<ConfiguredWifi, 10> wifis;
#ifdef FEATURE_CLOUD
std::string cloudUrl;
#endif
#ifdef FEATURE_OTA
std::string otaUrl;
#endif
#ifdef FEATURE_GARAGE
std::string garageUrl;
#endif
#ifdef FEATURE_NTP
std::string timeServer;
#endif
template<typename T>
void executeForEveryCommonSetting(T &&callable);
template<typename T>
void executeForEveryProfileSetting(T &&callable);
};
template<typename T>
void StringSettings::executeForEveryCommonSetting(T &&callable)
{
callable("ssid0", wifis[0].ssid);
callable("key0", wifis[0].key);
callable("ssid1", wifis[1].ssid);
callable("key1", wifis[1].key);
callable("ssid2", wifis[2].ssid);
callable("key2", wifis[2].key);
callable("ssid3", wifis[3].ssid);
callable("key3", wifis[3].key);
callable("ssid4", wifis[4].ssid);
callable("key4", wifis[4].key);
callable("ssid5", wifis[5].ssid);
callable("key5", wifis[5].key);
callable("ssid6", wifis[6].ssid);
callable("key6", wifis[6].key);
callable("ssid7", wifis[7].ssid);
callable("key7", wifis[7].key);
callable("ssid8", wifis[8].ssid);
callable("key8", wifis[8].key);
callable("ssid9", wifis[9].ssid);
callable("key9", wifis[9].key);
#ifdef FEATURE_CLOUD
callable("cloudUrl", cloudUrl);
#endif
#ifdef FEATURE_OTA
callable("otaUrl", otaUrl);
#endif
#ifdef FEATURE_GARAGE
callable("garageUrl", garageUrl);
#endif
#ifdef FEATURE_NTP
callable("timeServer", timeServer);
#endif
}
template<typename T>
void StringSettings::executeForEveryProfileSetting(T &&callable)
{
}
}