Competition Manager for OpenVario
Project description
Gliding Competiton Manager for OpenVario
This application is intended for glider pilots participating in gliding competitions, published on Soaring Spot. It runs on OpenVario flight computer and automatically downloads current contest airspace and waypoint files when they are published on Soaring Spot. It also configures XCSoar to use the updated files. You can switch between contests easily without need to download and transfer files to the flight computer manually.
It is a text-mode application with no graphics, which might look primitive for modern graphics-rich UI standards. However, it is written using modern software engineering techniques, responsive, very fast and easy to use with very limited input controls available for OpenVario. It also has a fairly simple code, that is easy to understand and change.
Usage
This app requires Internet connection to be useful. Simplest way to get it on your OpenVerio device is to use a small USB WiFi dongle. See "Installation instructions" below for more details.
Typically, during the gliding competition, you run compman
daily to check if
new competition files were uploaded to Soaring Spot (or when new files are
announced during the briefing). When compman
is started, new files for the
current competition will be automatically downloaded to the device. As soon as
you select these new files, XCSoar will be configured to use them. Simply exit
compman
and run the XCSoar the usual way.
When you go to the next competition, simply switch the contest using compman
menu system. All competition files will be automatically downloaded and XCSoar
will be reconfigured.
No more complicated downloading of files on the flash drives and transferring them manually to the OpenVario!
compman
can be operated using only 6 buttons: 4 arrow keys for navigating,
Enter (usually a push on rotary encoder or joystick) for selecting
items and Esc (usually marked as X) for going back.
Installation
At this stage of development (early preview), installation requires access to Internet and local network. You will also need to be able to ssh to the device or connect to it through standard serial port for debugging.
Compman
Assuming the network connection is up and you are connected to the device with
SSH or serial cable, use opkg
package manager to download and install compman
:
$ echo src compman http://openvario.lebedev.lt/opkg >> /etc/opkg/customfeeds.conf
$ opkg update
$ opkg install openvario-compman
At this point you should be able to run compman from command line:
$ compman
Main menu
Currently, the main menu is just a script with hardcoded menu entries. To add another entry you need to change this script:
$ wget https://.../ovmenu.patch
$ patch -p0 < ovmenu.patch
Reboot your OpenVario and you should see the new menu item for compman
!
Developing
It is not required to own or have access to OpenVario device in order to
develop compman
. The only requirements are Python 3.7 or higher and terminal
emulator, readily available on MacOS or Linux operating systems. There are lots
of free options for Windows as well.
Setting up the development environment
compman
uses pipenv
for managing dependencies and dev environment. If you
don't have it yet, install with:
$ pip install pipenv
After checking out the sources, cd
to openvario-compman
directory and run:
$ pipenv shell
$ pipenv install
After that, your development environment is ready, you should be able to run the app:
$ compman
It is possible to adjust few options by providing them in .env
file, located
in project directory. You can copy the sample file sample.env
to .env
and
adjust values there.
Development tools
compman
uses various tools to check the code quality. They are generally
available through make
program. Most useful are these:
make test
- runs the test suitemake mypy
- checks the sources with static type checkermake black
- reformats the source code to match the code style
It is often useful to watch the log file while running compman
in development
environment. The log file will contain traces of actions user makes and
tracebacks from exceptions happening during the execution. Use tail
to watch
the logs in a separate terminal window:
$ tail -F ~/.compman/compman.log
Filesystem
compman
keeps all its files under ~/.compman
directory. It contains the set
of directories for each configured competition. Each competition directory
contains downloaded airspace and waypoints files. This directory can be changed
by stting COMPMAN_DATADIR
environment variable or using --datadir
command-line option.
compman
expects to find XCSoar profile in ~/.xcsoar
directory.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.