Qt Virtual Chart Table (QVCT)
|
The Qt Virtual Chart Table (QVCT) is a Qt application which provides a navigation software that simulates the chart table (and instruments corner) usually found in ships.
It is thus suitable for sailing, flying or any other outdoor activity performed using a conventional navigation/planning approach:
It features:
It runs and is being developed on Linux (Ubuntu), though it can potentially also be built on Mac OS X and Windows.
The Qt Virtual Chart Table (QVCT) is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, Version 3.
The Qt Virtual Chart Table (QVCT) is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
The Qt Virtual Chart Table (QVCT) includes all resources which contain the mention "Qt Virtual Chart Table (QVCT)" in their preamble.
Other resources are (and must be) used according to their original license, which is (should be made) available from their respective author.
The first step is recovering the source code using the GIT versioning system:
mkdir /path/to/source && cd /path/to/source git clone https://github.com/cedric-dufour/qvct
Build environment configuration is then achieved using CMake:
mkdir /path/to/build && cd /path/to/build cmake /path/to/source
Compilation and installation are then achieved using regular Make:
cd /path/to/build make && ls -al ./bin make doc && ls -al ./doc make install
Alternatively (to Make), distribution-specific Debian packages can be built and installed using the ad-hoc commands:
cd /path/to/source dpkg-buildpackage -us -uc -b && ls -al ../qvct*.deb dpkg -i ../qvct*.deb
The Qt Virtual Chart Table (QVCT) is build on top of the standard Qt's QMainWindow object. The screenshot below shows which class(es) correspond to each of the visible parts of the interface (and give you the place to start digging into the source code):
Logically speaking, QVCT is based on charts (CChart), each corresponding to a separate tab in the virtual chart table (CChartTable), and several overlays, which correspond respectively to:
Each overlay is actually a QTreeWidget and a (root) QTreeWidgetItem, which hierarchically gathers objects (COverlayObject, QTreeWidgetItem) in (sub-)containers (COverlayContainer) and (sub-)items (COverlayItem), which in turn can be geographical points (COverlayPoint) or courses (COverlayCourse).
The architecture of the software should allow to integrate and use many kind of navigation devices. Please look for the SAMPLE_DRIVER keyword in the source tree to find out about the key places (and sample code) to create a new driver for your device.
Looking at the source code of the existing GPS daemon (GPSD) driver (CDeviceGpsdGps) may also provide some useful insights and ways to avoid pitfalls.
If you are to submit patches for bug-fixing or features-enhancement purposes, please make sure to stick to the coding conventions detailed in the CODING file located in the root of the source tree. Patches that do not respect those conventions *will not* be considered.