Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
OnlineVariables.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MIMICS_ONLINEVARIABLES_HPP_
2#define IV_SRC_MIMICS_ONLINEVARIABLES_HPP_
3
7
8#include <memory>
9#include <optional>
10#include <string>
11#include <vector>
12
13namespace iv::mimics
14{
15
21
23{
26
27 std::optional<std::weak_ptr<iv::channels::AbstractChannel>> analogChannel;
28 std::optional<std::weak_ptr<CParamOnline>> parameterOnline;
29
30 std::optional<double> m_value;
31
32 [[nodiscard]] std::string getStringValue() const;
33};
34
36{
37public:
38 OnlineVariables() = default;
39 ~OnlineVariables() = default;
40 OnlineVariables(const OnlineVariables &) = default;
44
45 bool load(const iv::file::xml::node &nodeOnlineVariables);
46 bool save(iv::file::xml::node &nodeOnlineVariables) const;
47
48 void addVariable(const std::shared_ptr<OnlineVariable> &variable);
49 [[nodiscard]] std::weak_ptr<OnlineVariable> getVariable(const iv::types::onlineVariableId &variableName) const;
50 [[nodiscard]] std::weak_ptr<OnlineVariable> getVariable(uint64_t variableIndex) const;
51 [[nodiscard]] std::weak_ptr<OnlineVariable>
53 [[nodiscard]] uint64_t numVariables() const;
54
55 [[nodiscard]] const std::vector<std::shared_ptr<OnlineVariable>> &getAllVariables() const;
56
57 void removeVariable(uint64_t variableIndex);
58 void removeVariable(const iv::types::onlineVariableId &variableName);
59
60 [[nodiscard]] bool hasVariables() const;
61
62 bool uploadVariablesValues() const;
63 bool downloadVariablesValues() const;
64
65 [[nodiscard]] bool allVariablesUploadedCorrectly() const;
66
67 std::vector<std::shared_ptr<OnlineVariable>> m_variables;
68
69private:
71 {
72 static constexpr std::string string {};
73 static constexpr std::string type {"AnalogChannel"};
74 };
75 struct Keys
76 {
77 static constexpr std::string_view type {"Type"};
78 static constexpr std::string_view name {"Name"};
79 static constexpr std::string_view analogChannel {"AnalogChannel"};
80 static constexpr std::string_view parameterOnline {"ParameterOnline"};
81 };
82 struct Sections
83 {
84 static constexpr std::string_view variables {"Variables"};
85 static constexpr std::string_view variable {"Variable"};
86 };
87};
88
89}// namespace iv::mimics
90
91#endif//IV_SRC_MIMICS_ONLINEVARIABLES_HPP_
Definition xmlFile.hpp:15
Definition OnlineVariables.hpp:36
OnlineVariables & operator=(const OnlineVariables &)=default
void removeVariable(uint64_t variableIndex)
Definition OnlineVariables.cpp:192
bool load(const iv::file::xml::node &nodeOnlineVariables)
Definition OnlineVariables.cpp:45
bool uploadVariablesValues() const
Definition OnlineVariables.cpp:211
OnlineVariables(OnlineVariables &&)=default
void addVariable(const std::shared_ptr< OnlineVariable > &variable)
Definition OnlineVariables.cpp:130
std::weak_ptr< OnlineVariable > getVariableByParamExternalId(const iv::types::externalParameterOnlineId &paramOnlineExternalId) const
Definition OnlineVariables.cpp:158
bool allVariablesUploadedCorrectly() const
Definition OnlineVariables.cpp:412
const std::vector< std::shared_ptr< OnlineVariable > > & getAllVariables() const
Definition OnlineVariables.cpp:187
std::vector< std::shared_ptr< OnlineVariable > > m_variables
Definition OnlineVariables.hpp:67
std::weak_ptr< OnlineVariable > getVariable(const iv::types::onlineVariableId &variableName) const
Definition OnlineVariables.cpp:135
OnlineVariables(const OnlineVariables &)=default
uint64_t numVariables() const
Definition OnlineVariables.cpp:182
bool save(iv::file::xml::node &nodeOnlineVariables) const
Definition OnlineVariables.cpp:98
bool downloadVariablesValues() const
Definition OnlineVariables.cpp:304
bool hasVariables() const
Definition OnlineVariables.cpp:206
OnlineVariables & operator=(OnlineVariables &&)=default
Definition GeneratorPmsBuilders.cpp:9
eOnlineVariableType
Definition OnlineVariables.hpp:17
std::string onlineVariableId
Definition types.hpp:82
std::string externalParameterOnlineId
Definition types.hpp:83
Definition OnlineVariables.hpp:23
std::optional< double > m_value
Definition OnlineVariables.hpp:30
std::string getStringValue() const
Definition OnlineVariables.cpp:17
eOnlineVariableType type
Definition OnlineVariables.hpp:24
std::optional< std::weak_ptr< CParamOnline > > parameterOnline
Definition OnlineVariables.hpp:28
iv::types::onlineVariableId nameVariable
Definition OnlineVariables.hpp:25
std::optional< std::weak_ptr< iv::channels::AbstractChannel > > analogChannel
Definition OnlineVariables.hpp:27
Definition OnlineVariables.hpp:71
static constexpr std::string type
Definition OnlineVariables.hpp:73
Definition OnlineVariables.hpp:76
static constexpr std::string_view analogChannel
Definition OnlineVariables.hpp:79
static constexpr std::string_view parameterOnline
Definition OnlineVariables.hpp:80
static constexpr std::string_view name
Definition OnlineVariables.hpp:78
static constexpr std::string_view type
Definition OnlineVariables.hpp:77
Definition OnlineVariables.hpp:83
static constexpr std::string_view variables
Definition OnlineVariables.hpp:84
static constexpr std::string_view variable
Definition OnlineVariables.hpp:85