TransmitterSatellite module#

SPDX-FileCopyrightText: 2025 DESY and the Constellation authors SPDX-License-Identifier: EUPL-1.2

A base module for a Constellation Satellite that sends data.

class core.transmitter_satellite.TransmitterSatellite(data_port: int, *args: Any, **kwargs: Any)#

Bases: Satellite

Constellation Satellite which can send data via CDTP

property bor: dict[str, Any]#

User tags for the begin-of-run (EOR) message

can_send_record() bool#

Check if a data record can be send immediately

do_run(run_identifier: str) str#

Perform the data acquisition and enqueue the results.

This is only an abstract method. Inheriting classes must implement their own acquisition method.

This method will be executed in a separate thread by the underlying Satellite class. It therefore needs to monitor the self.stop_running Event and close itself down if the Event is set.

If you want to transmit a payload as part of the end-of-run message (EOR), set the corresponding value via the eor property before leaving this method.

This method should return a string that will be used for setting the Status once the data acquisition is finished.

property eor: dict[str, Any]#

User tags for the end-of-run (EOR) message

mark_run_tainted() None#

Mark the current run as tainted

new_data_record(tags: dict[str, Any] | None = None) DataRecord#

Return new data record for sending

reentry() None#

Orderly shutdown and destroy the Satellite.

send_data_record(data_record: DataRecord) None#

Queue a data record for sending

tx_bytes() int | None#
tx_records() int | None#
class core.transmitter_satellite.TransmitterSatelliteArgumentParser(*args: Any, **kwargs: Any)#

Bases: SatelliteArgumentParser

Customized Argument parser providing DataSender-specific options.