Program Listing for File driver.hpp
↰ Return to documentation for file (/tmp/ws/src/myactuator_rmd/include/myactuator_rmd/driver.hpp
)
#ifndef MYACTUATOR_RMD__DRIVER
#define MYACTUATOR_RMD__DRIVER
#pragma once
#include <chrono>
#include <cstdint>
#include <string>
#include "myactuator_rmd/actuator_state/acceleration_type.hpp"
#include "myactuator_rmd/actuator_state/baud_rate.hpp"
#include "myactuator_rmd/actuator_state/control_mode.hpp"
#include "myactuator_rmd/actuator_state/feedback.hpp"
#include "myactuator_rmd/actuator_state/gains.hpp"
#include "myactuator_rmd/actuator_state/motor_status_1.hpp"
#include "myactuator_rmd/actuator_state/motor_status_2.hpp"
#include "myactuator_rmd/actuator_state/motor_status_3.hpp"
#include "myactuator_rmd/protocol/address_offset.hpp"
#include "myactuator_rmd/protocol/node.hpp"
namespace myactuator_rmd {
class Driver: protected Node<AddressOffset::request,AddressOffset::response> {
public:
Driver(std::string const& ifname, std::uint32_t const actuator_id);
Driver() = delete;
Driver(Driver const&) = delete;
Driver& operator = (Driver const&) = default;
Driver(Driver&&) = default;
Driver& operator = (Driver&&) = default;
[[nodiscard]]
std::int32_t getAcceleration();
[[nodiscard]]
std::uint16_t getCanId();
[[nodiscard]]
Gains getControllerGains();
[[nodiscard]]
ControlMode getControlMode();
[[nodiscard]]
std::string getMotorModel();
[[nodiscard]]
float getMotorPower();
[[nodiscard]]
MotorStatus1 getMotorStatus1();
[[nodiscard]]
MotorStatus2 getMotorStatus2();
[[nodiscard]]
MotorStatus3 getMotorStatus3();
[[nodiscard]]
float getMultiTurnAngle();
[[nodiscard]]
std::int32_t getMultiTurnEncoderPosition();
[[nodiscard]]
std::int32_t getMultiTurnEncoderOriginalPosition();
[[nodiscard]]
std::int32_t getMultiTurnEncoderZeroOffset();
[[nodiscard]]
std::chrono::milliseconds getRuntime();
[[nodiscard]]
float getSingleTurnAngle();
[[nodiscard]]
std::int16_t getSingleTurnEncoderPosition();
[[nodiscard]]
std::uint32_t getVersionDate();
void lockBrake();
void releaseBrake();
void reset();
Feedback sendCurrentSetpoint(float const current);
Feedback sendPositionAbsoluteSetpoint(float const position, float const max_speed = 500.0);
Feedback sendTorqueSetpoint(float const torque, float const torque_constant = 2.09);
Feedback sendVelocitySetpoint(float const speed);
void setAcceleration(std::uint32_t const acceleration, AccelerationType const mode);
void setBaudRate(BaudRate const baud_rate);
void setCanId(std::uint16_t const can_id);
std::int32_t setCurrentPositionAsEncoderZero();
void setEncoderZero(std::int32_t const encoder_offset);
Gains setControllerGains(Gains const& gains, bool const is_persistent = false);
void setTimeout(std::chrono::milliseconds const& timeout);
void shutdownMotor();
void stopMotor();
};
}
#endif // MYACTUATOR_RMD__DRIVER