aboutsummaryrefslogtreecommitdiffstats
path: root/docs/controller.md
blob: 47a9cfd810fbf35a4514bcf685bb5d816b985778 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Controller

* Object: Generic Controller to handle Policy,Small Business Logic, Glue in between components, ...
* Status: Release Candidate
* Author: Fulup Ar Foll fulup@iot.bzh
* Date  : May-2018

## Features

* Create a controller application from a JSON config file
* Each control (eg: navigation, multimedia, ...) is a suite of actions. When all actions succeed control is granted, if one fails control access is denied.
* Actions can either be:
  * Invocation of an other binding API, either internal or external (eg: a policy service, Alsa UCM, ...)
  * C routines from a user provided plugin (eg: policy routine, proprietary code, ...)
  * Lua script function. Lua provides access to every AGL appfw functionality and can be extended by plugins written in C.

## Installation

* Controller can easily be included as a separate libray in any AGL service or application binder.
* Dependencies: the only dependencies are [AGL application framework](https://gerrit.automotivelinux.org/gerrit/p/src/app-framework-binder.git)
 and [libafb-helpers](https://gerrit.automotivelinux.org/gerrit/p/src/libafb-helpers.git).
* Controller relies on Lua-5.3, when not needed Lua might be removed at compilation time.

The controller library is integrated by default in the AGL SDK since GG (>=7)
and is also available as a package for the AGL supported linux distributions.

To install the native package please refer to [this chapter](../host-configuration/docs/1_Prerequisites.md)
in the AGL documentation to install the AGL repository for your distribution.

Then use your package manager to install the library.

### OpenSuse

```bash
sudo zypper ref
sudo zypper install agl-libappcontroller-devel
```

### Fedora

```bash
sudo dnf ref
sudo dnf install agl-libappcontroller-devel
```

### Ubuntu/Debian

```bash
sudo apt-get update
sudo apt-get install agl-libappcontroller-dev
```

## Monitoring

* The default test HTML page expect the monitoring HTML page to be accessible under /monitoring with the --monitoring option.
* The monitoring HTML pages are installed with the app framework binder in a subdirectory called monitoring.
* You can add other HTML pages with the alias options e.g. afb-daemon --port=1234 --monitoring --alias=/path1/to/htmlpages:/path2/to/htmlpages --ldpaths=. --workdir=. --roothttp=../htdocs
* The monitoring is accessible at http://localhost:1234/monitoring.