QGPS

A GPS Information Program Written In Qt 3

Update 11/15/2005: Alright, I re-wrote much of the core functionality, and now the device can be started/stopped from the menu bar. I'm almost done getting the configuration dialog completed. Also, I changed the look of the interface a bit. I'm gonna try and see if I can't get some kind of simple vertical progress bar made to show signal strength. You can get a copy of the source through CVS, just poke around on the SourceForge project page ( link).

Update 11/14/2005: The project is now hosted on SourceForge. The new address of this page is http://qgps.sourceforge.net. The page on http://www.acidforum.net/qgps will be removed shortly. I'm working on getting a copy of the initial source code release onto SF, so please be patient. Thanks - Robin.

Here is a link to the source. Warning: it's ugly! I am in the process of re-writing the base code to make it a little prettier and more streamlined. Also, as you'll notice, it unpacks to "qgpsdevice", and compiles as the same. I'm changing that as well. However, it does function. Make sure that you have the Qt libraries WITH THREAD SUPPORT. To compile, type "make" and run it by typing "./qgpsdevice". I haven't run "make install" on my system, so I don't know what'll happen.

Overview

QGPS is a small GPS status program written from scratch in Qt. It is designed to work with a NMEA-compliant GPS device that outputs the GGA, GSA, GSV, and RMC strings. Aside from displaying latitude, longitude, and elevation, it also reports satellite signal strength (Signal to Noise Ratio) and positions in the sky using a custom widget (QSatelliteTrack). QGPS uses a custom class called QGPSDevice that inherits QThread, which allows it to read the data from the GPS in the background, while the GUI runs it's event loop, allowing full interaction with the program while listening to the GPS.

Also, I'm sure that there could be some good use of QGPSDevice and QGPSSatelliteTracker outside of this application. Any application written in Qt could use these classes to interface with a GPS, like a wardriving app or a plotter, etc. After I get this app semi-finallized, I'm going to build QGPSDevice and QGPSSatelliteTracker as plugins for Qt, so that others can incorporate them into their apps.

Features

So far, QGPS can:

These are some features that I would like to see / am working on:

And, of course, some bugs I can't figure out yet:

Help Wanted!

Interested in helping me develop this program? No problem, just shoot me an email at neozenkai [ at ] cox [dot] net. My PGP public key is:

        
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)

mQGiBENigM4RBADLsmwN6lzuytpfuhjoPe0DytsgbnbINni1zn2p5emFjfWlD0e9
EVKdc6g2NARUkHjhXhMXY3rS9sjJ9MxHybzi3TqxtfDuobpcJofafNig8CDERdhb
xSxdnkRjpoAxS5el90Tj1xmgSoL7lqY1e1FHyGDzO828+hW5A9zPcGEbWwCgs11+
j4oAqVEIZas1eDETd9Xv0UkD/iHBIt385AbIPB4hsx8Eda9lkxWM5Lvw9/RcNlJE
1oxEnNNuc8ZbBA3Aguxso1P6J0BohpPGQyUDAvllv8fhhRQeexKlIqsP7ZRSzBYt
MG57fBERBAETWRrnP7E2szyqwD/fM4n0HaRWICOlF0eminjk7BOjXcM/vCSOR5nw
fV9OA/44Et0Op0Wg+H8VdinAD/UYTwldmPvh6HBG/WSbiUbt2cfsHLBzoQTDCm5B
7miw/drluhjV/75FWSXgkXBFQpcppNrfbX7poDjwAKHHBepTbWvXoNbi0egbXncp
kq+/KRFuypBrAmer+2H70tpFtQodzlCYiT1DV75PTUSwud5QdLQuUm9iaW4gR2lu
Z3JhcyAoTm8gQ29tbWVudCkgPG5lb3plbmthaUBjb3gubmV0PoheBBMRAgAeBQJD
YoDOAhsDBgsJCAcDAgMVAgMDFgIBAh4BAheAAAoJEE8icwtI/vr4T6kAn0dXeIWB
XgGiWOxXjIFZG6q2ZGWvAKCgudivYd38MpKjeZXjjAmQer3lVrkCDQRDYoDXEAgA
leByhOihBNzgBIis+GeL612y7YTliB1twufxODu38VtUVSkG+ZsFHQekp3a47gA/
hODNvuAV1BYzdXbVRFbTwiE8Vk16yOgRcxyLA6vKondm1C3N4s9qcutME+awsNK0
lAD66EuiEcK4F1AQr8d1mqqLMn5o+OcF8nGmHpi1jRtctFU+Zjkc/QzdHXGWrW8/
RXlWGvcm87nSq+GNtOvqVDcArt5I1H+e8uMlT44UHcd6Nqm7pXhnXL6yHGqtLlif
3kgOnWZ0lHVB9+Xm6jrhtJSYB59d2gGXaEX4waBwKWCjxZsysrpX3gL8XCWYhWrV
Z/AXq40QxzJ9favBUHiWbwADBQf+MY7m1wRgGDuG1wA8cBmQN8+Pz9Dx8OJDkdae
2uyYgo+gE7MdA3V0IDXu2tUWcFE4vx1cgq2OwYAow3h0C4080ktm5RmO1Nc7ymiP
cPoixOMK/q7WF7eJdlkKBtzsnyeBjRhQP+4Evzvs8QYHVIjwO2m2hdktB8hyHYGr
uRMtpb3dZiRnNHJuA7fmVaPvchQn0sqhh3uCLq+3GFP6OGzVSg7xcPM9sTmshqDU
jqR+4bZ8WhR32Gr+GfdEfDIEoFXiaBeQvG4IdIgNZX+u4mRORvp5NnnqAYLuN963
Fp16MQKrzScEVaU0S4R3cWibj2/NAnpsruSxpe70NBDwn5XSLIhJBBgRAgAJBQJD
YoDXAhsMAAoJEE8icwtI/vr4LE0An2TzyMWsG/aVcAZ28x6qqB31QIGZAJ9szHO/
XWxuCFZOowWcHRiNRakAJg==
=ioPp
-----END PGP PUBLIC KEY BLOCK-----
        
        

Any help is appreciated, from debugging, GUI designing, translation, to new classes and widgets, etc. Just drop me a line and I'll get back to you if I can :)

Licensing / Copying

Oh, by the way, QGPS is FREE!!! Not only becuase of the Qt license, but because I am a firm believer in free software. QGPS is licensed under the GNU General Public License, a copy of which can be found here. You may use my code, as long as you give me credit for it!

About the Developer

I'm Robin Gingras, and I'm a programmer. I live in Florida, go to college, and I enjoy working with computers and cool devices like GPS recievers. I write in C, C++, Visual Basic, PHP, Python, and I'm learning Java and C#. I'm an advocate of free software, and every program that I write (barring licensing issues) is licensed under the GNU General Public License, or an equivalent free software license.

SourceForge.net Logo

Copyright © 2005 by Robin Gingras. Please contact me for permission to copy.