RPC calls

This commit is contained in:
Johnathon Slightham
2026-02-10 23:08:41 -05:00
committed by Johnathon Slightham
parent 52ff24e649
commit 649669d598
12 changed files with 466 additions and 37 deletions

View File

@@ -6,6 +6,8 @@
#define LOOPMANAGER_H
#include <memory>
#include <vector>
#include <cstdint>
#include "MessagingInterface.h"
#include "control/ActuatorFactory.h"
@@ -15,7 +17,18 @@ class LoopManager {
public:
LoopManager() : m_config_manager(ConfigManager::get_instance()),
m_messaging_interface(std::make_unique<MessagingInterface>()),
m_actuator(ActuatorFactory::create_actuator(m_config_manager.get_module_type())) {}
m_actuator(ActuatorFactory::create_actuator(m_config_manager.get_module_type())) {
// todo: temporary demo register_function call.
const auto function_tag = 100;
m_messaging_interface->register_function(function_tag, [](const uint8_t *parameters, size_t parameter_size, Writer& writer) {
ESP_LOGI("TMP", "%s", (char*)parameters);
std::string msg = "Hello from board!";
std::vector<uint8_t> return_value(msg.begin(), msg.end());
writer.write(return_value);
});
}
[[noreturn]] void control_loop() const; // gets control commands
[[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)