QKnxNetIpSessionRequestProxy Class

The QKnxNetIpSessionRequestProxy class provides the means to introspect session request data inside the generic QKnxNetIpFrame class and to create a KNXnet/IP session request frame from provided data. More...

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

Public Types

class Builder

Public Functions

QKnxNetIpSessionRequestProxy(const QKnxNetIpFrame &frame)
QKnxNetIpHpai controlEndpoint() const
bool isValid() const
QKnxByteArray publicKey() const

Static Public Members

QKnxNetIpSessionRequestProxy::Builder builder()

Detailed Description

The QKnxNetIpSessionRequestProxy class provides the means to introspect session request data inside the generic QKnxNetIpFrame class and to create a KNXnet/IP session request frame from provided data.

This class is part of the Qt KNX module and currently available as a Technology Preview, and therefore the API and functionality provided by the class may be subject to change at any time without prior notice.

This frame will be sent by a KNXnet/IP secure client to the control endpoint of the KNXnet/IP secure server to initiate the secure session setup handshake for a new secure communication channel. The maximum time a KNXnet/IP secure client will wait for a response of the KNXnet/IP secure server is 10 seconds.

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

The following code sample illustrates how to read the session request information:

auto netIpFrame = QKnxNetIpFrame::fromBytes(...);

const QKnxNetIpSessionRequestProxy proxy(netIpFrame);
if (!proxy.isValid())
    return;

auto endPoint = proxy.controlEndpoint();
auto publicKey = proxy.publicKey();

See also builder(), QKnxNetIpSessionResponseProxy, and Qt KNXnet/IP Connection Classes.

Member Function Documentation

QKnxNetIpSessionRequestProxy::QKnxNetIpSessionRequestProxy(const QKnxNetIpFrame &frame)

Constructs a proxy object to read the session request information carried by the specified KNXnet/IP frame frame.

[static] QKnxNetIpSessionRequestProxy::Builder QKnxNetIpSessionRequestProxy::builder()

Returns a builder object to create a KNXnet/IP session request frame.

QKnxNetIpHpai QKnxNetIpSessionRequestProxy::controlEndpoint() const

Returns the control endpoint from the generic KNXnet/IP session request frame.

bool QKnxNetIpSessionRequestProxy::isValid() const

Returns true if the frame contains initialized values and is in itself valid, otherwise returns false. A valid KNXnet/IP frame consists of at least a valid header and a size in bytes corresponding to the total size of the KNXnet/IP frame header.

Note: KNXnet/IP session request frames currently have a fixed size of 46 bytes.

See also QKnxNetIpFrameHeader::totalSize().

QKnxByteArray QKnxNetIpSessionRequestProxy::publicKey() const

Returns the public key from the generic KNXnet/IP session request frame. The public key needs to be generated using the Curve25519 algorithm and has a fixed size of 32 bytes.

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