DolphinV4 API  1.6.1.0
Architecture

The DolphinV4 API has a modular architecture. The functionality is grouped into several sw modules. Each module has it's own functions and parameters. By calling functions in your application from a module the whole internal module is linked to your application. For instance if the application doesn't need UART communication, and the module is not initialised the UART module will not be linked to the application. In such case no UART FIFO buffer allocation is needed and there will more RAM and Flash available for your application.

The following diagram shows the API architecture


api_architecture.PNG


DolphinV4 API Interface
The sw modules of the DolphinV4 API can be accessed through the EO3100I_API.h interface. Most of the sw modules are independent. SW modules interacting together are shown as horizontal boxes. Some core sw modules are not directly accessible from the application, such as scheduler, interrupt handlers. The other sw modules have an interface that can be directly accessed by the application. Each application accessible sw module has two types of interfaces: initialization, function interface.

All interfaces to the functions have a consistent form:

  • A return value indicates if the function was correctly executed or an eventuality happened. These return codes described in the RETURN_TYPE.
  • The parameters of the functions are used as an input/output parameters.
Note:
For more information about the initialization interfaces see DolphinV4 API Initialization.
A detailed description of the function interfaces can be found in chapter Modules.

ESSL Layer
The ESSL (EnOcean Software Stack Layer) contains the implementation of the scheduler, power management, serial and radio protocol stack and peripheral components. DolphinV4 API does not implement classical kernel architecture. The DolphinV4 API and Keil library objects are linked to the application upon compilation time, thus there is no kernel and user space separation. There is also no memory management, the memory for the sw modules is allocated upon compilation time.

HAL Layer
The HAL is the lowest layer of the library and it interacts directly with the underlying hardware. The HAL layer abstracts the DolphinV4 HW platform.

The following variable types are used in the DolphinV4 API:

typedef unsigned long int uint32 ;
typedef signed long int sint32 ;
typedef unsigned int uint16 ;
typedef signed int sint16 ;
typedef unsigned char uint8 ;
typedef signed char sint8 ;
typedef unsigned char uchar8 ;
typedef signed char schar8 ;
typedef float float32 ;
typedef bit bit1 ; //!< Single bit

bullet.png