[FOSS-GPS] foxtrotgps: Tracking weather probes in addition to the own position

Joshua Judson Rosen rozzin at hackerposse.com
Thu Jul 18 18:25:25 PDT 2019


On 7/18/19 5:11 PM, Tilman Glötzner wrote:
> Dear all
> 
> I would like to use foxtrotgps to track the position of an extra object,
> a weather probe, in addition to the own gps position.
>
> So I have given it a try  and stored a proof of concept in
> https://code.launchpad.net/~tilman1/foxtrotgps/foxtrotgps
> 
> What does it do?
> 
> The weather probes sent out their gps positions once a second. Their
> signal can be decoded using RS (https://git?hub.com/rs1729/RS). The
> output is a text datagram that contains among other things the current
> gps postion

There have been some other proposals to do things like this before;
it would be nice to include some sort of mechanism that at least makes it
easier to customize the tracking to include extra objects.

> I added a thread that opens a port at 60050, and waits for datagram of
> the RS program. Once it receive a datagram, it parses it, and draws the
> position on the map -- thereby redrawing everything. This is all in the
> files rs_functions.h and rs_functions.c that I added.
> 
> Questions:
> - I know that the approach that I have implemented is not really
> generic. Are there better approaches in how to extend foxtrotgps ?

IIRC someone had the desire to track storms or something at one point,
and someone else wanted to track... gliders or something? And myself,
I've been involved with autonomous vehicles for the last few years
(most of which use the MAVLink protocol for reporting position and other info)....

I think the first time someone asked about tracking auxiliary objects,
I had suggested trying to implement this stuff in terms of XMPP--because I was
looking at it in terms of an old `friend tracker' feature
that we'd had to remove when the server went offline.... But we didn't
really have usable libraries for that at the time.

These days I think libgps/gpsd actually has the ability to use multiple `GPS' devices
(whether or not they're actually GPS receivers or something else entirely)
and even report them to us with distinct ID-strings. So it might actually be
most *straightforward* to just try to do things that way: maybe have your
RS decoder feed into gpsd, and modify foxtrotgps to differentiate
between multiple devices as reported by libgps?

This is of course just a suggestion, and is based on things that I've read--
if someone has actually used the multi-device support and can comment
on its usability (or lack thereof), I'd love to hear it.

I'm assuming that it would be easy enough to produce gpsd's JSON protocol,
but again I don't really have first-hand experience doing so....

Maybe you've already considered it and rejected it though?

> - Once a GPS position is received, it is drawn. If a datagram from a
> weather probe is received, everything i.e. the map window is redrawn. So
> if a valid gps position is received and a datagram of the probe is
> received, redrawing takes place twice per second. I wonder if it is
> possible to only locally draw the probe position rather than redrawoing
> everything.

Hm. How are we doing it right now for the GPS marker that we already have?


More information about the FOSS-GPS mailing list