Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

IARM (Inter Application Resource Management) is a mechanism for inter-process communication among different RDK applications. Its a platform agnostic inter process communication (IPC) mechanism for the other RDK components. The inter communication is possible between IARM application using events and RPC method.IARM Manager is an IARM Application that runs as Linux daemon process.The IARM Bus Daemon is a Manager Component with Special privileges to manage resources. Other IARM Manager components include:

  • Power Manager
  • IR Manager
  • Disk Manager
  • Sys Manager
  • DS Manager
  • DeepSleep Manager
  • DeviceUpdate Manager
  • IP Manager
  • vrexManager

Image Removed



IARM-Bus offers two basic functionalities:

...

 An IARM Application that runs as a linux daemon process is considered a Manager Component. The IARM-Bus Daemon is a special Manager component that belongs to the IARM core. Such manager components normally register Events and RPC methods for other applications to use.

draw.io Diagram
diagramNameArchitecture.drawio
size1200
revision1


Basically there are three IARM entities involved for development

  1. IARM Bus
  2. IARM

...

Power Manager

  • 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

...

  1. Application (Consumers/Listeners)
  2. IARM Manager (Publishers)

IARM Bus

  • Invoke methods in other processes via Remote Procedure Call.
  • Send inter-process messages.
  • Manage shared and exclusive access to resources.
  • Register for event notification.
  • Publish Event notification to registered listener.
  • There are two ways for application to use IARM Bus ie 'Subscribe for system events' and 'Invoke RPC Methods'

IARM Application

  • IARM Application utilize the IARM utilities and it register for event notification.
  • For example, IR Application registering for the events and the same event appears in the IARM Bus so that the notification of the IARM Bus event shall be transfer to the IARM Bus application.
  • IARM application can also invoke the RPC method which has been registered by the other IARM process.

IARM Manager

  • IARM Manager is an IARM Application that runs as Linux daemon process.
  • The IARM Bus Daemon is a Manager Component with Special privileges to manage resources.
  • The Other IARM Manager components include Power Manager, IR Manager, Disk Manager, Sys Manager, DS Manager, etc

IARM Publisher and Listeners Concept

draw.io Diagram
diagramNameFlow Diagram.drawio
size600
revision1

 

IARM Manager modules

Page Tree
rootIARM Manager

 

API Documentation 

 To know more about SoC/Application level APIs details use in RDK, refer the link  IARM MANAGER API Documentation

 

...

    • 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.