NetIp Namespace

QKnx::NetIp

The QKnx::NetIp namespace defines constants, methods, and enumerations related to KNXnet/IP communication. More...

Header: #include <NetIp>
qmake: QT += knx

Namespaces

namespace CemiServer

Types

enum class AssignmentMethod { Unknown, Manual, BootP, Dhcp, AutoIp }
flags AssignmentMethods
flags Capabilities
enum class Capability { Unknown, BootP, Dhcp, AutoIp }
enum class ConnectionType { Unknown, DeviceManagement, Tunnel, RemoteLogging, RemoteConfiguration, ObjectServer }
enum class DescriptionType { Unknown, DeviceInfo, SupportedServiceFamilies, IpConfiguration, CurrentIpConfiguration, …, NotUsed }
enum class DeviceState { KnxFault, IpFault }
enum class Error { None, HostProtocolType, VersionNotSupported, SequenceNumber, Error, …, ConnectionInUse }
enum class HostProtocol { Unknown, UDP_IPv4, TCP_IPv4 }
enum class ProgrammingMode { Inactive, Active, Unknown }
enum class SearchParameterType { Invalid, SelectByProgrammingMode, SelectByMACAddress, SelectByService, SelectByServiceSRP, RequestDIBs }
enum class SecureSessionStatus { AuthenticationSuccess, AuthenticationFailed, Unauthenticated, Timeout, KeepAlive, Close }
enum SecureUserId { Reserved, Management, UserRole, Invalid }
enum class ServiceFamily { Unknown, Core, DeviceManagement, IpTunneling, IpRouting, …, Security }
enum class ServiceType { Unknown, SearchRequest, SearchResponse, DescriptionRequest, DescriptionResponse, …, TimerNotify }
enum Timeout { HeartbeatTimeout, ConnectionAliveTimeout, SearchTimeout, DescriptionTimeout, ConnectRequestTimeout, …, SecureSessionAuthenticateTimeout }
enum class TunnelLayer { Unknown, Link, Raw, Busmonitor }

Functions

bool isAssignmentMethod(QKnx::NetIp::AssignmentMethod method)
bool isCapability(QKnx::NetIp::Capability capability)
bool isProgrammingMode(QKnx::NetIp::ProgrammingMode mode)
bool isSecureUserId(QKnx::NetIp::SecureUserId userId)
bool isServiceFamily(QKnx::NetIp::ServiceFamily family)
bool isServiceType(QKnx::NetIp::ServiceType type)
bool isStructType(QKnx::NetIp::HostProtocol type)
bool isStructType(QKnx::NetIp::ConnectionType type)
bool isStructType(QKnx::NetIp::DescriptionType type)
bool isStructType(QKnx::NetIp::SearchParameterType type)
bool isTunnelLayer(QKnx::NetIp::TunnelLayer layer)

Detailed Description

Namespaces

namespace NetIp::CemiServer

The common external message interface (cEMI) message format is a generic structure for transmitting KNX frames between cEMI servers and cEMI clients independently of the medium.

Type Documentation

enum class NetIp::AssignmentMethod
flags NetIp::AssignmentMethods

This enum describes the enabled IP address assignment methods for setting the current IP address of a KNXnet/IP device.

ConstantValueDescription
QKnx::NetIp::AssignmentMethod::Unknown0x00The IP address assignment method is unknown.
QKnx::NetIp::AssignmentMethod::Manual0x01Manual IP address assignment.
QKnx::NetIp::AssignmentMethod::BootP0x02IP address assignment via BootP.
QKnx::NetIp::AssignmentMethod::Dhcp0x04IP address assignment via DHCP.
QKnx::NetIp::AssignmentMethod::AutoIp0x08IP address is self-assigned by the device.

The AssignmentMethods type is a typedef for QFlags<AssignmentMethod>. It stores an OR combination of AssignmentMethod values.

enum class NetIp::Capability
flags NetIp::Capabilities

This enum describes the IP capabilities supported by the KNXnet/IP device.

