Here's the basic idea:
- The application maintains a queue of contacts, which is filled as UDP packets are received from the N1MM logging software. I still don't know whether the master station transmits contacts received by its client stations, or whether we have to configure each station to send UDP packets - but that's a detail.
- The situation display will dequeue a contact and look up the call sign online (at the very least using the QRZ service). It's primary goal is to ascertain the station's lat/lon. This may appear in the QRZ metadata for the station, but if not, Google geocoding is used with any information that we find in the metadata (full address, town, country, county, postcode etc.).
- Once the station's location is determined, this is handed off to the visualisation (map), which will plot it with a 'pushpin' into a map. Using Google Maps is the easiest thing here.
- When a new station is added, a short audio tone is played (maybe the station ID in CW), the map moves to show the location of the new contact, with good local resolution (i.e. it zooms), then after a few seconds the map zooms back out to possibly new bounds that shows the entires geographic extent of contacts made. In theory, this view should grow as contacts are made.
- As contacts are made, specific metrics are computed from the set of contacts received during the session. For instance: totals by country, state, continent, greatest distance etc. These metrics could be shown on a ticker, or summary board along the bottom of the display.
- Additionally, as contacts are made, if they have a station QSL card which we can retrieve, this will be downloaded, and presented in a column down the right hand side of the display, which will scroll down as new contacts arrive (i.e. the latest contact will appear at the top).
There may be other bells and whistles, but if I get anything like as much as this going for the 'field day' w/e then I think we'll be well served, and the display should serve as a point of interest for club members and visitors alike.
With that, here's the story so far...
We have the basic Google Maps integration. Here, we see it showing the 'starting condition' centred on the 'home station' QTH pin (configurable in a preferences panel):
The basic contacts data model has been created (not exactly a hard one):
This says "A contact has the attribute of occurring at a particular time and involves a single other station", and "a station has a bunch of attributes and may be involved in one or more contacts".
The basic QRZ database querying has also been written. There's also a test/manual contact entry dialog, available from the File menu that accepts a contact call sign and time and will look up QRZ metadata as soon as the call sign is typed in. Here's what it looks like currently:
Next steps are to write the contact queue and perform the map updating as new contacts are handled.
Watch this space...