From 7a070bcc5f0d9161d74bab2b2f1528db972e803b Mon Sep 17 00:00:00 2001 From: Avi Date: Thu, 3 Nov 2022 12:21:14 +1000 Subject: [PATCH] Fix #1545, Refactor CFE_TIME_CalculateUTC to utilize CFE_TIME_CalculateTAI --- modules/time/fsw/src/cfe_time_utils.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/time/fsw/src/cfe_time_utils.c b/modules/time/fsw/src/cfe_time_utils.c index d0cdb3bc5..26ec63ebe 100644 --- a/modules/time/fsw/src/cfe_time_utils.c +++ b/modules/time/fsw/src/cfe_time_utils.c @@ -679,7 +679,14 @@ CFE_TIME_SysTime_t CFE_TIME_CalculateUTC(const CFE_TIME_Reference_t *Reference) { CFE_TIME_SysTime_t TimeAsUTC; - TimeAsUTC = CFE_TIME_Add(Reference->CurrentMET, Reference->AtToneSTCF); + /* + ** Get preliminary UTC time using TAI (not accounting for leap seconds) + */ + TimeAsUTC = CFE_TIME_CalculateTAI(Reference); + + /* + ** Adjust UTC time by deducting leap seconds from TAI + */ TimeAsUTC.Seconds -= Reference->AtToneLeapSeconds; return TimeAsUTC;