ConstantValueDescription
QKnx::NetIp::Capability::Unknown0x00The supported IP address assignment capability is unknown.
QKnx::NetIp::Capability::BootP0x01The device supports IP address assignment via BootP.
QKnx::NetIp::Capability::Dhcp0x02The device supports IP address assignment via DHCP.
QKnx::NetIp::Capability::AutoIp0x04The device is capable of assigning itself a unicast IP address in the range of 169.254.1.0 to 169.254.254.255.

The Capabilities type is a typedef for QFlags<Capability>. It stores an OR combination of Capability values.

enum class NetIp::ConnectionType

This enum describes the supported KNXnet/IP connection types.

ConstantValueDescription
QKnx::NetIp::ConnectionType::Unknown0x00The supported connection type is unknown.
QKnx::NetIp::ConnectionType::DeviceManagement0x03The connection type used to configure a KNXnet/IP device.
QKnx::NetIp::ConnectionType::Tunnel0x04The connection type used to send KNX telegrams between two KNXnet/IP devices.
QKnx::NetIp::ConnectionType::RemoteLogging0x06The connection type used for configuration and data transfer with a remote logging server.
QKnx::NetIp::ConnectionType::RemoteConfiguration0x07The connection type used for data transfer with a remote configuration server.
QKnx::NetIp::ConnectionType::ObjectServer0x08The connection type used for configuration and data transfer with an object server in a KNXnet/IP device.

enum class NetIp::DescriptionType

This enum contains values to self-describe a KNXnet/IP server device.

ConstantValueDescription
QKnx::NetIp::DescriptionType::Unknown0x00An unknown description type.
QKnx::NetIp::DescriptionType::DeviceInfo0x01Device information, such as the KNX medium.
QKnx::NetIp::DescriptionType::SupportedServiceFamilies0x02Service families supported by the device.
QKnx::NetIp::DescriptionType::IpConfiguration0x03IP configuration related device information.
QKnx::NetIp::DescriptionType::CurrentIpConfiguration0x04Current IP configuration of the device.
QKnx::NetIp::DescriptionType::KnxAddresses0x05All individual addresses assigned to the device.
QKnx::NetIp::DescriptionType::SecuredServices0x06KNXnet/IP servers supporting the KNXnet/IP secure services as specified by the KNX application note AN159.
QKnx::NetIp::DescriptionType::TunnelingInfo0x07Tunneling information, such as the maximum interface application protocol data unit (APDU) length and tunneling slot information (individual address and connection status).
QKnx::NetIp::DescriptionType::ExtendedDeviceInfo0x08Extended device information, such as the KNX medium status, maximum local APDU length and the device descriptor type (mask version).
QKnx::NetIp::DescriptionType::ManufacturerData0xfeA structure for further data defined by a device manufacturer.
QKnx::NetIp::DescriptionType::NotUsed0xffThis value may not be used.

enum class NetIp::DeviceState

This enum describes the state information of a KNXnet/IP device.

ConstantValueDescription
QKnx::NetIp::DeviceState::KnxFault0x00The state is set if the KNX network cannot be accessed.
QKnx::NetIp::DeviceState::IpFault0x01The state is set if the IP network cannot be accessed.

enum class NetIp::Error

This enum describes the KNXnet/IP communication errors that can occur.

