Standardized Component Template

Every IO, Program, and Protocol component page must use the section order below. Keep the content concise and wrap lines at 80 characters when possible.

Status Labels

Every component page must state its implementation status on line 2 or 3 (after the title), using exactly one of the labels below:

  • **Status:** Stable — mature, tested, no known issues

  • **Status:** Implemented — functional; may have known limitations

  • **Status:** In Progress — under active development, partial coverage

  • **Status:** Planned — designed or discussed but not yet coded

Required Section Order

Overview

Provide a functional description of the component. Explain what it does, when to use it, and any relevant behavior visible to descriptor authors.

Implementation

Document implementation details that matter to maintainers. Describe the main runtime flow, constraints, and notable interactions with handlers, bindings, or external devices.

Configuration

Show descriptor examples in the same YAML shape accepted by dawnpy. Default examples should omit instance unless a fixed instance is part of the documented behavior.

Kconfig

List any relevant build-time options here. If the component has no dedicated Kconfig switches worth documenting, say so explicitly.

YAML

Show the runtime descriptor example here.

ios:
  - id: my_io
    type: dummy
    dtype: uint32
    rw: true
    config:
      init_value: 123
programs:
  - id: my_prog
    type: stats_min
    config:
      inputs:
        - my_input
      outputs:
        - my_output
protocols:
  - id: my_proto
    type: shell
    config:
      bindings:
        - my_io
      prompt: "dawn> "

External Control

This section is optional. Use it to list supported object-to-object control or trigger relationships such as ControlIO and TriggerIO. When this section is present, list each relevant interface explicitly and mark whether it is supported.

Example

  • ControlIO: supported

  • TriggerIO: not supported

Brainstorming & Future Ideas

This section is optional. Use it for design notes, follow-up ideas, or known limitations that should not be presented as current behavior. Keep it forward-looking and avoid repeating current implementation facts.

Doxygen

End every component page with links to the generated Doxygen pages.

- `API Reference Index <../../api/index.html>`_
- `dawn::MyComponent <../../doxygen/classdawn_1_1MyComponent.html>`_