parameter-framework
Introduction
The parameter-framework is a plugin-based and rule-based framework for handling parameters. This means that you can:
- Describe your system's structure and its parameters (in XML) - aka. What;
- Write (in C++) or reuse a backend (aka. plugin) for accessing the parameters that you just described - aka. How;
- Define (in XML or in a domain-specific-language) conditions/rules upon which a given parameter must take a given value - aka. When.
Usage examples
Alsa controls on embedded platforms
The parameter-framework can be used to set the value of alsa controls (switches, volumes, etc.) on smartphones/tablets based on parameter-framework rules (in this example, they transcribe use-cases). For accessing parameters (i.e. alsa controls), you may use the alsa plugin.
Parameters in files
The filesystem plugin
can be used to write parameters in files. This is particularly useful for
files in /sys
managing GPIOs.
More details
The parameter-framework's core comes in the form of a shared library. Its client has to provide:
- configuration files describing the structure of the system to be managed by the parameter-framework and what plugins it must use to read/write into each subsystem;
- a list of criteria (representing the state of the client) and their possible values;
- configuration files describing the value that each part of the system (aka parameter) must take - this is done by writing rules based on the criteria described above.
At runtime, the most usual communication between the client and the parameter-framework are:
- The update of criteria (that are used in the rules introduced above) and
- Update all relevant parameters according to the new criteria values. The parameter-framework uses the appropriate backend for writing the values in each underlying subsystem.
The parameter-framework comes with several tools, including a command-line
interface: remote-process
.
Going further
See the wiki on github.
Compiling
Run cmake .
then make
. You may then install libraries, headers and
binaries with make install
. By default, they are installed under
/usr/local
on unix OSes; if you want to install them under a custom
directory, you may do so by passing it to the cmake .
command; e.g.
cmake -DCMAKE_INSTALL_PREFIX=/path/to/custom/install .
Also, CMake can build a project out-of-tree, which is the recommended method:
mkdir /path/to/build/directory
cd /path/to/build/directory
cmake /path/to/parameter-framework/sources
make
After an install you may want to run the parameter-framework tests with
make test
.