Skip to content

Commit

Permalink
feat: Add support for turning off the display timeout in ICD applicat…
Browse files Browse the repository at this point in the history
…ions
  • Loading branch information
rosahay-silabs committed Aug 12, 2024
1 parent 1197b62 commit 1030738
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
11 changes: 10 additions & 1 deletion examples/lock-app/silabs/src/AppTask.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,10 @@ CHIP_ERROR AppTask::Init()
GetLCD().ShowQRCode(true);
}
#endif // QR_CODE_ENABLED
#endif
#ifdef SL_ENABLE_ICD_LCD
GetLCD().TurnOff(SilabsLCD::kDefaultLCDTimeout);
#endif // SL_ENABLE_ICD_LCD
#endif // DISPLAY_ENABLED

chip::DeviceLayer::PlatformMgr().ScheduleWork(UpdateClusterState, reinterpret_cast<intptr_t>(nullptr));

Expand Down Expand Up @@ -347,7 +350,13 @@ void AppTask::ActionInitiated(LockManager::Action_t aAction, int32_t aActor)
sLockLED.Set(!locked);

#ifdef DISPLAY_ENABLED
#ifdef SL_ENABLE_ICD_LCD
sAppTask.GetLCD().TurnOn();
#endif // SL_ENABLE_ICD_LCD
sAppTask.GetLCD().WriteDemoUI(locked);
#ifdef SL_ENABLE_ICD_LCD
sAppTask.GetLCD().TurnOff(SilabsLCD::kActivityLCDTimeout);
#endif // SL_ENABLE_ICD_LCD
#endif // DISPLAY_ENABLED
}
else if (aAction == LockManager::UNLATCH_ACTION)
Expand Down
4 changes: 1 addition & 3 deletions examples/platform/silabs/display/lcd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ CHIP_ERROR SilabsLCD::TurnOff(void)
status = SilabsLCD::Clear();
if (status != SL_STATUS_OK)
{
ChipLogError(DeviceLayer, "LCD clear failed: %ld", status);
ChipLogError(DeviceLayer, "SilabsLCD::Clear failed: %ld", status);
return CHIP_ERROR_INTERNAL;
}
#if (SLI_SI91X_MCU_INTERFACE)
Expand All @@ -305,14 +305,12 @@ CHIP_ERROR SilabsLCD::TurnOff(void)
ChipLogError(DeviceLayer, "sl_board_disable_display failed: %ld", status);
return CHIP_ERROR_INTERNAL;
}
ChipLogDetail(DeviceLayer, "SilabsLCD::TurnOff completed");
return CHIP_NO_ERROR;
}

#ifdef SL_ENABLE_ICD_LCD
CHIP_ERROR SilabsLCD::TurnOff(uint32_t delayInMs)
{
ChipLogDetail(DeviceLayer, "start LCD timeout timer");
sl_sleeptimer_restart_timer(&lcdTimerHandle, sl_sleeptimer_ms_to_tick(delayInMs), LcdTimeoutCallback, this, 0,
SL_SLEEPTIMER_NO_HIGH_PRECISION_HF_CLOCKS_REQUIRED_FLAG);
return CHIP_NO_ERROR;
Expand Down
6 changes: 3 additions & 3 deletions examples/platform/silabs/display/lcd.h
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,9 @@ class SilabsLCD
} DisplayStatus_t;

#ifdef SL_ENABLE_ICD_LCD
static const uint32_t kDefaultLCDTimeout = 3000;
const uint32_t kActivityLCDTimeout = 5000;
const uint32_t kQRCodeScreenTimeout = 10000;
static const uint32_t kDefaultLCDTimeout = 3000;
static const uint32_t kActivityLCDTimeout = 5000;
static const uint32_t kQRCodeScreenTimeout = 10000;
#endif // SL_ENABLE_ICD_LCD

typedef void (*customUICB)(GLIB_Context_t * context);
Expand Down

0 comments on commit 1030738

Please sign in to comment.