Package rst.cbse

Component based software engineering data types.

Currently only draft types with known problems. Use with caution!

Messages

digraph message_graph { fontname="Arial"; fontsize=11; stylesheet="../_static/graphs.css"; node [fontsize=11,fontname="Arial"] edge [fontsize=11,fontname="Arial"] "8" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.Tick" TITLE="Message rst.cbse.Tick" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message-sandbox.svg"></IMG></TD><TD ALIGN="left">Tick</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-UINT32.html#UINT32" TITLE="Fundamental UINT32" TARGET="_parent">UINT32</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.Tick.sequence_number" TITLE="Field rst.cbse.Tick.sequence_number" TARGET="_parent" PORT="sequence_number">sequence_number</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp" TITLE="Message rst.timing.Timestamp" TARGET="_parent">Timestamp</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.Tick.timestamp" TITLE="Field rst.cbse.Tick.timestamp" TARGET="_parent" PORT="timestamp">timestamp</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp" TITLE="Message rst.timing.Timestamp" TARGET="_parent">Timestamp</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.Tick.virtual_timestamp" TITLE="Field rst.cbse.Tick.virtual_timestamp" TARGET="_parent" PORT="virtual_timestamp">virtual_timestamp</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Duration" TITLE="Message rst.timing.Duration" TARGET="_parent">Duration</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.Tick.timestep" TITLE="Field rst.cbse.Tick.timestep" TARGET="_parent" PORT="timestep">timestep</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Duration" TITLE="Message rst.timing.Duration" TARGET="_parent">Duration</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.Tick.virtual_timestep" TITLE="Field rst.cbse.Tick.virtual_timestep" TARGET="_parent" PORT="virtual_timestep">virtual_timestep</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "9" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp" TITLE="Message rst.timing.Timestamp" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Timestamp</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Timestamp.time" TITLE="Field rst.timing.Timestamp.time" TARGET="_parent" PORT="time">time</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "1" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo" TITLE="Message rst.cbse.ComponentInfo" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message-sandbox.svg"></IMG></TD><TD ALIGN="left">ComponentInfo</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo.id" TITLE="Field rst.cbse.ComponentInfo.id" TARGET="_parent" PORT="id">id</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState" TITLE="Message rst.cbse.ComponentState" TARGET="_parent">ComponentState</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo.lifecycle" TITLE="Field rst.cbse.ComponentInfo.lifecycle" TARGET="_parent" PORT="lifecycle">lifecycle</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.InputPort" TITLE="Message rst.cbse.InputPort" TARGET="_parent">InputPort</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo.inputs" TITLE="Field rst.cbse.ComponentInfo.inputs" TARGET="_parent" PORT="inputs">inputs</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.OutputPort" TITLE="Message rst.cbse.OutputPort" TARGET="_parent">OutputPort</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo.outputs" TITLE="Field rst.cbse.ComponentInfo.outputs" TARGET="_parent" PORT="outputs">outputs</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Duration" TITLE="Message rst.timing.Duration" TARGET="_parent">Duration</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo.uptime" TITLE="Field rst.cbse.ComponentInfo.uptime" TARGET="_parent" PORT="uptime">uptime</TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Frequency" TITLE="Message rst.timing.Frequency" TARGET="_parent">Frequency</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentInfo.freqency" TITLE="Field rst.cbse.ComponentInfo.freqency" TARGET="_parent" PORT="freqency">freqency</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "7" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-timing.html#rst.timing.Frequency" TITLE="Message rst.timing.Frequency" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Frequency</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/stable/package-__rosetta-FLOAT64.html#FLOAT64" TITLE="Fundamental FLOAT64" TARGET="_parent">FLOAT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Frequency.hz" TITLE="Field rst.timing.Frequency.hz" TARGET="_parent" PORT="hz">hz</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "6" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/stable/package-rst-timing.html#rst.timing.Duration" TITLE="Message rst.timing.Duration" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message.svg"></IMG></TD><TD ALIGN="left">Duration</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/stable/package-rst-timing.html#rst.timing.Duration.time" TITLE="Field rst.timing.Duration.time" TARGET="_parent" PORT="time">time</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "5" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.OutputPort" TITLE="Message rst.cbse.OutputPort" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message-sandbox.svg"></IMG></TD><TD ALIGN="left">OutputPort</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.OutputPort.scope" TITLE="Field rst.cbse.OutputPort.scope" TARGET="_parent" PORT="scope">scope</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.OutputPort.buffersize" TITLE="Field rst.cbse.OutputPort.buffersize" TARGET="_parent" PORT="buffersize">buffersize</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.OutputPort.filling" TITLE="Field rst.cbse.OutputPort.filling" TARGET="_parent" PORT="filling">filling</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "4" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.InputPort" TITLE="Message rst.cbse.InputPort" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message-sandbox.svg"></IMG></TD><TD ALIGN="left">InputPort</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-ASCII-STRING.html#ASCII-STRING" TITLE="Fundamental ASCII-STRING" TARGET="_parent">ASCII-STRING</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.InputPort.scope" TITLE="Field rst.cbse.InputPort.scope" TARGET="_parent" PORT="scope">scope</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.InputPort.buffersize" TITLE="Field rst.cbse.InputPort.buffersize" TARGET="_parent" PORT="buffersize">buffersize</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-__rosetta-UINT64.html#UINT64" TITLE="Fundamental UINT64" TARGET="_parent">UINT64</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.InputPort.filling" TITLE="Field rst.cbse.InputPort.filling" TARGET="_parent" PORT="filling">filling</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "2" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState" TITLE="Message rst.cbse.ComponentState" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/message-sandbox.svg"></IMG></TD><TD ALIGN="left">ComponentState</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State" TITLE="Enum rst.cbse.ComponentState.State" TARGET="_parent">State</TD><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.state" TITLE="Field rst.cbse.ComponentState.state" TARGET="_parent" PORT="state">state</TD></TR></TABLE>>,shape=box,style=filled,fillcolor="white"]; "3" [label=<<TABLE BORDER="0"><TR><TD COLSPAN="2" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State" TITLE="Enum rst.cbse.ComponentState.State" TARGET="_parent"><TABLE BORDER="0"><TR><TD ALIGN="right"><IMG SRC="../_static/enum-sandbox.svg"></IMG></TD><TD ALIGN="left">State</TD></TR></TABLE></TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.OFF" TITLE="Value rst.cbse.ComponentState.State.OFF" TARGET="_parent">OFF</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.OFF" TITLE="Value rst.cbse.ComponentState.State.OFF" TARGET="_parent">1</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.ON" TITLE="Value rst.cbse.ComponentState.State.ON" TARGET="_parent">ON</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.ON" TITLE="Value rst.cbse.ComponentState.State.ON" TARGET="_parent">2</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.PAUSED" TITLE="Value rst.cbse.ComponentState.State.PAUSED" TARGET="_parent">PAUSED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.PAUSED" TITLE="Value rst.cbse.ComponentState.State.PAUSED" TARGET="_parent">3</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.EXECUTION" TITLE="Value rst.cbse.ComponentState.State.EXECUTION" TARGET="_parent">EXECUTION</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.EXECUTION" TITLE="Value rst.cbse.ComponentState.State.EXECUTION" TARGET="_parent">4</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.ONLINELEARNING" TITLE="Value rst.cbse.ComponentState.State.ONLINELEARNING" TARGET="_parent">ONLINELEARNING</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.ONLINELEARNING" TITLE="Value rst.cbse.ComponentState.State.ONLINELEARNING" TARGET="_parent">5</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.OFFLINELEARNING" TITLE="Value rst.cbse.ComponentState.State.OFFLINELEARNING" TARGET="_parent">OFFLINELEARNING</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.OFFLINELEARNING" TITLE="Value rst.cbse.ComponentState.State.OFFLINELEARNING" TARGET="_parent">6</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.RESET" TITLE="Value rst.cbse.ComponentState.State.RESET" TARGET="_parent">RESET</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.RESET" TITLE="Value rst.cbse.ComponentState.State.RESET" TARGET="_parent">7</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.LOADED" TITLE="Value rst.cbse.ComponentState.State.LOADED" TARGET="_parent">LOADED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.LOADED" TITLE="Value rst.cbse.ComponentState.State.LOADED" TARGET="_parent">8</TD></TR><TR><TD ALIGN="left" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.PERSISTED" TITLE="Value rst.cbse.ComponentState.State.PERSISTED" TARGET="_parent">PERSISTED</TD><TD ALIGN="right" HREF="../generated/sandbox/package-rst-cbse.html#rst.cbse.ComponentState.State.PERSISTED" TITLE="Value rst.cbse.ComponentState.State.PERSISTED" TARGET="_parent">9</TD></TR></TABLE>>,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"[]; }

clearer: should be made invisible via css

Message ComponentInfo

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, …)

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

