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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# 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
* Require : af-binder version >= FF (handle only bindings v3)
## 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 library 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 the Guppy
version (>=7) and is also available as a package for the AGL supported linux
distributions.
You could find the SDK build from Yocto which embed the afb-helpers library
here:
* For [releases](https://download.automotivelinux.org/AGL/release/) >= Guppy, in
the latest machine's deploy directory. (e.g for Guppy in
`latest/<yourmachine>/deploy/sdk` directory)
* For the [master](https://download.automotivelinux.org/AGL/snapshots/master/)
development branch, in the latest machine's deploy directory. (e.g in
`latest/<yourmachine>/deploy/sdk` directory)
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.
|