.. _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
UINT32sequence_number
Timestamptimestamp
Timestampvirtual_timestamp
Durationtimestep
Durationvirtual_timestep
>,shape=box,style=filled,fillcolor="white"]; "9" [label=<
Timestamp
UINT64time
>,shape=box,style=filled,fillcolor="white"]; "1" [label=<
ComponentInfo
ASCII-STRINGid
ComponentStatelifecycle
InputPortinputs
OutputPortoutputs
Durationuptime
Frequencyfreqency
>,shape=box,style=filled,fillcolor="white"]; "7" [label=<
Frequency
FLOAT64hz
>,shape=box,style=filled,fillcolor="white"]; "6" [label=<
Duration
UINT64time
>,shape=box,style=filled,fillcolor="white"]; "5" [label=<
OutputPort
ASCII-STRINGscope
UINT64buffersize
UINT64filling
>,shape=box,style=filled,fillcolor="white"]; "4" [label=<
InputPort
ASCII-STRINGscope
UINT64buffersize
UINT64filling
>,shape=box,style=filled,fillcolor="white"]; "2" [label=<
ComponentState
Statestate
>,shape=box,style=filled,fillcolor="white"]; "3" [label=<
State
OFF1
ON2
PAUSED3
EXECUTION4
ONLINELEARNING5
OFFLINELEARNING6
RESET7
LOADED8
PERSISTED9
>,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"[dir=both,arrowtail=odiamond]; "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 ` .. literalinclude:: //home/jenkins/workspace/rst-manual-trunk/upstream/RST-0.19.0-Linux/share/rst0.19/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 ` .. literalinclude:: //home/jenkins/workspace/rst-manual-trunk/upstream/RST-0.19.0-Linux/share/rst0.19/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 ` .. literalinclude:: //home/jenkins/workspace/rst-manual-trunk/upstream/RST-0.19.0-Linux/share/rst0.19/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 ` .. literalinclude:: //home/jenkins/workspace/rst-manual-trunk/upstream/RST-0.19.0-Linux/share/rst0.19/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 ` .. literalinclude:: //home/jenkins/workspace/rst-manual-trunk/upstream/RST-0.19.0-Linux/share/rst0.19/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 ` .. literalinclude:: //home/jenkins/workspace/rst-manual-trunk/upstream/RST-0.19.0-Linux/share/rst0.19/proto/sandbox/rst/cbse/OutputPort.proto :lines: 12-22 :language: protobuf :emphasize-lines: 3-3,6-6,9-9