mirror of
https://github.com/BotChain-Robots/control.git
synced 2026-03-10 00:32:26 +01:00
Prepare files for public release
This commit is contained in:
36
src/actuators/PositionalActuator1D.cpp
Normal file
36
src/actuators/PositionalActuator1D.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "actuators/PositionalActuator1D.h"
|
||||
#include "flatbuffers/SensorMessageBuilder.h"
|
||||
#include "util/Variant.h"
|
||||
#include <cstring>
|
||||
|
||||
double PositionalActuator1D::get_position() {
|
||||
return m_current_position;
|
||||
}
|
||||
|
||||
void PositionalActuator1D::actuate(double position) {
|
||||
m_target_position = position;
|
||||
}
|
||||
|
||||
void PositionalActuator1D::actuate(double /* x */, double /* y */) {
|
||||
}
|
||||
|
||||
std::vector<uint8_t> PositionalActuator1D::get_actuation_message() {
|
||||
std::vector<uint8_t> message{};
|
||||
|
||||
if (m_target_position == m_board_target_position) {
|
||||
return message;
|
||||
}
|
||||
|
||||
auto [data, size] = m_acm_builder->build_angle_control_message(m_target_position);
|
||||
message.resize(size);
|
||||
memcpy(message.data(), data, size);
|
||||
return message;
|
||||
}
|
||||
|
||||
void PositionalActuator1D::update_sensor_data(const Flatbuffers::sensor_value &value) {
|
||||
std::visit(overloaded{
|
||||
[this](Flatbuffers::target_angle a) { m_board_target_position = a.angle; },
|
||||
[this](Flatbuffers::current_angle a) { m_current_position = a.angle; },
|
||||
},
|
||||
value);
|
||||
}
|
||||
Reference in New Issue
Block a user