ConstantValueDescription
QKnx::NetIp::Error::None0x00No error occurred.
QKnx::NetIp::Error::HostProtocolType0x01The requested host protocol is not supported by the KNXnet/IP device.
QKnx::NetIp::Error::VersionNotSupported0x02The requested protocol version is not supported by the KNXnet/IP device.
QKnx::NetIp::Error::SequenceNumber0x04The received sequence number is out of sync.
QKnx::NetIp::Error::Error0x0fAn undefined, possibly implementation specific error occurred.
QKnx::NetIp::Error::ConnectionId0x21The KNXnet/IP server device cannot find an active data connection with the specified ID.
QKnx::NetIp::Error::ConnectionType0x22The KNXnet/IP server device does not support the requested connection type.
QKnx::NetIp::Error::ConnectionOption0x23The KNXnet/IP server device does not support one or more requested connection options.
QKnx::NetIp::Error::NoMoreConnections0x24The KNXnet/IP server device cannot accept the new data connection because its maximum amount of concurrent connections is already used.
QKnx::NetIp::Error::NoMoreUniqueConnections0x25The KNXnet/IP tunneling server could provide a connection (in contrast to NoMoreConnections) if only the KNXnet/IP tunneling address that would be assigned to the connection would be unique.
QKnx::NetIp::Error::DataConnection0x26The KNXnet/IP server device detects an error concerning the data connection with the specified ID.
QKnx::NetIp::Error::KnxConnection0x27The KNXnet/IP server device detects an error concerning the KNX connection with the specified ID.
QKnx::NetIp::Error::Authorization0x28The KNXnet/IP client is not authorized to use the requested individual address in the extended connection request information (CRI) structure.
QKnx::NetIp::Error::TunnelingLayer0x29The requested tunneling layer is not supported by the KNXnet/IP server device.
QKnx::NetIp::Error::NoTunnelingAddress0x2dThe address requested in the extended CRI structure is not a tunneling individual address.
QKnx::NetIp::Error::ConnectionInUse0x2eThe individual address requested for this connection is already in use.

enum class NetIp::HostProtocol

This enum describes the KNXnet/IP host protocol codes for an IP network.

ConstantValueDescription
QKnx::NetIp::HostProtocol::Unknown0x00The supported KNXnet/IP device host protocol is unknown.
QKnx::NetIp::HostProtocol::UDP_IPv40x01The supported KNXnet/IP device host protocol is UDP/IPv4.
QKnx::NetIp::HostProtocol::TCP_IPv40x02The supported KNXnet/IP device host protocol is TCP/IPv4.

enum class NetIp::ProgrammingMode

This enum describes the programming mode state of a KNX device.

ConstantValueDescription
QKnx::NetIp::ProgrammingMode::Inactive0x00The device is not in programming mode.
QKnx::NetIp::ProgrammingMode::Active0x01The device is in programming mode.
QKnx::NetIp::ProgrammingMode::Unknown0xffThe programming state of the device is unknown.

enum class NetIp::SearchParameterType

This enum is used in an extended search request to filter out devices in the KNXnet/IP server discovery phase.

ConstantValueDescription
QKnx::NetIp::SearchParameterType::Invalid0x00The extended search request parameter contains an invalid value. Usually the invalid value is used to test the behavior of a KNXnet/IP router or server for unknown SRPs.
QKnx::NetIp::SearchParameterType::SelectByProgrammingMode0x01Client is interested only in the response from KNXnet/IP servers in programming mode currently enabled.
QKnx::NetIp::SearchParameterType::SelectByMACAddress0x02Client is interested only in the response from KNXnet/IP servers with the given MAC address.
QKnx::NetIp::SearchParameterType::SelectByService0x03Client is interested only in the response from KNXnet/IP servers supporting the given KNXnet/IP service family in at least the given version.
QKnx::NetIp::SearchParameterType::SelectByServiceSRP0x03This enum value has been deprecated. Use SelectByService instead.
QKnx::NetIp::SearchParameterType::RequestDIBs0x04Client includes this search request parameter (SRP) to indicate that it is interested in the listed DIBs. This SRP shall not influence the decision of the KNXnet/IP server whether or not to respond to the search request.

This enum was introduced or modified in Qt 5.12.

enum class NetIp::SecureSessionStatus

This enum is used in a frame sent at any stage of the secure session handshake to indicate an error condition or status information.

ConstantValueDescription
QKnx::NetIp::SecureSessionStatus::AuthenticationSuccess0x00The user was successfully authenticated.
QKnx::NetIp::SecureSessionStatus::AuthenticationFailed0x01An error occurred during secure session handshake.
QKnx::NetIp::SecureSessionStatus::Unauthenticated0x02The session is not yet authenticated.
QKnx::NetIp::SecureSessionStatus::Timeout0x03A timeout occurred during secure session handshake.
QKnx::NetIp::SecureSessionStatus::KeepAlive0x04Prevent inactivity on the secure session. Without the keep-alive signal, the KNXnet/IP device can drop the connection with a timeout error.
QKnx::NetIp::SecureSessionStatus::Close0x05The secure session must be closed.

