ifw-fcf  4.0.0
sensorConfig.hpp
Go to the documentation of this file.
1 
10 #ifndef FCF_DEVMGR_DEVICE_SENSOR_CONFIG_HPP
11 #define FCF_DEVMGR_DEVICE_SENSOR_CONFIG_HPP
12 
13 // System headers
14 #include <string>
15 
16 // Third party headers
17 #include <yaml-cpp/yaml.h>
18 
19 #include <utils/bat/logger.hpp>
20 #include <fcf/common/iComm.hpp>
26 
27 namespace fcf::devmgr::sensor {
28 
29  constexpr auto LOGGER_NAME = "sensor";
30  constexpr auto CI_READONLY = "readonly";
31 
32  // Constants for internal mapping
33  constexpr auto CI_CHANNELS = "channels";
34  constexpr auto CI_NAME = "name";
35  constexpr auto CI_DESCRIPTION = "description";
36  constexpr auto CI_ALIAS = "alias";
37  constexpr auto CI_TYPE = "type";
38  constexpr auto CI_HEADER = "header";
39  constexpr auto CI_LOG = "log";
40  constexpr auto CI_UNIT = "unit";
41  constexpr auto CI_MAP = "map";
42 
43  // Specifics Sensor status values
44 
45  // Specific Sensor RPC
46 
47  // Specific constant values for Sensor device state/substate
48  constexpr int SUBSTATE_OP_MONITORING = 200;
49  constexpr auto SUBSTATE_OP_MONITORING_STR = "Monitoring";
50 
51  const std::unordered_map<short, std::string> SubstateMap = {
57  };
58 
59  constexpr auto DI_TYPE_STR = "DI";
60  constexpr auto AI_TYPE_STR = "AI";
61  constexpr auto II_TYPE_STR = "II";
62  constexpr auto SI_TYPE_STR = "SI";
63 
64  constexpr auto DI_CAT_STR = "diChannels";
65  constexpr auto AI_CAT_STR = "aiChannels";
66  constexpr auto II_CAT_STR = "iiChannels";
67  constexpr auto SI_CAT_STR = "siChannels";
68 
69 
70  const std::unordered_map<std::string, std::string> ChannelTypeMap = {
75  };
76 
77 
78 
79  struct Channel {
80  public:
81  Channel();
82  virtual ~Channel();
83 
84  inline std::string GetDescription() const;
85  inline std::string GetAlias() const;
86  inline std::string GetType() const;
87  inline bool GetHeaderFlag() const;
88  inline bool GetLogFlag() const;
89  inline std::string GetUnit() const;
90  inline std::string GetMap() const;
91  inline std::string GetCat() const;
92  inline std::string GetFitsPrefix() const;
93 
94  inline void SetDescription(std::string description);
95  inline void SetAlias(std::string alias);
96  inline void SetType(std::string type);
97  inline void SetHeaderFlag(bool flag);
98  inline void SetLogFlag(bool flag);
99  inline void SetUnit(std::string unit);
100  inline void SetMap(std::string map);
101  inline void SetFitsPrefix(std::string prefix);
102 
103  protected:
104  std::string m_description;
105  std::string m_alias;
106  std::string m_type;
107  bool m_header;
108  bool m_log;
109  std::string m_unit;
110  std::string m_map;
111  std::string m_prefix;
112  };
113 
114  class Sensor;
123  {
124 
125  friend class Sensor;
126  friend class SensorLcsIf;
127 
128  // Enumerations of configuration paramters
129  enum {
130 
131  END_ENUM_SENSOR // WARNING: This should be always last enumerator.
132  };
133 
134 
135  public:
136 
142  SensorConfig(const std::string filename,
143  const std::string name);
144 
149  SensorConfig(const std::string name);
150 
154  virtual ~SensorConfig() = default;
155 
164  virtual void Init();
165 
173  virtual void GetConfig(fcf::common::VectorVariant& params) const override;
174 
184  virtual void GetConfigList(utils::bat::DbVector& cfg_list,
185  std::string prefix) const override;
186 
194  virtual void GetChannelList(std::vector<std::string>& channel_list) const ;
195 
196  bool IsReadOnly() const;
197 
198 
199  private:
200  bool m_readonly;
201  // Map of motor named positions
202  std::map<std::string, Channel> m_channel_map;
203  log4cplus::Logger m_logger;
204  };
205 
206 }
207 
208 #include "sensorConfig.ipp"
209 #endif //FCF_DEVMGR_DEVICE_SENSOR_CONFIG_H
fcf::devmgr::sensor::CI_TYPE
constexpr auto CI_TYPE
Definition: sensorConfig.hpp:37
fcf::devmgr::sensor::CI_ALIAS
constexpr auto CI_ALIAS
Definition: sensorConfig.hpp:36
fcf::devmgr::sensor::Channel::GetHeaderFlag
bool GetHeaderFlag() const
fcf::devmgr::sensor::Sensor
The Sensor class.
Definition: sensor.hpp:41
dataContext.hpp
DataContext class header file.
fcf::devmgr::sensor::II_CAT_STR
constexpr auto II_CAT_STR
Definition: sensorConfig.hpp:66
fcf::devmgr::sensor::Channel::m_description
std::string m_description
Definition: sensorConfig.hpp:104
fcf::devmgr::sensor::Channel::m_log
bool m_log
Definition: sensorConfig.hpp:108
fcf::devmgr::sensor::SensorConfig::IsReadOnly
bool IsReadOnly() const
Definition: sensorConfig.cpp:215
fcf::devmgr::sensor::SUBSTATE_OP_MONITORING
constexpr int SUBSTATE_OP_MONITORING
Definition: sensorConfig.hpp:48
fcf::devmgr::sensor::Channel::SetType
void SetType(std::string type)
fcf::devmgr::sensor::Channel::GetFitsPrefix
std::string GetFitsPrefix() const
fcf::devmgr::sensor::SubstateMap
const std::unordered_map< short, std::string > SubstateMap
Definition: sensorConfig.hpp:51
fcf::devmgr::sensor::CI_MAP
constexpr auto CI_MAP
Definition: sensorConfig.hpp:41
m_logger
m_logger(log4cplus::Logger::getInstance(LOGGER_NAME))
Definition: {{cookiecutter.device_name}}.cpp:32
fcf::devmgr::sensor::SensorConfig::SensorConfig
SensorConfig(const std::string filename, const std::string name)
DeviceConfig constructor.
Definition: sensorConfig.cpp:40
fcf::devmgr::sensor::LOGGER_NAME
constexpr auto LOGGER_NAME
Definition: sensorConfig.hpp:29
fcf::devmgr::sensor::Channel::SetUnit
void SetUnit(std::string unit)
deviceConfig.hpp
DeviceConfig class header file.
fcf::devmgr::sensor::Channel::m_type
std::string m_type
Definition: sensorConfig.hpp:106
fcf::devmgr::sensor::AI_TYPE_STR
constexpr auto AI_TYPE_STR
Definition: sensorConfig.hpp:60
fcf::devmgr::sensor::SensorConfig::GetConfig
virtual void GetConfig(fcf::common::VectorVariant &params) const override
Obtain the list of configuration parameters.
Definition: sensorConfig.cpp:131
fcf::devmgr::sensor::Channel::SetAlias
void SetAlias(std::string alias)
fcf::devmgr::sensor::Channel::m_unit
std::string m_unit
Definition: sensorConfig.hpp:109
fcf::devmgr::sensor::Channel::m_map
std::string m_map
Definition: sensorConfig.hpp:110
fcf::devmgr::sensor::Channel
Definition: sensorConfig.hpp:79
fcf::devmgr::sensor::Channel::GetLogFlag
bool GetLogFlag() const
fcf::devmgr::sensor::CI_HEADER
constexpr auto CI_HEADER
Definition: sensorConfig.hpp:38
fcf::devmgr::sensor::CI_CHANNELS
constexpr auto CI_CHANNELS
Definition: sensorConfig.hpp:33
fcf::devmgr::sensor::DI_CAT_STR
constexpr auto DI_CAT_STR
Definition: sensorConfig.hpp:64
fcf::devmgr::sensor::SensorLcsIf
Sensor Local Control System (LCS) Interface (IF) class.
Definition: sensorLcsIf.hpp:97
fcf::devmgr::sensor::Channel::m_prefix
std::string m_prefix
Definition: sensorConfig.hpp:111
fcf::devmgr::sensor::SI_TYPE_STR
constexpr auto SI_TYPE_STR
Definition: sensorConfig.hpp:62
fcf::devmgr::sensor::SensorConfig::Init
virtual void Init()
Read the configuration.
Definition: sensorConfig.cpp:60
fcf::devmgr::sensor::Channel::m_header
bool m_header
Definition: sensorConfig.hpp:107
fcf::devmgr::sensor
Definition: sensor.hpp:21
fcf::devmgr::common::SUBSTATE_NOTREADY_STR
constexpr auto SUBSTATE_NOTREADY_STR
Definition: deviceConfig.hpp:99
fcf::devmgr::sensor::CI_LOG
constexpr auto CI_LOG
Definition: sensorConfig.hpp:39
configSet.hpp
configSet class header file.
fcf::devmgr::sensor::II_TYPE_STR
constexpr auto II_TYPE_STR
Definition: sensorConfig.hpp:61
fcf::devmgr::common::SUBSTATE_NOTREADY
constexpr int SUBSTATE_NOTREADY
Definition: deviceConfig.hpp:94
sensorRpcErrors.hpp
SensorRpcErrors header file.
fcf::devmgr::sensor::Channel::Channel
Channel()
Definition: sensorConfig.cpp:26
fcf::devmgr::sensor::DI_TYPE_STR
constexpr auto DI_TYPE_STR
Definition: sensorConfig.hpp:59
fcf::devmgr::sensor::CI_NAME
constexpr auto CI_NAME
Definition: sensorConfig.hpp:34
fcf::devmgr::sensor::SI_CAT_STR
constexpr auto SI_CAT_STR
Definition: sensorConfig.hpp:67
fcf::devmgr::sensor::Channel::SetMap
void SetMap(std::string map)
fcf::devmgr::sensor::Channel::SetHeaderFlag
void SetHeaderFlag(bool flag)
fcf::devmgr::sensor::ChannelTypeMap
const std::unordered_map< std::string, std::string > ChannelTypeMap
Definition: sensorConfig.hpp:70
fcf::devmgr::sensor::Channel::SetLogFlag
void SetLogFlag(bool flag)
fcf::devmgr::common::SUBSTATE_OP_ERROR
constexpr int SUBSTATE_OP_ERROR
Definition: deviceConfig.hpp:105
fcf::devmgr::sensor::SUBSTATE_OP_MONITORING_STR
constexpr auto SUBSTATE_OP_MONITORING_STR
Definition: sensorConfig.hpp:49
fcf::devmgr::sensor::Channel::~Channel
virtual ~Channel()
Definition: sensorConfig.cpp:36
fcf::devmgr::sensor::SensorConfig::~SensorConfig
virtual ~SensorConfig()=default
DeviceConfig destructor.
fcf::devmgr::common::SUBSTATE_OP_ERROR_STR
constexpr auto SUBSTATE_OP_ERROR_STR
Definition: deviceConfig.hpp:108
fcf::devmgr::sensor::Channel::GetAlias
std::string GetAlias() const
fcf::devmgr::sensor::SensorConfig
sensor Configuration class
Definition: sensorConfig.hpp:123
fcf::devmgr::sensor::Channel::SetDescription
void SetDescription(std::string description)
fcf::devmgr::common::SUBSTATE_ERROR
constexpr int SUBSTATE_ERROR
Definition: deviceConfig.hpp:97
fcf::devmgr::sensor::Channel::GetDescription
std::string GetDescription() const
fcf::devmgr::sensor::AI_CAT_STR
constexpr auto AI_CAT_STR
Definition: sensorConfig.hpp:65
fcf::devmgr::common::DeviceConfig
Device Configuration class.
Definition: deviceConfig.hpp:123
fcf::devmgr::common::SUBSTATE_READY_STR
constexpr auto SUBSTATE_READY_STR
Definition: deviceConfig.hpp:101
fcf::devmgr::common::SUBSTATE_READY
constexpr int SUBSTATE_READY
Definition: deviceConfig.hpp:95
fcf::devmgr::sensor::Channel::m_alias
std::string m_alias
Definition: sensorConfig.hpp:105
fcf::devmgr::sensor::SensorConfig::GetConfigList
virtual void GetConfigList(utils::bat::DbVector &cfg_list, std::string prefix) const override
Get configuration list.
Definition: sensorConfig.cpp:139
fcf::devmgr::sensor::CI_READONLY
constexpr auto CI_READONLY
Definition: sensorConfig.hpp:30
fcf::devmgr::common::SUBSTATE_ERROR_STR
constexpr auto SUBSTATE_ERROR_STR
Definition: deviceConfig.hpp:102
fcf::devmgr::sensor::Channel::SetFitsPrefix
void SetFitsPrefix(std::string prefix)
fcf::devmgr::sensor::Channel::GetMap
std::string GetMap() const
fcf::devmgr::sensor::Channel::GetType
std::string GetType() const
fcf::devmgr::sensor::SensorConfig::GetChannelList
virtual void GetChannelList(std::vector< std::string > &channel_list) const
Get channel list.
Definition: sensorConfig.cpp:206
fcf::devmgr::sensor::Channel::GetCat
std::string GetCat() const
fcf::devmgr::sensor::CI_UNIT
constexpr auto CI_UNIT
Definition: sensorConfig.hpp:40
sensorHwErrors.hpp
SensorHwErrors header file.
fcfcli.type
type
Definition: fcfcli.py:32
fcf::devmgr::sensor::Channel::GetUnit
std::string GetUnit() const
fcf::devmgr::sensor::CI_DESCRIPTION
constexpr auto CI_DESCRIPTION
Definition: sensorConfig.hpp:35