Skip to content

Commit 1030738

Browse files
feat: Add support for turning off the display timeout in ICD applications
1 parent 1197b62 commit 1030738

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

examples/lock-app/silabs/src/AppTask.cpp

+10-1
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,10 @@ CHIP_ERROR AppTask::Init()
234234
GetLCD().ShowQRCode(true);
235235
}
236236
#endif // QR_CODE_ENABLED
237-
#endif
237+
#ifdef SL_ENABLE_ICD_LCD
238+
GetLCD().TurnOff(SilabsLCD::kDefaultLCDTimeout);
239+
#endif // SL_ENABLE_ICD_LCD
240+
#endif // DISPLAY_ENABLED
238241

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

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

349352
#ifdef DISPLAY_ENABLED
353+
#ifdef SL_ENABLE_ICD_LCD
354+
sAppTask.GetLCD().TurnOn();
355+
#endif // SL_ENABLE_ICD_LCD
350356
sAppTask.GetLCD().WriteDemoUI(locked);
357+
#ifdef SL_ENABLE_ICD_LCD
358+
sAppTask.GetLCD().TurnOff(SilabsLCD::kActivityLCDTimeout);
359+
#endif // SL_ENABLE_ICD_LCD
351360
#endif // DISPLAY_ENABLED
352361
}
353362
else if (aAction == LockManager::UNLATCH_ACTION)

examples/platform/silabs/display/lcd.cpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ CHIP_ERROR SilabsLCD::TurnOff(void)
292292
status = SilabsLCD::Clear();
293293
if (status != SL_STATUS_OK)
294294
{
295-
ChipLogError(DeviceLayer, "LCD clear failed: %ld", status);
295+
ChipLogError(DeviceLayer, "SilabsLCD::Clear failed: %ld", status);
296296
return CHIP_ERROR_INTERNAL;
297297
}
298298
#if (SLI_SI91X_MCU_INTERFACE)
@@ -305,14 +305,12 @@ CHIP_ERROR SilabsLCD::TurnOff(void)
305305
ChipLogError(DeviceLayer, "sl_board_disable_display failed: %ld", status);
306306
return CHIP_ERROR_INTERNAL;
307307
}
308-
ChipLogDetail(DeviceLayer, "SilabsLCD::TurnOff completed");
309308
return CHIP_NO_ERROR;
310309
}
311310

312311
#ifdef SL_ENABLE_ICD_LCD
313312
CHIP_ERROR SilabsLCD::TurnOff(uint32_t delayInMs)
314313
{
315-
ChipLogDetail(DeviceLayer, "start LCD timeout timer");
316314
sl_sleeptimer_restart_timer(&lcdTimerHandle, sl_sleeptimer_ms_to_tick(delayInMs), LcdTimeoutCallback, this, 0,
317315
SL_SLEEPTIMER_NO_HIGH_PRECISION_HF_CLOCKS_REQUIRED_FLAG);
318316
return CHIP_NO_ERROR;

examples/platform/silabs/display/lcd.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ class SilabsLCD
6464
} DisplayStatus_t;
6565

6666
#ifdef SL_ENABLE_ICD_LCD
67-
static const uint32_t kDefaultLCDTimeout = 3000;
68-
const uint32_t kActivityLCDTimeout = 5000;
69-
const uint32_t kQRCodeScreenTimeout = 10000;
67+
static const uint32_t kDefaultLCDTimeout = 3000;
68+
static const uint32_t kActivityLCDTimeout = 5000;
69+
static const uint32_t kQRCodeScreenTimeout = 10000;
7070
#endif // SL_ENABLE_ICD_LCD
7171

7272
typedef void (*customUICB)(GLIB_Context_t * context);

0 commit comments

Comments
 (0)