Class Transponder

Inheritance Relationships

Base Type

Class Documentation

class Transponder : public lupnt::Device

Combined transmit/receive radio device: binds to a named Channel and both sends and receives data through it.

Models a transponder-type radio link (e.g. for two-way range/Doppler measurements between agents) attached to a satellite/rover/ ground-station Agent, combining the Transmitter/Receiver send and receive behaviors on a single Channel.

Public Functions

Transponder() = default
Transponder(Config &config)

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

virtual void Step(Real t) override

Transponder 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 transponder is ready to send, without an explicit payload. Requires channel_ to be set (see Setup). Same role as Transmitter::Send(Real).

virtual void Send(Real t, void *data)

Push data onto the bound channel_ at time t. Requires channel_ and data to be non-null. Same role as Transmitter::Send(Real, void*).

virtual void Receive(Real t)

Request data from the bound channel_ at time t (calls Channel::Receive). Requires channel_ to be set.

Parameters:

tSimulation time of the receive event [s]

virtual void Receive(Real t, void *data)

Append an incoming payload data (provided by channel_) to data_ at time t. Requires data to be non-null. Same role as Receiver::Receive(Real, void*).

Protected Attributes

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