gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] Parallel build broken?


From: Paul Fertser
Subject: Re: [gpsd-dev] Parallel build broken?
Date: Sat, 23 Nov 2013 13:35:29 +0400
User-agent: Mutt/1.5.17 (2007-11-30)

On Sat, Nov 23, 2013 at 04:02:05AM -0500, Eric S. Raymond wrote:
> Paul Fertser <address@hidden>:
> > Actually, the GPS-UTC offset is part of the almanac (see e.g. [1],
> > "word" 9, byte 1 of SubFrame 4). That's an important distinction to
> > make since 30 seconds are enough (in ideal conditions) to download the
> > whole ephemeris (for a given satellite) but obtaining full almanac
> > requires at least 12.5 minutes.
> 
> Hm.  That does suggest killing off the fetch, doesn't it?

I do not see any decent way to deal with the issue at all. Too bad
NMEA designers decided that GPS unit should be performing leap seconds
correction itself, that's a huge architectural flaw IMHO. Given
there's no generic way to learn if the receiver knows correct offset
or not, there's no way to determine time based on NMEA messages
without comparing to external sources.

One possible universal measure would be to mark the time as inaccurate
until after, say, 25 minutes (2x full almanac transmission interval to
improve robustness) since start or a N-second jump in the reported
time is observed (meaning the receiver finally got the offset). And it
doesn't require knowing current GPS-UTC value at all.

Or you can mark the time as inaccurate indefinitely until an external
confirmation is received via gpsdctl (I can imagine a system of
scripts that would start an NTP daemon and gpsd and would monitor the
time discrepancy between the GPS receiver source and the other sources
and once it's comfortably less than a second, tell gpsd that it's
getting a fully valid signal).

OTOH, if you're ready to add some receiver-specific logic, it might
come useful, e.g. some Mediatek devices are able to report their
current idea of leap seconds offset but it's not visible if it's
a factory-programmed value or a freshly obtained one, so comparison
with external data is needed. But again, if you compare with something
you fetched during the build, the result is inexact and so you can
only make (not so educated) guesses.

-- 
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]