This enum was introduced or modified in Qt 5.12.

enum NetIp::SecureUserId

The ID of the management client (MaC) or user that is used for the authentication of the secure session.

ConstantValueDescription
QKnx::NetIp::Reserved0x00Reserved, please do not use.
QKnx::NetIp::Management0x01The management user ID.
QKnx::NetIp::UserRole0x02The first value in the possible range of user IDs.
QKnx::NetIp::Invalid0x80Invalid, please do not use any ID equal to or more than this value.

The management server (MaS) will use the user ID as an index into the password hashes table to authenticate the MaC.

The access level (management or user level access - with possibly any device dependent role) will determine the set of services accepted by the MaS after authentication.

User IDDescription
ManagementThis user ID requests access to all resources exposed by the MaS including device management.
UserThis user ID requests access to all resources exposed by the MaS except device management.

In addition to access level, the user ID serves as an index into the tunneling user table to determine if there are individual addresses associated with the user. The management user ID has implicit access to all available tunneling addresses.

This enum was introduced or modified in Qt 5.13.

enum class NetIp::ServiceFamily

This enum holds the service family that the communication is related to. The service family is the high octet of the values of the ServiceType enumeration.

ConstantValueDescription
QKnx::NetIp::ServiceFamily::Unknown0x00Unknown service family.
QKnx::NetIp::ServiceFamily::Core0x02Core service family.
QKnx::NetIp::ServiceFamily::DeviceManagement0x03Device management service family.
QKnx::NetIp::ServiceFamily::IpTunneling0x04Tunneling service family.
QKnx::NetIp::ServiceFamily::IpRouting0x05Routing service family.
QKnx::NetIp::ServiceFamily::RemoteLogging0x06Remote logging service family.
QKnx::NetIp::ServiceFamily::RemoteConfigAndDiagnosis0x07Remote configuration and diagnosis service family.
QKnx::NetIp::ServiceFamily::ObjectServer0x08Object server service family.
QKnx::NetIp::ServiceFamily::Security0x09Security service family.

enum class NetIp::ServiceType

This enum describes KNXnet/IP frame service type identifiers.

The KNXnet/IP service type identifier defines the kind of action to be performed and the type of the data payload contained in the KNXnet/IP body. The high octet of the KNXnet/IP service type identifier denotes the ServiceFamily.

