Skip to content

Add user manuals for time module - #148

Open
ryan-steel wants to merge 26 commits into
eclipse-score:mainfrom
etas-contrib:docs/ryan-steel-LudwigAtBosch-user-manual
Open

Add user manuals for time module#148
ryan-steel wants to merge 26 commits into
eclipse-score:mainfrom
etas-contrib:docs/ryan-steel-LudwigAtBosch-user-manual

Conversation

@ryan-steel

@ryan-steel ryan-steel commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Improvement

Adds user-facing documentation for S-CORE time module and its key components.

Description

  • Added module manuals for integration and troubleshooting
  • Added component manuals for time library, TimeSlave, and TimeDaemon
  • Added main index links so users can navigate module and component docs
  • Updates score_docs_as_code to 6.0.0 and updates score_time to use new docs bundles.

Related Ticket

closes #125 (improvement ticket)

ryan-steel and others added 9 commits July 15, 2026 12:44
It includes

- An overall architecture introduction and a guide for choosing the
  right clock.
- A detailed API description covering basic usage, lifecycle management,
  advanced subscriptions, and unit-testing patterns.
- A dedicated integration guide for system integrators.
- A troubleshooting guide for diagnosing common runtime issues.
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.6.0) and connecting to it...
INFO: Invocation ID: ab4e72ad-f632-4736-9df5-cbe673d70b7c
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 3 packages loaded
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Loading: 3 packages loaded
    currently loading: 
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)
Analyzing: target //:license-check (4 packages loaded, 0 targets configured)

Analyzing: target //:license-check (29 packages loaded, 10 targets configured)

Analyzing: target //:license-check (85 packages loaded, 10 targets configured)

Analyzing: target //:license-check (143 packages loaded, 2895 targets configured)

Analyzing: target //:license-check (155 packages loaded, 6408 targets configured)

Analyzing: target //:license-check (159 packages loaded, 9278 targets configured)

Analyzing: target //:license-check (165 packages loaded, 9313 targets configured)

Analyzing: target //:license-check (167 packages loaded, 9338 targets configured)

Analyzing: target //:license-check (167 packages loaded, 9338 targets configured)

Analyzing: target //:license-check (167 packages loaded, 9338 targets configured)

Analyzing: target //:license-check (170 packages loaded, 11226 targets configured)

INFO: Analyzed target //:license-check (172 packages loaded, 11476 targets configured).
[1 / 13] Writing repo mapping manifest for //:license.check.license_check; 0s local ... (3 actions running)
INFO: From Generating Dash formatted dependency file ...:
INFO: Successfully converted 2 packages from Cargo.lock to bazel-out/k8-fastbuild/bin/formatted.txt
[14 / 16] [Prepa] JavaToolchainCompileBootClasspath external/rules_java+/toolchains/platformclasspath.jar
[15 / 16] Building license.check.license_check.jar (); 0s disk-cache, multiplex-worker
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 29.610s, Critical Path: 2.69s
INFO: 16 processes: 12 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 16 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

@ryan-steel
ryan-steel force-pushed the docs/ryan-steel-LudwigAtBosch-user-manual branch from fc5eec7 to 1345156 Compare August 12, 2026 14:19
@ryan-steel
ryan-steel force-pushed the docs/ryan-steel-LudwigAtBosch-user-manual branch from 1345156 to 70c6f70 Compare August 13, 2026 10:25
Comment thread docs/module/index.rst Outdated
Comment thread docs/module/manuals/config/.gitkeep Outdated
Comment thread docs/module/manuals/performance/.gitkeep Outdated
Comment thread docs/module/manuals/api_description/api_usage.rst Outdated
Comment thread docs/module/manuals/examples/basic_clocks.rst Outdated
Comment thread docs/index.rst
Comment thread score/time/docs/index.rst Outdated
Comment thread score/time_slave/docs/manuals/config/configuration_guide.rst Outdated
Comment thread score/time_slave/docs/manuals/config/configuration_guide.rst Outdated
Comment thread score/time_slave/docs/index.rst Outdated
Comment thread docs/module/manuals/api_description/api_usage.rst Outdated
Comment thread docs/components/index.rst

.. _ components::

Components

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see the components subfolder in the folder structure document
https://eclipse-score.github.io/score/main/contribute/general/folder.html

so, my question is why it is still here and do we really need it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's in the module template - gives a place for the docs_as_code docs_bundles to be injected.

@anmittag can you confirm whether this will be added to folder.rst?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as the components are part of the /score subfolder you can delete it. template will be unpdated.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The components are part of the score/ subfolder, but this gives us a place to mount the docs bundles generated from the docs_as_code directive in BUILD. Can you give an alternative for where it should be mounted?

Comment thread docs/module/manuals/safety_manual.rst Outdated
Comment thread docs/module/manuals/security_manual.rst Outdated
Comment thread docs/safety_mgt/.gitkeep Outdated
Comment thread docs/index.rst
@ryan-steel
ryan-steel force-pushed the docs/ryan-steel-LudwigAtBosch-user-manual branch from edaa513 to 2c86705 Compare August 14, 2026 12:08
const auto system_snapshot = score::time::SystemClock::GetInstance().Now();
const auto steady_snapshot = score::time::SteadyClock::GetInstance().Now();
const auto high_res_snapshot = score::time::HighResSteadyClock::GetInstance().Now();
const auto vehicle_snapshot = score::time::VehicleClock::GetInstance().Now();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure, if this is correct for the vehicle time.
@lavrovvalera: Don't we need the call to init for this?

- Key Characteristic
- Typical Use Case
* - ``VehicleTime``
- High-precision, PTP-synchronized, quality-assured network time.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah - forgot to mention this last time:
Is this really about precision or more about accuracy?
In short:

  • Accuracy - the better the lower the absolute deviation from the master
  • Precision - low spreading if queried multiple times
    (Ask Google or Wikipedia for difference between accuracy, precision, and resolution)

const auto system_tp = system_snapshot.TimePoint();
const auto steady_tp = steady_snapshot.TimePoint();
const auto high_res_tp = high_res_snapshot.TimePoint();
const auto vehicle_tp = vehicle_snapshot.TimePoint();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We suggest the vehicle time is always valid, here. We should at least add this check:

if (vehicle_snapshot.Status().HasBeenSynchronized()) {
    const auto vehicle_tp = vehicle_snapshot.TimePoint();
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

docs/manuals/: Create user manual

5 participants