.. _program_listing_file_devices_comms.h: Program Listing for File comms.h ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``devices/comms.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "lupnt/core/definitions.h" #include "lupnt/devices/device.h" #include "lupnt/measurements/channel.h" namespace lupnt { class Transmitter : public Device { public: Transmitter() = default; Transmitter(Config& config); virtual void Step(Real t) override; virtual void Setup() override; virtual void Send(Real t); virtual void Send(Real t, void* data); virtual void AddData(void* data) { data_.push_back(data); } virtual void EmptyData() { data_.clear(); } protected: Channel* channel_; std::vector data_; }; class Receiver : public Device { public: Receiver() = default; Receiver(Config& config); virtual void Step(Real t) override; virtual void Setup() override; virtual void Receive(Real t); virtual void Receive(Real t, void* data); protected: Channel* channel_; std::vector data_; }; class Transponder : public Device { public: Transponder() = default; Transponder(Config& config); virtual void Step(Real t) override; virtual void Setup() override; virtual void Send(Real t); virtual void Send(Real t, void* data); virtual void Receive(Real t); virtual void Receive(Real t, void* data); protected: Channel* channel_; std::vector data_; }; } // namespace lupnt