From 9f18bd980cd6f12914b1ef11270c5aae0c7d1472 Mon Sep 17 00:00:00 2001 From: CommanderRedYT Date: Sun, 12 Dec 2021 01:23:19 +0100 Subject: [PATCH] Added qr code debug menu --- main/CMakeLists.txt | 4 +++- main/displays/menus/debugmenu.cpp | 2 ++ main/displays/qrcodedebug.cpp | 36 +++++++++++++++++++++++++++++++ main/displays/qrcodedebug.h | 21 ++++++++++++++++++ main/texts.cpp | 2 ++ main/texts.h | 3 +++ 6 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 main/displays/qrcodedebug.cpp create mode 100644 main/displays/qrcodedebug.h diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 925c32f..54f5599 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt @@ -117,6 +117,7 @@ set(headers displays/popups/alertdisplay.h displays/poweroffdisplay.h displays/powersupplydisplay.h + displays/qrcodedebug.h displays/spirodisplay.h displays/starfielddisplay.h displays/statusdisplay.h @@ -316,6 +317,7 @@ set(sources displays/popups/alertdisplay.cpp displays/poweroffdisplay.cpp displays/powersupplydisplay.cpp + displays/qrcodedebug.cpp displays/spirodisplay.cpp displays/starfielddisplay.cpp displays/statusdisplay.cpp @@ -399,7 +401,7 @@ set(sources set(dependencies libsodium freertos nvs_flash esp_http_server esp_https_ota mdns app_update esp_system esp_websocket_client driver - arduino-esp32 ArduinoJson esp-nimble-cpp FastLED-idf TFT_eSPI + arduino-esp32 ArduinoJson esp-nimble-cpp FastLED-idf TFT_eSPI TFT_eSPI_QRcode bobbycar-protocol cpputils cxx-ring-buffer date espasynchttpreq espasyncota espchrono espcpputils espconfiglib esp-gui-lib esphttpdutils espwifistack expected fmt ) diff --git a/main/displays/menus/debugmenu.cpp b/main/displays/menus/debugmenu.cpp index 66b6fbb..ad293b8 100644 --- a/main/displays/menus/debugmenu.cpp +++ b/main/displays/menus/debugmenu.cpp @@ -19,6 +19,7 @@ #include "icons/battery.h" #include "debugcolorhelpers.h" #include "esptexthelpers.h" +#include "displays/qrcodedebug.h" #include "displays/menus/commanddebugmenu.h" #include "displays/menus/motorstatedebugmenu.h" #include "displays/menus/feedbackdebugmenu.h" @@ -47,6 +48,7 @@ using namespace espgui; DebugMenu::DebugMenu() { constructMenuItem(); + constructMenuItem, SwitchScreenAction>>(); constructMenuItem, LoadSettingsAction>>(); constructMenuItem, SaveSettingsAction>>(); constructMenuItem, EraseNvsAction>>(); diff --git a/main/displays/qrcodedebug.cpp b/main/displays/qrcodedebug.cpp new file mode 100644 index 0000000..feade40 --- /dev/null +++ b/main/displays/qrcodedebug.cpp @@ -0,0 +1,36 @@ +#include "qrcodedebug.h" + +#include + +#include "screenmanager.h" +#include "displays/menus/debugmenu.h" + +using namespace espgui; + +QrCodeDebugDisplay::QrCodeDebugDisplay() +{ +} + +void QrCodeDebugDisplay::back() +{ + switchScreen(); +} + +void QrCodeDebugDisplay::initScreen() +{ + Base::initScreen(); + m_qrcode.init(); +} + +void QrCodeDebugDisplay::confirm() +{ + m_qrcode.createScaleToFit("WIFI:T:WPA;S:realraum;P:r3alraum;"); +} + +void QrCodeDebugDisplay::rotate(int offset) +{ + m_mult += offset; + m_qrcode.setMultiply(m_mult); + ESP_LOGW("BOBBY", "Multiply: %i", m_mult); + m_qrcode.create("Hello World!"); +} diff --git a/main/displays/qrcodedebug.h b/main/displays/qrcodedebug.h new file mode 100644 index 0000000..84ff09e --- /dev/null +++ b/main/displays/qrcodedebug.h @@ -0,0 +1,21 @@ +#pragma once + +// 3rdparty lib includes +#include +#include + +class QrCodeDebugDisplay : + public espgui::Display +{ + using Base = espgui::Display; +public: + QrCodeDebugDisplay(); + // std::string text() const override; + void initScreen() override; + void confirm() override; + void back() override; + void rotate(int offset) override; +private: + qrcode::QRcode m_qrcode{}; + uint8_t m_mult{2}; +}; diff --git a/main/texts.cpp b/main/texts.cpp index baed3b2..6a99d0c 100644 --- a/main/texts.cpp +++ b/main/texts.cpp @@ -537,4 +537,6 @@ char TEXT_REENABLE_MENUITEMS[] = "Show advanced"; //SelectBuildserverBranchMenu char TEXT_SELECT_BRANCH[] = "Select Branch"; char TEXT_SELECT_BRANCH_CLEAR[] = "Clear Branch"; + +char TEXT_QRCODE_DEBUG[] = "QR Debug"; } // namespace diff --git a/main/texts.h b/main/texts.h index b3b9a74..37f8c10 100644 --- a/main/texts.h +++ b/main/texts.h @@ -536,6 +536,9 @@ extern char TEXT_REENABLE_MENUITEMS[]; //SelectBuildserverBranchMenu extern char TEXT_SELECT_BRANCH[]; extern char TEXT_SELECT_BRANCH_CLEAR[]; + +//QrCodeDebug +extern char TEXT_QRCODE_DEBUG[]; } // namespace using namespace bobbytexts;