Work on sensor

This commit is contained in:
2026-01-08 15:46:39 -05:00
parent 857057b1a8
commit 827a098bdc
14 changed files with 165 additions and 67 deletions

View File

@@ -8,19 +8,25 @@
#include <memory>
#include "MessagingInterface.h"
#include "control/ActuatorFactory.h"
#include "control/IActuator.h"
class LoopManager {
public:
LoopManager() : m_config_manager(ConfigManager::get_instance()),
m_messaging_interface(std::make_unique<MessagingInterface>()) {}
m_messaging_interface(std::make_unique<MessagingInterface>()),
m_actuator(ActuatorFactory::create_actuator(m_config_manager.get_module_type())) {}
[[noreturn]] void control_loop() const; // gets control commands
[[noreturn]] void sensor_loop() const; // sends sensor data commands continually
[[noreturn]] static void sensor_loop(char * args); // sends sensor data commands continually
[[noreturn]] static void metadata_tx_loop(char * args); // sends metadata continually (low duty cycle)
[[noreturn]] static void metadata_rx_loop(char * args); // gets other commands from PC (ie. f/w updates, nvs updates)
private:
ConfigManager& m_config_manager;
std::unique_ptr<MessagingInterface> m_messaging_interface;
std::unique_ptr<IActuator> m_actuator;
void send_sensor_reading(bool durable) const;
};
#endif //LOOPMANAGER_H