Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qleadvertiser_bluez_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QLEADVERTISER_BLUEZ_P_H
5#define QLEADVERTISER_BLUEZ_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
20
22
23#include "bluez/bluez_data_p.h"
24
25#include <QtCore/qlist.h>
26#include <QtCore/qobject.h>
27
29
30class QLeAdvertiser : public QObject
31{
33public:
36
39
40public:
42 const QLowEnergyAdvertisingData &advData,
43 const QLowEnergyAdvertisingData &responseData, QObject *parent)
44 : QObject(parent), m_params(params), m_advData(advData), m_responseData(responseData) {}
45 ~QLeAdvertiser() override;
46
47protected:
48 const QLowEnergyAdvertisingParameters &parameters() const { return m_params; }
49 const QLowEnergyAdvertisingData &advertisingData() const { return m_advData; }
50 const QLowEnergyAdvertisingData &scanResponseData() const { return m_responseData; }
51
52private:
53 virtual void doStartAdvertising() = 0;
54 virtual void doStopAdvertising() = 0;
55
57 const QLowEnergyAdvertisingData m_advData;
58 const QLowEnergyAdvertisingData m_responseData;
59};
60
61struct AdvData;
62struct AdvParams;
63class HciManager;
64
66{
68public:
72 std::shared_ptr<HciManager> hciManager,
73 QObject *parent = nullptr);
74 ~QLeAdvertiserBluez() override;
75
76private:
77 void doStartAdvertising() override;
78 void doStopAdvertising() override;
79
80 void setPowerLevel(AdvData &advData);
81 void setFlags(AdvData &advData);
82 void setServicesData(const QLowEnergyAdvertisingData &src, AdvData &dest);
83 void setManufacturerData(const QLowEnergyAdvertisingData &src, AdvData &dest);
84 void setLocalNameData(const QLowEnergyAdvertisingData &src, AdvData &dest);
85
86 void queueCommand(QBluezConst::OpCodeCommandField ocf, const QByteArray &advertisingData);
87 void sendNextCommand();
88 void queueAdvertisingCommands();
89 void queueReadTxPowerLevelCommand();
90 void toggleAdvertising(bool enable);
91 void setAdvertisingParams();
92 void setAdvertisingInterval(AdvParams &params);
93 void setData(bool isScanResponseData);
94 void setAdvertisingData();
95 void setScanResponseData();
96 void setWhiteList();
97
98 void handleCommandCompleted(quint16 opCode, quint8 status, const QByteArray &advertisingData);
99 void handleError();
100
101 std::shared_ptr<HciManager> m_hciManager;
102
103 struct Command {
104 Command() {}
105 Command(QBluezConst::OpCodeCommandField ocf, const QByteArray &data) : ocf(ocf), data(data) { }
108 };
109 QList<Command> m_pendingCommands;
110
111 quint8 m_powerLevel;
112 bool m_sendPowerLevel;
113};
114
116
117#endif // Include guard.
\inmodule QtCore
Definition qbytearray.h:57
void doStartAdvertising() override
void doStopAdvertising() override
QLeAdvertiserBluez(const QLowEnergyAdvertisingParameters &params, const QLowEnergyAdvertisingData &advertisingData, const QLowEnergyAdvertisingData &scanResponseData, std::shared_ptr< HciManager > hciManager, QObject *parent=nullptr)
~QLeAdvertiser() override
virtual void doStopAdvertising()=0
virtual void doStartAdvertising()=0
const QLowEnergyAdvertisingData & scanResponseData() const
void errorOccurred()
const QLowEnergyAdvertisingParameters & parameters() const
QLeAdvertiser(const QLowEnergyAdvertisingParameters &params, const QLowEnergyAdvertisingData &advData, const QLowEnergyAdvertisingData &responseData, QObject *parent)
const QLowEnergyAdvertisingData & advertisingData() const
The QLowEnergyAdvertisingData class represents the data to be broadcast during Bluetooth Low Energy a...
The QLowEnergyAdvertisingParameters class represents the parameters used for Bluetooth Low Energy adv...
\inmodule QtCore
Definition qobject.h:103
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:346
Combined button and popup list for selecting options.
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum src
GLboolean enable
void ** params
#define QT_REQUIRE_CONFIG(feature)
#define Q_OBJECT
#define signals
unsigned short quint16
Definition qtypes.h:48
unsigned char quint8
Definition qtypes.h:46