Hi guys,

I uploaded the current version of my QT-based GCS to google code. The sources are available via the SVN repository at https://code.google.com/p/yagcs/ .

Current features:
- Real-time map display (native interface, does not rely on google earth plugin, allows offline access)
- Real-time data plot for distance, altitude, etc.
- Simple presentation of roll and pitch via opengl
- Easily extendible (at least that was the goal) via QT ports/slots
- Should be relatively platform independent due to QT

Also, it now functions as a generator of mission header files which can be loaded via the APM waypoint writer. The GUI, however, is still a bit rough on the edges, meaning it's still lacking quite a few features.

The code only relies one two libraries in addition to QT (one for the data plotting, one for the serial port access), which are itself based on QT. That means you do not need google earth plugins, labview, etc., and all is based on open source. For installation instructions see INSTALL.txt and for more information README.txt.

Would be great to get feedback of course. Also, if somebody from the windows users would try to compile it and tell me if this works, that would be very interesting. Also thanks to the person who pointed me to qextserialport, don't quite remember who initially suggested that.

Cheers,
Andre
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Just committed major changes. Completely removed the code that used qextserialport. The new code now uses the ardupilotmegacomm library for running the binary protocol (thanks to Michael and James for this nice work!). Lots of features are still missing but the next step would be I guess to improve documentation. Also I hope I'll manage to crosscompile a version to windows or mac OS so that one avoids compilation from scratch.
  • Very simple actually.. the same way as also the paparazzi GCS does it (as far as I know). Basically it works as follows: the home position in GPS lat/lng coordinates is mapped to google's coordinate system and for a fixed zoom level one downloads a certain number of tiles around that "home tile". The tiles are just 256x256 pixel jpg files that come from one of googles map server. Tiles are stored on disk so they only need to be downloaded once.

    Basically this way one needs to re-implement some functionality that is in GE already but one gains some flexibility (you could do all sorts of overlays of tiles with other things, etc.) Also one could use other map-tile sources. This is really nothing new, as far as I know some other people have done similar things.
  • Hi Andre,
    what do you mean with this: Real-time map display (native interface, does not rely on google earth plugin, allows offline access)
    Can you explain what technique are you using ? its interesting.
    Thanks
  • Developer
    @Andre,

    I wrote the code in the APM_BinComm library. It should be pretty portable; take a look at the test harness code for an example. Feel free to bug me if you have issues there.

    You will need awk (standard on Mac OS or Linux, probably part of Cygwin for Windows users) to make changes to the protocol definitions.

    We need more work on the APM side to respond to uplink packets, etc. Please file issues - this is something I can probably turn around pretty quickly.
  • Something else: at the weekend (since it's stormy outside anyway) I was planning to look at APM_BinComm (as also was suggested here). Has anybody experience with this on windows/mac/linux?
  • Michael, I know. I don't know if it supports c++.
    You re right, the best tools is the one you are comfortable with.
    bye
  • I totally agree with Michael on the last statement (and let's please not get to this "which programming language/operating system is the best" discussion :-)
  • Developer
    @Loti - .NET/Mono supports C#.

    Regardless, use the tool(s) that let you build what you need to build.
  • Andre, if you know c++, basically you know c#. But give a try to QT ide, it's always better to have a good ide. Are you on windows, linux ... ?
    bye
  • Don't know Delphi or .NET/Mono but QT is basically C++ with some added libraries and macros (most notably the signal/slot system which is quite neat). Lots of tutorials out there, just google around a bit.

    So I tried the qextserialport from the google code repository but I get errors because of missing header files. Which seems to work is the (older?) version from sourceforge (the not-single-class version). Check out with

    "cvs -z3 -d:pserver:anonymous@qextserialport.cvs.sourceforge.net:/cvsroot/qextserialport co -P qextserialport"
This reply was deleted.