ICI manages the configuration of the IPM module and manages and manipulates the data flow inside the IPM module to and from the hardware interfaces. ICI is an event based framework that accesses the resources in the IPM module via API modules. It is programmed in high level C language that is so efficient that a typical application should take less than 100 lines of code to implement. All the tools needed for programming ICI are included in the RIIM™ SDK. An ICI application is triggered by events, such as data coming in or a timer event. Once an event is triggered, it performs the task programmed in C, and then it goes to sleep and waits for the next event. The events can be complex such as reaching a threshold or executing the code once a combination of events occurs. The flexibility of using high level C-code in ICI means that virtually any sensor and/or control unit can be interfaced to as long as they can be connected to the local hardware buses. The data can be manipulated on bit level in the ICI application and advanced data processing can be used. This also means that a good ICI application can reduce the data transmission significantly, thereby reducing the power consumption. The limitations are really only defined by the designers creativity. Several of the capabilities of ICI are shown here on the right. The list is intended to show a few examples of what is possible.