ifw-sup 5.1.0
 
Loading...
Searching...
No Matches
config.hpp
Go to the documentation of this file.
1
7
8#ifndef SUP_SUBSIM_COMMON_CONFIG_HPP_
9#define SUP_SUBSIM_COMMON_CONFIG_HPP_
10
11#include <string>
12#include <any>
13
14#include <yaml-cpp/yaml.h>
15
16#include <ifw/core/utils/bat/config.hpp>
17#include <ifw/sup/subsim/common/events.rad.hpp>
18
19
21
25 constexpr auto CONFIG_COMMAND_INIT = "Init";
26 constexpr auto CONFIG_COMMAND_ENABLE = "Enable";
27 constexpr auto CONFIG_COMMAND_DISABLE = "Disable";
28 constexpr auto CONFIG_COMMAND_SETUP = "Setup";
29 constexpr auto CONFIG_COMMAND_OPENLOOP = "OpenLoop";
30 constexpr auto CONFIG_COMMAND_CLOSEDLOOP = "ClosedLoop";
31
35 constexpr auto KEY_CONFIG_COMANDS = "commands";
36 constexpr auto KEY_CONFIG_CMDNAME = "name";
37 constexpr auto KEY_CONFIG_CMDTOUT = "cmdtout";
38 constexpr auto KEY_CONFIG_REPLY_TYPE = "reply_ok";
39 constexpr auto KEY_CONFIG_REPLY_DELAY = "reply_delay";
40 constexpr auto KEY_CONFIG_REPLY_ERR_MSG = "reply_error_msg";
41
42
43 using DbPair = std::pair<std::string, std::any>;
44 using DbVector = std::vector<DbPair>;
45
47
48 inline void SetReplyOk(bool flag);
49 inline bool GetReplyOk() const;
50 inline void SetDelay(int delay);
51 inline int GetDelay() const;
52 inline void SetOkMsg(const std::string &msg);
53 inline std::string GetOkMsg() const;
54 inline void SetErrMsg(const std::string &msg);
55 inline std::string GetErrMsg() const;
56
57
58 protected:
59 bool m_reply_ok{true};
60 int m_delay{1000};
61 std::string m_ok_msg;
62 std::string m_error_msg;
63 };
64
69 class Config : public ifw::core::utils::bat::Config {
70
71
72 public:
73
81 Config();
82
86 virtual ~Config();
87
88
89
98 void LoadConfig(const std::string& filename = "", bool reset = false) override;
99
100 std::optional<bool> GetReplyOk(const std::string& name) const;
101 std::optional<int> GetReplyDelay(const std::string& name) const;
102 std::optional<std::string> GetReplyErrorMessage(const std::string& name) const;
103
104
105 ReplyConfigData* GetCmdReplyData(const std::string& name) ;
106
115 virtual void GetConfigList(DbVector& cfg_list) override;
116
117 const int GetNumCommands();
118
119 const std::string GetCommandName(const int& cmd_index);
120
121
122 void SetReplyOk(const std::string& name, const bool& flag);
123 void SetReplyDelay(const std::string& name, const int& delay);
124 void SetReplyErrorMessage(const std::string& name, const std::string& msg);
125
126 Config(const Config&) = delete;
127 Config& operator=(const Config&) = delete;
128
129 private:
130 int m_num_commands{0};
131 std::map<std::string, ReplyConfigData> reply_cmd_map;
132
133 };
134
135} // namespace
136
137
138#include "config.ipp"
139
140#endif // SUP_SUBSIM_COMMON_CONFIG_HPP_
virtual void GetConfigList(DbVector &cfg_list) override
Get configuration list.
Definition config.cpp:202
std::optional< int > GetReplyDelay(const std::string &name) const
Definition config.cpp:139
Config()
Definition config.cpp:27
const std::string GetCommandName(const int &cmd_index)
Definition config.cpp:190
void LoadConfig(const std::string &filename="", bool reset=false) override
Definition config.cpp:35
std::optional< std::string > GetReplyErrorMessage(const std::string &name) const
Definition config.cpp:158
ReplyConfigData * GetCmdReplyData(const std::string &name)
Definition config.cpp:175
void SetReplyOk(const std::string &name, const bool &flag)
Definition config.cpp:126
const int GetNumCommands()
Definition config.cpp:183
std::optional< bool > GetReplyOk(const std::string &name) const
Definition config.cpp:114
Config(const Config &)=delete
void SetReplyErrorMessage(const std::string &name, const std::string &msg)
Definition config.cpp:167
virtual ~Config()
Definition config.cpp:32
void SetReplyDelay(const std::string &name, const int &delay)
Definition config.cpp:149
Config & operator=(const Config &)=delete
Disable copy constructor.
ActionMgr class source file.
Definition actionMgr.cpp:28
std::pair< std::string, std::any > DbPair
Definition config.hpp:43
constexpr auto CONFIG_COMMAND_OPENLOOP
Definition config.hpp:29
constexpr auto KEY_CONFIG_CMDNAME
Definition config.hpp:36
constexpr auto KEY_CONFIG_REPLY_TYPE
Definition config.hpp:38
constexpr auto KEY_CONFIG_COMANDS
Definition config.hpp:35
std::vector< DbPair > DbVector
Definition config.hpp:44
constexpr auto KEY_CONFIG_REPLY_DELAY
Definition config.hpp:39
constexpr auto KEY_CONFIG_REPLY_ERR_MSG
Definition config.hpp:40
constexpr auto KEY_CONFIG_CMDTOUT
Definition config.hpp:37
constexpr auto CONFIG_COMMAND_SETUP
Definition config.hpp:28
constexpr auto CONFIG_COMMAND_INIT
Definition config.hpp:25
constexpr auto CONFIG_COMMAND_DISABLE
Definition config.hpp:27
constexpr auto CONFIG_COMMAND_CLOSEDLOOP
Definition config.hpp:30
constexpr auto CONFIG_COMMAND_ENABLE
Definition config.hpp:26
int m_delay
Definition config.hpp:60
std::string m_ok_msg
Definition config.hpp:61
void SetOkMsg(const std::string &msg)
bool m_reply_ok
Definition config.hpp:59
void SetErrMsg(const std::string &msg)
std::string m_error_msg
Definition config.hpp:62