All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MIRA Documentation for Application Designers


As an application designer you typically want to combine already existing and working software modules - so called Units (from one or more Domains) - into large and complex applications. Normally each unit fulfills a single task that can be, e.g.:

  • accessing a sensor or hardware component as a driver and providing the sensors data in a channel
  • running an algorithm on data to produce new information, statistics and results

To combine units to a larger application one needs to write a config file where he:

  • specifies the used units
  • specifies the way they are connected
  • specifies the parameters of these units

For downloading and installing components needed in an application as well as the applications itself you should make use of mirapackage. mirapackage is a package management tool that allows to list, filter, install and uninstall single or multiple components that are organized in packages and automatically handles dependencies of these packages.

There are mainly three tools available that can launch an existing configuration file

  1. mira Launches an application as a console program without any GUI support
  2. miragui Launches an application as console program with GUI support
  3. miracenter Launches a graphical user interface that allows to visualize data, channels and status of the application

Users who want to build an application from a set of existing Units do not need any special programming background, however, they should be familiar with:

For a quick start have a look at the tutorials.


Domains contain high-level components and units that belong to the same topic or application domain. Those components and units may be used by other components like the application layer to build a complex application. In contrast to toolboxes, the classes and algorithms of domains are NOT accessed directly. Instead, interaction exclusively is done through the communication mechanisms of the MIRA framework (channels and RPC calls). Units of different domains may interact with each other (using the communication mechanisms) but must NOT use each other directly to avoid unwanted code dependencies between domains.

The documentations of the following domains are available: