blob: d16ac9ca823e62895950755b7ecbf3b487b7a960 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#ifndef GATOPERIPHERAL_H
#define GATOPERIPHERAL_H
#include <QtCore/QObject>
#include "libgato_global.h"
#include "gatouuid.h"
#include "gatoaddress.h"
class GatoService;
class GatoCharacteristic;
class GatoDescriptor;
class GatoPeripheralPrivate;
class LIBGATO_EXPORT GatoPeripheral : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(GatoPeripheral)
Q_ENUMS(State)
Q_ENUMS(WriteType)
Q_PROPERTY(GatoAddress address READ address)
Q_PROPERTY(QString name READ name NOTIFY nameChanged)
public:
GatoPeripheral(const GatoAddress& addr, QObject *parent = 0);
~GatoPeripheral();
enum State {
StateDisconnected,
StateConnecting,
StateConnected
};
enum WriteType {
WriteWithResponse = 0,
WriteWithoutResponse
};
State state() const;
GatoAddress address() const;
QString name() const;
QList<GatoService> services() const;
void parseEIR(quint8 data[], int len);
public slots:
void connectPeripheral();
void disconnectPeripheral();
void discoverServices();
void discoverServices(const QList<GatoUUID>& serviceUUIDs);
void discoverCharacteristics(const GatoService &service);
void discoverCharacteristics(const GatoService &service, const QList<GatoUUID>& characteristicUUIDs);
void discoverDescriptors(const GatoCharacteristic &characteristic);
void readValue(const GatoCharacteristic &characteristic);
void readValue(const GatoDescriptor &descriptor);
void writeValue(const GatoCharacteristic &characteristic, const QByteArray &data, WriteType type = WriteWithResponse);
void writeValue(const GatoDescriptor &descriptor, const QByteArray &data);
void setNotification(const GatoCharacteristic &characteristic, bool enabled);
signals:
void connected();
void disconnected();
void nameChanged();
void servicesDiscovered();
void characteristicsDiscovered(const GatoService &service);
void descriptorsDiscovered(const GatoCharacteristic &characteristic);
void valueUpdated(const GatoCharacteristic &characteristic, const QByteArray &value);
void descriptorValueUpdated(const GatoDescriptor &descriptor, const QByteArray &value);
private:
GatoPeripheralPrivate *const d_ptr;
};
#endif // GATOPERIPHERAL_H
|