To apply for this task please complete this mandatory coding challenge together with your application: T872
Applications without matching coding challenge completed will not be considered.
---
Control daemon is a central place to control cameras parameters and functionality. Current implementation is done as systemd daemon, written in C++. Communication is done via Unix Domain sockets and flatbuffers is used to minify packages. Current endpoints to communicate with daemon are: command line interface (CLI), which allows to send commands from shell and Web Remote, a HTML UI which can be used from smartphones or tablets.
This task targets the extension of control daemon, following sub-tasks are considered:
**Goals:**
- Move functionality from shell scripts in the firmware to daemon, so it can be called from unified place
- Add further camera/image sensor parameters, besides currently implemented image sensor plain register configuration, digital and analog gain, like white balance, color matrix for output etc.
- Implement handshake package, which would tell the Web Remote currently available modules/parameters
- Implement additional unit tests for verification of functionality, e.g. CI builds
**Prerequisites:**
- Linux experience
- CMake
- systemd
**Language Skills:**
- C++ for control daemon
**Difficulty:** Low - Medium
**Mentors:** Andrej, Sebastian
**Notes:**
- Daemon can be tested on the camera remotely, through SSH and live HDMI feed
**Links:**
- Wiki: https://wiki.apertus.org/index.php/Control_Daemon
- Repo: https://github.com/apertus-open-source-cinema/axiom-control-daemon
- Web Remote: https://github.com/apertus-open-source-cinema/web-remote
- flatbuffers: https://github.com/google/flatbuffers
To get in touch with any mentor check the [[ https://www.apertus.org/GSoC-2019-Mentor-Contact-List | Mentor Contact List]].