ifw-fcf 8.0.2
 
Loading...
Searching...
No Matches
drot.hpp
Go to the documentation of this file.
1
7
8#ifndef FCF_DEVMGR_DEVICE_DROT_HPP
9#define FCF_DEVMGR_DEVICE_DROT_HPP
10
11#include <chrono>
17
18
19namespace ifw::fcf::devmgr::drot {
20
39
40 public:
47 Drot(const std::string& filename,
48 const std::string& name,
50
54 virtual ~Drot() = default;
55
67 void CreateObjects(std::shared_ptr<ifw::fcf::devmgr::common::IDeviceConfig> config = nullptr) override;
68
76 virtual void Setup(const std::any& payload) override;
77
90 virtual bool IsSetupActive(const std::any& payload) const override;
91
92
98 virtual void Status(const std::any& payload, std::string& buffer) override;
99
110 virtual void Status(bool end_acq,
111 const ifw::core::dit::did::Did& dictionary,
112 std::shared_ptr<CCfits::FITS>& fits_handle) override;
113
120 virtual void UpdateStatus() override;
121
122
123 protected:
135 void GetStatusBuffer(const std::string& stat_prefix,
136 const DrotControllerData* const data,
137 std::string& buffer);
138
146 void GetStatusHeader(const std::string& prefix,
147 const DrotControllerData* const data,
148 bool end_acq,
149 const ifw::core::dit::did::Did& dictionary,
150 std::shared_ptr<CCfits::FITS>& fits_handle);
151
152 void HandleAction(const std::shared_ptr<fcfif::DrotDevice>& drot);
153
154 private:
156 DrotControllerData m_controller_status;
157 std::string m_target_named_pos;
158 mutable std::chrono::steady_clock::time_point m_hw_failure_start;
159 static constexpr int HW_FAILURE_RETRIES = 5;
160
161 private:
162 log4cplus::Logger m_logger;
163 };
164
165} //devmgr
166
167
168#endif //FCF_DEVMGR_DEVICE_DROT_HPP
Definition dataContext.hpp:86
virtual void UpdateStatus() override
Update the status of the Drot device in the OLDB.
Definition drot.cpp:237
void HandleAction(const std::shared_ptr< fcfif::DrotDevice > &drot)
Definition drot.cpp:48
Drot(const std::string &filename, const std::string &name, ifw::fcf::devmgr::common::DataContext &data_ctx)
Drot constructor.
Definition drot.cpp:23
virtual void Status(const std::any &payload, std::string &buffer) override
Obtain the status of the device.
Definition drot.cpp:305
void GetStatusBuffer(const std::string &stat_prefix, const DrotControllerData *const data, std::string &buffer)
Get status buffer.
Definition drot.cpp:265
virtual ~Drot()=default
Default destructor.
virtual void Setup(const std::any &payload) override
Executes a setup of the drot device.
Definition drot.cpp:87
void CreateObjects(std::shared_ptr< ifw::fcf::devmgr::common::IDeviceConfig > config=nullptr) override
Create object instances.
Definition drot.cpp:32
virtual bool IsSetupActive(const std::any &payload) const override
Check if last setup message is still active.
Definition drot.cpp:130
void GetStatusHeader(const std::string &prefix, const DrotControllerData *const data, bool end_acq, const ifw::core::dit::did::Did &dictionary, std::shared_ptr< CCfits::FITS > &fits_handle)
Get device status for the data acquisition.
Definition drot.cpp:341
The Motor class.
Definition motor.hpp:37
Definition __init__.py:1
Drot class source file.
Definition drot.cpp:19
The drotControllerData struct.
Definition drotLcsIf.hpp:28