Builder Class

class QKnxNetIpSearchRequestProxy::Builder

The QKnxNetIpSearchRequestProxy::Builder class provides the means to create a KNXnet/IP search request. More...

Public Functions

QKnxNetIpFrame create() const
Builder &setDiscoveryEndpoint(const QKnxNetIpHpai &hpai)

Detailed Description

To discover KNXnet/IP servers, a KNXnet/IP client sends a search request data packet via multicast using its discovery endpoint. The search request contains the host address protocol information (HPAI) of the discovery endpoint. The HPAI may also contain a unicast IP address to receive the answers from the different servers directly in a point-to-point manner. Typically, it should contain the KNXnet/IP system setup multicast address to ensure reception from KNXnet/IP servers that are on a different subnetwork.

In most programs, this class will not be used directly. Instead, the QKnxNetIpServerDiscoveryAgent and QKnxNetIpServerInfo are provided to discover KNXnet/IP servers on the network.

The common way to create a search request is:

auto hpai = QKnxNetIpHpaiProxy::builder().create();

auto netIpFrame = QKnxNetIpSearchRequestProxy::builder()
    .setDiscoveryEndpoint(hpai)
    .create();

After sending the search request, the KNXnet/IP client waits until timeout for the response frame from the KNXnet/IP server, QKnxNetIpSearchResponseProxy. After the timeout, received response frames are ignored by the client until it sends another search request. Search requests received from other clients are always ignored.

See also QKnxNetIpHpaiProxy::Builder.

Member Function Documentation

QKnxNetIpFrame Builder::create() const

Creates and returns a KNXnet/IP search request frame.

Note: The returned frame may be invalid depending on the values used during setup.

See also isValid().

Builder &Builder::setDiscoveryEndpoint(const QKnxNetIpHpai &hpai)

Sets the discovery endpoint of the KNXnet/IP client to hpai and returns a reference to the builder.

© 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.