Add default implementation in Module class

This commit is contained in:
2026-02-22 21:12:00 -05:00
parent 28e31473a8
commit 9066ccd721
10 changed files with 27 additions and 71 deletions

View File

@@ -19,11 +19,6 @@ class Hub final : public Module {
uint8_t leader)
: Module(device_id, module_type, connection_type, leader) {};
double get_position() override;
std::string get_text() override;
void actuate(double position) override;
void actuate(double x, double y) override;
void actuate(const std::string &t) override;
std::vector<uint8_t> get_actuation_message() override;
void update_sensor_data(const Flatbuffers::sensor_value &value) override;
};

View File

@@ -44,11 +44,11 @@ class Module {
std::chrono::time_point<std::chrono::system_clock> get_last_updated_time();
// Not all modules implement all actuation/sensor values, some are no-ops
virtual double get_position() = 0;
virtual std::string get_text() = 0;
virtual void actuate(double x) = 0;
virtual void actuate(const std::string &text) = 0;
virtual void actuate(double x, double y) = 0;
virtual double get_position();
virtual std::string get_text();
virtual void actuate(double x);
virtual void actuate(const std::string &text);
virtual void actuate(double x, double y);
void update_module_metadata(const Messaging::TopologyMessage &message);

View File

@@ -22,10 +22,7 @@ class BoundedPositionalActuator1D : public Actuator {
}
double get_position() override;
std::string get_text() override; // no-op
void actuate(double position) override;
void actuate(const std::string &text) override; // no-op
void actuate(double x, double y) override; // no-op
std::vector<uint8_t> get_actuation_message() override;
void update_sensor_data(const Flatbuffers::sensor_value &value) override;

View File

@@ -19,10 +19,7 @@ class OledActuator : public Actuator {
m_text_message_builder(std::make_unique<Flatbuffers::TextControlMessageBuilder>()) {
}
double get_position() override;
std::string get_text() override;
void actuate(double position) override;
void actuate(double x, double y) override; // no-op
void actuate(const std::string &text) override;
std::vector<uint8_t> get_actuation_message() override;

View File

@@ -19,10 +19,7 @@ class PositionalActuator1D final : public Actuator {
m_acm_builder(std::make_unique<Flatbuffers::AngleControlMessageBuilder>()) {};
double get_position() override;
std::string get_text() override; // no-op
void actuate(double position) override;
void actuate(const std::string &text) override; // no-op
void actuate(double x, double y) override; // no-op
std::vector<uint8_t> get_actuation_message() override;
void update_sensor_data(const Flatbuffers::sensor_value &value) override;