Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
utils.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MIMICS_UTILS_HPP_
2#define IV_SRC_MIMICS_UTILS_HPP_
3
4#include "alarms/enums.hpp"
5#include "core/assert.hpp"
6#include "mimics/enums.hpp"
8
9namespace iv::mimics
10{
11
58
95
144
145inline bool prvHasForeground(const eMimicElementType type)
146{
147 bool hasForeground {true};
148
149 switch (type)
150 {
174 hasForeground = false;
175 break;
176
177 default:
178 IV_MISSING_CASE_CHECK("expression");
179 break;
180 }
181
182 return hasForeground;
183}
184
185inline bool prvWithScale(const eMimicElementType type)
186{
187 bool withScale {false};
188
189 switch (type)
190 {
195 withScale = false;
196 break;
197
218 withScale = true;
219 break;
220
221 default:
222 IV_MISSING_CASE_CHECK("expression");
223 break;
224 }
225 return withScale;
226}
227
272
273inline std::optional<iv::mimics::eAlarmState>
275 const iv::alarms::eAlarmType alarmType)
276{
277 switch (alarmType)
278 {
281
284
285 default:
286 break;
287 }
288
289 switch (alarmState)
290 {
292 return eAlarmState::Normal;
293
295 {
296 if (alarmPriority == alarms::eAlarmPriority::Warning)
297 {
299 }
301 }
302
304 {
305 if (alarmPriority == alarms::eAlarmPriority::Warning)
306 {
308 }
309 return eAlarmState::Alarm;
310 }
311
313 {
314 if (alarmPriority == alarms::eAlarmPriority::Warning)
315 {
317 }
319 }
320
323 }
324
325 return std::nullopt;
326}
327
328inline std::optional<iv::mimics::eAlarmState> mimicChannelToMimicAlarmState(const iv::mimics::Channel &channel)
329{
330 if (const auto auxChannel = channel.getChannelActive())
331 {
332 if (auxChannel->hasValue())
333 {
334 const auto channelState = iv::mimics::alarmStateToMimicAlarmState(
335 auxChannel->getAlarmState(), auxChannel->getAlarmPriority(), auxChannel->getAlarmType());
336
337 if (channelState.has_value())
338 {
339 return channelState.value();
340 }
341 }
342 else
343 {
345 }
346 }
347 return std::nullopt;
348}
349
350inline std::optional<std::string> alarmStateIcon(const iv::mimics::eAlarmState alarmState)
351{
352 switch (alarmState)
353 {
355 return "diamar/Icon-Alarm";
356
358 return "diamar/Icon-Warning";
359
362 return "diamar/Icon-ReturnNoACK";
363
365 return "diamar/Icon-AlarmACK";
366
368 return "diamar/Icon-WarningACK";
369
371 return "diamar/Icon-Inhibited";
372
374 return "diamar/Icon-Offscan";
375
377 return "diamar/Icon-Transparent";
378
380 return "diamar/Icon-Offline";
381 }
382
383 return std::nullopt;
384}
385
386}// namespace iv::mimics
387
388#endif//IV_SRC_MIMICS_UTILS_HPP_
#define IV_MISSING_CASE_CHECK(msg,...)
Definition assert.hpp:166
Definition Channel.hpp:12
eAlarmPriority
Definition enums.hpp:13
eAlarmType
Definition enums.hpp:56
eAlarmState
Definition enums.hpp:20
Definition GeneratorPmsBuilders.cpp:9
std::optional< iv::mimics::eAlarmState > alarmStateToMimicAlarmState(const iv::alarms::eAlarmState alarmState, const iv::alarms::eAlarmPriority alarmPriority, const iv::alarms::eAlarmType alarmType)
Definition utils.hpp:274
std::optional< std::string > alarmStateIcon(const iv::mimics::eAlarmState alarmState)
Definition utils.hpp:350
eMimicElementType
Definition enums.hpp:8
double minElementSize(const eMimicElementType type)
Definition utils.hpp:12
bool prvHasForeground(const eMimicElementType type)
Definition utils.hpp:145
bool hasTitle(const eMimicElementType type)
Definition utils.hpp:96
eAlarmState
Definition enums.hpp:81
std::optional< iv::mimics::eAlarmState > mimicChannelToMimicAlarmState(const iv::mimics::Channel &channel)
Definition utils.hpp:328
eZDepth
Definition enums.hpp:50
bool prvHasBackground(const eMimicElementType type)
Definition utils.hpp:59
iv::mimics::eZDepth mimicElementDepth(const eMimicElementType type)
Definition utils.hpp:228
bool prvWithScale(const eMimicElementType type)
Definition utils.hpp:185