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.
Read our Google Summer of Code Overview page:
https://wiki.apertus.org/index.php/GSoC_Overview
Control daemon is a central place to control cameras parameters and functionality inside the AXIOM Beta Linux Operating System. 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: Medium
Mentors: Andrej (main mentor), Sebastian (backup/co mentor)
Notes:
- Daemon can be tested on the camera remotely, through SSH and live HDMI feed. (https://wiki.apertus.org/index.php/AXIOM_Beta_Remote_Access)
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 Mentor Contact List.