QKnxNetIpSrpProxy Class

The QKnxNetIpSrpProxy class encapsulates methods to introspect the various search request parameter (SRP) structures and provides a collection of builders for creating such SRP structures to be included in an extended search request. More...

Header: #include <QKnxNetIpSrpProxy>
qmake: QT += knx
Since: Qt 5.12

This class was introduced in Qt 5.12.

Public Types

Public Functions

QKnxNetIpSrpProxy(const QKnxNetIpSrp &srp)
QVector<QKnxNetIp::DescriptionType> descriptionTypes() const
bool isMandatory() const
bool isValid() const
QKnxByteArray macAddress() const
bool programmingModeOnly() const
QKnxNetIp::SearchParameterType searchParameterType() const
QKnxServiceInfo serviceInfo() const

Static Public Members

QKnxNetIpSrpProxy::MacAddress macAddressBuilder()
QKnxNetIpSrpProxy::ProgrammingMode programmingModeBuilder()
QKnxNetIpSrpProxy::RequestDibs requestDibsBuilder()
QKnxNetIpSrpProxy::SupportedFamily supportedFamilyBuilder()

Detailed Description

Note: When using QKnxNetIpSrpProxy, care must be taken to ensure that the referenced KNXnet/IP SRP structure outlives the proxy on all code paths, lest the proxy ends up referencing deleted data.

The following SRP types are available:

  • Select By MAC Address indicates that the KNXnet/IP client is interested only in the response from the KNXnet/IP server with the given MAC address.
  • Select By Programming Mode indicates that the client is interested only in responses from servers in which Programming Mode is currently enabled.
  • Select By Service indicates that the client is interested only in responses from servers supporting the given service family in at least the given version.
  • Request DIBs indicates that the client is interested in the listed description information blocks (DIBs).

Reading the supported service families can be achieved like this:

 auto srp = QKnxNetIpSrp::fromBytes(...);

 QKnxNetIpSrpProxy proxy(srp);
 if (!proxy.isValid())
     return;

 if (proxy().searchParameterType() != QKnxNetIp::SearchParameterType::SelectByMACAddress)
     return;

 auto mandatory = proxy.isMandatory();
 auto macAddress = proxy.macAddress();

See also programmingModeBuilder(), macAddressBuilder(), supportedFamilyBuilder(), and requestDibsBuilder().

Member Function Documentation

QKnxNetIpSrpProxy::QKnxNetIpSrpProxy(const QKnxNetIpSrp &srp)

Constructs a proxy object with the specified KNXnet/IP SRP structure srp to read the encapsulated search request parameters.

QVector<QKnxNetIp::DescriptionType> QKnxNetIpSrpProxy::descriptionTypes() const

Returns a vector of QKnx::NetIp::DescriptionType enumeration values used as search criteria if the object that was passed during construction was valid; otherwise returns an empty vector.

bool QKnxNetIpSrpProxy::isMandatory() const

Returns true if the mandatory bit is set; otherwise returns false.

bool QKnxNetIpSrpProxy::isValid() const

Returns true if the KNXnet/IP structure to create the object is a valid KNXnet/IP SRP structure; otherwise returns false.

QKnxByteArray QKnxNetIpSrpProxy::macAddress() const

Returns an array of bytes that represent the MAC address used as search criteria if the object that was passed during construction was valid; otherwise returns an empty byte array.

[static] QKnxNetIpSrpProxy::MacAddress QKnxNetIpSrpProxy::macAddressBuilder()

Returns a builder object to create a KNXnet/IP MAC address SRP structure.

[static] QKnxNetIpSrpProxy::ProgrammingMode QKnxNetIpSrpProxy::programmingModeBuilder()

Returns a builder object to create a KNXnet/IP programming mode SRP structure.

bool QKnxNetIpSrpProxy::programmingModeOnly() const

Returns true if the search request was limited to devices in programming mode; otherwise returns false.

[static] QKnxNetIpSrpProxy::RequestDibs QKnxNetIpSrpProxy::requestDibsBuilder()

Returns a builder object to create a KNXnet/IP requested DIBs SRP structure.

QKnxNetIp::SearchParameterType QKnxNetIpSrpProxy::searchParameterType() const

Return the search parameter type from KNXnet/IP structure if the object passed during construction was valid, otherwise returns QKnx::NetIp::Unknown.

QKnxServiceInfo QKnxNetIpSrpProxy::serviceInfo() const

Returns a QKnxServiceInfo structure used as search criteria if the object that was passed during construction was valid; otherwise returns a default-constructed value.

[static] QKnxNetIpSrpProxy::SupportedFamily QKnxNetIpSrpProxy::supportedFamilyBuilder()

Returns a builder object to create a KNXnet/IP supported service family SRP structure.