ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
sensorConfig.hpp
Go to the documentation of this file.
1 
10 #ifndef DEVMGR_DEVICE_SENSOR_CONFIG_HPP
11 #define 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>
20 #include <devmgr/common/deviceConfig.hpp>
21 #include <devmgr/common/configSet.hpp>
22 #include <devmgr/common/dataContext.hpp>
23 #include <devmgr/devices/sensorRpcErrors.hpp>
24 #include <devmgr/devices/sensorHwErrors.hpp>
25 
26 namespace devmgr {
27  namespace sensor {
28 
29  // Constants for internal mapping
30  const std::string CI_CHANNELS = "channels";
31  const std::string CI_DESCRIPTION = "description";
32  const std::string CI_TYPE = "type";
33  const std::string CI_HEADER = "header";
34  const std::string CI_LOG = "log";
35  const std::string CI_UNIT = "unit";
36  const std::string CI_MAP = "map";
37 
38  // Specifics Sensor status values
39 
40  // Specific Sensor RPC
41 
42 
43 
44  // Specific constant values for Sensor device state/substate
45  const short SUBSTATE_NOTREADY = 100;
46  const short SUBSTATE_READY = 101;
47  const short SUBSTATE_STANDBY_FAILURE = 102;
48 
49  const short SUBSTATE_OP_MONITORING = 200;
50  const short SUBSTATE_OP_FAILURE = 201;
51 
52  const std::string SUBSTATE_NOTREADY_STR = "NotReady";
53  const std::string SUBSTATE_READY_STR = "Ready";
54  const std::string SUBSTATE_FAILURE_STR = "Failure";
55 
56  const std::string SUBSTATE_OP_MONITORING_STR = "Monitoring";
57 
58  const std::unordered_map<short, std::string> SubstateMap = {
64  };
65 
66  const std::string DI_TYPE_STR = "DI";
67  const std::string AI_TYPE_STR = "AI";
68  const std::string II_TYPE_STR = "II";
69  const std::string SI_TYPE_STR = "SI";
70 
71  const std::string DI_CAT_STR = "diChannels";
72  const std::string AI_CAT_STR = "aiChannels";
73  const std::string II_CAT_STR = "iiChannels";
74  const std::string SI_CAT_STR = "siChannels";
75 
76 
77  const std::unordered_map<std::string, std::string> ChannelTypeMap = {
82  };
83 
84  const std::vector<std::string> cfgMapping = {
85  };
86 
87  const std::vector<std::string> statMapping = {
90  };
91 
92  const std::vector<std::string> rpcMapping = {
98  };
99 
100  struct Channel {
101  public:
102  Channel();
103  virtual ~Channel();
104 
105  inline std::string GetDescription() const;
106  inline std::string GetType() const;
107  inline bool GetHeaderFlag() const;
108  inline bool GetLogFlag() const;
109  inline std::string GetUnit() const;
110  inline std::string GetMap() const;
111  inline std::string GetCat() const;
112  inline std::string GetFitsPrefix() const;
113 
114  inline void SetDescription(std::string description);
115  inline void SetType(std::string type);
116  inline void SetHeaderFlag(bool flag);
117  inline void SetLogFlag(bool flag);
118  inline void SetUnit(std::string unit);
119  inline void SetMap(std::string map);
120  inline void SetFitsPrefix(std::string prefix);
121 
122  protected:
123  std::string m_description;
124  std::string m_type;
125  bool m_header;
126  bool m_log;
127  std::string m_unit;
128  std::string m_map;
129  std::string m_prefix;
130  };
131 
132  class Sensor;
140  class SensorConfig : public devmgr::common::DeviceConfig
141  {
142 
143  friend class Sensor;
144  friend class SensorLcsIf;
145 
146  // Enumerations of configuration paramters
147  enum {
148 
149  END_ENUM_SENSOR // WARNING: This should be always last enumerator.
150  };
151 
152 
153  public:
154 
160  SensorConfig(const std::string filename,
161  const std::string name);
162 
166  virtual ~SensorConfig();
167 
176  virtual void ReadConfig();
177 
185  virtual void GetConfig(fcf::common::VectorVariant& params);
186 
191  virtual std::string GetMapFile();
192 
202  virtual void GetConfigList(std::vector<std::string>& cfg_list,
203  std::string prefix);
204 
212  virtual void GetChannelList(std::vector<std::string>& channel_list);
213 
214 
215  private:
216  // Map of motor named positions
217  std::unordered_map<std::string, Channel> m_channel_map;
218  };
219  }
220 }
221 
222 #include "sensorConfig.inline"
223 #endif //DEVMGR_DEVICE_SENSOR_CONFIG_H
virtual ~SensorConfig()
DeviceConfig destructor.
Definition: sensorConfig.cpp:54
const std::string AI_CAT_STR
Definition: sensorConfig.hpp:72
const short SUBSTATE_OP_MONITORING
Definition: sensorConfig.hpp:49
const short SUBSTATE_NOTREADY
Definition: sensorConfig.hpp:45
const std::string SUBSTATE_NOTREADY_STR
Definition: sensorConfig.hpp:52
const short SUBSTATE_STANDBY_FAILURE
Definition: sensorConfig.hpp:47
const std::string RPC_STOP
Definition: deviceConfig.hpp:45
void SetFitsPrefix(std::string prefix)
const std::string CI_HEADER
Definition: sensorConfig.hpp:33
virtual void ReadConfig()
Read the configuration.
Definition: sensorConfig.cpp:58
const std::string II_TYPE_STR
Definition: sensorConfig.hpp:68
std::string m_description
Definition: sensorConfig.hpp:123
friend class SensorLcsIf
Definition: sensorConfig.hpp:144
const std::string RPC_DISABLE
Definition: deviceConfig.hpp:44
std::string GetCat() const
const std::string CI_STAT_SUBSTATE
Definition: deviceConfig.hpp:49
const std::string SI_CAT_STR
Definition: sensorConfig.hpp:74
const std::string SI_TYPE_STR
Definition: sensorConfig.hpp:69
const std::string DI_TYPE_STR
Definition: sensorConfig.hpp:66
virtual std::string GetMapFile()
Definition: sensorConfig.cpp:152
Device Configuration class.
Definition: deviceConfig.hpp:116
virtual void GetConfig(fcf::common::VectorVariant &params)
Obtain the list of configuration parameters.
Definition: sensorConfig.cpp:145
const std::string RPC_INIT
Definition: deviceConfig.hpp:42
const std::string SUBSTATE_READY_STR
Definition: sensorConfig.hpp:53
std::string m_map
Definition: sensorConfig.hpp:128
const short SUBSTATE_READY
Definition: sensorConfig.hpp:46
void SetDescription(std::string description)
const std::string DI_CAT_STR
Definition: sensorConfig.hpp:71
Channel()
Definition: sensorConfig.cpp:27
void SetMap(std::string map)
friend class Sensor
Definition: sensorConfig.hpp:143
const std::unordered_map< std::string, std::string > ChannelTypeMap
Definition: sensorConfig.hpp:77
bool m_log
Definition: sensorConfig.hpp:126
const std::vector< std::string > cfgMapping
Definition: sensorConfig.hpp:84
void SetUnit(std::string unit)
const std::string SUBSTATE_OP_MONITORING_STR
Definition: sensorConfig.hpp:56
void SetLogFlag(bool flag)
std::string m_prefix
Definition: sensorConfig.hpp:129
const std::string II_CAT_STR
Definition: sensorConfig.hpp:73
const std::string RPC_RESET
Definition: deviceConfig.hpp:46
std::string GetFitsPrefix() const
const std::string CI_DESCRIPTION
Definition: sensorConfig.hpp:31
std::string GetType() const
const short SUBSTATE_OP_FAILURE
Definition: sensorConfig.hpp:50
const base::type::char_t * unit
Definition: easylogging++.h:815
const std::string CI_UNIT
Definition: sensorConfig.hpp:35
const std::string CI_LOG
Definition: sensorConfig.hpp:34
SensorConfig(const std::string filename, const std::string name)
DeviceConfig constructor.
Definition: sensorConfig.cpp:41
const std::string CI_CHANNELS
Definition: sensorConfig.hpp:30
const std::vector< std::string > rpcMapping
Definition: sensorConfig.hpp:92
virtual void GetChannelList(std::vector< std::string > &channel_list)
Get channel list.
Definition: sensorConfig.cpp:201
std::string GetMap() const
const std::string CI_TYPE
Definition: sensorConfig.hpp:32
void SetHeaderFlag(bool flag)
std::string GetDescription() const
const std::unordered_map< short, std::string > SubstateMap
Definition: sensorConfig.hpp:58
const std::string CI_MAP
Definition: sensorConfig.hpp:36
const std::string AI_TYPE_STR
Definition: sensorConfig.hpp:67
std::string m_unit
Definition: sensorConfig.hpp:127
virtual ~Channel()
Definition: sensorConfig.cpp:37
const std::string CI_STAT_STATE
Definition: deviceConfig.hpp:50
bool m_header
Definition: sensorConfig.hpp:125
bool GetLogFlag() const
const std::string RPC_ENABLE
Definition: deviceConfig.hpp:43
virtual void GetConfigList(std::vector< std::string > &cfg_list, std::string prefix)
Get configuration list.
Definition: sensorConfig.cpp:159
bool GetHeaderFlag() const
void SetType(std::string type)
std::string m_type
Definition: sensorConfig.hpp:124
optional string name
Definition: topics.proto:50
const std::vector< std::string > statMapping
Definition: sensorConfig.hpp:87
std::string GetUnit() const
const std::string SUBSTATE_FAILURE_STR
Definition: sensorConfig.hpp:54