9#ifndef FCF_DEVMGR_DEVICE_MOTOR_BASE_IF_HPP
10#define FCF_DEVMGR_DEVICE_MOTOR_BASE_IF_HPP
13#include <unordered_map>
16#include <yaml-cpp/yaml.h>
23#include <rad/mal/publisher.hpp>
105 MotorBaseLcsIf(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config,
119 void MoveAbs(
double position, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
136 void MoveRel(
double position, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
224 log4cplus::Logger m_logger;
231#include "motorBaseLcsIf.ipp"
Definition: dataContext.hpp:90
Definition: deviceLcsIf.hpp:87
Motor Local Control System (LCS) Interface (IF) class.
Definition: motorBaseLcsIf.hpp:78
virtual ~MotorBaseLcsIf()
Default destructor.
Definition: motorBaseLcsIf.hpp:111
double m_mot_target_pos
Definition: motorBaseLcsIf.hpp:214
double m_mot_pos_error
Definition: motorBaseLcsIf.hpp:215
double m_mot_actual_pos
Definition: motorBaseLcsIf.hpp:210
std::string m_mot_target_name
Definition: motorBaseLcsIf.hpp:212
double m_mot_actual_enc
Definition: motorBaseLcsIf.hpp:211
void MovePos(double position, double velocity, std::string move_type=RPC_MOVE_ABS)
Definition: motorBaseLcsIf.cpp:175
bool IsInPosition() const
Check if motor is in position.
Definition: motorBaseLcsIf.cpp:281
@ STAT_HW_STATUS
Definition: motorBaseLcsIf.hpp:83
@ STAT_TARGET_VEL
Definition: motorBaseLcsIf.hpp:90
@ STAT_INITIALISED
Definition: motorBaseLcsIf.hpp:91
@ STAT_STATE
Definition: motorBaseLcsIf.hpp:84
@ STAT_TARGET_POS
Definition: motorBaseLcsIf.hpp:87
@ STAT_LOCAL
Definition: motorBaseLcsIf.hpp:81
@ STAT_POS_ERROR
Definition: motorBaseLcsIf.hpp:88
@ STAT_ACTUAL_VEL
Definition: motorBaseLcsIf.hpp:89
@ STAT_MOTOR_BASE_END
Definition: motorBaseLcsIf.hpp:92
@ STAT_ERROR
Definition: motorBaseLcsIf.hpp:82
@ STAT_ACTUAL_POS
Definition: motorBaseLcsIf.hpp:86
@ STAT_SUBSTATE
Definition: motorBaseLcsIf.hpp:85
void MoveEncRel(int encoders)
Executes the MoveRel RPC.
Definition: motorBaseLcsIf.cpp:144
std::optional< double > GetTargetInUserUnits(double value)
Definition: motorBaseLcsIf.cpp:58
std::string m_mot_user_unit
Definition: motorBaseLcsIf.hpp:220
virtual bool IsDisabling() const
Check if controller is disabling the motor.
Definition: motorBaseLcsIf.cpp:211
void MoveAbs(double position, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Executes the MoveAbs RPC.
Definition: motorBaseLcsIf.cpp:78
void MoveByName(std::string namedpos)
Executes the MovePos RPC.
Definition: motorBaseLcsIf.cpp:157
std::string m_mot_actual_name
Definition: motorBaseLcsIf.hpp:213
void MoveRel(double position, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Executes the MoveRel RPC.
Definition: motorBaseLcsIf.cpp:104
bool m_mot_initialised
Definition: motorBaseLcsIf.hpp:219
double m_mot_actual_vel
Definition: motorBaseLcsIf.hpp:217
bool IsMoving() const
Check if motor is moving.
Definition: motorBaseLcsIf.cpp:256
bool IsStandstill() const
Check if motor is on.
Definition: motorBaseLcsIf.cpp:271
void SetTargetNamedPosition(const std::string named_position)
Definition: motorBaseLcsIf.cpp:310
double m_mot_target_vel
Definition: motorBaseLcsIf.hpp:216
double m_mot_scale
Definition: motorBaseLcsIf.hpp:218
void MoveEncAbs(int encoders)
Executes the MoveAbs RPC.
Definition: motorBaseLcsIf.cpp:131
void MoveVel(double velocity)
Executes the MoveVel RPC.
Definition: motorBaseLcsIf.cpp:219
bool IsMovingInRightDirection() const
Check if motor is moving in the right direction.
Definition: motorBaseLcsIf.cpp:295
const std::string GetTargetNamedPosition()
Definition: motorBaseLcsIf.cpp:317
DataContext class header file.
deviceLcsIf class header file.
MotorConfig class header file.
constexpr auto RPC_MOVE_ABS
Definition: motorBaseConfig.hpp:51
The DeviceControllerData struct.
Definition: deviceLcsIf.hpp:46
The MotorBaseControllerData struct.
Definition: motorBaseLcsIf.hpp:34
double GetActualPos() const
void SetTargetPos(double position)
virtual ~MotorBaseControllerData()
Definition: motorBaseLcsIf.cpp:44
void SetTargetVel(double velocity)
MotorBaseControllerData()
Definition: motorBaseLcsIf.cpp:32
double m_actual_pos
Definition: motorBaseLcsIf.hpp:55
double m_pos_error
Definition: motorBaseLcsIf.hpp:56
double m_scale_factor
Definition: motorBaseLcsIf.hpp:59
void SetUserUnit(const std::string &unit)
void SetPosError(double pos_error)
double m_target_pos
Definition: motorBaseLcsIf.hpp:54
virtual std::string GetSubstateStr() const
void SetActualPos(double position)
std::string m_user_unit
Definition: motorBaseLcsIf.hpp:60
double m_target_vel
Definition: motorBaseLcsIf.hpp:58
double GetTargetPos() const
double m_actual_vel
Definition: motorBaseLcsIf.hpp:57
std::string GetUserUnit() const
double GetPosError() const
void SetActualVel(double velocity)
double GetTargetVel() const
double GetActualVel() const