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 |