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
class | MacAddress |
class | ProgrammingMode |
class | RequestDibs |
class | SupportedFamily |
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.