Time System

ALMA has a distributed HW pulse, with a 48 ms interval, that the hardware will synchronize to[RD01 - 8.1.3. Distributed timing] [RD30]. Also devices on the CAN bus will be connected to the time bus to allow synchronization.

All time data in ACS (APIs, timestampsā€¦.) is based on the array time [RD01 - 8.1.1. Standard]. We assume that non-Real-Time boxes are simply synchronized to the array time using standard protocols, like NTP.

The Time System provides basic service for time handling. It includes:

Abstract API to access time information in ISO format [RD01 - 8.1.2. API] and to perform time conversion, arithmetic and formatting [RD01 - 5.3.1. Time conversion] to/from various time systems (UTC, TAIā€¦).

An abstract API for synchronization between applications based on array time.

Timer classes to trigger events based on time [RD01 - 8.1.4 Services]:

Applications can create instances of the timer class and register callbacks to be executed when the timer event is triggered
Timers can be periodic (retriggerable) or oneshot events

Absolute Time is internally represented in 100 ns since 1582-10-15 00:00:00, based on the OMG Time Service Specification. An IDL typedef is used to define the Time type:

A TimeInterval is defined as the difference between two absolute time points:

ISO format will be used "internally" whenever a string representation of time is needed. At User Interface level, more formats might be required. We provide now only ISO format. Users can request more formats via the Change Request SPR mechanism.