ifw-fcf  3.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 <fcf/common/iComm.hpp>
25 
26 namespace fcf::devmgr::sensor {
27 
28  constexpr auto CI_READONLY = "readonly";
29 
30  // Constants for internal mapping
31  constexpr auto CI_CHANNELS = "channels";
32  constexpr auto CI_DESCRIPTION = "description";
33  constexpr auto CI_ALIAS = "alias";
34  constexpr auto CI_TYPE = "type";
35  constexpr auto CI_HEADER = "header";
36  constexpr auto CI_LOG = "log";
37  constexpr auto CI_UNIT = "unit";
38  constexpr auto CI_MAP = "map";
39 
40  // Specifics Sensor status values
41 
42  // Specific Sensor RPC
43 
44  // Specific constant values for Sensor device state/substate
45  constexpr int SUBSTATE_OP_MONITORING = 200;
46  constexpr auto SUBSTATE_OP_MONITORING_STR = "Monitoring";
47 
48  const std::unordered_map<short, std::string> SubstateMap = {
54  };
55 
56  constexpr auto DI_TYPE_STR = "DI";
57  constexpr auto AI_TYPE_STR = "AI";
58  constexpr auto II_TYPE_STR = "II";
59  constexpr auto SI_TYPE_STR = "SI";
60 
61  constexpr auto DI_CAT_STR = "diChannels";
62  constexpr auto AI_CAT_STR = "aiChannels";
63  constexpr auto II_CAT_STR = "iiChannels";
64  constexpr auto SI_CAT_STR = "siChannels";
65 
66 
67  const std::unordered_map<std::string, std::string> ChannelTypeMap = {
72  };
73 
74  const std::vector<std::string> cfgMapping = {
75  };
76 
77  const std::vector<std::string> statMapping = {
80  };
81 
82  const std::vector<std::string> rpcMapping = {
88  };
89 
90  struct Channel {
91  public:
92  Channel();
93  virtual ~Channel();
94 
95  inline std::string GetDescription() const;
96  inline std::string GetAlias() const;
97  inline std::string GetType() const;
98  inline bool GetHeaderFlag() const;
99  inline bool GetLogFlag() const;
100  inline std::string GetUnit() const;
101  inline std::string GetMap() const;
102  inline std::string GetCat() const;
103  inline std::string GetFitsPrefix() const;
104 
105  inline void SetDescription(std::string description);
106  inline void SetAlias(std::string alias);
107  inline void SetType(std::string type);
108  inline void SetHeaderFlag(bool flag);
109  inline void SetLogFlag(bool flag);
110  inline void SetUnit(std::string unit);
111  inline void SetMap(std::string map);
112  inline void SetFitsPrefix(std::string prefix);
113 
114  protected:
115  std::string m_description;
116  std::string m_alias;
117  std::string m_type;
118  bool m_header;
119  bool m_log;
120  std::string m_unit;
121  std::string m_map;
122  std::string m_prefix;
123  };
124 
125  class Sensor;
134  {
135 
136  friend class Sensor;
137  template<typename TOPIC_TYPE>
138  friend class SensorLcsIf;
139 
140  // Enumerations of configuration paramters
141  enum {
142 
143  END_ENUM_SENSOR // WARNING: This should be always last enumerator.
144  };
145 
146 
147  public:
148 
154  SensorConfig(const std::string filename,
155  const std::string name);
156 
161  SensorConfig(const std::string name);
162 
166  virtual ~SensorConfig();
167 
176  virtual void ReadConfig();
177 
185  virtual void GetConfig(fcf::common::VectorVariant& params);
186 
196  virtual void GetConfigList(std::vector<std::string>& cfg_list,
197  std::string prefix);
198 
206  virtual void GetChannelList(std::vector<std::string>& channel_list);
207 
208  bool IsReadOnly();
209 
210  private:
211  bool m_readonly;
212  // Map of motor named positions
213  std::map<std::string, Channel> m_channel_map;
214  };
215 
216 }
217 
218 #include "sensorConfig.ipp"
219 #endif //FCF_DEVMGR_DEVICE_SENSOR_CONFIG_H
fcf::devmgr::sensor::CI_TYPE
constexpr auto CI_TYPE
Definition: sensorConfig.hpp:34
fcf::devmgr::sensor::SensorConfig::GetConfigList
virtual void GetConfigList(std::vector< std::string > &cfg_list, std::string prefix)
Get configuration list.
Definition: sensorConfig.cpp:174
fcf::devmgr::sensor::CI_ALIAS
constexpr auto CI_ALIAS
Definition: sensorConfig.hpp:33
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:63
fcf::devmgr::sensor::Channel::m_description
std::string m_description
Definition: sensorConfig.hpp:115
fcf::devmgr::sensor::Channel::m_log
bool m_log
Definition: sensorConfig.hpp:119
fcf::devmgr::sensor::SUBSTATE_OP_MONITORING
constexpr int SUBSTATE_OP_MONITORING
Definition: sensorConfig.hpp:45
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:48
fcf::devmgr::sensor::CI_MAP
constexpr auto CI_MAP
Definition: sensorConfig.hpp:38
fcf::devmgr::sensor::SensorConfig::SensorConfig
SensorConfig(const std::string filename, const std::string name)
DeviceConfig constructor.
Definition: sensorConfig.cpp:40
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:117
fcf::devmgr::sensor::AI_TYPE_STR
constexpr auto AI_TYPE_STR
Definition: sensorConfig.hpp:57
fcf::devmgr::sensor::Channel::SetAlias
void SetAlias(std::string alias)
fcf::devmgr::sensor::Channel::m_unit
std::string m_unit
Definition: sensorConfig.hpp:120
fcf::devmgr::common::CI_STAT_STATE
constexpr auto CI_STAT_STATE
Definition: deviceConfig.hpp:51
fcf::devmgr::sensor::Channel::m_map
std::string m_map
Definition: sensorConfig.hpp:121
fcf::devmgr::sensor::statMapping
const std::vector< std::string > statMapping
Definition: sensorConfig.hpp:77
fcf::devmgr::sensor::Channel
Definition: sensorConfig.hpp:90
fcf::devmgr::sensor::Channel::GetLogFlag
bool GetLogFlag() const
fcf::devmgr::sensor::CI_HEADER
constexpr auto CI_HEADER
Definition: sensorConfig.hpp:35
fcf::devmgr::sensor::CI_CHANNELS
constexpr auto CI_CHANNELS
Definition: sensorConfig.hpp:31
fcf::devmgr::sensor::DI_CAT_STR
constexpr auto DI_CAT_STR
Definition: sensorConfig.hpp:61
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:122
fcf::devmgr::sensor::SensorConfig::~SensorConfig
virtual ~SensorConfig()
DeviceConfig destructor.
Definition: sensorConfig.cpp:58
fcf::devmgr::sensor::SI_TYPE_STR
constexpr auto SI_TYPE_STR
Definition: sensorConfig.hpp:59
fcf::devmgr::common::RPC_STOP
constexpr auto RPC_STOP
Definition: deviceConfig.hpp:46
fcf::devmgr::sensor::cfgMapping
const std::vector< std::string > cfgMapping
Definition: sensorConfig.hpp:74
fcf::devmgr::common::RPC_DISABLE
constexpr auto RPC_DISABLE
Definition: deviceConfig.hpp:45
fcf::devmgr::sensor::Channel::m_header
bool m_header
Definition: sensorConfig.hpp:118
fcf::devmgr::sensor
Definition: sensor.hpp:21
fcf::devmgr::sensor::SensorConfig::GetChannelList
virtual void GetChannelList(std::vector< std::string > &channel_list)
Get channel list.
Definition: sensorConfig.cpp:223
fcf::devmgr::sensor::SensorConfig::ReadConfig
virtual void ReadConfig()
Read the configuration.
Definition: sensorConfig.cpp:64
fcf::devmgr::common::SUBSTATE_NOTREADY_STR
constexpr auto SUBSTATE_NOTREADY_STR
Definition: deviceConfig.hpp:87
fcf::devmgr::sensor::SensorConfig::GetConfig
virtual void GetConfig(fcf::common::VectorVariant &params)
Obtain the list of configuration parameters.
Definition: sensorConfig.cpp:167
fcf::devmgr::sensor::CI_LOG
constexpr auto CI_LOG
Definition: sensorConfig.hpp:36
configSet.hpp
configSet class header file.
fcf::devmgr::sensor::II_TYPE_STR
constexpr auto II_TYPE_STR
Definition: sensorConfig.hpp:58
fcf::devmgr::common::SUBSTATE_NOTREADY
constexpr int SUBSTATE_NOTREADY
Definition: deviceConfig.hpp:82
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:56
fcf::devmgr::sensor::SI_CAT_STR
constexpr auto SI_CAT_STR
Definition: sensorConfig.hpp:64
fcf::devmgr::sensor::Channel::SetMap
void SetMap(std::string map)
fcf::devmgr::sensor::Channel::SetHeaderFlag
void SetHeaderFlag(bool flag)
pymotgui.type
type
Definition: pymotgui.py:20
fcf::devmgr::sensor::ChannelTypeMap
const std::unordered_map< std::string, std::string > ChannelTypeMap
Definition: sensorConfig.hpp:67
fcf::devmgr::sensor::Channel::SetLogFlag
void SetLogFlag(bool flag)
fcf::devmgr::common::RPC_ENABLE
constexpr auto RPC_ENABLE
Definition: deviceConfig.hpp:44
fcf::devmgr::common::SUBSTATE_OP_ERROR
constexpr int SUBSTATE_OP_ERROR
Definition: deviceConfig.hpp:93
fcf::devmgr::sensor::SUBSTATE_OP_MONITORING_STR
constexpr auto SUBSTATE_OP_MONITORING_STR
Definition: sensorConfig.hpp:46
fcf::devmgr::sensor::Channel::~Channel
virtual ~Channel()
Definition: sensorConfig.cpp:36
fcf::devmgr::common::SUBSTATE_OP_ERROR_STR
constexpr auto SUBSTATE_OP_ERROR_STR
Definition: deviceConfig.hpp:96
fcf::devmgr::sensor::Channel::GetAlias
std::string GetAlias() const
fcf::devmgr::sensor::rpcMapping
const std::vector< std::string > rpcMapping
Definition: sensorConfig.hpp:82
fcf::devmgr::sensor::SensorConfig
sensor Configuration class
Definition: sensorConfig.hpp:134
fcf::devmgr::sensor::Channel::SetDescription
void SetDescription(std::string description)
fcf::devmgr::common::CI_STAT_SUBSTATE
constexpr auto CI_STAT_SUBSTATE
Definition: deviceConfig.hpp:50
fcf::devmgr::common::SUBSTATE_ERROR
constexpr int SUBSTATE_ERROR
Definition: deviceConfig.hpp:85
fcf::devmgr::sensor::Channel::GetDescription
std::string GetDescription() const
fcf::devmgr::common::RPC_INIT
constexpr auto RPC_INIT
Definition: deviceConfig.hpp:43
fcf::devmgr::sensor::AI_CAT_STR
constexpr auto AI_CAT_STR
Definition: sensorConfig.hpp:62
fcf::devmgr::common::DeviceConfig
Device Configuration class.
Definition: deviceConfig.hpp:125
fcf::devmgr::common::SUBSTATE_READY_STR
constexpr auto SUBSTATE_READY_STR
Definition: deviceConfig.hpp:89
fcf::devmgr::common::SUBSTATE_READY
constexpr int SUBSTATE_READY
Definition: deviceConfig.hpp:83
fcf::devmgr::sensor::SensorConfig::IsReadOnly
bool IsReadOnly()
Definition: sensorConfig.cpp:232
fcf::devmgr::sensor::Channel::m_alias
std::string m_alias
Definition: sensorConfig.hpp:116
fcf::devmgr::sensor::CI_READONLY
constexpr auto CI_READONLY
Definition: sensorConfig.hpp:28
fcf::devmgr::common::SUBSTATE_ERROR_STR
constexpr auto SUBSTATE_ERROR_STR
Definition: deviceConfig.hpp:90
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::Channel::GetCat
std::string GetCat() const
fcf::devmgr::sensor::CI_UNIT
constexpr auto CI_UNIT
Definition: sensorConfig.hpp:37
sensorHwErrors.hpp
SensorHwErrors header file.
fcf::devmgr::sensor::Channel::GetUnit
std::string GetUnit() const
fcf::devmgr::common::RPC_RESET
constexpr auto RPC_RESET
Definition: deviceConfig.hpp:47
fcf::devmgr::sensor::CI_DESCRIPTION
constexpr auto CI_DESCRIPTION
Definition: sensorConfig.hpp:32