13#ifndef __BAOSLIB_INTERFACE_DATA_TYPES_H__
14#define __BAOSLIB_INTERFACE_DATA_TYPES_H__
22#include "BlockReader.h"
24#include "wzcpp/features/algorithm/append.h"
25#include "wzcpp/features/utils/ByteArray.h"
26#include "wzcpp/features/utils/Memory.h"
50 wzcpp::SixByteArray hardwareType{0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
51 std::uint8_t hardwareVersion{0};
52 std::uint8_t firmwareVersion{0};
53 std::uint16_t manufactureCodeDevice{0};
54 wzcpp::SixByteArray serialNumber{0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
55 std::uint16_t maxBufferSize{0};
56 std::uint8_t binaryProtocolVersion{0};
57 std::uint8_t webServicesProtocolVersion{0};
58 std::uint8_t restServiceProtocolVersion{0};
59 wzcpp::SixByteArray macAddress{0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
60 std::uint8_t maxManagementClients{0};
61 std::uint8_t maxTunnellingClients{0};
62 std::uint8_t maxBaosUdpClients{0};
63 std::uint8_t maxBaosTcpClients{0};
64 std::uint16_t maxDatapoints{0};
65 std::uint16_t maxParameterBytes{0};
67 static constexpr std::array ids{
68 protocol::ServerItemId::HardwareType,
69 protocol::ServerItemId::HardwareVersion,
70 protocol::ServerItemId::ManufactureCodeDevice,
71 protocol::ServerItemId::SerialNumber,
72 protocol::ServerItemId::MaxBufferSize,
73 protocol::ServerItemId::BinaryProtocolVersion,
74 protocol::ServerItemId::WebServicesProtocolVersion,
75 protocol::ServerItemId::RestServiceProtocolVersion,
76 protocol::ServerItemId::MacAddress,
77 protocol::ServerItemId::MaxManagementClients,
78 protocol::ServerItemId::MaxTunnellingClients,
79 protocol::ServerItemId::MaxBaosUdpClients,
80 protocol::ServerItemId::MaxBaosTcpClients,
81 protocol::ServerItemId::MaxDatapoints,
82 protocol::ServerItemId::MaxParameterBytes};
95 std::uint16_t manufactureCodeApp{0};
96 std::uint16_t applicationId{0};
98 std::uint8_t applicationVersion{0};
100 std::uint16_t lengthOfDescriptionString{0};
101 std::uint8_t baudrateItem{0};
102 std::uint16_t currentBufferSize{0};
103 bool indicationSetting{
105 std::uint16_t individualAddress{0};
106 bool tunnellingEnabled{
false};
107 bool baosBinaryEnabled{
false};
108 bool baosWebEnabled{
false};
109 bool baosRestEnabled{
false};
110 bool httpFileEnabled{
false};
111 bool searchRequestEnabled{
false};
112 bool isStructured{
false};
114 std::uint16_t configuredDatapoints{0};
116 std::uint16_t downloadCounter{0};
118 protocol::IpAssigmentMethod::dhcp};
123 std::array<std::uint8_t, 4>
126 std::int8_t SystemTimezoneOffset{0};
127 bool menuEnabled{
false};
131 wzcpp::SixByteArray rfDomainAddress{
132 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
135 static constexpr std::array ids{
136 protocol::ServerItemId::ManufactureCodeApp,
137 protocol::ServerItemId::ApplicationId,
138 protocol::ServerItemId::ApplicationVersion,
139 protocol::ServerItemId::LengthOfDescriptionString,
140 protocol::ServerItemId::BaudrateItem,
141 protocol::ServerItemId::CurrentBufferSize,
142 protocol::ServerItemId::IndicationSetting,
143 protocol::ServerItemId::IndividualAddress,
144 protocol::ServerItemId::TunnellingEnabled,
145 protocol::ServerItemId::BaosBinaryEnabled,
146 protocol::ServerItemId::BaosWebEnabled,
147 protocol::ServerItemId::BaosRestEnabled,
148 protocol::ServerItemId::HttpFileEnabled,
149 protocol::ServerItemId::SearchRequestEnabled,
150 protocol::ServerItemId::IsStructured,
151 protocol::ServerItemId::DeviceFriendlyName,
152 protocol::ServerItemId::ConfiguredDatapoints,
153 protocol::ServerItemId::DownloadCounter,
154 protocol::ServerItemId::IPAssignment,
155 protocol::ServerItemId::IPAddress,
156 protocol::ServerItemId::SubnetMask,
157 protocol::ServerItemId::DefaultGateway,
158 protocol::ServerItemId::TimeSinceResetUnit,
159 protocol::ServerItemId::SystemTimezoneOffset,
160 protocol::ServerItemId::MenuEnabled,
161 protocol::ServerItemId::SuspendEnabled,
162 protocol::ServerItemId::RFDomainAddress,
163 protocol::ServerItemId::StatusFlagsSupported};
175 std::uint32_t timeSinceReset{0};
176 bool busConnected{
false};
177 bool programmingMode{
false};
178 std::uint8_t connectedManagementClients{0};
179 std::uint8_t connectedTunnellingClients{0};
180 std::uint8_t connectedBaosUdpClients{0};
181 std::uint8_t connectedBaosTcpClients{0};
185 static constexpr std::array ids{
186 protocol::ServerItemId::TimeSinceReset,
187 protocol::ServerItemId::BusConnected,
188 protocol::ServerItemId::ProgrammingMode,
189 protocol::ServerItemId::ConnectedManagementClients,
190 protocol::ServerItemId::ConnectedTunnellingClients,
191 protocol::ServerItemId::ConnectedBaosUdpClients,
192 protocol::ServerItemId::ConnectedBaosTcpClients,
193 protocol::ServerItemId::SystemTime,
194 protocol::ServerItemId::StatusFlags};
Code regarding a connection to a physical BAOS device.
Global BAOS protocol defines and types.
Represents which status flags are supported by the device, serveritem 52.
Definition Defines.h:333
This structure represents the status flags provided by some BAOS devices server item ServerItemId::St...
Definition Defines.h:262
Global types and configuration for the whole SDK.
IpAssigmentMethod
An Ip device may have different methods for ip assigment.
Definition Defines.h:651
DPT
Enumeration value for the supported datapoint types( DPTs )
Definition Defines.h:173
TimeSinceResetUnit
The ServerItemId::TimeSinceResetUnit current unit for TimeSinceReset. This type gives those units a n...
Definition Defines.h:639
DatapointSize
Enum class representing the different datapoint lengths.
Definition Defines.h:148
Global BAOS sdk namespace.
Definition config.h:69
std::vector< std::uint8_t > Buffer
An alias type for a byte buffer.
Definition config.h:71
std::map< std::uint16_t, DatapointConfig > DatapointConfigurations
Definition BaosDeviceDataTypes.h:212
ServerItemReadStrategy
Strategy type on how to handle reading the serveritems.
Definition BaosDeviceDataTypes.h:216
@ METADATAREADWITHFALLBACK
@ ALLATONCE
Read from first to std::uint16_t Max serveritems.
Information about a datapoint object.
Definition BaosDeviceDataTypes.h:201
std::string desc
Definition BaosDeviceDataTypes.h:205
protocol::DatapointConfigFlags flags
Definition BaosDeviceDataTypes.h:203
protocol::DPT dpt
Definition BaosDeviceDataTypes.h:204
protocol::DatapointSize size
Definition BaosDeviceDataTypes.h:202
Configuration options for the cpp device class behaviour.
Definition BaosDeviceDataTypes.h:226
ServerItemReadStrategy siReadStrategy
How server items should be read.
Definition BaosDeviceDataTypes.h:229
bool blockReadEnabled
Read in blocks if the request is to larger to handle in one telegram.
Definition BaosDeviceDataTypes.h:228
bool cacheEnabled
Enable the caching of datapoint values and parameter bytes.
Definition BaosDeviceDataTypes.h:227
A collection of fields representing those serveritems which may change if the configuration of the de...
Definition BaosDeviceDataTypes.h:94
std::array< std::uint8_t, 4 > defaultGateway
If manual IP assigment is selected, this is the default gateway to be set in the device.
Definition BaosDeviceDataTypes.h:124
std::array< std::uint8_t, 4 > iPAddress
Definition BaosDeviceDataTypes.h:120
std::array< std::uint8_t, 4 > subnetMask
If manual IP assignment is selected, this is the subnet mask to set.
Definition BaosDeviceDataTypes.h:122
protocol::TimeSinceResetUnit timeSinceResetUnit
The unit in which timesincereset is represented.
Definition BaosDeviceDataTypes.h:125
std::string deviceFriendlyName
For IP devices the same as KNXnet/IP device friendly name.
Definition BaosDeviceDataTypes.h:115
A collection of fields representing those serveritems which may change during "normal" operation of t...
Definition BaosDeviceDataTypes.h:174
Buffer SystemTime
The system time of the device in seconds since 1.1.1970 0:00.
Definition BaosDeviceDataTypes.h:182
A collection of fields representing those serveritems which won't ever change in a device.
Definition BaosDeviceDataTypes.h:49
Struct for the communication flags of a datapoint. See KNX spec for more details.
Definition Defines.h:444