Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AbstractPmsAction.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MODEL_PMS_ABSTRACTPMSACTION_HPP_
2#define IV_SRC_MODEL_PMS_ABSTRACTPMSACTION_HPP_
3
4#include "core/types.hpp"
8#include "model/pms/enums.hpp"
9
10namespace iv::model::pms
11{
12
14{
15public:
16 AbstractPmsAction() = default;
17 virtual ~AbstractPmsAction() = default;
18
19 static ePmsActionType readActionType(const file::xml::node &nodeAction);
20 virtual bool load(const iv::file::xml::node &nodeAction);
21 virtual bool save(iv::file::xml::node &nodeAction) const;
22
23 virtual bool runAction(std::string &errorMsg) const = 0;
24
27
28private:
29 struct Keys
30 {
31 static constexpr std::string_view modeType {"ModeType"};
32 static constexpr std::string_view maxProcessTime {"MaxProcessTime"};
33 };
35 {
38 };
39};
40
42{
43public:
44 BusTieCmdAction() = default;
45 ~BusTieCmdAction() override = default;
46
47 bool load(const iv::file::xml::node &nodeAction) override;
48 bool save(iv::file::xml::node &nodeAction) const override;
49
50 bool runAction(std::string &errorMsg) const override;
51
52 std::shared_ptr<iv::model::pms::BusTie> m_busTie {};
54
55private:
56 struct Keys
57 {
58 static constexpr std::string_view busTieId {"BusTieId"};
59 static constexpr std::string_view busTieCmdType {"BusTieCmdType"};
60 };
62 {
63 static constexpr iv::types::pms::elementId busTieId {UINT16_MAX};
66 };
67};
68
70{
71public:
72 GeneratorActions() = default;
73 ~GeneratorActions() override = default;
74
75 bool load(const iv::file::xml::node &nodeAction) override;
76 bool save(iv::file::xml::node &nodeAction) const override;
77
78 std::shared_ptr<iv::model::pms::Generator> m_generator {};
79
80private:
81 struct Keys
82 {
83 static constexpr std::string_view generatorId {"GeneratorId"};
84 };
86 {
87 static constexpr iv::types::pms::elementId generatorId {UINT16_MAX};
88 };
89};
90
91class GenCmdAction final : public GeneratorActions
92{
93public:
94 GenCmdAction() = default;
95 ~GenCmdAction() override = default;
96
97 bool load(const iv::file::xml::node &nodeAction) override;
98 bool save(iv::file::xml::node &nodeAction) const override;
99
100 bool runAction(std::string &errorMsg) const override;
101
103
104private:
105 struct Keys
106 {
107 static constexpr std::string_view cmdType {"CmdType"};
108 };
110 {
112 };
113};
114
116{
117public:
118 PriorityAction() = default;
119 ~PriorityAction() override = default;
120
121 bool load(const iv::file::xml::node &nodeAction) override;
122 bool save(iv::file::xml::node &nodeAction) const override;
123
124 bool runAction(std::string &errorMsg) const override;
125
127
128private:
129 struct Keys
130 {
131 static constexpr std::string_view value {"Value"};
132 };
134 {
135 static constexpr iv::types::channelValue value {0};
136 };
137};
138
139class CustomAction final : public AbstractPmsAction
140{
141public:
142 CustomAction() = default;
143 ~CustomAction() override = default;
144
145 bool load(const iv::file::xml::node &nodeAction) override;
146 bool save(iv::file::xml::node &nodeAction) const override;
147
148 bool runAction(std::string &errorMsg) const override;
149
150 std::weak_ptr<iv::channels::AbstractChannel> m_cmdChannel {};
151 std::weak_ptr<iv::channels::AbstractChannel> m_feedbackChannel {};
152
153private:
154 struct Keys
155 {
156 static constexpr std::string_view cmdChannel {"CmdChannel"};
157 static constexpr std::string_view feedbackChannel {"FeedbackChannel"};
158 };
160 {
161 static constexpr iv::types::channelId cmdChannelId {""};
163 };
164};
165
166class SleepAction final : public AbstractPmsAction
167{
168public:
169 SleepAction() = default;
170 ~SleepAction() override = default;
171
172 bool runAction(std::string &errorMsg) const override;
173};
174
175}// namespace iv::model::pms
176#endif//IV_SRC_MODEL_PMS_ABSTRACTPMSACTION_HPP_
Definition xmlFile.hpp:15
Definition AbstractPmsAction.hpp:14
ePmsActionType m_actionType
Definition AbstractPmsAction.hpp:25
virtual bool save(iv::file::xml::node &nodeAction) const
Definition AbstractPmsAction.cpp:27
virtual ~AbstractPmsAction()=default
static ePmsActionType readActionType(const file::xml::node &nodeAction)
Definition AbstractPmsAction.cpp:11
iv::types::milliseconds m_maxProcessTime
Definition AbstractPmsAction.hpp:26
virtual bool runAction(std::string &errorMsg) const =0
virtual bool load(const iv::file::xml::node &nodeAction)
Definition AbstractPmsAction.cpp:19
Definition AbstractPmsAction.hpp:42
eBusTieCmdActionType m_busTieCmdType
Definition AbstractPmsAction.hpp:53
bool load(const iv::file::xml::node &nodeAction) override
Definition AbstractPmsAction.cpp:35
~BusTieCmdAction() override=default
bool runAction(std::string &errorMsg) const override
Definition AbstractPmsAction.cpp:73
std::shared_ptr< iv::model::pms::BusTie > m_busTie
Definition AbstractPmsAction.hpp:52
bool save(iv::file::xml::node &nodeAction) const override
Definition AbstractPmsAction.cpp:61
Definition AbstractPmsAction.hpp:140
bool load(const iv::file::xml::node &nodeAction) override
Definition AbstractPmsAction.cpp:445
std::weak_ptr< iv::channels::AbstractChannel > m_cmdChannel
Definition AbstractPmsAction.hpp:150
bool runAction(std::string &errorMsg) const override
Definition AbstractPmsAction.cpp:480
std::weak_ptr< iv::channels::AbstractChannel > m_feedbackChannel
Definition AbstractPmsAction.hpp:151
bool save(iv::file::xml::node &nodeAction) const override
Definition AbstractPmsAction.cpp:465
~CustomAction() override=default
Definition AbstractPmsAction.hpp:92
eGenCmdActionType m_cmdType
Definition AbstractPmsAction.hpp:102
bool save(iv::file::xml::node &nodeAction) const override
Definition AbstractPmsAction.cpp:211
~GenCmdAction() override=default
bool runAction(std::string &errorMsg) const override
Definition AbstractPmsAction.cpp:220
bool load(const iv::file::xml::node &nodeAction) override
Definition AbstractPmsAction.cpp:197
Definition AbstractPmsAction.hpp:70
std::shared_ptr< iv::model::pms::Generator > m_generator
Definition AbstractPmsAction.hpp:78
bool load(const iv::file::xml::node &nodeAction) override
Definition AbstractPmsAction.cpp:165
bool save(iv::file::xml::node &nodeAction) const override
Definition AbstractPmsAction.cpp:186
~GeneratorActions() override=default
Definition AbstractPmsAction.hpp:116
bool runAction(std::string &errorMsg) const override
Definition AbstractPmsAction.cpp:380
bool load(const iv::file::xml::node &nodeAction) override
Definition AbstractPmsAction.cpp:366
bool save(iv::file::xml::node &nodeAction) const override
Definition AbstractPmsAction.cpp:373
~PriorityAction() override=default
iv::types::channelValue m_value
Definition AbstractPmsAction.hpp:126
Definition AbstractPmsAction.hpp:167
bool runAction(std::string &errorMsg) const override
Definition AbstractPmsAction.cpp:434
~SleepAction() override=default
Definition AbstractPmsAction.cpp:9
ePmsActionType
Definition enums.hpp:15
eBusTieCmdActionType
Definition enums.hpp:34
eGenCmdActionType
Definition enums.hpp:24
uint16_t elementId
Definition types.hpp:96
uint64_t timestamp
Definition types.hpp:21
double channelValue
Definition types.hpp:67
uint64_t milliseconds
Definition types.hpp:22
std::string channelId
Definition types.hpp:66
Definition AbstractPmsAction.hpp:35
static constexpr auto actionType
Definition AbstractPmsAction.hpp:36
static constexpr iv::types::timestamp maxProcessTime
Definition AbstractPmsAction.hpp:37
Definition AbstractPmsAction.hpp:30
static constexpr std::string_view modeType
Definition AbstractPmsAction.hpp:31
static constexpr std::string_view maxProcessTime
Definition AbstractPmsAction.hpp:32
Definition AbstractPmsAction.hpp:62
static constexpr iv::types::pms::elementId busTieId
Definition AbstractPmsAction.hpp:63
static constexpr auto busTieCmdType
Definition AbstractPmsAction.hpp:64
Definition AbstractPmsAction.hpp:57
static constexpr std::string_view busTieCmdType
Definition AbstractPmsAction.hpp:59
static constexpr std::string_view busTieId
Definition AbstractPmsAction.hpp:58
Definition AbstractPmsAction.hpp:160
static constexpr iv::types::channelId feedbackChannelId
Definition AbstractPmsAction.hpp:162
static constexpr iv::types::channelId cmdChannelId
Definition AbstractPmsAction.hpp:161
Definition AbstractPmsAction.hpp:155
static constexpr std::string_view feedbackChannel
Definition AbstractPmsAction.hpp:157
static constexpr std::string_view cmdChannel
Definition AbstractPmsAction.hpp:156
Definition AbstractPmsAction.hpp:110
static constexpr auto cmdType
Definition AbstractPmsAction.hpp:111
Definition AbstractPmsAction.hpp:106
static constexpr std::string_view cmdType
Definition AbstractPmsAction.hpp:107
Definition AbstractPmsAction.hpp:86
static constexpr iv::types::pms::elementId generatorId
Definition AbstractPmsAction.hpp:87
Definition AbstractPmsAction.hpp:82
static constexpr std::string_view generatorId
Definition AbstractPmsAction.hpp:83
Definition AbstractPmsAction.hpp:134
static constexpr iv::types::channelValue value
Definition AbstractPmsAction.hpp:135
Definition AbstractPmsAction.hpp:130
static constexpr std::string_view value
Definition AbstractPmsAction.hpp:131