RandomTransmitter Satellite#

Name

RandomTransmitter

Description

A satellite that transmits random data

Category

Developer Tools

Language

C++

Description#

This satellite creates random data and sends it out as fast as possible, allowing to test the network performance. Random data can either be generated continuously during the run or once at the beginning of the run, which is faster.

When data sending is limited because the framework or the receiver cannot handle the data rate, the transmitter will sleep for 1ms. The duty cycle resulting from this is tracked in the DUTY_CYCLE metric.

Building#

The RandomTransmitter satellite has no additional dependencies. The satellite is not build by default, building can be enabled via:

meson configure build -Dsatellite_random_transmitter=true

Parameters#

Parameter

Type

Description

Default Value

pregen

Bool

Use pre-generated data

false

seed

Unsigned 32-bit integer

Seed for the random engine

Random

block_size

Unsigned integer

Size of a data block in bytes

1024

number_of_blocks

Unsigned integer

Number of data blocks per data message

1

Metrics#

Metric

Description

Value Type

Metric Type

Interval

DUTY_CYCLE

Total duty cycle of the run loop

Integer

LAST_VALUE

5s

Framework Parameters#

This satellite inherits the following framework parameters from its base classes:

Parameters inherited from TransmitterSatellite#

Parameter

Type

Description

Default Value

_bor_timeout

Unsigned integer

Timeout in seconds to send the BOR message. The satellite will attempt for this interval to send the message and goes into ERROR state if it fails to do so. A possible reason for failure is that no receiver satellite connected to this satellite and is receiving data.

10

_eor_timeout

Unsigned integer

Timeout in seconds to send the EOR message. The satellite will attempt for this interval to send the message and goes into ERROR state if it fails to do so.

10

_data_timeout

Unsigned integer

Timeout in seconds to send the data message. The satellite will attempt for this interval to send the message and goes into ERROR state if it fails to do so.

10

_payload_threshold

Unsigned integer

Threshold for sending data messages in KiB. The satellite will only send queued data records after the combined payload size of the data records has reached this threshold.

128

_queue_size

Unsigned integer

Size of the queue for the data records. Small values might lead to performance issues, large values lead to larger memory usage.

32768

_data_license

String

License this data is recorded under. Defaults to the Open Data Commons Attribution License. This information will be added to the run metadata.

ODC-By-1.0

Parameters inherited from Satellite#

Autonomous Operation#

Parameter

Type

Description

Default Value

_heartbeat_interval

Unsigned integer

Interval in seconds between heartbeats to be sent to other Constellation components

10

_role

Role name

Role this satellite should take in the Constellation. Accepted values are ESSENTIAL, DYNAMIC, TRANSIENT and NONE.

DYNAMIC

Transition Orchestration#

Parameters to control autonomous transition orchestration of satellites:

Parameter

Type

Description

Default Value

_conditional_transition_timeout

Unsigned integer

Timeout in seconds to wait for all conditions to be satisfied for conditional transitioning

30

_require_initializing_after

List of strings

List of canonical names of remote satellites for conditional transitioning in initializing state

-

_require_launching_after

List of strings

List of canonical names of remote satellites for conditional transitioning in launching state

-

_require_landing_after

List of strings

List of canonical names of remote satellites for conditional transitioning in landing state

-

_require_starting_after

List of strings

List of canonical names of remote satellites for conditional transitioning in starting state

-

_require_stopping_after

List of strings

List of canonical names of remote satellites for conditional transitioning in stopping state

-

Framework Metrics#

This satellite inherits the following framework metrics from its base classes:

Metrics inherited from TransmitterSatellite#

Metric

Description

Value Type

Metric Type

Interval

TX_BYTES

Amount of bytes transmitted during current run

Integer

LAST_VALUE

10s

TX_BLOCKS

Number of data blocks transmitted during current run

Integer

LAST_VALUE

10s

TX_RECORDS

Number of data records transmitted during current run

Integer

LAST_VALUE

10s

Metrics inherited from Satellite#

None