- plotlabserver contains a stand-alone, system-independent c++/OpenGL application, which controls several plot windows and receives plot commands from clients.
This project provides a docker context to build and run plotlabserver.
- docker
- make
clone project:
git clone --recurse-submodules -j8 git@github.com:DLR-TS/plotlabserver.git
or if you have already cloned the project:
cd plotlabserver
git submodules init
git submodules update
- if you do not clone with --recurse-submodules make will fail.
To view help for available make targets run the default target:
make
To build and run plotlabserver run the provide "up" target:
make up
The provided docker context supports three display modes: native, window_manager, headless. To change the display mode modify the DISPLAY_MODE environmental variable in the docker-compose.yaml
There are two options for setting a display mode. You can modify the docker-compose.yaml
...
environment:
- DISPLAY_MODE=${DISPLAY_MODE:-native}
# - DISPLAY_MODE=${DISPLAY_MODE:-window_manager}
#- DISPLAY_MODE=${DISPLAY_MODE:-headless}
...
Uncomment the desired display mode.
You can also directly set the environmental variable before calling "make up":
DISPLAY_MODE=native make up
or
DISPLAY_MODE=window_manager make up
or
DISPLAY_MODE=headless make up
plotlabserver windows will be displayed as native windows within the host system window manager (does not support video recording)
plotlabserver windows will be displaced within a nested i3 window manager (supports video recording)
plotlabserver windows will be displayed on a virtual xvfb display suitable for headless host systems (supports video recording)
The docker context provides built in display recording via ffmpeg. This is supported in window_manager and headless display modes. One display recording is kept at a time. Triggering a new scenario will result in the previous recording to be overwritten.
All build artifacts will be available at plotlabserver/build including the plotlabserver binary.
stb should be hash: 5736b15