id
Type:ASCII-STRING

Not documented

lifecycle
Type:rst.cbse.ComponentState

Not documented

inputs
Type:rst.cbse.InputPort

Not documented

outputs
Type:rst.cbse.OutputPort

Not documented

uptime
Type:rst.timing.Duration

Not documented

freqency
Type:rst.timing.Frequency

Not documented

Download this file

message ComponentInfo {

    required string id = 1;

    required ComponentState lifecycle = 2;

    required InputPort inputs = 3;

    required OutputPort outputs = 4;

    optional timing.Duration uptime = 5;

    optional timing.Frequency freqency = 6;

}

Message InputPort

class rst.cbse.InputPort

Holds information about an input port.

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

scope
Type:ASCII-STRING

Not documented

buffersize
Type:UINT64

@unit(number-or-bytes?)

filling
Type:UINT64

@unit(number-or-bytes?)

Download this file

message InputPort {

    required string scope = 1;

    // @unit(number-or-bytes?)
    optional uint64 buffersize = 2;

    // @unit(number-or-bytes?)
    optional uint64 filling = 3;

}

Message ComponentState

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.

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

state
Type:rst.cbse.ComponentState.State

Not documented

Download this file

message ComponentState {

    /**
     * Possible lifecycle states
     */
    enum State {
        // Not running / off / stopped
        OFF = 1;
        // Running / on / online -- rather generic, try to use more specific
        // state, see below
        ON = 2;
        // Paused
        PAUSED = 3;
        // On and running / executing
        EXECUTION = 4;
        // Online learning, but still responsive
        ONLINELEARNING = 5;
        // Offline learning and not responsive
        OFFLINELEARNING = 6;
        // Resetted
        RESET = 7;
        // Component was just loaded from persisted state
        LOADED = 8;
        // Component state was just persisted
        PERSISTED = 9;
    }

    required State state = 1;

}

