Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
Tank.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_TANKS_TANK_HPP_
2#define IV_SRC_TANKS_TANK_HPP_
3
7#include "tanks/math.hpp"
8#include "tanks/structs.hpp"
9
10#include <string>
11
12namespace iv::tanks
13{
14
15class Tank
16{
17public:
23
24 Tank();
25
26 void update(const Tank &other);
27 bool load(file::xml::node &node, const std::string &pathMimics);
28 bool save(file::xml::node &node) const;
29
30 bool editTankParams(iv::tanks::eTankContentsType contentsType, double density);
31
32 void addSensorChannel(std::weak_ptr<channels::AbstractChannel> channel, iv::tanks::eSensorType sensorType,
33 double atmosphericBarOpt);
35
37
38 std::string m_name;
39 std::string m_description;
40 std::string m_filePath;
41
44
48
50 [[nodiscard]] std::vector<std::string> getSensorsChannelsIds() const;
51
52private:
54 struct Keys
55 {
56 static constexpr std::string_view name {"Name"};
57 static constexpr std::string_view description {"Description"};
58 static constexpr std::string_view contentType {"ContentType"};
59 static constexpr std::string_view isCargo {"IsCargo"};
60 static constexpr std::string_view densityDefault {"DensityDefault"};
61
62 static constexpr std::string_view soundingUnits {"SoundingUnits"};
63 static constexpr std::string_view keyOffset {"Offset"};
64 static constexpr std::string_view xMin {"xMin"};
65 static constexpr std::string_view xMax {"xMax"};
66 static constexpr std::string_view yMin {"yMin"};
67 static constexpr std::string_view yMax {"yMax"};
68 static constexpr std::string_view zMin {"zMin"};
69 static constexpr std::string_view zMax {"zMax"};
70 static constexpr std::string_view capacity {"Capacity"};
71 static constexpr std::string_view thickness {"Thickness"};
72 static constexpr std::string_view permeability {"Permeability"};
73 };
74 struct Sections
75 {
76 static constexpr std::string_view tankSensors {"TankSensors"};
77 static constexpr std::string_view properties {"Properties"};
78 };
80 {
81 static constexpr std::string string {};
82 static constexpr double atmosphericBar {0};
83 static constexpr double max {1};
84 static constexpr double min {0};
85 static constexpr double capacity {0};
86 static constexpr double thickness {0};
87 static constexpr double permeability {0};
88 static constexpr bool isCargo {false};
89 static constexpr double density {1};
91 };
92};
93
94}// namespace iv::tanks
95
96#endif//IV_SRC_TANKS_TANK_HPP_
Definition xmlFile.hpp:15
Definition TankCalibrationData.hpp:63
Definition TankChannels.hpp:15
Definition Tank.hpp:16
void processTank(iv::types::tankTrim trim)
Process Tank calculating it's content height and volume.
Definition Tank.cpp:130
iv::tanks::TankCalibrationData m_calibrationData
Definition Tank.hpp:49
iv::tanks::TankProperties m_properties
Definition Tank.hpp:42
double m_densityDefault
Definition Tank.hpp:45
Sounding m_sounding
Definition Tank.hpp:47
void addSensorChannel(std::weak_ptr< channels::AbstractChannel > channel, iv::tanks::eSensorType sensorType, double atmosphericBarOpt)
Definition Tank.cpp:105
bool load(file::xml::node &node, const std::string &pathMimics)
Definition Tank.cpp:30
std::string m_name
Definition Tank.hpp:38
void calculateSoundingData()
Definition Tank.cpp:218
std::vector< std::string > getSensorsChannelsIds() const
Definition Tank.cpp:112
iv::tanks::TankChannels m_tankChannel
Definition Tank.hpp:36
std::string m_description
Definition Tank.hpp:39
iv::tanks::eTankContentsType m_contentsType
Definition Tank.hpp:43
bool m_isCargoTank
Definition Tank.hpp:46
Tank()
Definition Tank.cpp:10
bool save(file::xml::node &node) const
Definition Tank.cpp:70
std::string m_filePath
Definition Tank.hpp:40
void update(const Tank &other)
Definition Tank.cpp:236
bool editTankParams(iv::tanks::eTankContentsType contentsType, double density)
Definition Tank.cpp:97
Definition enums.hpp:5
eSensorType
Definition enums.hpp:8
eTankContentsType
Definition enums.hpp:26
double tankTrim
Definition types.hpp:84
double tankSoundingHeight
Definition types.hpp:86
Definition structs.hpp:14
Definition Tank.hpp:80
static constexpr double atmosphericBar
Definition Tank.hpp:82
static constexpr double capacity
Definition Tank.hpp:85
static constexpr double max
Definition Tank.hpp:83
static constexpr double permeability
Definition Tank.hpp:87
static constexpr eTankContentsType contentsType
Definition Tank.hpp:90
static constexpr double thickness
Definition Tank.hpp:86
static constexpr double density
Definition Tank.hpp:89
static constexpr bool isCargo
Definition Tank.hpp:88
static constexpr double min
Definition Tank.hpp:84
Definition Tank.hpp:55
static constexpr std::string_view zMin
Definition Tank.hpp:68
static constexpr std::string_view soundingUnits
Definition Tank.hpp:62
static constexpr std::string_view keyOffset
Definition Tank.hpp:63
static constexpr std::string_view yMax
Definition Tank.hpp:67
static constexpr std::string_view capacity
Definition Tank.hpp:70
static constexpr std::string_view yMin
Definition Tank.hpp:66
static constexpr std::string_view description
Definition Tank.hpp:57
static constexpr std::string_view densityDefault
Definition Tank.hpp:60
static constexpr std::string_view xMax
Definition Tank.hpp:65
static constexpr std::string_view isCargo
Definition Tank.hpp:59
static constexpr std::string_view permeability
Definition Tank.hpp:72
static constexpr std::string_view thickness
Definition Tank.hpp:71
static constexpr std::string_view name
Definition Tank.hpp:56
static constexpr std::string_view xMin
Definition Tank.hpp:64
static constexpr std::string_view contentType
Definition Tank.hpp:58
static constexpr std::string_view zMax
Definition Tank.hpp:69
Definition Tank.hpp:75
static constexpr std::string_view properties
Definition Tank.hpp:77
static constexpr std::string_view tankSensors
Definition Tank.hpp:76
Definition Tank.hpp:19
iv::types::tankSoundingHeight min
Definition Tank.hpp:20
iv::types::tankSoundingHeight max
Definition Tank.hpp:21