8#ifndef FCF_DEVMGR_DEVICE_ADC_IF_HPP
9#define FCF_DEVMGR_DEVICE_ADC_IF_HPP
11#include <unordered_map>
13#include <yaml-cpp/yaml.h>
58 short m_tracking_mode {};
62 std::map<std::string, fcf::devmgr::motor::MotorControllerData> m_motors;
88 STAT_TRACK_MODE = 104,
102 AdcLcsIf(std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> config,
135 void MoveAbs(
int axis_id,
double position,
double velocity, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
143 void MoveRel(
int axis_id,
double position,
double velocity, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
145 void MoveEncAbs(
int axis_id,
long int encoders);
147 void MoveEncRel(
int axis_id,
long int encoders);
157 void MoveVel(
int axis_id,
double velocity);
177 void MoveAngle(
const double& angle, ::fcfif::MotorPosUnit unit = ::fcfif::MotorPosUnit::UU);
212 std::string
GetMotorMapValue(std::string motor, std::string category, std::string key);
241 void Listener(ifw::core::protocol::base::VectorVariant& params);
248 virtual std::string
GetRpcError(
const short error_code)
const;
268 void StoreMotorPosition(
const std::string nodeid_prefix,
269 const ifw::core::protocol::base::Variant& value,
272 void StoreMotorAttribute(
const std::string nodeid_prefix,
273 const ifw::core::protocol::base::Variant& value,
276 void MovePos(
int axis_id,
double position,
double velocity,
281 std::vector<std::string> m_monitor_track_vector;
286 std::unique_ptr<elt::configng::CiiConfigDocument> m_motor_map_doc;
288 double m_mot_actual_pos {0.0};
289 double m_mot_actual_pos_axis[2] {0.0,0.0};
292 short m_track_mode {};
294 std::map<std::string, fcf::devmgr::motor::MotorControllerData> m_motors_status;
297 log4cplus::Logger m_logger;
302#include "adcLcsIf.ipp"
Adc Local Control System (LCS) Interface (IF) class.
Definition adcLcsIf.hpp:80
virtual void ReadStatus(AdcControllerData &status)
Read status from the controller.
Definition adcLcsIf.cpp:632
bool IsMoving() const
IsMoving.
Definition adcLcsIf.cpp:699
virtual ~AdcLcsIf()
Default destructor.
Definition adcLcsIf.hpp:108
void MoveAbs(int axis_id, double position, double velocity, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Executes the MoveAbs RPC.
Definition adcLcsIf.cpp:331
virtual void InitObject()
Initialize object.
Definition adcLcsIf.cpp:86
void Listener(ifw::core::protocol::base::VectorVariant ¶ms)
Callback to manage changes on the monitored items.
Definition adcLcsIf.cpp:783
void StartTrack(const double &angle)
Start ADC tracking.
Definition adcLcsIf.cpp:516
void StartTrackMonitoring()
Definition adcLcsIf.cpp:660
void MoveEncAbs(int axis_id, long int encoders)
Definition adcLcsIf.cpp:376
void MoveAngle(const double &angle, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
MoveAngle.
Definition adcLcsIf.cpp:578
virtual void Init()
Executes the Init RPC.
Definition adcLcsIf.cpp:193
void UpdateTargetPosition(int axis_id, double position, std::string move_type)
Definition adcLcsIf.cpp:302
void MoveVel(int axis_id, double velocity)
Executes the MoveVel RPC.
Definition adcLcsIf.cpp:400
void MoveRel(int axis_id, double position, double velocity, ::fcfif::MotorPosUnit unit=::fcfif::MotorPosUnit::UU)
Executes the MoveRel RPC.
Definition adcLcsIf.cpp:354
void ReadConfig()
Read the configuration.
std::optional< double > GetTargetInUserUnits(int axis_id, double value)
Definition adcLcsIf.cpp:265
AdcLcsIf(std::shared_ptr< ifw::fcf::devmgr::common::IDeviceConfig > config, ifw::fcf::devmgr::common::DataContext &data_ctx)
adcLcsIf constructor.
Definition adcLcsIf.cpp:77
std::string GetMotorMapValue(std::string motor, std::string category, std::string key)
Definition adcLcsIf.cpp:495
bool IsInPosition(const int axis=-1) const
IsInPosition.
Definition adcLcsIf.cpp:714
void StopTrackMonitoring()
Definition adcLcsIf.cpp:673
bool IsTracking() const
IsTracking.
Definition adcLcsIf.cpp:685
void MoveEncRel(int axis_id, long int encoders)
Definition adcLcsIf.cpp:388
void StopTrack()
StopTrack.
Definition adcLcsIf.cpp:551
virtual std::string GetRpcError(const short error_code) const
Definition adcLcsIf.cpp:753
bool IsStandstill() const
IsStandstill.
Definition adcLcsIf.cpp:744
void LoadConfig()
Load the YAML configuration.
Definition dataContext.hpp:86
Definition deviceLcsIf.hpp:84
Adc class source file.
Definition adc.cpp:19
constexpr auto RPC_MOVE_ABS
Definition motorBaseConfig.hpp:46
The adcControllerData struct.
Definition adcLcsIf.hpp:28
AdcControllerData()
Definition adcLcsIf.cpp:57
virtual ~AdcControllerData()
Definition adcLcsIf.cpp:66
void SetAlpha(double alpha)
void SetTrackingMode(short mode)
void GetMotorNames(std::vector< std::string > &motor_vector)
virtual std::string GetSubstateStr() const
fcf::devmgr::motor::MotorControllerData GetMotor(std::string motor) const
short GetTrackingMode() const
std::string GetTrackingModeStr() const
void AddMotor(const std::string motor, const fcf::devmgr::motor::MotorControllerData motor_data)
void SetData(const AdcControllerData &data)
Definition adcLcsIf.cpp:69
virtual std::string GetErrorText() const
void SetDelta(double delta)
The DeviceControllerData struct.
Definition deviceLcsIf.hpp:42
The MotorControllerData struct.
Definition motorLcsIf.hpp:31