Message State

class rst.cbse.ComponentState.State

Possible lifecycle states

OFF
= 1

Not running / off / stopped

ON
= 2

Running / on / online – rather generic, try to use more specific state, see below

PAUSED
= 3

Paused

EXECUTION
= 4

On and running / executing

ONLINELEARNING
= 5

Online learning, but still responsive

OFFLINELEARNING
= 6

Offline learning and not responsive

RESET
= 7

Resetted

LOADED
= 8

Component was just loaded from persisted state

PERSISTED
= 9

Component state was just persisted

Download this file

    enum State {
        // Not running / off / stopped
        OFF = 1;
        // Running / on / online -- rather generic, try to use more specific
        // state, see below
        ON = 2;
        // Paused
        PAUSED = 3;
        // On and running / executing
        EXECUTION = 4;
        // Online learning, but still responsive
        ONLINELEARNING = 5;
        // Offline learning and not responsive
        OFFLINELEARNING = 6;
        // Resetted
        RESET = 7;
        // Component was just loaded from persisted state
        LOADED = 8;
        // Component state was just persisted
        PERSISTED = 9;
    }

Message Tick

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.

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

sequence_number
Type:UINT32

Sequence number of the tick. This sequence number is unique “within” the sending heartbeat.

timestamp
Type:rst.timing.Timestamp

Unit: microseconds

Real time timestamp

virtual_timestamp
Type:rst.timing.Timestamp

Unit: microseconds

Virtual (simulation) timestamp

timestep
Type:rst.timing.Duration

Unit: microseconds

(Real) Timestep since last tick

virtual_timestep
Type:rst.timing.Duration

Unit: microseconds

Virtual (simulation) timestep since last tick

Download this file

message Tick {

    /**
     * Sequence number of the tick. This sequence number is unique "within" the
     * sending heartbeat.
     */
    required uint32 sequence_number = 1;

    /**
     * Real time timestamp
     */
    // @unit(microseconds)
    required timing.Timestamp timestamp = 2;

    /**
     * Virtual (simulation) timestamp
     */
    // @unit(microseconds)
    optional timing.Timestamp virtual_timestamp = 3;

    /**
     * (Real) Timestep since last tick
     */
    // @unit(microseconds)
    optional timing.Duration timestep = 4;

    /**
     * Virtual (simulation) timestep since last tick
     */
    // @unit(microseconds)
    optional timing.Duration virtual_timestep = 5;

}

Message OutputPort

class rst.cbse.OutputPort

Holds information about an output port.

Code author: Arne Nordmann <anordman@techfak.uni-bielefeld.de>

scope
Type:ASCII-STRING

Not documented

buffersize
Type:UINT64

@unit(number-or-bytes?)

filling
Type:UINT64

@unit(number-or-bytes?)

Download this file

message OutputPort {

    required string scope = 1;

    // @unit(number-or-bytes?)
    optional uint64 buffersize = 2;

    // @unit(number-or-bytes?)
    optional uint64 filling = 3;

}