Power Manager

Created on June 21, 2022

Overview

    • Power Manager monitors Power IR key events and reacts to power state changes.
    • It dispatches Power Mode Change events to IARM-Bus.
    • All listeners should release resources when entering POWER OFF/STANDBY state and re-acquire them when entering POWER ON state.
    • Power manager sends these events to other applications

      • IARM_BUS_PWRMGR_EVENT_MODECHANGED
      • IARM_BUS_PWRMGR_EVENT_DEEPSLEEP_TIMEOUT
    • The Event Data contains

      • current power state – IARM_Bus_PWRMgr_PowerState_t curState;
      • new power state and – IARM_Bus_PWRMgr_PowerState_t newState;
      • Timeout – unsigned int timeout;

    • Power manager publishes four RPC Methods:

      • SetPowerState
      • GetPowerState
      • WareHouseReset
      • SetDeepSleepTimeOut

Events

IARM_BUS_PWRMGR_EVENT_DEEPSLEEP_TIMEOUT

  • Event to notify deep sleep timeout
  • Deep sleep timeout is set by “IARM_BUS_PWRMGR_API_SetDeepSleepTimeOut” API after which this event will be broadcast.

IARM_BUS_PWRMgr_DeepSleepTimeout_EventData_t param;
param.timeout = deep_sleep_delay_in_seconds;
IARM_Bus_BroadcastEvent( IARM_BUS_PWRMGR_NAME,
        IARM_BUS_PWRMGR_EVENT_DEEPSLEEP_TIMEOUT,
        (void*)&param, sizeof(param));


IARM_BUS_PWRMGR_EVENT_MODECHANGED

  • Event to notify power mode change.
  • This event is broadcast in case of power state change. Along with the current power state and new state, this event is broadcast. This event can be handled by the application.

IARM_Bus_PWRMgr_EventData_t param;
param.data.state.curState = curState;
param.data.state.newState = newState;
IARM_Bus_BroadcastEvent( IARM_BUS_PWRMGR_NAME,
        IARM_BUS_PWRMGR_EVENT_MODECHANGED,
        (void *)&param, sizeof(param));

RPC Methods

IARM_BUS_PWRMGR_API_SetPowerState

  • Sets the power state of the device
  • Used to set a new power state to the device.
  • The power state can be ON, OFF, STANDBY, STANDBYLIGHT-SLEEP or STANDBY-DEEP-SLEEP

IARM_Bus_PWRMgr_SetPowerState_Param_t param;
param.newState = IARM_BUS_PWRMGR_POWERSTATE_ON
IARM_Bus_Call(IARM_BUS_PWRMGR_NAME,
        IARM_BUS_PWRMGR_API_SetPowerState,
        (void *)&param, sizeof(param));


IARM_BUS_PWRMGR_API_GetPowerState

  • This API is used to retrieve the current power state of the box.

IARM_Bus_PWRMgr_GetPowerState_Param_t param;
IARM_Bus_Call(IARM_BUS_PWRMGR_NAME,
        IARM_BUS_PWRMGR_API_GetPowerState,
        (void *)&param, sizeof(param));


IARM_BUS_PWRMGR_API_WareHouseReset

  • This API is used to reset the box to warehouse state.

IARM_Bus_Call(IARM_BUS_PWRMGR_NAME,
        IARM_BUS_PWRMGR_API_WareHouseReset, NULL, 0);


IARM_BUS_PWRMGR_API_SetDeepSleepTimeOut

  • This API is used to sets the timeout for deep sleep

IARM_Bus_PWRMgr_SetDeepSleepTimeOut_Param_t param;
param.timeout = timeOut;
IARM_Bus_Call(IARM_BUS_PWRMGR_NAME,
        IARM_BUS_PWRMGR_API_SetDeepSleepTimeOut,
        (void *)&param, sizeof(param));



Go To Top