What I am trying to achieve is to avoid a discontinuity in time between systems with the same pre-loaded leap second value but it is unknown whether they happened to receive the updated leap seconds in the short amount of time they were powered on. In all cases, the UBLOX MAX-8Q is being used as the best time source on board.
I would be able to keep track of leap seconds separately on a microcontroller but would not know the time until the GPS gets a time fix and is outputting a pulse-per-second. The UBX-MGA-INI-TIME_UTC message seems like it is intended to prime the ublox receiver with the time before it can obtain a fix so I am not sure what the behavior would be if I used it just to set the leap seconds. For example, the time source can either be upon receipt of message or on a pulse provided to EXTINT. Unfortunately I do not have EXTINT connected so would having the source set to none make the timing worse for some period of time? Or would it quickly correct itself given that it has a fix and just maintain the updated leap seconds? Has anyone tried to connect TIMEPULSE to EXTINT and use that to tell the receiver what time it is based on what time it just said it was + updated leap seconds?
Additionally, could I simply specify an accuracy to no better than within a second and send this message immediately after receiving the time from the GPS and expect the GPS to update it's leap second value and proceed with sending the correct time? So the flow would essentially be:
1. Pulse-per-second triggers interrupt
2. Issue $PUBX,04 to get time
3. Issue UBX-MGA-INI-TIME_UTC to update leap seconds with a value stored in non-volatile memory
4. Enable RMC,ZDA, etc. messages expecting the time values to reflect the updated leap second value.
Surely someone must have some experience with doing this or something similar. Any suggestions or experiences you can offer to share would be greatly appreciated.