Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CParamOnline.hpp
Go to the documentation of this file.
1#ifndef LIBS_LOGIC_CPARAMONLINE_HPP_
2#define LIBS_LOGIC_CPARAMONLINE_HPP_
3
5#include "logic/structs.hpp"
6
7#include <bits/stdint-uintn.h>
8#include <memory>
9#include <string>
10
12{
13public:
14 static bool sortByParamOrderInLogic(const std::weak_ptr<CParamOnline> &paramA,
15 const std::weak_ptr<CParamOnline> &paramB);
16
17 CParamOnline(std::string_view tag, uint16_t orderInBlock, std::string_view externalTag,
18 std::string_view externalTag2, uint8_t type, uint8_t size, std::string_view libraryBlockTagName,
19 iv::types::unitId logicUnitId);
20
21 CParamOnline(std::string_view tag, uint16_t orderInBlock, std::string_view externalTag,
22 std::string_view externalTag2, uint8_t type, uint8_t size, uint16_t blockOrder, uint32_t orderInLogic,
23 uint32_t value, std::string_view libraryBlockTagName, iv::types::unitId logicUnitId);
24
25 explicit CParamOnline(const CParamOnline *param);
26 CParamOnline() = default;
27 ~CParamOnline() = default;
28 CParamOnline(const CParamOnline &other) = delete;
29 CParamOnline(CParamOnline &&other) = delete;
30 CParamOnline &operator=(const CParamOnline &other) = delete;
32
33 void extractParamValues(const iv::logic::formulaLogic::SBlockParam &blockParam, uint32_t orderInLogic,
34 uint16_t orderOfBlock);
35
38
39 [[nodiscard]] iv::types::logic::parameterOnlineTag getTag() const;
41 [[nodiscard]] std::string getExternalTag() const;
42 [[nodiscard]] std::string getExternalTag2() const;
43 [[nodiscard]] uint16_t getBlockOrder() const;
44 [[nodiscard]] uint16_t getParameterNr() const;
45 [[nodiscard]] uint16_t getParameterOrderInLogic() const;
46 [[nodiscard]] double getPrecisionParameter() const;
47 [[nodiscard]] uint8_t getSize() const;
48 [[nodiscard]] uint8_t getType() const;
49 [[nodiscard]] iv::logic::eDBBlockParamType getEnumType() const;
50 [[nodiscard]] uint32_t getLiteralValue() const;
51 [[nodiscard]] float getTypedValue() const;
52 [[nodiscard]] std::string getValueToString() const;
53 [[nodiscard]] bool isCorrectlyUploaded() const;
54
56
57 void setTag(std::string_view paramOnlineTag);
58 void setLibraryBlockTagName(std::string_view libraryTagName);
59 void setExternalTag(std::string_view externalTag);
60 void setExternalTag2(std::string_view externalTag2);
61
62 // private:
67
68 uint16_t m_orderInBlock {};
69
72
73 uint8_t m_type {};
74 uint8_t m_size {};
75
80 uint16_t m_unpackedBlockOrder {};// Block order after unpacking library blocks.
81 uint32_t m_orderInLogic {}; // Order in logic.
82
83 uint32_t m_value {};// Literal value. Can be uchar, ushort or float.
84 bool m_correctlyUploaded {false};
85
91};
92
93#endif /* LIBS_LOGIC_CPARAMONLINE_HPP_ */
Definition CParamOnline.hpp:12
static bool sortByParamOrderInLogic(const std::weak_ptr< CParamOnline > &paramA, const std::weak_ptr< CParamOnline > &paramB)
Definition CParamOnline.cpp:13
CParamOnline & operator=(const CParamOnline &other)=delete
void setExternalTag2(std::string_view externalTag2)
Definition CParamOnline.cpp:354
uint8_t getSize() const
Definition CParamOnline.cpp:236
CParamOnline()=default
iv::types::unitId m_idUnit
Definition CParamOnline.hpp:90
CParamOnline(CParamOnline &&other)=delete
uint16_t getParameterNr() const
Definition CParamOnline.cpp:203
void setExternalTag(std::string_view externalTag)
Definition CParamOnline.cpp:349
uint16_t m_orderInBlock
Definition CParamOnline.hpp:68
iv::types::logic::parameterOnlineTag m_tag
Definition CParamOnline.hpp:66
uint16_t getParameterOrderInLogic() const
Definition CParamOnline.cpp:208
iv::comms::eResponse downloadChangeValue(float value)
Definition CParamOnline.cpp:34
iv::types::logic::parameterOnlineTag m_externalTag
Definition CParamOnline.hpp:70
std::string getValueToString() const
Definition CParamOnline.cpp:300
bool isCorrectlyUploaded() const
Definition CParamOnline.cpp:329
std::string getExternalTag2() const
Definition CParamOnline.cpp:193
uint16_t getBlockOrder() const
Definition CParamOnline.cpp:198
std::string getExternalTag() const
Definition CParamOnline.cpp:188
iv::types::logic::parameterOnlineTag m_externalTag2
Definition CParamOnline.hpp:71
CParamOnline(const CParamOnline &other)=delete
bool m_correctlyUploaded
Definition CParamOnline.hpp:84
void setTag(std::string_view paramOnlineTag)
Definition CParamOnline.cpp:339
uint8_t getType() const
Definition CParamOnline.cpp:241
iv::types::logic::libraryTagName getLibraryBlockTagName() const
Definition CParamOnline.cpp:183
uint32_t m_value
Definition CParamOnline.hpp:83
iv::logic::eDBBlockParamType getEnumType() const
Definition CParamOnline.cpp:246
void extractParamValues(const iv::logic::formulaLogic::SBlockParam &blockParam, uint32_t orderInLogic, uint16_t orderOfBlock)
Definition CParamOnline.cpp:27
float getTypedValue() const
Definition CParamOnline.cpp:256
uint8_t m_size
Definition CParamOnline.hpp:74
iv::comms::eResponse uploadValue()
Definition CParamOnline.cpp:99
~CParamOnline()=default
uint8_t m_type
Definition CParamOnline.hpp:73
iv::types::externalParameterOnlineId generateExternalParamOnlineId() const
Definition CParamOnline.cpp:334
iv::types::logic::parameterOnlineTag getTag() const
Definition CParamOnline.cpp:178
uint16_t m_unpackedBlockOrder
Definition CParamOnline.hpp:80
uint32_t m_orderInLogic
Definition CParamOnline.hpp:81
uint32_t getLiteralValue() const
Definition CParamOnline.cpp:251
CParamOnline & operator=(CParamOnline &&other)=delete
iv::types::logic::libraryTagName m_libraryBlockTagName
Definition CParamOnline.hpp:89
double getPrecisionParameter() const
Definition CParamOnline.cpp:213
void setLibraryBlockTagName(std::string_view libraryTagName)
Definition CParamOnline.cpp:344
eResponse
Definition enums.hpp:285
eDBBlockParamType
Definition defines.hpp:20
std::string libraryTagName
Definition types.hpp:131
std::string parameterOnlineTag
Definition types.hpp:132
uint16_t unitId
Definition types.hpp:77
std::string externalParameterOnlineId
Definition types.hpp:83
Definition structs.hpp:58