Program Listing for File comms.h¶
↰ Return to documentation for file (devices/comms.h)
#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<void*> 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<void*> 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<void*> data_;
};
} // namespace lupnt