Moved into newsettings

This commit is contained in:
CommanderRedYT
2021-12-29 03:13:08 +01:00
committed by 0xFEEDC0DE64
parent e74bb68456
commit 29c2dc7f1d
5 changed files with 37 additions and 28 deletions

View File

@ -283,7 +283,6 @@ void WirelessSettingsCallbacks::onWrite(NimBLECharacteristic* pCharacteristic)
ESP_LOGI(TAG, "[ble_config]: Set wifi%i: WiFi-SSID: %s, WiFi-Password: ***", doc["wifi_index"].as<int>(), doc["wifi_ssid"].as<const char*>());
configs.write_config(configs.wifi_configs[index].ssid, doc["wifi_ssid"].as<std::string>());
configs.write_config(configs.wifi_configs[index].key, doc["wifi_pass"].as<std::string>());
saveSettings();
} else {
const auto deserialized = deserializeJson(doc, val);
ESP_LOGW(TAG, "Unkown type %s -> json: %.*s %s", doc["type"].as<const char*>(), val.size(), val.data(), deserialized.c_str());

View File

@ -13,13 +13,13 @@ using namespace espgui;
GarageMenu::GarageMenu()
{
for (uint8_t index = 0; index < stringSettings.wirelessDoors.size(); index++)
for (uint8_t index = 0; index < configs.wireless_door_configs.size(); index++)
{
const auto &wirelessDoor = stringSettings.wirelessDoors[index];
if (wirelessDoor.doorId.empty() || wirelessDoor.doorToken.empty())
const auto &wirelessDoor = configs.wireless_door_configs[index];
if (wirelessDoor.doorId.value.empty() || wirelessDoor.doorToken.value.empty())
continue;
auto &menuitem = constructMenuItem<makeComponentArgs<MenuItem, garagenmenu::SendEspNowMessageAction, ChangeableText>>(index);
menuitem.setTitle(wirelessDoor.doorId);
menuitem.setTitle(wirelessDoor.doorId.value);
}
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_BACK>, SwitchScreenAction<MainMenu>, StaticMenuItemIcon<&espgui::icons::back>>>();

View File

@ -10,6 +10,7 @@
#include "espnowfunctions.h"
#include "texts.h"
#include "globals.h"
#include "newsettings.h"
namespace garagenmenu {
class SendEspNowMessageAction : public virtual espgui::ActionInterface
@ -18,7 +19,7 @@ public:
SendEspNowMessageAction(uint8_t index) : m_index{index} {}
void triggered() override
{
if (const auto error = espnow::send_espnow_message(fmt::format("BOBBYOPEN:{}:{}", stringSettings.wirelessDoors[m_index].doorId, stringSettings.wirelessDoors[m_index].doorToken)); error != ESP_OK)
if (const auto error = espnow::send_espnow_message(fmt::format("BOBBYOPEN:{}:{}", configs.wireless_door_configs[m_index].doorId.value, configs.wireless_door_configs[m_index].doorToken.value)); error != ESP_OK)
{
ESP_LOGE("BOBBY", "send_espnow_message() failed with: %s", esp_err_to_name(error));
return;

View File

@ -49,6 +49,18 @@ public:
ConfigWrapper<wifi_stack::ip_address_t> staticDns2;
};
class WirelessDoorsConfig
{
public:
WirelessDoorsConfig(const char *doorIdKey, const char *doorTokenKey) :
doorId {std::string{}, DoReset, StringMaxSize<24>, doorIdKey },
doorToken {std::string{}, DoReset, StringMaxSize<24>, doorTokenKey }
{}
ConfigWrapper<std::string> doorId;
ConfigWrapper<std::string> doorToken;
};
class ConfigContainer
{
using mac_t = wifi_stack::mac_t;
@ -80,6 +92,14 @@ public:
ConfigWrapper<bool> canBusResetOnError {false, DoReset, {}, "canBusRstErr" };
std::array<WirelessDoorsConfig, 5> wireless_door_configs {
WirelessDoorsConfig { {}, {} },
WirelessDoorsConfig { {}, {} },
WirelessDoorsConfig { {}, {} },
WirelessDoorsConfig { {}, {} },
WirelessDoorsConfig { {}, {} }
};
ConfigWrapper<std::string> bluetoothName {defaultHostname, DoReset, StringMinMaxSize<4, 32>, "bluetoothName" };
ConfigWrapper<bool> reverseBeep {false, DoReset, {}, "reverseBeep" };
@ -204,6 +224,17 @@ public:
\
x(canBusResetOnError) \
\
x(wireless_door_configs[0].doorId) \
x(wireless_door_configs[0].doorToken) \
x(wireless_door_configs[1].doorId) \
x(wireless_door_configs[1].doorToken) \
x(wireless_door_configs[2].doorId) \
x(wireless_door_configs[2].doorToken) \
x(wireless_door_configs[3].doorId) \
x(wireless_door_configs[3].doorToken) \
x(wireless_door_configs[4].doorId) \
x(wireless_door_configs[4].doorToken) \
\
x(bluetoothName) \
\
x(reverseBeep) \

View File

@ -48,15 +48,6 @@ struct StringSettings
std::string otaServerBranch;
#endif
std::string webserver_password;
#ifdef FEATURE_ESPNOW
struct ConfiguredWirelessDoors {
std::string doorId;
std::string doorToken;
};
std::array<ConfiguredWirelessDoors, 5> wirelessDoors;
#endif
};
template<typename T>
@ -109,19 +100,6 @@ void StringSettings::executeForEveryCommonSetting(T &&callable)
callable("dnskey", dns_key);
#endif
callable("webpw", webserver_password);
#ifdef FEATURE_ESPNOW
callable("doorId0", wirelessDoors[0].doorId);
callable("doorToken0", wirelessDoors[0].doorToken);
callable("doorId1", wirelessDoors[1].doorId);
callable("doorToken1", wirelessDoors[1].doorToken);
callable("doorId2", wirelessDoors[2].doorId);
callable("doorToken2", wirelessDoors[2].doorToken);
callable("doorId3", wirelessDoors[3].doorId);
callable("doorToken3", wirelessDoors[3].doorToken);
callable("doorId4", wirelessDoors[4].doorId);
callable("doorToken4", wirelessDoors[4].doorToken);
#endif
}
template<typename T>