Really will just help for post-mission analysis of everything. During mission the main benefit is having known durations and being able to benchmark signal latency and queue buildups.
A protocol for synchronizing time between a ground-station and a spacecraft on another planetary body (the Moon) with highly variable asymmetric communication latency. This protocol is designed to minimize computation required on ultra-low-power spacecraft and allow for use on payloads where little is known about the payload's exact physical location in space or the internal implementation of the Earth-to-Lunar communication stack.
Hercules FSW Todos
[ ] Add fixed period CubeRoverTime Log (maybe emitted from NM) for really basic time alignment.
[ ] Make one log come out right at boot.
[ ] Add rudimentary NTP-esque time-sync impl. where Hercules is being pinged / the source of truth. GSW impl. does not need to be part of this RC and will have it's own post-RC Issue.
Conversion Implementation Notes
Hercules is being pinged and is the source of truth.
GSW will store raw FSW SCET in milliseconds alongside the Earth Time of receipt (for determining SCET epoch) and maintain an ordered conversion table, where each row is a new epoch and contains:
the Earth Time of the start of an epoch (Herc boot / reset / clock reversal) [fixed]
the offset used for converting SCETs from this epoch to Earth time [calibrated continuously - until the SCET epoch ends (Herc restarts or rolls over)]
GSW will tune this table by periodically pinging the FSW using the NTP-like commands (manually until AB gives us automatic concurrence in YAMCS) as well as periodically emitted timestamp events from the Rover.
This system is used to make the FSW impl. as simple as possible and to maintain the assumption in Herc FSW that the timestamp counts time since Hercules boot.
NOTE: Our mission will have Herc on for << (2^31-1) milliseconds (24.8days) so int32 rollover won't be an issue.
Really will just help for post-mission analysis of everything. During mission the main benefit is having known durations and being able to benchmark signal latency and queue buildups.
LIT (Lightweight Interplanetary Time) Sync Protocol
A protocol for synchronizing time between a ground-station and a spacecraft on another planetary body (the Moon) with highly variable asymmetric communication latency. This protocol is designed to minimize computation required on ultra-low-power spacecraft and allow for use on payloads where little is known about the payload's exact physical location in space or the internal implementation of the Earth-to-Lunar communication stack.
Hercules FSW Todos
Conversion Implementation Notes
NOTE: Our mission will have Herc on for << (2^31-1) milliseconds (24.8days) so
int32
rollover won't be an issue.