Sensor data implementation

This commit is contained in:
2026-01-15 01:24:57 -05:00
parent 5b2155985e
commit 3b898b51b4
10 changed files with 218 additions and 125 deletions

View File

@@ -3,19 +3,20 @@
#ifndef DCMOTORACTUATOR_H
#define DCMOTORACTUATOR_H
#include "IActuator.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "IActuator.h"
class DCMotorActuator final : public IActuator {
public:
public:
DCMotorActuator();
~DCMotorActuator() override;
void actuate(uint8_t *cmd) override;
std::vector<Flatbuffers::SensorValueInstance> get_sensor_data() override;
private:
std::vector<Flatbuffers::sensor_value> get_sensor_data() override;
private:
void setup_encoder();
static void pid_task(char* args);
static void pid_task(char *args);
double m_current_angle;
int64_t m_target_angle;

View File

@@ -11,10 +11,11 @@
class IActuator {
public:
virtual ~IActuator() {}
public:
virtual ~IActuator() {
}
virtual void actuate(uint8_t *cmd) = 0;
virtual std::vector<Flatbuffers::SensorValueInstance> get_sensor_data() = 0;
virtual std::vector<Flatbuffers::sensor_value> get_sensor_data() = 0;
};
#endif //IACTUATOR_H

View File

@@ -7,16 +7,17 @@
#ifndef SERVO1ACTUATOR_H
#define SERVO1ACTUATOR_H
#include <cstdint>
#include "IActuator.h"
#include "ISensor.h"
#include <cstdint>
class Servo1Actuator final : public IActuator {
public:
public:
Servo1Actuator();
void actuate(std::uint8_t *cmd) override;
std::vector<Flatbuffers::SensorValueInstance> get_sensor_data() override;
private:
std::vector<Flatbuffers::sensor_value> get_sensor_data() override;
private:
uint16_t m_target = 90;
};