Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
DamperManager.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MODEL_CONTROL_DAMPERMANAGER_HPP_
2#define IV_SRC_MODEL_CONTROL_DAMPERMANAGER_HPP_
3
4#include "core/types.hpp"
8
9#include <list>
10#include <map>
11#include <memory>
12#include <optional>
13#include <set>
14
15namespace iv::model::control
16{
17
19{
20public:
21 DamperManager() = default;
22 ~DamperManager() = default;
23
24 void update(const DamperManager &other);
25 bool load(const iv::file::xml::node &nodeDampers);
26 bool save(iv::file::xml::node &nodeDampers) const;
27
28 bool insertDamper(const std::shared_ptr<iv::model::control::Damper> &damper);
29
33 const iv::model::control::damper::AllDamperChannels &allDamperChannels);
34
36 const iv::types::control::damper::damperDescription &newDamperDescription,
38
39 bool removeDamper(const types::control::damper::damperId &damperId, bool resetWiredChannels,
40 bool removeSoftwareChannels);
41
49 damper::eDamperType &defaultDamperType, iv::types::unitId &defaultLomId);
50
56 [[nodiscard]]
57 static std::set<iv::types::unitId> getAvailableLomIds(iv::model::control::damper::eDamperType damperType);
58
65 [[nodiscard]]
66 static std::optional<std::shared_ptr<iv::channels::AbstractChannel>>
68
75 [[nodiscard]]
76 static std::optional<std::shared_ptr<iv::channels::AbstractChannel>>
78
85 [[nodiscard]]
87 getLomAvailability(const std::shared_ptr<iv::units::Unit> &unit,
89
90 [[nodiscard]] std::map<iv::types::control::damper::damperId, std::shared_ptr<iv::model::control::Damper>> &
91 dampers();
92
93private:
99 [[nodiscard]]
100 static bool isDefaultChannel(const std::shared_ptr<iv::channels::AbstractChannel> &channel);
101
107 [[nodiscard]]
108 static uint16_t getNumAvailableDigitalOutputChannels(const std::shared_ptr<iv::units::Unit> &unit);
109
116 static std::list<iv::types::channelOrder>
117 getNumAvailableCmdChannelOrders(const std::shared_ptr<iv::units::Unit> &unit);
118
125 static std::list<iv::types::channelOrder>
126 getNumAvailableTripChannelOrders(const std::shared_ptr<iv::units::Unit> &unit);
127
135 [[nodiscard]]
136 static bool linkAndConfigureDamperChannels(const std::shared_ptr<iv::model::control::Damper> &damper);
137
138 static void reconfigureDamperChannels(const std::shared_ptr<iv::model::control::Damper> &damper);
139
145 static void resetDamperWiredChannels(const std::shared_ptr<iv::model::control::Damper> &damper);
146
152 static void removeDamperSoftwareChannels(const std::shared_ptr<iv::model::control::Damper> &damper);
153
154 static bool configureChFeedbackOP(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
158 static bool configureChFeedbackCL(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
162 static bool configureChOutputOP(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
166 static bool configureChOutputCL(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
170 static bool configureChCmdOP(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
172 iv::types::channelOrder channelOrder, iv::types::unitId unitId,
173 bool isConfiguringFromController,
176 static bool configureChCmdCL(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
178 iv::types::channelOrder channelOrder, iv::types::unitId unitId,
179 bool isConfiguringFromController,
182 static bool configureChCmdReset(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
184 iv::types::channelOrder channelOrder, iv::types::unitId unitId,
185 bool isConfiguringFromController,
188 static bool configureChTrip(const std::shared_ptr<iv::channels::AbstractChannel> &channel,
190 iv::types::channelOrder channelOrder, iv::types::unitId unitId,
191 bool isConfiguringFromController,
194
195 std::map<iv::types::control::damper::damperId, std::shared_ptr<iv::model::control::Damper>> m_dampers;
196
197 struct Sections
198 {
199 static constexpr std::string_view damper {"Damper"};
200 };
202 {
203 static constexpr uint16_t maxDamperOrderValue {999};
204 static constexpr uint16_t numCmdChannels {3};
205 static constexpr uint16_t numTripChannels {1};
206 static constexpr std::pair<iv::types::channelOrder, iv::types::channelOrder> damperCmdChannelOrderRange {400,
207 499};
208 static constexpr std::pair<iv::types::channelOrder, iv::types::channelOrder> damperTripChannelOrderRange {300,
209 363};
210 };
211};
212
213}// namespace iv::model::control
214
215#endif//IV_SRC_MODEL_CONTROL_DAMPERMANAGER_HPP_
Definition xmlFile.hpp:15
Definition DamperManager.hpp:19
std::map< iv::types::control::damper::damperId, std::shared_ptr< iv::model::control::Damper > > m_dampers
Definition DamperManager.hpp:195
static bool linkAndConfigureDamperChannels(const std::shared_ptr< iv::model::control::Damper > &damper)
Link and configure the channels of a damper.
Definition DamperManager.cpp:357
bool save(iv::file::xml::node &nodeDampers) const
Definition DamperManager.cpp:28
static bool configureChOutputCL(const std::shared_ptr< iv::channels::AbstractChannel > &channel, iv::types::control::damper::damperId damperId, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:704
static bool configureChFeedbackOP(const std::shared_ptr< iv::channels::AbstractChannel > &channel, iv::types::control::damper::damperId damperId, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:563
static uint16_t getNumAvailableDigitalOutputChannels(const std::shared_ptr< iv::units::Unit > &unit)
Get the number of available digital output channels for a given unit.
Definition DamperManager.cpp:306
static void reconfigureDamperChannels(const std::shared_ptr< iv::model::control::Damper > &damper)
Definition DamperManager.cpp:455
bool removeDamper(const types::control::damper::damperId &damperId, bool resetWiredChannels, bool removeSoftwareChannels)
Definition DamperManager.cpp:119
static std::list< iv::types::channelOrder > getNumAvailableTripChannelOrders(const std::shared_ptr< iv::units::Unit > &unit)
Get the available trip channel orders for a given unit.
Definition DamperManager.cpp:341
static bool configureChCmdCL(const std::shared_ptr< iv::channels::AbstractChannel > &channel, const iv::types::control::damper::damperId &damperId, iv::types::channelOrder channelOrder, iv::types::unitId unitId, bool isConfiguringFromController, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:806
bool createDamper(const iv::types::control::damper::damperDescription &damperDescription, iv::types::control::damper::damperOrder damperOrder, iv::model::control::damper::eDamperType damperType, iv::types::unitId lomId, const iv::model::control::damper::AllDamperChannels &allDamperChannels)
Definition DamperManager.cpp:59
void update(const DamperManager &other)
Definition DamperManager.cpp:977
void getDamperValidDefaultParameters(iv::types::control::damper::damperOrder &defaultDamperOrder, damper::eDamperType &defaultDamperType, iv::types::unitId &defaultLomId)
Gets a valid combination of default parameters for a damper.
Definition DamperManager.cpp:149
static bool isDefaultChannel(const std::shared_ptr< iv::channels::AbstractChannel > &channel)
Check if the channel is a default channel from the point of view of Dampers.
Definition DamperManager.cpp:263
static void removeDamperSoftwareChannels(const std::shared_ptr< iv::model::control::Damper > &damper)
Remove the software channels of a damper.
Definition DamperManager.cpp:553
static bool configureChCmdOP(const std::shared_ptr< iv::channels::AbstractChannel > &channel, const iv::types::control::damper::damperId &damperId, iv::types::channelOrder channelOrder, iv::types::unitId unitId, bool isConfiguringFromController, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:751
static std::list< iv::types::channelOrder > getNumAvailableCmdChannelOrders(const std::shared_ptr< iv::units::Unit > &unit)
Get the available command channel orders for a given unit.
Definition DamperManager.cpp:324
bool changeDamperDescriptionAndOrder(const iv::types::control::damper::damperId &oldDamperId, const iv::types::control::damper::damperDescription &newDamperDescription, iv::types::control::damper::damperOrder newDamperOrder)
Definition DamperManager.cpp:92
bool insertDamper(const std::shared_ptr< iv::model::control::Damper > &damper)
Definition DamperManager.cpp:41
static bool configureChFeedbackCL(const std::shared_ptr< iv::channels::AbstractChannel > &channel, iv::types::control::damper::damperId damperId, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:610
static std::optional< std::shared_ptr< iv::channels::AbstractChannel > > getTheNAvailableDamperOrderChannel(iv::types::unitId lomId, uint16_t n)
Get the Nth available damper order channel for a given LOM ID.
Definition DamperManager.cpp:234
static std::set< iv::types::unitId > getAvailableLomIds(iv::model::control::damper::eDamperType damperType)
Get the LOM IDs of the LOMs capable of managing a damper of a given type.
Definition DamperManager.cpp:173
std::map< iv::types::control::damper::damperId, std::shared_ptr< iv::model::control::Damper > > & dampers()
Definition DamperManager.cpp:144
static bool configureChCmdReset(const std::shared_ptr< iv::channels::AbstractChannel > &channel, const iv::types::control::damper::damperId &damperId, iv::types::channelOrder channelOrder, iv::types::unitId unitId, bool isConfiguringFromController, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:861
bool load(const iv::file::xml::node &nodeDampers)
Definition DamperManager.cpp:14
static std::optional< std::shared_ptr< iv::channels::AbstractChannel > > getTheNAvailableDamperFeedbackChannel(iv::types::unitId lomId, uint16_t n)
Get the Nth available damper feedback channel for a given LOM ID.
Definition DamperManager.cpp:204
static iv::model::control::damper::eLomAvailability getLomAvailability(const std::shared_ptr< iv::units::Unit > &unit, iv::model::control::damper::eDamperType damperType)
Get the availability of LOMs for a given damper type.
Definition DamperManager.cpp:271
static bool configureChOutputOP(const std::shared_ptr< iv::channels::AbstractChannel > &channel, iv::types::control::damper::damperId damperId, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:657
static void resetDamperWiredChannels(const std::shared_ptr< iv::model::control::Damper > &damper)
Reset the wired channels of a damper.
Definition DamperManager.cpp:527
static bool configureChTrip(const std::shared_ptr< iv::channels::AbstractChannel > &channel, const iv::types::control::damper::damperId &damperId, iv::types::channelOrder channelOrder, iv::types::unitId unitId, bool isConfiguringFromController, iv::types::control::damper::damperDescription damperDescription, iv::types::control::damper::damperOrder damperOrder)
Definition DamperManager.cpp:916
eLomAvailability
Definition enums.hpp:95
eDamperType
Definition enums.hpp:89
Definition ControlManager.cpp:4
std::string damperId
Definition types.hpp:114
std::string damperDescription
Definition types.hpp:115
uint16_t damperOrder
Definition types.hpp:116
uint16_t unitId
Definition types.hpp:77
uint16_t channelOrder
Definition types.hpp:68
Definition DamperManager.hpp:202
static constexpr std::pair< iv::types::channelOrder, iv::types::channelOrder > damperCmdChannelOrderRange
Definition DamperManager.hpp:206
static constexpr uint16_t numTripChannels
Definition DamperManager.hpp:205
static constexpr std::pair< iv::types::channelOrder, iv::types::channelOrder > damperTripChannelOrderRange
Definition DamperManager.hpp:208
static constexpr uint16_t maxDamperOrderValue
Definition DamperManager.hpp:203
static constexpr uint16_t numCmdChannels
Definition DamperManager.hpp:204
Definition DamperManager.hpp:198
static constexpr std::string_view damper
Definition DamperManager.hpp:199