User Manual#
User Manual Time Module
|
status: draft
security: NO
safety: QM
|
||||
Overview#
This user manual provides comprehensive guidance for integrating and deploying the S-CORE time module from a system integrator perspective.
The S-CORE time module provides a robust, high-precision time base for applications on an ECU,
synchronized to a network-wide PTP (Precision Time Protocol) Grandmaster Clock. The module consists of three components:
Client Library (
score::time): C++ API for accessing synchronized timeTimeSlave: System daemon that synchronizes with the PTP Grandmaster over the network
TimeDaemon: System daemon that provides quality-assured time to client applications
This module manual covers module-level integration, deployment, and troubleshooting. For component-specific usage and configuration, refer to the component manuals below.
For build and test of the module itself, please refer to the main documentation.
Component Manuals#
For detailed component-specific user manuals:
Environment Needs#
Basic needed software environment for the module:
C++: C++17 or later
Build System: Bazel 6.0 or later
Operating Systems: Linux, QNX
Dependencies#
Standard library (STL/Core)
PTP Grandmaster Clock (external network time source)
POSIX shared memory support
Network hardware with PHC (PTP Hardware Clock) support
See also MODULE.bazel files for more details on dependencies.
Performance Considerations#
The time module is designed for high-performance, low-latency time access in automotive ECUs:
VehicleTime access: Sub-microsecond latency via POSIX shared memory with seqlock
Lock-free IPC: TimeDaemon reads from TimeSlave without blocking
Hardware clock sync: Direct PHC adjustment for nanosecond-precision synchronization
Minimal overhead: Singleton pattern, zero allocations in time-critical paths
For detailed performance analysis and benchmarks, this information will be added in future releases.
Integration Guidelines#
Integrating with Your Project#
Add the module to your Bazel workspace:
# In your MODULE.bazel bazel_dep(name = "score_time", version = "1.0")
Reference in your build files:
cc_library( name = "my_target", deps = ["@score_time//score/time/vehicle_time:vehicle_time"], )
Include headers and compile your code
System Services Deployment#
The time module requires two system daemons to be running. These processes must be managed by the system’s service manager (e.g., systemd on Linux, or a launch script on QNX).
Version History, Compatibility, and Troubleshooting#
For comprehensive information on the following topics:
Version history and changes
Compatibility notes and upgrade instructions
Known issues and limitations
Troubleshooting tips and solutions
Security vulnerabilities (CVEs)
Safety and Security#
Safety Classification: QM (Quality Managed)
This module is designed for Quality Managed (QM) applications. For safety-critical usage requirements and guidelines, refer to the safety manual (to be added in future releases).
Security Considerations:
The
timemodule assumes a trusted network for PTP communicationNo authentication or encryption is provided for PTP messages (per IEEE 1588 standard)
OS-level security (Linux Capabilities) limits attack surface for TimeSlave daemon
For detailed security aspects and requirements, refer to the security manual (to be added in future releases).
License#
This module is licensed under the Apache License Version 2.0. See the LICENSE file in the repository for full license text.
Feedback and Contributions#
Your feedback and contributions are welcome! Please report issues or suggestions through the project’s issue tracker or contribute directly to the repository.