Lady Heather's automatic rollover fixer works by looking at the year in any 
time message that it sees.  If it sees 10 consecutive year values less than 
2016,  it assumes the receiver has rollover issues and then adds 1024 weeks 
worth of seconds to the Julian date/time calculated from the receiver time/date 
message until the resulting year is past 2016.

One problem with this is when a receiver is first powered up... most of them 
send dates in the 1980s to 1990s until they start tracking satellites.   Once 
Heather detects a rollover condition, the code does not currently undo it if 
the receiver starts sending good dates.

Heather keeps all times as a double precision Julian date.  Using Heather's 
code can be a problem on Arduinos since their "double" precision numbers are 
actually 32 bit single precision,  so you would need to do some more 
complicated math.

Heather's rollover compensation value is actually in double precision seconds.  
You can manually specify a rollover correction to sub-second resolution and 
tweak the displayed time/date to anything you want...  comes in handy for 
testing calendar/eclipse/sunrise/sunset/etc code.

Speaking of rollovers,  the GPS system has a 1024 week rollover next year 
(April 6th-7th).  A lot of older receivers had code that could handle the first 
system rollover in 1999,  but might have issues this time.
_______________________________________________
time-nuts mailing list -- [email protected]
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to