ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
lamp.hpp
Go to the documentation of this file.
1 
10 #ifndef DEVMGR_DEVICE_LAMP_HPP
11 #define DEVMGR_DEVICE_LAMP_HPP
12 
13 #include <fcf/common/dispatcher.hpp>
14 
15 #include <devmgr/common/device.hpp>
16 #include <devmgr/common/iDeviceConfig.hpp>
17 #include <devmgr/devices/lampConfig.hpp>
18 #include <devmgr/devices/lampLcsIf.hpp>
19 #include <devmgr/common/dataContext.hpp>
20 
21 
22 namespace devmgr {
23  namespace lamp {
24 
43  class Lamp : public devmgr::common::Device {
44 
45  public:
52  Lamp(const std::string& filename,
53  const std::string& name,
54  devmgr::common::DataContext& data_ctx);
55 
67  void CreateObjects(std::shared_ptr<devmgr::common::IDeviceConfig> config = nullptr);
68 
84  void RegisterComm(std::shared_ptr<fcf::common::IComm> comm_if,
85  fcf::common::Dispatcher<>& failure,
86  fcf::common::Dispatcher<>& normal);
87 
95  virtual void Setup(const modif::ReqSetup& setupMsg);
96 
109  virtual bool IsSetupActive(const modif::ReqSetup& setupMsg) const;
110 
111 
117  virtual void Status(const modif::ReqStatus& statusMsg, std::string& buffer);
118 
129  virtual void Status(bool end_acq,
130  const dit::did::Did& dictionary,
131  CCfits::FITS* fits_handle = nullptr);
132 
139  virtual void UpdateStatus();
140 
145  virtual std::shared_ptr<devmgr::common::DeviceLcsIf> GetLcsIf() const;
146 
152  virtual std::shared_ptr<devmgr::common::IDeviceConfig> GetConfig() const;
153 
154  protected:
155 
157  LampControllerData m_controller_status;
159  std::shared_ptr<LampConfig> m_config;
160 
161  // Local Control System Interface
162  std::shared_ptr<LampLcsIf> m_lcs_if;
163  };
164  }
165 }
166 
167 
168 #endif //DEVMGR_DEVICE_LAMP_HPP
virtual void Setup(const modif::ReqSetup &setupMsg)
Executes a setup of the lamp device.
Definition: lamp.cpp:107
std::shared_ptr< LampLcsIf > m_lcs_if
Definition: lamp.hpp:162
virtual std::shared_ptr< devmgr::common::DeviceLcsIf > GetLcsIf() const
Definition: lamp.cpp:95
Definition: device.hpp:32
void RegisterComm(std::shared_ptr< fcf::common::IComm > comm_if, fcf::common::Dispatcher<> &failure, fcf::common::Dispatcher<> &normal)
Register a communication interface object.
Definition: lamp.cpp:85
void CreateObjects(std::shared_ptr< devmgr::common::IDeviceConfig > config=nullptr)
Create object instances.
virtual bool IsSetupActive(const modif::ReqSetup &setupMsg) const
Check if last setup message is still active.
Definition: lamp.cpp:153
Definition: requests.pb.h:5446
virtual void Status(const modif::ReqStatus &statusMsg, std::string &buffer)
Obtain the status of the device.
Definition: lamp.cpp:287
LampControllerData m_controller_status
&lt; object containing the status of the controller
Definition: lamp.hpp:157
virtual std::shared_ptr< devmgr::common::IDeviceConfig > GetConfig() const
Get a pointer of device configuration.
Definition: lamp.cpp:101
Lamp(const std::string &filename, const std::string &name, devmgr::common::DataContext &data_ctx)
Lamp constructor.
Definition: lamp.cpp:28
virtual void UpdateStatus()
Update the status of the lamp device in the OLDB.
Definition: lamp.cpp:226
Definition: dataContext.hpp:73
std::shared_ptr< LampConfig > m_config
Definition: lamp.hpp:159
Data Interface Dictionary class.
Definition: Did.hpp:25
Definition: requests.pb.h:1584
optional string name
Definition: topics.proto:50