ConstantValueDescription
QKnx::NetIp::ServiceType::Unknown0x0000The service type of the KNXnet/IP frame is unknown.
QKnx::NetIp::ServiceType::SearchRequest0x0201The service type sent by a KNXnet/IP client to search for available KNXnet/IP servers.
QKnx::NetIp::ServiceType::SearchResponse0x0202The service type sent by a KNXnet/IP server when responding to a search request.
QKnx::NetIp::ServiceType::DescriptionRequest0x0203The service type sent by a KNXnet/IP client to a KNXnet/IP server to retrieve information about capabilities and supported services.
QKnx::NetIp::ServiceType::DescriptionResponse0x0204The service type sent by a KNXnet/IP server in response to a description request to provide information about the KNXnet/IP server implementation.
QKnx::NetIp::ServiceType::ConnectRequest0x0205The service type sent by a KNXnet/IP client to establish a communication channel with a KNXnet/IP server.
QKnx::NetIp::ServiceType::ConnectResponse0x0206The service type sent by a KNXnet/IP server in response to a connect request frame.
QKnx::NetIp::ServiceType::ConnectionStateRequest0x0207The service type sent by a KNXnet/IP client requesting the connection state of an established connection with a KNXnet/IP server.
QKnx::NetIp::ServiceType::ConnectionStateResponse0x0208The service type sent by a KNXnet/IP server when receiving a connection state request for an established connection.
QKnx::NetIp::ServiceType::DisconnectRequest0x0209The service type sent by a KNXnet/IP device to terminate an established connection.
QKnx::NetIp::ServiceType::DisconnectResponse0x020aThe service type sent by a KNXnet/IP device in response to a disconnect request.
QKnx::NetIp::ServiceType::ExtendedSearchRequest0x020bThe service type sent by a KNXnet/IP device during the discovery phase looking for any listening KNXnet/IP servers or for a specific one.
QKnx::NetIp::ServiceType::ExtendedSearchResponse0x020cThe service type sent by a KNXnet/IP device in response to an extended search request.
QKnx::NetIp::ServiceType::DeviceConfigurationRequest0x0310The service type sent to read or write KNXnet/IP device configuration data.
QKnx::NetIp::ServiceType::DeviceConfigurationAcknowledge0x0311The service type sent by a KNXnet/IP device to confirm the reception of a device configuration request.
QKnx::NetIp::ServiceType::TunnelingRequest0x0420The service type used for sending and receiving single KNX frames between a KNXnet/IP client and server.
QKnx::NetIp::ServiceType::TunnelingAcknowledge0x0421The service type sent by a KNXnet/IP client or server to confirm the reception of the tunneling request.
QKnx::NetIp::ServiceType::TunnelingFeatureGet0x0422The service feature type used by the KNXnet/IP tunneling client to read the value of a feature from the KNXnet/IP tunneling server.
QKnx::NetIp::ServiceType::TunnelingFeatureResponse0x0423The service feature type used by the KNXnet/IP tunneling server to respond to a feature get or set request by the KNXnet/IP tunneling client.
QKnx::NetIp::ServiceType::TunnelingFeatureSet0x0424The service feature type used by the KNXnet/IP tunneling client to set the value of a feature of the KNXnet/IP tunneling server.
QKnx::NetIp::ServiceType::TunnelingFeatureInfo0x0425The service feature type used by the KNXnet/IP tunneling server to inform the KNXnet/IP tunneling client on a value of an interface feature.
QKnx::NetIp::ServiceType::RoutingIndication0x0530The service type used for sending KNX frames over IP networks.
QKnx::NetIp::ServiceType::RoutingLostMessage0x0531The service type used to indicate that KNXnet/IP routing frames were lost.
QKnx::NetIp::ServiceType::RoutingBusy0x0532The service type used to indicate that a KNXnet/IP router or KNX IP device received more datagrams than it can process.
QKnx::NetIp::ServiceType::RoutingSystemBroadcast0x0533The service type used for adding a new KNXnet/IP device into an already configured domain when the device is not in the same network as the management client (MaC).
QKnx::NetIp::ServiceType::SecureWrapper0x0950The service type used for sending an encrypted frame including data to ensure integrity and freshness.
QKnx::NetIp::ServiceType::SessionRequest0x0951The service type used to initiate the secure connection setup handshake for a new secure communication session.
QKnx::NetIp::ServiceType::SessionResponse0x0952The service type used to respond to a received secure session request frame.
QKnx::NetIp::ServiceType::SessionAuthenticate0x0953The service type used after the Diffie-Hellman handshake to authenticate the user against the server.
QKnx::NetIp::ServiceType::SessionStatus0x0954The service type used to send a frame at any stage of the secure session handshake to indicate an error condition or status information.
QKnx::NetIp::ServiceType::TimerNotify0x0955The service type used to ensure synchronization of the multicast group member's timer values.

enum NetIp::Timeout

This enum describes the timeouts used during KNXnet/IP communication.

