ifw-fcf  5.0.0-pre2
motor.hpp
Go to the documentation of this file.
1 
10 #ifndef FCF_DEVMGR_DEVICE_MOTOR_HPP
11 #define FCF_DEVMGR_DEVICE_MOTOR_HPP
12 
17 
18 namespace fcf::devmgr::motor {
19 
20 
38  {
39 
40  enum {
41  POS_TARGET = 0,
42  POS_ACTUAL,
43  SCALE_FACTOR,
44  AXIS_STATUS,
45  BCKLASHSTEP,
46  LAST_CMD,
47  ERROR_CODE,
48  INIT_STEP,
49  REF_SWITCH,
50  AT_MAX_POS,
51  AT_MAX_POS_VAL,
52  AT_MIN_POS,
53  AT_MIN_POS_VAL,
54  INFO_DATA1,
55  INFO_DATA2,
56  SWITCH_LHW,
57  BRAKE_ACTIVE,
58  LOCAL,
59  SWITCH_INDEX,
60  SWITCH_REF,
61  VEL_TARGET,
62  VEL_ACTUAL,
63  SWITCH_LSTOP,
64  SWITCH_USTOP
65  };
66 
67  public:
74  Motor(const std::string filename,
75  const std::string name,
77 
78 
82  virtual ~Motor() = default;
83 
95  void CreateObjects(std::shared_ptr<fcf::devmgr::common::IDeviceConfig> config = nullptr) override ;
96 
104  virtual void Setup(const std::any& payload) override ;
105 
113  virtual bool IsSetupActive(const std::any& payload) const override;
114 
120  virtual void Status(const std::any& payload, std::string& buffer) override;
121 
132  virtual void Status(bool end_acq,
133  const core::dit::did::Did& dictionary,
134  std::shared_ptr<CCfits::FITS>& fits_handle) override;
135 
136 
145  void GetStatusList(utils::bat::DbVector& cfg_status,
146  const MotorControllerData& status_data);
159  virtual void UpdateStatus() override;
160 
161  void SetTargetNamedPosition(const std::string named_position);
162  const std::string GetTargetNamedPosition();
163 
164  protected:
176  void GetStatusBuffer(const std::string& stat_prefix,
177  const MotorControllerData* const data,
178  std::string& buffer);
179 
187  void GetStatusHeader(const std::string& prefix,
188  const MotorControllerData* const data,
189  bool end_acq,
190  const core::dit::did::Did& dictionary,
191  std::shared_ptr<CCfits::FITS>& fits_handle);
192 
193  protected:
196  std::string m_target_named_pos;
197 
198  log4cplus::Logger m_logger;
199  };
200 
201 }
202 
203 
204 #endif //FCF_DEVMGR_DEVICE_MOTOR_HPP
Definition: dataContext.hpp:90
Definition: device.hpp:33
void GetStatusList(utils::bat::DbVector &cfg_status, const MotorControllerData &status_data)
Get a vector with device status data.
Definition: motor.cpp:194
Motor(const std::string filename, const std::string name, fcf::devmgr::common::DataContext &data_ctx)
Motor constructor.
Definition: motor.cpp:25
void CreateObjects(std::shared_ptr< fcf::devmgr::common::IDeviceConfig > config=nullptr) override
Create object instances.
Definition: motor.cpp:34
void GetStatusBuffer(const std::string &stat_prefix, const MotorControllerData *const data, std::string &buffer)
Get status buffer.
Definition: motor.cpp:314
virtual ~Motor()=default
Default destructor.
std::string m_target_named_pos
Definition: motor.hpp:196
void SetTargetNamedPosition(const std::string named_position)
Definition: motor.cpp:181
virtual void Setup(const std::any &payload) override
Executes a setup of the motor device.
Definition: motor.cpp:50
virtual void UpdateStatus() override
Update the status of the motor device in the OLDB.
Definition: motor.cpp:283
log4cplus::Logger m_logger
Definition: motor.hpp:198
void GetStatusHeader(const std::string &prefix, const MotorControllerData *const data, bool end_acq, const core::dit::did::Did &dictionary, std::shared_ptr< CCfits::FITS > &fits_handle)
Get device status for the data acquisition.
Definition: motor.cpp:422
virtual void Status(const std::any &payload, std::string &buffer) override
Obtain the status of the device.
Definition: motor.cpp:390
MotorControllerData m_controller_status
< object containing the status of the controller
Definition: motor.hpp:195
const std::string GetTargetNamedPosition()
Definition: motor.cpp:188
virtual bool IsSetupActive(const std::any &payload) const override
Check if last setup message is still active.
Definition: motor.cpp:107
DataContext class header file.
Device class header file.
MotorConfig class header file.
ShutterLcsIf class header file.
Definition: Motor.py:1
Definition: motor.hpp:18
The MotorControllerData struct.
Definition: motorLcsIf.hpp:34