[Xastir-dev] APRS software engineering course update

Jason KG4WSV kg4wsv at gmail.com
Sat May 8 10:08:05 EDT 2010


[update on the "APRS client software engineering project" I brought up
a few months back]

Well, the semester is over (as far as the software engineering course
is concerned, anyway).

We had 7 student teams.  4 teams worked on what was called the "data
broker", which was to handle interface management, duplicate
suppression, igating, and populating a database with raw packets.  3
teams built a "data viewer", which was to parse raw packets and
display them spatially correctly on the screen.  They were written for
Qt, and cross platform functionality was a hard requirement (at least
2 of windows, linux, and mac).  All projects used sqlite as the
database.

Two of the "data brokers" seemed to be fairly solid work.
Unfortunately no team opted to attempt cross-platform RS232 interface
operation, but I believe netcat and friends greatly mitigate that
lack.  Requirements were to manage 0 or more APRS-IS server feeds and
0 or more "network TNC feeds", provide duplicate supression, igating,
and insertion of the raw packet into the db.  A server port (ala
xastir port 2023) was also required, but due to a poor requirement
spec (my fault) this was universally implemented read-only.  On those
that correctly implemented the server port I connected xastir to it
with no problems.

The data viewers were interesting.  One uses a package called Marble (
http://edu.kde.org/marble/ ).  It's a google-earth reminiscent display
application/widget.  An interesting feature of marble is connection to
wikipedia (or, after some programming, other online databases).  The
support for a live dynamic data feed isn't really there, but the
students report active development by the marble team and noticeable
improvements over the course of the past couple of months.  This is
one to watch.

Another data viewer team chose to implement mapping from the ground
up: they took a map and projected stations onto it.  The really
significant thing here (IMO) is that it's quite similar to the way
xastir builds a display - so much so, that xatir's main map window may
be easily ported to it.  (yeah, that would still leave us dependent on
imagemagick and 37 other support packages).

The course instructor is attempting to glue some of the data brokers
to the data viewers to get a basic but complete app running.  We'll
see what the sqlite performance looks like when two apps are hitting
it.

Of course there were various "personnel" problems that reduced the
quality of some projects.

Threads seemed to be a problem for most of the teams, and advice on Qt
forums seems to be to avoid threads.  I'm not sure if this is a
problem with the Qt thread interface, with threads in general, or lack
of knowledge of threads.

The prof (who was licensed as KJ4SJK during the term) plans to use
this project again, assuming he's assigned to teach the software
engineering course again.  We've both learned some things about how to
spec it to the students this time around.

-Jason
kg4wsv



More information about the Xastir-dev mailing list