ConstantValueDescription
QKnx::NetIp::HeartbeatTimeout60000Timeout used between sending the next connection state request frame to the KNXnet/IP server.
QKnx::NetIp::ConnectionAliveTimeout120000Timeout before sending a disconnect request to the KNXnet/IP client after the last correctly received message frame.
QKnx::NetIp::SearchTimeout3000Timeout after sending a search request that the KNXnet/IP client will wait for search response frames from KNXnet/IP servers.
QKnx::NetIp::DescriptionTimeout3000Timeout after sending a description request that the KNXnet/IP client will wait for description response frames from KNXnet/IP servers.
QKnx::NetIp::ConnectRequestTimeout10000The KNXnet/IP client will wait for 10 seconds to receive a connect response frame from the KNXnet/IP server.
QKnx::NetIp::ConnectionStateRequestTimeout10000The KNXnet/IP client will wait for 10 seconds for a connection state response from the KNXnet/IP server after sending a connection state request.
QKnx::NetIp::DisconnectRequestTimeout10000The KNXnet/IP client will wait for 10 seconds to receive a disconnect response frame from the KNXnet/IP server.
QKnx::NetIp::DeviceConfigurationRequestTimeout10000The KNXnet/IP client will wait for 10 seconds for a device configuration response from the KNXnet/IP server after sending a device configuration request.
QKnx::NetIp::TunnelingRequestTimeout1000The KNXnet/IP client will wait for 1 second for a tunneling acknowledge response from the KNXnet/IP server after sending a tunneling request.
QKnx::NetIp::RoutingBusyWaitTime100The timeout used to empty the incoming queue of a KNXnet/IP router or KNX IP device if the number of received datagrams exceeds the number of frames that the device can actually process.
QKnx::NetIp::SecureSessionTimeout60000The maximum time an authenticated secure session can remain unused without any communication before the secure session gets dropped.
QKnx::NetIp::SecureSessionRequestTimeout10000The maximum time the KNXnet/IP client will wait for the session response from the KNXnet/IP server after sending a session request.
QKnx::NetIp::SecureSessionAuthenticateTimeout10000The maximum time the authentication process for a newly created secure session may last until the unauthenticated session will be dropped.

enum class NetIp::TunnelLayer

This enum describes the KNX tunneling layer to establish.

ConstantValueDescription
QKnx::NetIp::TunnelLayer::Unknown0x00The tunneling layer to establish is unknown.
QKnx::NetIp::TunnelLayer::Link0x02Establish a data link layer tunnel to the KNX network.
QKnx::NetIp::TunnelLayer::Raw0x04Establish a raw tunnel to the KNX network.
QKnx::NetIp::TunnelLayer::Busmonitor0x80Establish a bus monitor tunnel to the KNX network.

Function Documentation

bool NetIp::isAssignmentMethod(QKnx::NetIp::AssignmentMethod method)

Returns true if the specified method is a part of the AssignmentMethod enumeration; otherwise returns false.

bool NetIp::isCapability(QKnx::NetIp::Capability capability)

Returns true if the specified capability is a part of the Capability enumeration; otherwise returns false.

bool NetIp::isProgrammingMode(QKnx::NetIp::ProgrammingMode mode)

Returns true if the specified mode is a part of the ProgrammingMode enumeration; otherwise returns false.

bool NetIp::isSecureUserId(QKnx::NetIp::SecureUserId userId)

Returns true if the specified userId is a in the range of the SecureUserId enumeration; otherwise returns false.

This function was introduced in Qt 5.13.

bool NetIp::isServiceFamily(QKnx::NetIp::ServiceFamily family)

Returns true if the specified family is a part of the ServiceFamily enumeration; otherwise returns false.

bool NetIp::isServiceType(QKnx::NetIp::ServiceType type)

Returns true if the specified type is a part of the ServiceType enumeration; otherwise returns false.

bool NetIp::isStructType(QKnx::NetIp::HostProtocol type)

Returns true if the specified type is a part of the HostProtocol enumeration; otherwise returns false.

bool NetIp::isStructType(QKnx::NetIp::ConnectionType type)

Returns true if the specified type is a part of the ConnectionType enumeration; otherwise returns false.

bool NetIp::isStructType(QKnx::NetIp::DescriptionType type)

Returns true if the specified type is a part of the DescriptionType enumeration; otherwise returns false.

bool NetIp::isStructType(QKnx::NetIp::SearchParameterType type)

Returns true if the specified type is a part of the SearchParameterType enumeration; otherwise returns false.

This function was introduced in Qt 5.12.

bool NetIp::isTunnelLayer(QKnx::NetIp::TunnelLayer layer)

Returns true if the specified layer is a part of the TunnelLayer enumeration; otherwise returns false.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.