The whole system has basically three layers:
-
guh-daemon: the guh-daemon (the core) is an application written in Qt and contains the whole communication with the hardware, loads the supported plugins and devices and manages all devices and rules. The core provides a JSON-RCP API to allow clients to communicate with the core.
-
guh-cli: the guh-cli (command line interface) is an admin tool written in python to communicate with the guh JSON-RPC API and test functionality of guh.
-
guh-webinterface: the guh-webinterface application is an application written in AngularJS and provides the browser based user interface for guh. The application uses the REST API from the guh-webserver and offers the user an easy and beautiful possibility to interact with the system.
In following figure you can see the structure of the whole system: