add time_daemon component requirements - #153
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
There was a problem hiding this comment.
Pull request overview
Adds initial S-CORE process documentation scaffolding for the score/time_daemon component, establishing requirement artifacts and architecture boilerplate to support traceability and future inspection.
Changes:
- Added component requirements document and requirements inspection checklist under
score/time_daemon/docs/requirements/. - Added architecture boilerplate and architecture inspection checklist under
score/time_daemon/docs/architecture/. - Added component-level docs entry point and toctree wiring for requirements + architecture.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| score/time_daemon/docs/requirements/requirements.rst | Introduces initial comp_req entries for time_daemon (draft/invalid baseline). |
| score/time_daemon/docs/requirements/index.rst | Adds requirements section toctree for the component docs. |
| score/time_daemon/docs/requirements/chklst_req_inspection.rst | Adds requirements inspection checklist template for the component. |
| score/time_daemon/docs/index.rst | Adds the component documentation landing page linking requirements and architecture. |
| score/time_daemon/docs/architecture/index.rst | Adds architecture section toctree for the component docs. |
| score/time_daemon/docs/architecture/component_architecture.rst | Adds component architecture boilerplate, including comp and static/dynamic view placeholders. |
| score/time_daemon/docs/architecture/chklst_arc_inspection.rst | Adds architecture inspection checklist template for the component. |
Suppressed comments (2)
score/time_daemon/docs/architecture/component_architecture.rst:102
- The "comp_arc_dyn" need has an empty ":fulfils:" option. If requirement allocation is not decided yet, avoid empty relation fields to prevent Sphinx-Needs warnings/errors.
:belongs_to: comp__time_daemon
:fulfils:
score/time_daemon/docs/architecture/chklst_arc_inspection.rst:178
- Extra quote characters in the note: ""n/a"" should be "n/a".
Note: If a Review ID is not applicable for your architecture, then state ""n/a" in status and comment accordingly in remarks.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
20e33f8 to
2c79177
Compare
55625e2 to
2c79177
Compare
2c79177 to
210b4ce
Compare
210b4ce to
c8600ef
Compare
901a9dd to
3406c3a
Compare
b6ec48f to
de42f18
Compare
e5b427d to
6c5353e
Compare
f9fcb3c to
9835a27
Compare
| :version: 1 | ||
| :satisfied_by: comp__time_daemon | ||
|
|
||
| The time_daemon component shall initialize the gPTP shared memory reader, time data verification (synchronization validation, time jump detection, timeout detection), and IPC publisher during initialization. Initialization shall fail if not completed within 20 seconds. |
There was a problem hiding this comment.
Where do the 20s come from?
There was a problem hiding this comment.
Initialization of SVT handler jobs: https://github.com/etas-contrib/score_time/blob/5333532c32fab9b8e2a63bb311d3ddae4ea2ef3c/score/time_daemon/src/application/svt/svt_handler.cpp#L57
If these fail the ctrl flow divider and gptp publisher aren't started.
| :status: valid | ||
| :version: 1 | ||
|
|
||
| The user shall ensure gPTP shared memory is initialized and the time_slave component is running before starting time_daemon. Starting time_daemon without an initialized shared memory region will cause shared memory access failures or reading of stale/uninitialized time data during startup. |
There was a problem hiding this comment.
Imho wrong order: I'd say - if at all - time_daemon should start first. Better would be if both sides check if shmem is already initialized and do if not.
There was a problem hiding this comment.
The time_slave creates the shmem resource, time_daemon just tries to open it and fails if it doesn't exist. For current implementation I think this req is correct - can update so current impl doesn't actually implement this req if you want?
There was a problem hiding this comment.
You're right - saw this while reviewing the ts_client requirements. Currently it's a broadcast mechanism: one sender/writer, multiple receivers/readers. This would not have been required because it's actually a one-to-one interface between time slave and daemon. Which is different for the interface from time_daemon to applications ...
My intuition told me "the daemon is a more carefully developed component, so it shall maintain the shmem". In the end it should be possible that one of both components can crash, be restarted and the communication is continued.
But for now let's keep it as is.
Improvement
Description
Add initial component documentation for time_daemon following S-CORE process
Related ticket
Part of #64