Qt 6.x
The Qt SDK
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
~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
Definition qlist.h:74
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:90
QObject * parent() const
Returns a pointer to the parent object.
Definition qobject.h:311
Combined button and popup list for selecting options.
GLenum src
GLboolean enable
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
void ** params
#define QT_REQUIRE_CONFIG(feature)
#define Q_OBJECT
#define signals
unsigned short quint16
Definition qtypes.h:43
unsigned char quint8
Definition qtypes.h:41