Class Transmitter

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Transmitter : public lupnt::Device

Generic radio transmitter device: binds to a named Channel and pushes outgoing data to it.

Used as the base for link-budget/measurement-generating transmitters (e.g. GnssTransmitter in space_comms.h) attached to a satellite or ground-station Agent; the bound Channel (resolved in Setup) is the shared medium used by measurements/ models to compute link observables between a transmitter and a Receiver/Transponder.

Subclassed by lupnt::GnssTransmitter

Public Functions

Transmitter() = default
Transmitter(Config &config)

Construct a transmitter from a YAML config node (see Device::Device(Config&)).

virtual void Step(Real t) override

Transmitter device step; currently a no-op placeholder. Overrides Device::Step.

virtual void Setup() override

Resolve and bind channel_ from config_["channel"] via the owning agent’s Simulation::GetChannel. Overrides Device::Setup; logs a warning if no "channel" key is configured.

virtual void Send(Real t)

Notify the bound channel_ that this transmitter is ready to send, without an explicit payload (the channel pulls data via AddData/data_). Requires channel_ to be set (see Setup).

Parameters:

tSimulation time of the send event [s]

virtual void Send(Real t, void *data)

Push data onto the bound channel_ at time t. Requires channel_ and data to be non-null (see Setup).

Parameters:
  • tSimulation time of the send event [s]

  • data – Pointer to the payload to send (ownership/type defined by the specific Channel/measurement model)

inline virtual void AddData(void *data)

Queue data for the next Send call.

inline virtual void EmptyData()

Clear all queued outgoing data.

Protected Attributes

Channel *channel_
std::vector<void*> data_