|
A while back I bought myself a Garmin eTrex Summit GPS receiver. It performs very well 'in the field', but a consequence of me being a city-bound computer programmer is that it has spent more time hooked up to my PC than it has out in the wild this winter.
A long standing goal has been to develop my own software for use on my (as yet hypothetical) yacht - in part to save money (marine technology is vastly overpriced), in part for the fun of developing software that interacts with the real world in a useful way. GPS software was high on my list of things to build - as well as providing real-time data for the skipper (heading, speed, location, etc.), I was keen to build a data source for a future project, my own semi-autonomous auto-helming system.
Interrogation of the data being collected by my GPS (and output as NMEA 'sentences') proved relatively easy, so I got off to a good start. My goal was to build a scalable platform that could be extended (not necessarily by me) to handle new sentence types, new visual output building blocks (called 'DrawnOutput' objects, in my parlance) and new collections of visual output building blocks (which I call 'Widget' objects). An example Widget could be a Navigator Widget which displays a Compass DrawnOutput object and a Latitude/Longitude DrawnOutput object. The idea is that a common set of 'DrawnOutput' objects can be easily combined into custom-made Widgets without much coding in order to meet individual needs as they arise.
In building my GPS/NMEA application I learned loads from sources on the web, so I thought first up I'd provide a list of web links (in no particular order) that helped me on my way (in case they are of use in getting someone else started):
These last 4 were the most important in getting me started on my project. Next most useful were the various (unofficial) NMEA sentence dictionaries.
I'm quite pleased with v1.0 of my GPS/NMEA application, but it took me a while to develop, so I'm still mulling over the idea of releasing the source code for free (a man's gotta eat). In the meantime, permit me to go into some more detail about what I've put together and to show off some screen shots of what it all looks like ...
|