diff --git a/examples/window-app/silabs/efr32/src/WindowAppImpl.cpp b/examples/window-app/silabs/efr32/src/WindowAppImpl.cpp index 52af730d551f0c..873f6ec9cded62 100644 --- a/examples/window-app/silabs/efr32/src/WindowAppImpl.cpp +++ b/examples/window-app/silabs/efr32/src/WindowAppImpl.cpp @@ -26,6 +26,10 @@ #include #ifdef QR_CODE_ENABLED #include +#else +#include "EFR32DeviceDataProvider.h" +#include +#include #endif // QR_CODE_ENABLED #include @@ -54,6 +58,8 @@ SilabsLCD slLCD; #define LCD_ICON_TIMEOUT 1000 using namespace chip::app::Clusters::WindowCovering; +using namespace chip; +using namespace ::chip::DeviceLayer; #define APP_STATE_LED &sl_led_led0 #define APP_ACTION_LED &sl_led_led1 @@ -212,6 +218,21 @@ CHIP_ERROR WindowAppImpl::Init() slLCD.Init(); #endif +#ifndef QR_CODE_ENABLED + // Create buffer for QR code that can fit max size and null terminator. + char qrCodeBuffer[chip::QRCodeBasicSetupPayloadGenerator::kMaxQRCodeBase38RepresentationLength + 1]; + chip::MutableCharSpan QRCode(qrCodeBuffer); + + if (EFR32::EFR32DeviceDataProvider::GetDeviceDataProvider().GetSetupPayload(QRCode) == CHIP_NO_ERROR) + { + PrintQrCodeURL(QRCode); + } + else + { + EFR32_LOG("Getting QR code failed!"); + } +#endif // QR_CODE_ENABLED + return CHIP_NO_ERROR; }