diff --git a/main/displays/menus/networksettingsmenu.cpp b/main/displays/menus/networksettingsmenu.cpp index 99c1ede..0494c73 100644 --- a/main/displays/menus/networksettingsmenu.cpp +++ b/main/displays/menus/networksettingsmenu.cpp @@ -11,6 +11,7 @@ // local includes #include "displays/qrdisplay.h" #include "globals.h" +#include "utils.h" #include "settingsmenu.h" #include "texthelpers/networktexthelpers.h" #include "wifiapsettingsmenu.h" @@ -52,6 +53,6 @@ void NetworkSettingsMenu::back() void NetworkAccessPointQRAction::triggered() { - std::string qr = fmt::format("WIFI:T:WPA;S:{};P:{};H:;", configs.wifiApName.value, configs.wifiApKey.value); + std::string qr = fmt::format("WIFI:T:{};S:{};P:{};H:;", get_wifi_security_string(configs.wifiApAuthmode.value), configs.wifiApName.value, configs.wifiApKey.value); espgui::switchScreen>(qr); } diff --git a/main/displays/qrdisplay.cpp b/main/displays/qrdisplay.cpp index c7f8cc3..2663d71 100644 --- a/main/displays/qrdisplay.cpp +++ b/main/displays/qrdisplay.cpp @@ -1,5 +1,6 @@ #include "qrdisplay.h" +// this only works for ECC_MEDIUM uint16_t get_qrver_from_strlen(std::string_view str) { // alpha numeric, ECC Level M diff --git a/main/displays/qrdisplay.h b/main/displays/qrdisplay.h index 61de52f..2d2969e 100644 --- a/main/displays/qrdisplay.h +++ b/main/displays/qrdisplay.h @@ -26,7 +26,7 @@ public: uint8_t qrcodeBytes[qrcode_getBufferSize(ver)]; qrcode_initText(&qrcode, qrcodeBytes, ver, ECC_MEDIUM, m_msg.data()); - const uint8_t multiplier = (tft.width() - 9) / qrcode.size; + const uint8_t multiplier = (tft.width() - 18) / qrcode.size; const uint8_t x_offset = (tft.width() - qrcode.size * multiplier) / 2; const uint8_t y_offset = (tft.height() - qrcode.size * multiplier) / 2; diff --git a/main/utils.cpp b/main/utils.cpp index 27410e2..0a1ed6d 100644 --- a/main/utils.cpp +++ b/main/utils.cpp @@ -313,3 +313,20 @@ int16_t map_analog_stick(uint16_t middle, uint16_t start, uint16_t end, uint16_t return return_val; } } + +std::string get_wifi_security_string(wifi_auth_mode_t authMode) +{ // use for qr code + switch (authMode) + { + case WIFI_AUTH_OPEN: + return "nopass"; + case WIFI_AUTH_WEP: + return "WEP"; + case WIFI_AUTH_WPA_PSK: + case WIFI_AUTH_WPA2_PSK: + case WIFI_AUTH_WPA_WPA2_PSK: + return "WPA"; + default: + return "unknown"; + } +} diff --git a/main/utils.h b/main/utils.h index 6003dde..af9ec73 100644 --- a/main/utils.h +++ b/main/utils.h @@ -77,3 +77,5 @@ inline CRGB UINT32_TO_CRGB(uint32_t color) return crgb; } + +std::string get_wifi_security_string(wifi_auth_mode_t authMode);