Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Fan.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MIMICS_CONTROLS_FAN_HPP_
2#define IV_SRC_MIMICS_CONTROLS_FAN_HPP_
3
12
14{
15
21
22{
23public:
24 Fan();
26 Fan(const Fan &other);
27 ~Fan() override = default;
28
29 bool load(const iv::file::xml::node &nodeControlMimic) override;
30 bool save(iv::file::xml::node &nodeControlMimic) const override;
31
32 // Controller
33 void getChannels(const std::shared_ptr<std::vector<std::weak_ptr<iv::channels::AbstractChannel>>>
34 &channelsInControl) const override;
35 void mapChannels(const std::function<void(std::weak_ptr<iv::channels::AbstractChannel> &)> &mapFunction) override;
36 void executeCommand(const std::string &strAction) const override;
37 [[nodiscard]] std::shared_ptr<iv::mimics::AbstractMimicElement> clone() const override;
38
39 [[nodiscard]] std::optional<iv::types::color> getColorWorkingState() const override;
40 [[nodiscard]] std::optional<iv::types::color> getColorControlState() const override;
41 [[nodiscard]] std::optional<std::string> getStringWorkingState() const override;
42 [[nodiscard]] std::optional<std::string> getStringControlState() const override;
43 [[nodiscard]] std::optional<iv::mimics::eAlarmState> getAlarmState() const override;
44
45 // Draw
46 void drawSpecific(IGraphics *graphics, std::optional<iv::types::color> colorWorkingState,
47 std::optional<iv::types::color> colorControlState, iv::eLanguage drawingLanguage) override;
48
49 // UI
51 void addOptionsMenu(const std::shared_ptr<iv::mimics::MimicControlMenu> &menu) override;
52
54 {
56 Stop,
57 NoStop,
58 NoRun,
61 Run,
63 };
64
75
76private:
84
85 // Draw
86 void drawSimpleFan(IGraphics *graphics, const std::optional<iv::types::color> &colorWorkingState) const;
87 void drawSimpleWithFastFan(IGraphics *graphics, const std::optional<iv::types::color> &colorWorkingState,
88 const std::optional<iv::types::color> &colorControlState, eFanRunState stateRun) const;
89 void drawReverseFan(IGraphics *graphics, const std::optional<iv::types::color> &colorWorkingState,
90 eFanRunState stateRun, eFanDirection stateDirection) const;
91 void drawReverseWithFastFan(IGraphics *graphics, const std::optional<iv::types::color> &colorWorkingState,
92 const std::optional<iv::types::color> &colorControlState, eFanRunState runState,
93 eFanDirection directionState) const;
94 void drawBladedFan(IGraphics *graphics, const std::optional<iv::types::color> &colorWorkingState,
95 const std::optional<iv::types::color> &colorControlState, eFanRunState stateRun,
96 eFanDirection stateDirection) const;
98 eFanRunState runState, eFanDirection directionState);
99
100 // Running and Direction Behavior
101 static void runningStateBehaviorModel(const std::shared_ptr<iv::channels::AbstractChannel> &runFeedback,
102 eAuxiliaryFanRunState &lastState, bool isFast);
103 [[nodiscard]] eFanRunState calculateFanRunState() const;
104
105 static void supplyDirectionBehaviorModel(const std::shared_ptr<iv::channels::AbstractChannel> &runFeedbackSupply,
106 Fan::eAuxiliaryFanDirection &lastState);
107 static void exhaustDirectionBehaviorModel(const std::shared_ptr<iv::channels::AbstractChannel> &runFeedbackExhaust,
108 Fan::eAuxiliaryFanDirection &lastState);
109 [[nodiscard]] eFanDirection calculateFanDirection() const;
110
111 //general
115
116 //misc
120
121 //feedback
126 iv::mimics::Channel m_stoppedFeedback;//el hasStoppedFeedback??
127
128 //order
134
135 //command
141
142 // View
143 std::unique_ptr<CRectangleGraphics> m_rectangleOpt {nullptr};
144 static constexpr double kPrvRelationXY {0.7};
145
168 struct Keys
169 {
170 static constexpr std::string_view fanMode {"FanMode"};
171 static constexpr std::string_view fanDesign {"FanDesign"};
172 };
173 struct Sections
174 {
175 // static constexpr std::string_view hasStopConfirmation {"HasStopConfirmation"};
176
177 static constexpr std::string_view fan {"Fan"};
178 static constexpr std::string_view maintenance {"Maintenance"};
179
180 static constexpr std::string_view automaticSemiAuto {"AutomaticSemiAuto"};
181 static constexpr std::string_view controlLock {"ControlLock"};
182 static constexpr std::string_view remoteLocal {"RemoteLocal"};
183 static constexpr std::string_view tripReset {"TripReset"};
184
185 static constexpr std::string_view speedFeedback {"SpeedFeedback"};
186 static constexpr std::string_view consignedSpeed {"ConsignedSpeed"};
187 static constexpr std::string_view userConsignedSpeed {"UserConsignedSpeed"};
188
189 static constexpr std::string_view runFeedbackSupply {"RunFeedbackSupply"};
190 static constexpr std::string_view runFeedbackSupplyFast {"RunFeedbackSupplyFast"};
191 static constexpr std::string_view runFeedbackExhaust {"RunFeedbackExhaust"};
192 static constexpr std::string_view runFeedbackExhaustFast {"RunFeedbackExhaustFast"};
193 static constexpr std::string_view stoppedFeedback {"StoppedFeedback"};
194
195 static constexpr std::string_view startOrderSupply {"StartOrderSupply"};
196 static constexpr std::string_view startOrderSupplyFast {"StartOrderSupplyFast"};
197 static constexpr std::string_view startOrderExhaust {"StartOrderExhaust"};
198 static constexpr std::string_view startOrderExhaustFast {"StartOrderExhaustFast"};
199 static constexpr std::string_view stopOrder {"StopOrder"};
200
201 static constexpr std::string_view startCommandSupply {"StartCommandSupply"};
202 static constexpr std::string_view startCommandSupplyFast {"StartCommandSupplyFast"};
203 static constexpr std::string_view startCommandExhaust {"StartCommandExhaust"};
204 static constexpr std::string_view startCommandExhaustFast {"StartCommandExhaustFast"};
205 static constexpr std::string_view stopCommand {"StopCommand"};
206 };
207};
208
209}// namespace iv::mimics::elements
210
211#endif//IV_SRC_MIMICS_CONTROLS_FAN_HPP_
Definition AbstractComponentGUI.hpp:30
Definition IGraphics.hpp:20
Definition xmlFile.hpp:15
Definition AbstractMimicElement.hpp:21
Definition Channel.hpp:12
Definition Fan.hpp:22
std::optional< iv::mimics::eAlarmState > getAlarmState() const override
Definition Fan.cpp:460
iv::mimics::Channel m_startCommandSupply
Definition Fan.hpp:136
void drawSpecific(IGraphics *graphics, std::optional< iv::types::color > colorWorkingState, std::optional< iv::types::color > colorControlState, iv::eLanguage drawingLanguage) override
Draws the specific abstract element shape.
Definition Fan.cpp:465
iv::mimics::Channel m_startCommandExhaustFast
Definition Fan.hpp:139
void drawBladedFan(IGraphics *graphics, const std::optional< iv::types::color > &colorWorkingState, const std::optional< iv::types::color > &colorControlState, eFanRunState stateRun, eFanDirection stateDirection) const
Definition Fan.cpp:1651
iv::mimics::Channel m_startCommandExhaust
Definition Fan.hpp:138
iv::mimics::Channel m_stoppedFeedback
Definition Fan.hpp:126
iv::mimics::Channel m_startOrderSupply
Definition Fan.hpp:129
eFanDirection calculateFanDirection() const
Definition Fan.cpp:1211
std::optional< iv::types::color > getColorWorkingState() const override
Retrieves the color representing the current working state of the element.
Definition Fan.cpp:358
static void runningStateBehaviorModel(const std::shared_ptr< iv::channels::AbstractChannel > &runFeedback, eAuxiliaryFanRunState &lastState, bool isFast)
Definition Fan.cpp:970
void drawSimpleFan(IGraphics *graphics, const std::optional< iv::types::color > &colorWorkingState) const
Definition Fan.cpp:1282
std::optional< std::string > getStringControlState() const override
Definition Fan.cpp:438
iv::mimics::Channel m_stopCommand
Definition Fan.hpp:140
static Fan::FanElementsColors calculateArrowElementsColors(iv::types::color colorWorkingState, eFanRunState runState, eFanDirection directionState)
Definition Fan.cpp:1718
iv::mimics::Channel m_runFeedbackSupplyFast
Definition Fan.hpp:123
iv::mimics::Channel m_runFeedbackExhaustFast
Definition Fan.hpp:125
void addOptionsMenu(const std::shared_ptr< iv::mimics::MimicControlMenu > &menu) override
Definition Fan.cpp:879
iv::mimics::Channel m_startOrderSupplyFast
Definition Fan.hpp:130
iv::mimics::Channel m_consignedSpeed
Definition Fan.hpp:118
bool load(const iv::file::xml::node &nodeControlMimic) override
Definition Fan.cpp:72
AbstractComponentGUI * panelEditControl() override
UI methods ///.
Definition Fan.cpp:523
eAuxiliaryFanDirection
Definition Fan.hpp:66
void mapChannels(const std::function< void(std::weak_ptr< iv::channels::AbstractChannel > &)> &mapFunction) override
Processed gets ///.
Definition Fan.cpp:313
void drawSimpleWithFastFan(IGraphics *graphics, const std::optional< iv::types::color > &colorWorkingState, const std::optional< iv::types::color > &colorControlState, eFanRunState stateRun) const
Definition Fan.cpp:1327
void drawReverseFan(IGraphics *graphics, const std::optional< iv::types::color > &colorWorkingState, eFanRunState stateRun, eFanDirection stateDirection) const
Definition Fan.cpp:1293
iv::mimics::Channel m_runFeedbackSupply
Definition Fan.hpp:122
void getChannels(const std::shared_ptr< std::vector< std::weak_ptr< iv::channels::AbstractChannel > > > &channelsInControl) const override
AƱade los canales que el MimicElement tiene enlazado.
Definition Fan.cpp:244
iv::mimics::Channel m_startCommandSupplyFast
Definition Fan.hpp:137
iv::mimics::Channel m_startOrderExhaust
Definition Fan.hpp:131
std::optional< std::string > getStringWorkingState() const override
Definition Fan.cpp:431
static void exhaustDirectionBehaviorModel(const std::shared_ptr< iv::channels::AbstractChannel > &runFeedbackExhaust, Fan::eAuxiliaryFanDirection &lastState)
Definition Fan.cpp:1166
std::unique_ptr< CRectangleGraphics > m_rectangleOpt
Definition Fan.hpp:143
iv::mimics::Channel m_startOrderExhaustFast
Definition Fan.hpp:132
std::optional< iv::types::color > getColorControlState() const override
Retrieves the color representing the current control state of the element.
Definition Fan.cpp:395
iv::mimics::elements::eFanType m_fanType
Definition Fan.hpp:113
static void supplyDirectionBehaviorModel(const std::shared_ptr< iv::channels::AbstractChannel > &runFeedbackSupply, Fan::eAuxiliaryFanDirection &lastState)
Definition Fan.cpp:1121
iv::mimics::elements::eFanDesign m_fanDesign
Definition Fan.hpp:112
bool save(iv::file::xml::node &nodeControlMimic) const override
Definition Fan.cpp:159
iv::mimics::Channel m_stopOrder
Definition Fan.hpp:133
iv::mimics::Channel m_userConsignedSpeed
Definition Fan.hpp:119
iv::mimics::Channel m_runFeedbackExhaust
Definition Fan.hpp:124
iv::mimics::Channel m_speedFeedback
Definition Fan.hpp:117
static constexpr double kPrvRelationXY
Definition Fan.hpp:144
std::shared_ptr< iv::mimics::AbstractMimicElement > clone() const override
Definition Fan.cpp:349
Fan()
Definition Fan.cpp:22
void drawReverseWithFastFan(IGraphics *graphics, const std::optional< iv::types::color > &colorWorkingState, const std::optional< iv::types::color > &colorControlState, eFanRunState runState, eFanDirection directionState) const
Definition Fan.cpp:1363
~Fan() override=default
eAuxiliaryFanRunState
Definition Fan.hpp:54
iv::mimics::support::Maintenance m_maintenance
Definition Fan.hpp:114
void executeCommand(const std::string &strAction) const override
Run actions ///.
Definition Fan.cpp:354
eFanRunState calculateFanRunState() const
Definition Fan.cpp:1031
Definition Maintenance.hpp:11
Definition AutomaticSemiAuto.hpp:21
Definition ControlLock.hpp:11
Definition RemoteLocal.hpp:20
Definition TripReset.hpp:12
constexpr iv::types::color SedniSemiAuto
Definition color.hpp:341
constexpr iv::types::color SedniElementNotWorkingBlack
Definition color.hpp:338
constexpr iv::types::color SedniElementWorkingGreen
Definition color.hpp:337
constexpr iv::types::color White
Definition color.hpp:222
constexpr iv::types::color SedniElementOfflineBlack
Definition color.hpp:345
constexpr iv::types::color SedniLocal
Definition color.hpp:343
constexpr iv::types::color SedniElementOfflineGrey
Definition color.hpp:346
constexpr iv::types::color DiamarBlackBackground
Definition color.hpp:288
constexpr iv::types::color SedniElementUndefined
Definition color.hpp:344
constexpr iv::types::color SedniAuto
Definition color.hpp:342
Definition enums.hpp:95
eFanRunState
Definition enums.hpp:127
eFanDesign
Definition enums.hpp:121
eFanType
Definition enums.hpp:144
eFanDirection
Definition enums.hpp:136
eMimicElementType
Definition enums.hpp:8
uint32_t color
Definition types.hpp:12
eLanguage
Definition enums.hpp:37
static constexpr iv::types::color background
Definition Fan.hpp:154
static constexpr iv::types::color arrow
Definition Fan.hpp:155
static constexpr iv::types::color workingStateUndefined
Definition Fan.hpp:159
static constexpr iv::types::color workingStateRunning
Definition Fan.hpp:158
static constexpr iv::types::color workingStateStopped
Definition Fan.hpp:157
static constexpr iv::types::color controlStateLocal
Definition Fan.hpp:162
static constexpr iv::types::color controlStateRemoteSemiAuto
Definition Fan.hpp:163
static constexpr iv::types::color controlStateOffline
Definition Fan.hpp:165
static constexpr iv::types::color workingStateOffline
Definition Fan.hpp:160
static constexpr iv::types::color controlStateRemoteAuto
Definition Fan.hpp:164
static constexpr iv::mimics::elements::eFanDesign fanDesign
Definition Fan.hpp:150
static constexpr iv::mimics::elements::eFanType fanMode
Definition Fan.hpp:149
iv::types::color rightFastArrowColor
Definition Fan.hpp:82
iv::types::color leftArrowColor
Definition Fan.hpp:79
iv::types::color leftFastArrowColor
Definition Fan.hpp:80
iv::types::color rightArrowColor
Definition Fan.hpp:81
Definition Fan.hpp:169
static constexpr std::string_view fanDesign
Definition Fan.hpp:171
static constexpr std::string_view fanMode
Definition Fan.hpp:170
static constexpr std::string_view tripReset
Definition Fan.hpp:183
static constexpr std::string_view fan
Definition Fan.hpp:177
static constexpr std::string_view startCommandExhaustFast
Definition Fan.hpp:204
static constexpr std::string_view runFeedbackExhaustFast
Definition Fan.hpp:192
static constexpr std::string_view stoppedFeedback
Definition Fan.hpp:193
static constexpr std::string_view controlLock
Definition Fan.hpp:181
static constexpr std::string_view maintenance
Definition Fan.hpp:178
static constexpr std::string_view startOrderSupplyFast
Definition Fan.hpp:196
static constexpr std::string_view stopOrder
Definition Fan.hpp:199
static constexpr std::string_view runFeedbackExhaust
Definition Fan.hpp:191
static constexpr std::string_view runFeedbackSupply
Definition Fan.hpp:189
static constexpr std::string_view startOrderExhaustFast
Definition Fan.hpp:198
static constexpr std::string_view startCommandExhaust
Definition Fan.hpp:203
static constexpr std::string_view startOrderSupply
Definition Fan.hpp:195
static constexpr std::string_view startCommandSupplyFast
Definition Fan.hpp:202
static constexpr std::string_view userConsignedSpeed
Definition Fan.hpp:187
static constexpr std::string_view startOrderExhaust
Definition Fan.hpp:197
static constexpr std::string_view stopCommand
Definition Fan.hpp:205
static constexpr std::string_view startCommandSupply
Definition Fan.hpp:201
static constexpr std::string_view runFeedbackSupplyFast
Definition Fan.hpp:190
static constexpr std::string_view automaticSemiAuto
Definition Fan.hpp:180
static constexpr std::string_view speedFeedback
Definition Fan.hpp:185
static constexpr std::string_view consignedSpeed
Definition Fan.hpp:186
static constexpr std::string_view remoteLocal
Definition Fan.hpp:182