Skip to content

Svc::OsTime Component

1. Introduction

The Svc::OsTime is a component that provides system time on any system that implements the RawTime OSAL class. The RawTime interface provides Fw::TimeInterval objects.

2. Requirements

Requirement Description Verification
SVC-OS-TIME-001 Svc::OsTime shall return current system time as an Fw::Time objects in response to the timeGetPort port call Unit Test
SVC-OS-TIME-002 Svc::OsTime shall return ZERO_TIME as an Fw::Time object if the RawTime layer returns an error code Unit Test

3. Design

Svc::OsTime has two ports, one timeGetPort for the F Prime Time interface and a setEpoch port which is described later. It has no data types, commands, events, or telemetry channels.

Svc::OsTime uses an epoch time provided during initialization to calculate the absolute system time. An epoch consists of both an Fw::Time object and a Os::RawTime object that represent the same moment in time. Svc::OsTime calculates the time since the epoch using an Os::RawTime at the current time and the provided epoch time. The time since epoch is added to the Fw::Time timestamp to form a new Fw::Time object representing the current time. The TimeBase and TimeContext for the return Fw::Time object match the corresponding epoch Fw::Time.

If at any point an error status is returned from the RawTime implementation then a ZERO_TIME value is returned from the port call

3.1 Setup

The epoch timestamp pair should be set prior to using the component. Prior to passing in the epoch timestamp, OsTime will return ZERO_TIME to all port requests.

The epoch timestamp pair can be set by either directly call the set_epoch method, or by calling the setEpoch port call on the component. It is expected that set_epoch will be called during topology setup and the setEpoch port will be used during runtime, but this is not required.

The epoch timestamp pair may be changed after initial operation to update the epoch time or the TimeBase/TimeContext for the returned Fw::Time object.

3.2 Ports

Port Kind Data Type Description
timeGetPort sync input Fw.Time Port returning current system design
setEpoch sync input Svc.OsTimeEpoch Port to set an epoch timestamp pair

7. Change Log

Date Description
3/10/2025 Initial Version