Added qr code for ap credentials

This commit is contained in:
CommanderRedYT
2022-02-24 22:39:57 +01:00
parent ba0c0acef2
commit d15b974a21
2 changed files with 22 additions and 5 deletions

View File

@@ -1,24 +1,27 @@
#include "networksettingsmenu.h"
// 3rdparty lib includes
#include <menuitem.h>
#include <actions/dummyaction.h>
#include <actions/switchscreenaction.h>
#include <icons/back.h>
#include <screenmanager.h>
#include <fmt/format.h>
#include <icons/back.h>
#include <menuitem.h>
#include <screenmanager.h>
// local includes
#include "wifistasettingsmenu.h"
#include "wifiapsettingsmenu.h"
#include "displays/qrdisplay.h"
#include "globals.h"
#include "settingsmenu.h"
#include "texthelpers/networktexthelpers.h"
#include "wifiapsettingsmenu.h"
#include "wifistasettingsmenu.h"
using namespace espgui;
namespace {
constexpr char TEXT_STASETTINGS[] = "STA Settings";
constexpr char TEXT_APSETTINGS[] = "AP Settings";
constexpr char TEXT_APQRCODE[] = "AP QR Code";
constexpr char TEXT_BACK[] = "Back";
} // namespace
@@ -26,6 +29,8 @@ NetworkSettingsMenu::NetworkSettingsMenu()
{
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_STASETTINGS>, SwitchScreenAction<WifiStaSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_APSETTINGS>, SwitchScreenAction<WifiApSettingsMenu>>>();
constructMenuItem<makeComponent<MenuItem, StaticText<TEXT_APQRCODE>, NetworkAccessPointQRAction>>();
constructMenuItem<makeComponent<MenuItem, WifiDefaultMacText, DummyAction>>();
constructMenuItem<makeComponent<MenuItem, WifiBaseMacText, DummyAction>>();
constructMenuItem<makeComponentArgs<MenuItem, DnsText, DummyAction>>(uint8_t{0});
@@ -44,3 +49,9 @@ void NetworkSettingsMenu::back()
{
switchScreen<SettingsMenu>();
}
void NetworkAccessPointQRAction::triggered()
{
std::string qr = fmt::format("WIFI:T:WPA;S:{};P:{};H:;", configs.wifiApName.value, configs.wifiApKey.value);
espgui::switchScreen<QrDisplay<NetworkSettingsMenu>>(qr);
}

View File

@@ -11,3 +11,9 @@ public:
std::string text() const override;
void back() override;
};
class NetworkAccessPointQRAction : public virtual espgui::ActionInterface
{
public:
void triggered() override;
};