ICI manages the configuration of the SPR module and then manages and manipulates the data flow inside the SPR module to and from the hardware interfaces. ICI is an event-based framework that accesses the resources in the SPR 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 RIIoT™ SDK. An ICI application is triggered by events such as data coming in or a timer event, which once triggered, performs that 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 just limited by the designer’s creativity. Several of the capabilities of ICI are shown on the right. The list is intended to show a few examples of what is possible.