Time Daemon Component Requirements#
Time Daemon Requirements
|
status: valid
security: NO
safety: ASIL_B
|
||||
Functional Requirements#
Initialization and Lifecycle#
Component Initialization
|
status: valid
security: NO
safety: ASIL_B
|
||||
On startup the time_daemon component shall determine its configuration and initialize the configured time synchronization data receiver, time data verification pipeline (synchronization validation, timeout detection, time jump detection), and IPC publisher. |
|||||
Initialization Retry
|
status: valid
security: NO
safety: ASIL_B
|
||||
If initialization of the time synchronization data receiver, time data verification pipeline, or IPC publisher fails, the time_daemon component shall retry to initialize the respective unit. |
|||||
Initialization Timeout
|
status: valid
security: NO
safety: ASIL_B
|
||||
If initialization is not completed within 20 seconds, the time_daemon component shall fail initialization and end the time_daemon process. |
|||||
Component Shutdown
|
status: valid
security: NO
safety: ASIL_B
|
||||
On receiving a stop signal (e.g. SIGINT or SIGTERM) the time_daemon component shall stop publishing time data and release IPC resources. |
|||||
Data Reception and Validation#
Time Synchronization Data Reception
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall receive time synchronization data from time_slave component using the ts_client component for IPC abstraction. |
|||||
Verification Pipeline#
Synchronization Status Validation
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall validate synchronization status based on received time synchronization data. |
|||||
Synchronization State Stabilization
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall not report time jumps during the configured time span (default: 5 seconds) after initial synchronization to avoid spuriously detected time jumps during startup. |
|||||
Time Jump Detection
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall detect time jumps when the master clock timestamp of a gPTP time sync data update differs from the expected value by more than the configured time span (default: 500 microseconds). Both forward and backward time jumps shall be detected. |
|||||
Timeout Detection
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall detect timeout condition when no new time synchronization data is received within the configured time span (default: 3.3 seconds). |
|||||
Data Publishing#
Time Data Publishing
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall publish the verified time synchronization data to the time component linked as a library into client applications. |
|||||
Published Time Data Content
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall include in published time data: the timestamp of the master clock, the corresponding timestamp of the local reference clock, the rate deviation between those two clocks, synchronization status, time jump status, and timeout status. |
|||||
Published Raw gPTP Data
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall include in published time data condensed raw data of the last received Sync/FollowUp pair and the last finished Pdelay measurement. |
|||||
Time Point Qualifier Production
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall derive the time point qualifier (quality indicator) of the time data provided to the time component from the synchronization status, time jump status, and timeout status. |
|||||
Client Read Access
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall provide the time component with functionality to read the published time data. |
|||||
Non-Blocking Read Access
|
status: valid
security: NO
safety: ASIL_B
|
||||
Reading the published time data shall not block the reading thread of a client application indefinitely. |
|||||
Multi-Client Support
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall allow parallel reads of the published time data from multiple client applications on different CPU cores. |
|||||
Error Handling and Recovery#
Error Reporting
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall log messages via the score::mw::log interface when initialization fails (error level), IPC access fails (error level), verification stage failures occur (warning level), or time synchronization data reception fails (error level). |
|||||
Error Reaction
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall continue publishing time data when a time jump, timeout, or loss of synchronization is detected, with the corresponding status set in the published time data. |
|||||
Time Jump Recovery
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall clear time jump condition after receiving 2 consecutive valid gPTP frames without time jump. |
|||||
Platform Abstraction#
Platform Support
|
status: valid
security: NO
safety: ASIL_B
|
||||
The time_daemon component shall support Linux and QNX 8.0 SDP platforms. |
|||||
Assumption of Use Requirements#
Time Slave Availability
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure the time_slave component is running before starting time_daemon, or is started such that it becomes available within the time_daemon initialization timeout. Otherwise time_daemon initialization will fail. |
|||||