D2Sphere and Device Time Managment
Timeformat
- current time formats are in use:
- International Atomic Time (TAI)
- Coordinated Universal Time (UTC)
- GPS time (GPST)
- Time difference by leap seconds
- (TAI − GPS = 19 seconds)
- (TAI - UTC = 37 seconds)
- all devices use 'GPS time' GPST as base (https://en.wikipedia.org/wiki/Global_Positioning_System#Timekeeping)
- ONLY Front End GUI must use Time Zone offset - backend and device time must stay UTC/GPST.
AVL Time State
sequenceDiagram
participant SystemTime
participant LastValidPosition
participant RTC
participant GNSS
participant UserTime
LastValidPosition ->> SystemTime: load last valid time and timestamp not older then build date
RTC ->> SystemTime: load RTC time if time valid flag and timestamp not older then build date
GNSS ->> SystemTime: load GNSS time if time and date valid and timestamp not older then build date
GNSS ->> RTC: set RTC time if time and date valid and timestamp not older then build date
UserTime ->> SystemTime: set Time via $PFAL,Sys.SetTime,dd.mm.yy,hh:mm:ss
UserTime ->> RTC: set Time via $PFAL,Sys.SetTime,dd.mm.yy,hh:mm:ss
SystemTime ->> LastValidPosition: save last Valid pos and time $PFAL,GPS.Nav.SaveLastValid
D2Sphere Response to 'non' correct time in Login Field
AVL Time State
$PFAL:ID1,Sys.SetTime,06.07.2020,09:40:19;GPS.Nav.SaveLastValid
- GPS.Nav.SaveLastValid is only sent to store on AVL the given time as default startup time
- Sys.SetTime,06.07.2020,09:40:19 need to be parsed and used as time in UTC for any further data sent to D2Sphere