Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
NetworkData.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_MODEL_COMMS_NETWORKDATA_HPP_
2#define IV_SRC_MODEL_COMMS_NETWORKDATA_HPP_
3
4#include "core/types.hpp"
8
9namespace iv::channels
10{
11class AbstractChannel;
12}
13
14namespace iv::model::comms
15{
16
18{
20 NetworkData(iv::types::networkId networkId, const std::shared_ptr<bool> &isEnabled,
21 iv::comms::eNetworkType networkType, std::string internalDescription,
22 iv::types::milliseconds deinitTimeout, iv::types::channelId errorChannelId,
25 iv::types::stationId stationId);
26 NetworkData(const NetworkData &other);
27 NetworkData(NetworkData &&other) noexcept;
29
30 NetworkData &operator=(const NetworkData &other);
31 NetworkData &operator=(NetworkData &&other) noexcept;
32
33 bool load(const iv::file::xml::node &node);
34 static std::string loadNetworkProtocol(const iv::file::xml::node &node);
35 bool save(iv::file::xml::node &node) const;
36
37 [[nodiscard]] std::shared_ptr<NetworkData> clone() const;
38 void update(const NetworkData &other);
39
40 std::string getDetails();
41
43 std::shared_ptr<bool> _isEnabled;
48
51
52 std::weak_ptr<iv::channels::AbstractChannel> _heartbeatChannel;
53 std::weak_ptr<iv::channels::AbstractChannel> _commFailureChannel;
54
56
61
62private:
63 struct Keys
64 {
65 static constexpr std::string_view id {"Id"};
66 static constexpr std::string_view isEnabled {"Enabled"};
67 static constexpr std::string_view type {"Type"};
68 static constexpr std::string_view deInitTimeOut {"DeInitTimeOut"};
69 static constexpr std::string_view internalDescription {"InternalDescription"};
70
71 static constexpr std::string_view interfaceType {"Type"};
72
73 static constexpr std::string_view stationIpAddress {"StationIpAddress"};
74 static constexpr std::string_view stationPort {"StationPort"};
75 static constexpr std::string_view gatewayIpAddress {"GatewayIpAddress"};
76 static constexpr std::string_view gatewayPort {"GatewayPort"};
77
78 static constexpr std::string_view ixxatBoardType {"BoardType"};
79 static constexpr std::string_view ixxatHwSerial {"HwSerial"};
80 static constexpr std::string_view ixxatHwPort {"HwPort"};
81 static constexpr std::string_view ixxatBaudRate {"BaudRate"};
82 static constexpr std::string_view ixxatOperationMode {"OperationMode"};
83 static constexpr std::string_view ixxatEnableErrorFrames {"EnableErrorFrames"};
84
85 static constexpr std::string_view socketCanBoardType {"BoardType"};
86 static constexpr std::string_view socketCanDevice {"Device"};
87 static constexpr std::string_view socketCanHwPort {"HwPort"};
88 static constexpr std::string_view socketCanOperationMode {"OperationMode"};
89 static constexpr std::string_view socketCanBusTimingRegister {"BusTimingRegister"};
90
91 static constexpr std::string_view serialPortName {"PortName"};
92 static constexpr std::string_view serialBaudRate {"BaudRate"};
93 static constexpr std::string_view serialDataBits {"DataBits"};
94 static constexpr std::string_view serialParity {"Parity"};
95 static constexpr std::string_view serialStopBits {"StopBits"};
96 static constexpr std::string_view serialFlowControl {"FlowControl"};
97 static constexpr std::string_view serialPollTime {"PollTime"};
98
99 static constexpr std::string_view httpSettingIp {"Ip"};
100 static constexpr std::string_view httpSettingPort {"Port"};
101
102 static constexpr std::string_view protocolType {"ProtocolType"};
103
104 static constexpr std::string_view lomLine {"LomLine"};
105 static constexpr std::string_view canHighSpeed {"HighSpeed"};
106 static constexpr std::string_view canFilterId {"FilterId"};
107 static constexpr std::string_view canFilterMask {"FilterMask"};
108
109 static constexpr std::string_view modbusSlaveId {"SlaveId"};
110 static constexpr std::string_view modbusZeroBased {"ZeroBased"};
111 static constexpr std::string_view modbusTimeoutWait {"TimeoutWait"};
112 static constexpr std::string_view modbusTimeoutRetry {"TimeoutRetry"};
113 static constexpr std::string_view modbusMaxRetries {"MaxRetries"};
114 static constexpr std::string_view modbusMaxCoilsReadPerQuery {"MaxCoilsReadPerQuery"};
115 static constexpr std::string_view modbusMaxCoilsWritePerQuery {"MaxCoilsWritePerQuery"};
116 static constexpr std::string_view modbusMaxRegistersReadPerQuery {"MaxRegistersReadPerQuery"};
117 static constexpr std::string_view modbusMaxRegistersWritePerQuery {"MaxRegistersWritePerQuery"};
118
119 static constexpr std::string_view nmea0183TimeoutWait {"TimeoutWait"};
120 static constexpr std::string_view nmea0183TimeoutRetry {"TimeoutRetry"};
121 static constexpr std::string_view nmea0183TimeReadingPerFrame {"TimeReadingPerFrame"};
122
123 static constexpr std::string_view fallbackNetwork {"FallbackNetwork"};
124 static constexpr std::string_view heartbeatChannel {"HeartbeatChannel"};
125 static constexpr std::string_view failChannel {"FailChannel"};
126 static constexpr std::string_view debugLevel {"DebugLevel"};
127 };
128
129 struct Sections
130 {
131 static constexpr std::string_view settings {"Settings"};
132 static constexpr std::string_view ipAddresses {"IpAddresses"};
133 static constexpr std::string_view ipAddress {"IpAddress"};
134 static constexpr std::string_view networks {"Networks"};
135 static constexpr std::string_view network {"Network"};
136 static constexpr std::string_view networkCommInterfaceSettings {"Interface"};
137 static constexpr std::string_view networkCommProtocolSettings {"Protocol"};
138
139 struct Network
140 {
141 static constexpr std::string_view httpSetting {"HttpSetting"};
142 };
143 };
144
146 {
147 static constexpr std::string string {};
148 static constexpr bool isEnabled {};
152 };
153};
154
155}// namespace iv::model::comms
156
157#endif//IV_SRC_MODEL_COMMS_NETWORKDATA_HPP_
Definition xmlFile.hpp:15
Definition AlarmsManager.hpp:17
eNetworkType
Definition enums.hpp:250
eCommDebugLevels
Definition enums.hpp:277
Definition ApiSettings.cpp:4
uint64_t milliseconds
Definition types.hpp:22
std::string stationId
Definition types.hpp:75
std::string networkId
Definition types.hpp:43
std::string channelId
Definition types.hpp:66
Definition InterfaceSettings.hpp:15
Definition NetworkData.hpp:146
static constexpr bool isEnabled
Definition NetworkData.hpp:148
static constexpr iv::types::milliseconds deinitTimeout
Definition NetworkData.hpp:150
static constexpr iv::comms::eNetworkType networkType
Definition NetworkData.hpp:149
static constexpr iv::comms::eCommDebugLevels debugLevel
Definition NetworkData.hpp:151
Definition NetworkData.hpp:64
static constexpr std::string_view stationPort
Definition NetworkData.hpp:74
static constexpr std::string_view serialDataBits
Definition NetworkData.hpp:93
static constexpr std::string_view socketCanDevice
Definition NetworkData.hpp:86
static constexpr std::string_view deInitTimeOut
Definition NetworkData.hpp:68
static constexpr std::string_view modbusZeroBased
Definition NetworkData.hpp:110
static constexpr std::string_view gatewayIpAddress
Definition NetworkData.hpp:75
static constexpr std::string_view httpSettingPort
Definition NetworkData.hpp:100
static constexpr std::string_view nmea0183TimeoutWait
Definition NetworkData.hpp:119
static constexpr std::string_view serialPollTime
Definition NetworkData.hpp:97
static constexpr std::string_view modbusMaxCoilsReadPerQuery
Definition NetworkData.hpp:114
static constexpr std::string_view internalDescription
Definition NetworkData.hpp:69
static constexpr std::string_view stationIpAddress
Definition NetworkData.hpp:73
static constexpr std::string_view ixxatHwPort
Definition NetworkData.hpp:80
static constexpr std::string_view socketCanBoardType
Definition NetworkData.hpp:85
static constexpr std::string_view nmea0183TimeoutRetry
Definition NetworkData.hpp:120
static constexpr std::string_view modbusMaxRegistersReadPerQuery
Definition NetworkData.hpp:116
static constexpr std::string_view ixxatOperationMode
Definition NetworkData.hpp:82
static constexpr std::string_view modbusTimeoutRetry
Definition NetworkData.hpp:112
static constexpr std::string_view nmea0183TimeReadingPerFrame
Definition NetworkData.hpp:121
static constexpr std::string_view debugLevel
Definition NetworkData.hpp:126
static constexpr std::string_view heartbeatChannel
Definition NetworkData.hpp:124
static constexpr std::string_view ixxatEnableErrorFrames
Definition NetworkData.hpp:83
static constexpr std::string_view lomLine
Definition NetworkData.hpp:104
static constexpr std::string_view httpSettingIp
Definition NetworkData.hpp:99
static constexpr std::string_view socketCanOperationMode
Definition NetworkData.hpp:88
static constexpr std::string_view interfaceType
Definition NetworkData.hpp:71
static constexpr std::string_view gatewayPort
Definition NetworkData.hpp:76
static constexpr std::string_view socketCanBusTimingRegister
Definition NetworkData.hpp:89
static constexpr std::string_view ixxatBaudRate
Definition NetworkData.hpp:81
static constexpr std::string_view modbusMaxRegistersWritePerQuery
Definition NetworkData.hpp:117
static constexpr std::string_view modbusSlaveId
Definition NetworkData.hpp:109
static constexpr std::string_view ixxatBoardType
Definition NetworkData.hpp:78
static constexpr std::string_view serialParity
Definition NetworkData.hpp:94
static constexpr std::string_view serialStopBits
Definition NetworkData.hpp:95
static constexpr std::string_view fallbackNetwork
Definition NetworkData.hpp:123
static constexpr std::string_view serialFlowControl
Definition NetworkData.hpp:96
static constexpr std::string_view isEnabled
Definition NetworkData.hpp:66
static constexpr std::string_view serialPortName
Definition NetworkData.hpp:91
static constexpr std::string_view failChannel
Definition NetworkData.hpp:125
static constexpr std::string_view modbusTimeoutWait
Definition NetworkData.hpp:111
static constexpr std::string_view modbusMaxRetries
Definition NetworkData.hpp:113
static constexpr std::string_view ixxatHwSerial
Definition NetworkData.hpp:79
static constexpr std::string_view modbusMaxCoilsWritePerQuery
Definition NetworkData.hpp:115
static constexpr std::string_view serialBaudRate
Definition NetworkData.hpp:92
static constexpr std::string_view type
Definition NetworkData.hpp:67
static constexpr std::string_view canFilterMask
Definition NetworkData.hpp:107
static constexpr std::string_view canHighSpeed
Definition NetworkData.hpp:105
static constexpr std::string_view socketCanHwPort
Definition NetworkData.hpp:87
static constexpr std::string_view canFilterId
Definition NetworkData.hpp:106
static constexpr std::string_view protocolType
Definition NetworkData.hpp:102
static constexpr std::string_view httpSetting
Definition NetworkData.hpp:141
Definition NetworkData.hpp:130
static constexpr std::string_view networks
Definition NetworkData.hpp:134
static constexpr std::string_view ipAddress
Definition NetworkData.hpp:133
static constexpr std::string_view settings
Definition NetworkData.hpp:131
static constexpr std::string_view networkCommInterfaceSettings
Definition NetworkData.hpp:136
static constexpr std::string_view networkCommProtocolSettings
Definition NetworkData.hpp:137
static constexpr std::string_view network
Definition NetworkData.hpp:135
static constexpr std::string_view ipAddresses
Definition NetworkData.hpp:132
Definition NetworkData.hpp:18
NetworkData()
Definition NetworkData.cpp:10
std::string _internalDescription
Definition NetworkData.hpp:45
std::weak_ptr< iv::channels::AbstractChannel > _heartbeatChannel
Definition NetworkData.hpp:52
iv::model::comms::ProtocolSettings _protocolSettings
Definition NetworkData.hpp:50
bool save(iv::file::xml::node &node) const
Definition NetworkData.cpp:134
static std::string loadNetworkProtocol(const iv::file::xml::node &node)
Definition NetworkData.cpp:128
std::shared_ptr< NetworkData > clone() const
Definition NetworkData.cpp:166
iv::types::milliseconds _deinitTimeout
Definition NetworkData.hpp:46
iv::types::stationId _stationId
Definition NetworkData.hpp:60
std::shared_ptr< bool > _isEnabled
Definition NetworkData.hpp:43
NetworkData & operator=(const NetworkData &other)
Definition NetworkData.cpp:53
bool load(const iv::file::xml::node &node)
Definition NetworkData.cpp:99
std::string getDetails()
Definition NetworkData.cpp:206
iv::types::networkId _networkId
Definition NetworkData.hpp:42
iv::comms::eNetworkType _networkType
Definition NetworkData.hpp:44
iv::comms::eCommDebugLevels _debugLevel
Definition NetworkData.hpp:55
iv::types::networkId fallBackNetwork
Definition NetworkData.hpp:47
std::weak_ptr< iv::channels::AbstractChannel > _commFailureChannel
Definition NetworkData.hpp:53
iv::model::comms::InterfaceSettings _interfaceSettings
Definition NetworkData.hpp:49
void update(const NetworkData &other)
Definition NetworkData.cpp:189
Definition ProtocolSettings.hpp:19