ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
iDevice.hpp
Go to the documentation of this file.
1 
9 #ifndef DEVMGR_COMMON_IDEVICE_HPP
10 #define DEVMGR_COMMON_IDEVICE_HPP
11 
12 #include <dit/fits/fits.hpp>
13 #include <fcf/common/dispatcher.hpp>
15 
16 // For convenience this macro has been added.
17 // This allows you to register the second you inherited from Device class
18 // without the need to include anything else
19 
20 #include "devmgr/common/deviceMaker.hpp"
21 #define REGISTER_DEVICE(T) static devmgr::common::DeviceMaker<T> maker(#T)
22 
23 
24 namespace devmgr {
25  namespace common {
26 
27  class IDeviceConfig;
28  class DeviceLcsIf;
36  class IDevice {
37 
38  public:
39 
40 
45  virtual void CreateObjects(std::shared_ptr<devmgr::common::IDeviceConfig> config = nullptr)=0;
61  virtual void RegisterComm(std::shared_ptr<fcf::common::IComm> comm_if,
62  fcf::common::Dispatcher<>& failure,
63  fcf::common::Dispatcher<>& normal) = 0;
64 
65 
71  virtual bool IsNotReady() const = 0;
77  virtual bool IsReady() const = 0;
78 
84  virtual bool IsOperational() const = 0;
85 
91  virtual void CheckHwFailure() const = 0;
92 
98  virtual bool IsDisabling() const = 0;
99 
105  virtual void Init() = 0;
106 
112  virtual void Enable() = 0;
113 
119  virtual void Disable() = 0;
120 
126  virtual void Stop() = 0;
127 
133  virtual void Reset() = 0;
134 
142  virtual void HwReset(modif::ReqHwReset& hwResetMsg) = 0;
143 
151  virtual void HwInit(modif::ReqHwInit& hwInitMsg) = 0;
152 
160  virtual void HwEnable(modif::ReqHwEnable& hwEnableMsg) = 0;
161 
169  virtual void HwDisable(modif::ReqHwDisable& hwDisableMsg) = 0;
170 
174  virtual void UpdateStatus() = 0;
175 
183  virtual void Setup(const modif::ReqSetup& setupMsg) = 0;
184 
194  virtual bool IsSetupActive(const modif::ReqSetup& setupMsg) const = 0;
195 
201  virtual void Status(const modif::ReqStatus& statusMsg, std::string& buffer) = 0;
202 
203 
214  virtual void Status(bool end_acq,
215  const dit::did::Did& dictionary,
216  CCfits::FITS* fits_handle = nullptr) = 0;
217 
225  virtual void Simulate(const modif::ReqSimulate& msg) = 0;
226 
234  virtual void StopSim(const modif::ReqStopSim& msg) = 0;
235 
243  virtual void Ignore(const modif::ReqIgnore& msg) = 0;
244 
252  virtual void StopIgn(const modif::ReqStopIgn& msg) = 0;
253 
259  virtual std::shared_ptr<DeviceLcsIf> GetLcsIf() const = 0;
260 
266  virtual std::shared_ptr<IDeviceConfig> GetConfig() const = 0;
267 
271  virtual void StartMonitoring() = 0;
272 
276  virtual void StopMonitoring() = 0;
277 
278 
283  virtual std::string GetName() const = 0;
284 
285  };
286  }
287 }
288 
289 
290 #endif //DEVMGR_COMMON_IDEVICE_HPP
virtual void CheckHwFailure() const =0
Check if device is in failure state.
virtual void StopMonitoring()=0
Stop device monitoring.
virtual void Status(const modif::ReqStatus &statusMsg, std::string &buffer)=0
Obtain the status of the device.
virtual void Simulate(const modif::ReqSimulate &msg)=0
Executes a Simulat.
virtual std::shared_ptr< DeviceLcsIf > GetLcsIf() const =0
Get a pointer of device LCS interface.
virtual void Stop()=0
Executes a Stop command.
virtual void HwReset(modif::ReqHwReset &hwResetMsg)=0
Executes a hardware reset command.
Definition: requests.pb.h:6543
virtual void Reset()=0
Executes a Reset command.
virtual void StopIgn(const modif::ReqStopIgn &msg)=0
Executes a StopIgn.
virtual void Enable()=0
Executes a Enable command.
virtual void CreateObjects(std::shared_ptr< devmgr::common::IDeviceConfig > config=nullptr)=0
Create basic objects needed by the device class.
virtual void StopSim(const modif::ReqStopSim &msg)=0
Executes a StopSim.
virtual bool IsReady() const =0
Check if device is Standby/Ready.
virtual void RegisterComm(std::shared_ptr< fcf::common::IComm > comm_if, fcf::common::Dispatcher<> &failure, fcf::common::Dispatcher<> &normal)=0
Register a communication interface object.
Definition: requests.pb.h:5446
virtual bool IsDisabling() const =0
Check if device is disablig.
Definition: requests.pb.h:2480
optional string msg
Definition: topics.proto:7
virtual void StartMonitoring()=0
Start device monitoring via OPCUA subscriptions.
virtual bool IsOperational() const =0
Check if device is Operational.
Definition: requests.pb.h:2263
virtual bool IsSetupActive(const modif::ReqSetup &setupMsg) const =0
Check if setup is still active.
Definition: requests.pb.h:1829
virtual void HwInit(modif::ReqHwInit &hwInitMsg)=0
Executes a hardware init command.
Definition: requests.pb.h:6760
Definition: requests.pb.h:6326
virtual void UpdateStatus()=0
Update internal status by connecting to the LCS.
virtual std::shared_ptr< IDeviceConfig > GetConfig() const =0
Get a pointer of device configuration.
virtual void HwEnable(modif::ReqHwEnable &hwEnableMsg)=0
Executes a hardware enable command.
virtual void HwDisable(modif::ReqHwDisable &hwDisableMsg)=0
Executes a hardware disable command.
virtual void Disable()=0
Executes a Disable command.
virtual void Ignore(const modif::ReqIgnore &msg)=0
Executes a Ignore.
virtual std::string GetName() const =0
Get device name.
virtual void Init()=0
Executes a Init command.
Data Interface Dictionary class.
Definition: Did.hpp:25
Definition: requests.pb.h:1584
virtual bool IsNotReady() const =0
Check if device is Standby/NotReady.
virtual void Setup(const modif::ReqSetup &setupMsg)=0
Executes a setup.
Definition: requests.pb.h:6977
Definition: requests.pb.h:2046