.. _package-rst-cbse:
==================
Package rst.cbse
==================
Component based software engineering data types.
Currently only draft types with known problems. Use with caution!
Messages
========
.. container:: mess4ge-multi
.. container:: mess4ge-graph
.. digraph:: message_graph
fontname="Arial";
fontsize=11;
stylesheet="../_static/graphs.css";
node [fontsize=11,fontname="Arial"]
edge [fontsize=11,fontname="Arial"]
"8" [label=<
| Tick |
|
UINT32 | sequence_number |
Timestamp | timestamp |
Timestamp | virtual_timestamp |
Duration | timestep |
Duration | virtual_timestep |
>,shape=box,style=filled,fillcolor="white"];
"9" [label=< | Timestamp |
|
UINT64 | time |
>,shape=box,style=filled,fillcolor="white"];
"1" [label=< | ComponentInfo |
|
ASCII-STRING | id |
ComponentState | lifecycle |
InputPort | inputs |
OutputPort | outputs |
Duration | uptime |
Frequency | freqency |
>,shape=box,style=filled,fillcolor="white"];
"7" [label=< | Frequency |
|
FLOAT64 | hz |
>,shape=box,style=filled,fillcolor="white"];
"6" [label=< | Duration |
|
UINT64 | time |
>,shape=box,style=filled,fillcolor="white"];
"5" [label=< | OutputPort |
|
ASCII-STRING | scope |
UINT64 | buffersize |
UINT64 | filling |
>,shape=box,style=filled,fillcolor="white"];
"4" [label=< | InputPort |
|
ASCII-STRING | scope |
UINT64 | buffersize |
UINT64 | filling |
>,shape=box,style=filled,fillcolor="white"];
"2" [label=< | ComponentState |
|
State | state |
>,shape=box,style=filled,fillcolor="white"];
"3" [label=< | State |
|
OFF | 1 |
ON | 2 |
PAUSED | 3 |
EXECUTION | 4 |
ONLINELEARNING | 5 |
OFFLINELEARNING | 6 |
RESET | 7 |
LOADED | 8 |
PERSISTED | 9 |
>,shape=box,style=filled,fillcolor="white"];
"8":virtual_timestep -> "6" [];
"8":timestep -> "6" [];
"8":virtual_timestamp -> "9" [];
"8":timestamp -> "9" [];
"1":freqency -> "7" [];
"1":uptime -> "6" [];
"1":outputs -> "5" [];
"1":inputs -> "4" [];
"1":lifecycle -> "2" [];
"2" -> "3" [];
"2":state -> "3" [];
.. container:: mess4ge-list
.. container:: messages
* :ref:`ComponentInfo `
* :ref:`InputPort `
* :ref:`ComponentState `
* :ref:`Tick `
* :ref:`OutputPort `
.. container:: clearer
clearer: should be made invisible via css
.. _message-rst-cbse-componentinfo:
Message ComponentInfo
---------------------
.. container:: message-rst-cbse-componentinfo-multi
.. container:: message-rst-cbse-componentinfo-documentation
.. py:class:: rst.cbse.ComponentInfo
Holds information about a component.
.. todo::
Should be split up in static (structure) and dynamic part
(timing, state, buffer filling levels, ...)
.. codeauthor:: Arne Nordmann
.. py:attribute:: id
:type: :py:class:`ASCII-STRING`
*Not documented*
.. py:attribute:: lifecycle
:type: :py:class:`rst.cbse.ComponentState`
*Not documented*
.. py:attribute:: inputs
:type: :py:class:`rst.cbse.InputPort`
*Not documented*
.. py:attribute:: outputs
:type: :py:class:`rst.cbse.OutputPort`
*Not documented*
.. py:attribute:: uptime
:type: :py:class:`rst.timing.Duration`
*Not documented*
.. py:attribute:: freqency
:type: :py:class:`rst.timing.Frequency`
*Not documented*
.. container:: message-rst-cbse-componentinfo-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/ComponentInfo.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/ComponentInfo.proto
:lines: 21-35
:language: protobuf
:emphasize-lines: 3-3,5-5,7-7,9-9,11-11,13-13
.. _message-rst-cbse-inputport:
Message InputPort
-----------------
.. container:: message-rst-cbse-inputport-multi
.. container:: message-rst-cbse-inputport-documentation
.. py:class:: rst.cbse.InputPort
Holds information about an input port.
.. codeauthor:: Arne Nordmann
.. py:attribute:: scope
:type: :py:class:`ASCII-STRING`
*Not documented*
.. py:attribute:: buffersize
:type: :py:class:`UINT64`
@unit(number-or-bytes?)
.. py:attribute:: filling
:type: :py:class:`UINT64`
@unit(number-or-bytes?)
.. container:: message-rst-cbse-inputport-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/InputPort.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/InputPort.proto
:lines: 12-22
:language: protobuf
:emphasize-lines: 3-3,6-6,9-9
.. _message-rst-cbse-componentstate:
Message ComponentState
----------------------
.. container:: message-rst-cbse-componentstate-multi
.. container:: message-rst-cbse-componentstate-documentation
.. py:class:: rst.cbse.ComponentState
Holds information about a component`s lifecycle state. May also be used to
trigger a component to transition to the according state.
Feel free to extend the State enum.
.. codeauthor:: Arne Nordmann
.. py:attribute:: state
:type: :py:class:`rst.cbse.ComponentState.State`
*Not documented*
.. container:: message-rst-cbse-componentstate-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/ComponentState.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/ComponentState.proto
:lines: 14-43
:language: protobuf
:emphasize-lines: 28-28
.. _message-rst-cbse-componentstate-state:
Message State
-------------
.. container:: message-rst-cbse-componentstate-state-multi
.. container:: message-rst-cbse-componentstate-state-documentation
.. py:class:: rst.cbse.ComponentState.State
Possible lifecycle states
.. py:attribute:: OFF
= 1
Not running / off / stopped
.. py:attribute:: ON
= 2
Running / on / online -- rather generic, try to use more specific
state, see below
.. py:attribute:: PAUSED
= 3
Paused
.. py:attribute:: EXECUTION
= 4
On and running / executing
.. py:attribute:: ONLINELEARNING
= 5
Online learning, but still responsive
.. py:attribute:: OFFLINELEARNING
= 6
Offline learning and not responsive
.. py:attribute:: RESET
= 7
Resetted
.. py:attribute:: LOADED
= 8
Component was just loaded from persisted state
.. py:attribute:: PERSISTED
= 9
Component state was just persisted
.. container:: message-rst-cbse-componentstate-state-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/ComponentState.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/ComponentState.proto
:lines: 19-39
:language: protobuf
:emphasize-lines: 3-3,6-6,8-8,10-10,12-12,14-14,16-16,18-18,20-20
.. _message-rst-cbse-tick:
Message Tick
------------
.. container:: message-rst-cbse-tick-multi
.. container:: message-rst-cbse-tick-documentation
.. py:class:: rst.cbse.Tick
Tick sent to a component in a component circuit (as used by a global
heartbeat). Including support for virtual (simulation) time often found in
robotics applications.
.. codeauthor:: Arne Nordmann
.. py:attribute:: sequence_number
:type: :py:class:`UINT32`
Sequence number of the tick. This sequence number is unique "within" the
sending heartbeat.
.. py:attribute:: timestamp
:type: :py:class:`rst.timing.Timestamp`
**Unit**: microseconds
Real time timestamp
.. py:attribute:: virtual_timestamp
:type: :py:class:`rst.timing.Timestamp`
**Unit**: microseconds
Virtual (simulation) timestamp
.. py:attribute:: timestep
:type: :py:class:`rst.timing.Duration`
**Unit**: microseconds
(Real) Timestep since last tick
.. py:attribute:: virtual_timestep
:type: :py:class:`rst.timing.Duration`
**Unit**: microseconds
Virtual (simulation) timestep since last tick
.. container:: message-rst-cbse-tick-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/Tick.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/Tick.proto
:lines: 17-49
:language: protobuf
:emphasize-lines: 7-7,13-13,19-19,25-25,31-31
.. _message-rst-cbse-outputport:
Message OutputPort
------------------
.. container:: message-rst-cbse-outputport-multi
.. container:: message-rst-cbse-outputport-documentation
.. py:class:: rst.cbse.OutputPort
Holds information about an output port.
.. codeauthor:: Arne Nordmann
.. py:attribute:: scope
:type: :py:class:`ASCII-STRING`
*Not documented*
.. py:attribute:: buffersize
:type: :py:class:`UINT64`
@unit(number-or-bytes?)
.. py:attribute:: filling
:type: :py:class:`UINT64`
@unit(number-or-bytes?)
.. container:: message-rst-cbse-outputport-source
:download:`Download this file /home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/OutputPort.proto>`
.. literalinclude:: //home/jenkins/workspace/rst-manual-0.15-merge-simulator/upstream/RST-0.15.0-Linux/share/rst0.15/proto/sandbox/rst/cbse/OutputPort.proto
:lines: 12-22
:language: protobuf
:emphasize-lines: 3-3,6-6,9-9