Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
GeneratorPms.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MIMICS_MODEL_ELEMENTSPMS_GENERATORPMS_HPP_
2#define IV_SRC_MIMICS_MODEL_ELEMENTSPMS_GENERATORPMS_HPP_
3
11
13{
14
20{
21public:
23 ~GeneratorPms() override = default;
24
25 bool load(const iv::file::xml::node &nodeControlMimic) override;
26 bool save(iv::file::xml::node &nodeControlMimic) const override;
27
28 // Controller
29 void getChannels(const std::shared_ptr<std::vector<std::weak_ptr<iv::channels::AbstractChannel>>>
30 &channelsInControl) const override;
31 void mapChannels(const std::function<void(std::weak_ptr<iv::channels::AbstractChannel> &)> &mapFunction) override;
32 [[nodiscard]] std::shared_ptr<iv::mimics::AbstractMimicElement> clone() const override;
33 void executeCommand(const std::string &strAction) const override;
34
35 [[nodiscard]] std::optional<std::string> getStringWorkingState() const override;
36 [[nodiscard]] std::optional<std::string> getStringControlState() const override;
37 [[nodiscard]] std::optional<iv::mimics::eAlarmState> getAlarmState() const override;
38
39 [[nodiscard]] iv::math::geometry::Point2d
40 getAlarmIconPosition(const iv::math::geometry::Area &elementSize) const override;
41
42 // Draw
43 void drawSpecific(IGraphics *graphics, std::optional<iv::types::color> colorWorkingState,
44 std::optional<iv::types::color> colorControlState, iv::eLanguage drawingLanguage) override;
45
46 // UI
48 void addOptionsMenu(const std::shared_ptr<iv::mimics::MimicControlMenu> &menu) override;
49
50 bool canShowCircularMenu() const override;
51 bool hasAlternativeAction() const override;
52 void runAlternativeAction(CDialog *dlgFatherRef) override;
53
54 std::optional<double> normalizedPowerValue() const;
55 std::optional<iv::channels::FormattedValue> getPowerText() const;
56 std::optional<iv::channels::FormattedValue> getFrequencyText() const;
57 std::optional<iv::channels::FormattedValue> getPriorityText() const;
58
59 std::optional<std::string> getRemoteAutoIconState() const;
60
61protected:
62 GeneratorPms(const GeneratorPms &other);
63
64 bool checkIntegrity() const override;
65 bool hasRepeatedChannels(const std::unordered_set<iv::types::channelId> &channelsRepeatedOpt) const override;
66 bool
67 isRepeatedMimicElement(const std::set<std::shared_ptr<AbstractMimicElement>> &otherMimicsElements) const override;
68
69 // Draw functions
70 void drawGeneratorArc(IGraphics *graphics, iv::types::radius arcRadius, iv::types::width arcWidth) const;
71 void drawGeneratorName(IGraphics *graphics, iv::types::radius arcRadius) const;
72 void drawTextPower(IGraphics *graphics, iv::types::radius arcRadius) const;
73 void drawTextFrequency(IGraphics *graphics, iv::types::radius arcRadius) const;
74 void drawTextPriority(IGraphics *graphics, iv::types::radius arcRadius, iv::types::width arcWidth) const;
75 void drawTextControlState(IGraphics *graphics, iv::types::radius arcRadius, iv::types::width arcWidth) const;
76
82
84 std::weak_ptr<iv::model::pms::Generator> m_pmsGenerator;
85
86private:
87 mutable std::unique_ptr<CDrawText> m_textPower {nullptr};
88 mutable std::unique_ptr<CDrawText> m_textPowerUnit {nullptr};
89 mutable std::unique_ptr<CDrawText> m_textFrequency {nullptr};
90 mutable std::unique_ptr<CDrawText> m_textFrequencyUnit {nullptr};
91 mutable std::unique_ptr<CDrawText> m_textPriority {nullptr};
92 mutable std::unique_ptr<CDrawText> m_textControlState {nullptr};
93 mutable std::unique_ptr<CDrawText> m_textGeneratorName {nullptr};
94
95 struct Constants
96 {
110 {
111 static constexpr iv::types::radius diameter {200};
112 static constexpr double arcWidth {0.13};
113 static constexpr iv::types::degree arcStart {225};
114 static constexpr iv::types::degree arcEnd {-45};
115 static constexpr double powerTextOffset {0.10};
116 static constexpr double powerTextSize {0.20};
117 static constexpr double powerUnitTextSize {0.1};
118 static constexpr double frequencyTextSize {0.15};
119 static constexpr double frequencyUnitTextSize {0.1};
120 static constexpr double priorityTextSize {0.13};
121 static constexpr double generatorNameTextSize {0.15};
122 };
123 struct Paddings
124 {
125 static constexpr iv::types::width powerUnitPadding {2};
127 };
128 };
130 {
133 static constexpr std::string string {};
134 };
135 struct Keys
136 {
137 static constexpr std::string_view generator {"Generator"};
138 static constexpr std::string_view generatorNameColor {"GeneratorNameColor"};
139 };
140 struct Sections
141 {
142 static constexpr std::string_view generator {"Generator"};
143 };
144};
145
146}// namespace iv::mimics::elementsPms
147
148#endif//IV_SRC_MIMICS_MODEL_ELEMENTSPMS_GENERATORPMS_HPP_
Definition AbstractComponentGUI.hpp:30
Definition CDialog.hpp:21
Definition IGraphics.hpp:20
Definition xmlFile.hpp:15
Definition AbstractMimicElement.hpp:21
Definition GeneratorPms.hpp:20
std::weak_ptr< iv::model::pms::Generator > m_pmsGenerator
Definition GeneratorPms.hpp:84
void drawTextPriority(IGraphics *graphics, iv::types::radius arcRadius, iv::types::width arcWidth) const
Definition GeneratorPms.cpp:1051
std::unique_ptr< CDrawText > m_textGeneratorName
Definition GeneratorPms.hpp:93
std::optional< iv::channels::FormattedValue > getPriorityText() const
Definition GeneratorPms.cpp:798
std::optional< std::string > getStringControlState() const override
Definition GeneratorPms.cpp:157
void drawTextFrequency(IGraphics *graphics, iv::types::radius arcRadius) const
Definition GeneratorPms.cpp:1002
void runAlternativeAction(CDialog *dlgFatherRef) override
Ejecuta código específico del control.
Definition GeneratorPms.cpp:551
bool hasRepeatedChannels(const std::unordered_set< iv::types::channelId > &channelsRepeatedOpt) const override
Checks if the current mimic element contains any repeated channels.
Definition GeneratorPms.cpp:862
std::optional< std::string > getRemoteAutoIconState() const
Definition GeneratorPms.cpp:814
GeneratorPms()
Definition GeneratorPms.cpp:24
void executeCommand(const std::string &strAction) const override
Run actions ///.
Definition GeneratorPms.cpp:146
void drawTextControlState(IGraphics *graphics, iv::types::radius arcRadius, iv::types::width arcWidth) const
Definition GeneratorPms.cpp:1072
std::unique_ptr< CDrawText > m_textControlState
Definition GeneratorPms.hpp:92
void updateGeneratorTraits()
Update the valve traits channels with the current generator channels.
Definition GeneratorPms.cpp:1094
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 GeneratorPms.cpp:224
void addOptionsMenu(const std::shared_ptr< iv::mimics::MimicControlMenu > &menu) override
Definition GeneratorPms.cpp:520
std::optional< iv::channels::FormattedValue > getFrequencyText() const
Definition GeneratorPms.cpp:782
std::optional< std::string > getStringWorkingState() const override
Definition GeneratorPms.cpp:150
std::unique_ptr< CDrawText > m_textPriority
Definition GeneratorPms.hpp:91
bool canShowCircularMenu() const override
Behaviours gets ///.
Definition GeneratorPms.cpp:524
iv::types::color m_generatorNameColor
Definition GeneratorPms.hpp:83
bool save(iv::file::xml::node &nodeControlMimic) const override
Definition GeneratorPms.cpp:61
void drawGeneratorName(IGraphics *graphics, iv::types::radius arcRadius) const
Definition GeneratorPms.cpp:930
std::optional< iv::mimics::eAlarmState > getAlarmState() const override
Definition GeneratorPms.cpp:178
bool hasAlternativeAction() const override
Definition GeneratorPms.cpp:529
bool checkIntegrity() const override
Definition GeneratorPms.cpp:857
std::unique_ptr< CDrawText > m_textPowerUnit
Definition GeneratorPms.hpp:88
void drawTextPower(IGraphics *graphics, iv::types::radius arcRadius) const
Definition GeneratorPms.cpp:952
std::unique_ptr< CDrawText > m_textFrequencyUnit
Definition GeneratorPms.hpp:90
std::optional< double > normalizedPowerValue() const
Definition GeneratorPms.cpp:742
std::optional< iv::channels::FormattedValue > getPowerText() const
Definition GeneratorPms.cpp:766
void drawGeneratorArc(IGraphics *graphics, iv::types::radius arcRadius, iv::types::width arcWidth) const
Definition GeneratorPms.cpp:892
void mapChannels(const std::function< void(std::weak_ptr< iv::channels::AbstractChannel > &)> &mapFunction) override
Processed gets ///.
Definition GeneratorPms.cpp:137
bool isRepeatedMimicElement(const std::set< std::shared_ptr< AbstractMimicElement > > &otherMimicsElements) const override
Determines whether the current mimic element shares significant similarities with others.
Definition GeneratorPms.cpp:867
std::unique_ptr< CDrawText > m_textFrequency
Definition GeneratorPms.hpp:89
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 GeneratorPms.cpp:77
iv::math::geometry::Point2d getAlarmIconPosition(const iv::math::geometry::Area &elementSize) const override
Definition GeneratorPms.cpp:211
bool load(const iv::file::xml::node &nodeControlMimic) override
Definition GeneratorPms.cpp:41
std::shared_ptr< iv::mimics::AbstractMimicElement > clone() const override
Definition GeneratorPms.cpp:141
AbstractComponentGUI * panelEditControl() override
UI methods ///.
Definition GeneratorPms.cpp:255
std::unique_ptr< CDrawText > m_textPower
Definition GeneratorPms.hpp:87
Definition AutomaticSemiAuto.hpp:21
Definition FeedbackRunningStopped.hpp:12
Definition RemoteLocal.hpp:20
Definition TripReset.hpp:12
constexpr iv::types::color WonderBitsWhite
Definition color.hpp:252
constexpr iv::types::color WonderBitsGrey3
Definition color.hpp:242
constexpr iv::types::color SedniElementOfflineGrey
Definition color.hpp:346
constexpr iv::types::color WonderBitsBlue
Definition color.hpp:235
constexpr iv::types::color DiamarBlackBackground
Definition color.hpp:288
Definition BreakerPms.cpp:18
uint16_t elementId
Definition types.hpp:96
double radius
Definition types.hpp:17
double degree
Definition types.hpp:18
double width
Definition types.hpp:23
uint32_t color
Definition types.hpp:12
eLanguage
Definition enums.hpp:37
Definition structs.hpp:123
Definition structs.hpp:16
static constexpr iv::types::color workingFrequencyUnit
Definition GeneratorPms.hpp:104
static constexpr iv::types::color workingPower
Definition GeneratorPms.hpp:101
static constexpr iv::types::color workingFrequency
Definition GeneratorPms.hpp:103
static constexpr iv::types::color offline
Definition GeneratorPms.hpp:107
static constexpr iv::types::color workingPriority
Definition GeneratorPms.hpp:105
static constexpr iv::types::color workingBar
Definition GeneratorPms.hpp:99
static constexpr iv::types::color workingBarBackground
Definition GeneratorPms.hpp:100
static constexpr iv::types::color workingPowerUnit
Definition GeneratorPms.hpp:102
static constexpr iv::types::color workingControlState
Definition GeneratorPms.hpp:106
static constexpr iv::types::width frequencyUnitPadding
Definition GeneratorPms.hpp:126
static constexpr iv::types::width powerUnitPadding
Definition GeneratorPms.hpp:125
static constexpr double generatorNameTextSize
Definition GeneratorPms.hpp:121
static constexpr double arcWidth
Definition GeneratorPms.hpp:112
static constexpr double frequencyUnitTextSize
Definition GeneratorPms.hpp:119
static constexpr double priorityTextSize
Definition GeneratorPms.hpp:120
static constexpr iv::types::degree arcEnd
Definition GeneratorPms.hpp:114
static constexpr iv::types::degree arcStart
Definition GeneratorPms.hpp:113
static constexpr double powerUnitTextSize
Definition GeneratorPms.hpp:117
static constexpr double powerTextSize
Definition GeneratorPms.hpp:116
static constexpr double powerTextOffset
Definition GeneratorPms.hpp:115
static constexpr double frequencyTextSize
Definition GeneratorPms.hpp:118
static constexpr iv::types::radius diameter
Definition GeneratorPms.hpp:111
static constexpr iv::types::color generatorNameColor
Definition GeneratorPms.hpp:132
static constexpr iv::types::pms::elementId generatorId
Definition GeneratorPms.hpp:131
Definition GeneratorPms.hpp:136
static constexpr std::string_view generator
Definition GeneratorPms.hpp:137
static constexpr std::string_view generatorNameColor
Definition GeneratorPms.hpp:138
static constexpr std::string_view generator
Definition GeneratorPms.hpp:142