forked from sandeepmistry/arduino-BLEPeripheral
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathBLEDevice.h
89 lines (68 loc) · 3.68 KB
/
BLEDevice.h
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#ifndef _BLE_DEVICE_H_
#define _BLE_DEVICE_H_
#include "BLEBondStore.h"
#include "BLECharacteristic.h"
#include "BLELocalAttribute.h"
#include "BLERemoteAttribute.h"
#include "BLERemoteCharacteristic.h"
#include "BLERemoteService.h"
class BLEDevice;
class BLEDeviceEventListener
{
public:
virtual void BLEDeviceConnected(BLEDevice& device, const unsigned char* address) { }
virtual void BLEDeviceDisconnected(BLEDevice& device) { }
virtual void BLEDeviceBonded(BLEDevice& device) { }
virtual void BLEDeviceRemoteServicesDiscovered(BLEDevice& device) { }
virtual void BLEDeviceCharacteristicValueChanged(BLEDevice& device, BLECharacteristic& characteristic, const unsigned char* value, unsigned char valueLength) { }
virtual void BLEDeviceCharacteristicSubscribedChanged(BLEDevice& device, BLECharacteristic& characteristic, bool subscribed) { }
virtual void BLEDeviceRemoteCharacteristicValueChanged(BLEDevice& device, BLERemoteCharacteristic& remoteCharacteristic, const unsigned char* value, unsigned char valueLength) { }
virtual void BLEDeviceAddressReceived(BLEDevice& device, const unsigned char* address) { }
virtual void BLEDeviceTemperatureReceived(BLEDevice& device, float temperature) { }
virtual void BLEDeviceBatteryLevelReceived(BLEDevice& device, float batteryLevel) { }
};
class BLEDevice
{
friend class BLEPeripheral;
protected:
BLEDevice();
virtual ~BLEDevice();
void setEventListener(BLEDeviceEventListener* eventListener);
void setAdvertisingInterval(unsigned short advertisingInterval);
void setConnectable(bool connectable);
void setBondStore(BLEBondStore& bondStore);
virtual void begin(unsigned char advertisementDataType,
unsigned char advertisementDataLength,
const unsigned char* advertisementData,
unsigned char scanDataType,
unsigned char scanDataLength,
const unsigned char* scanData,
BLELocalAttribute** localAttributes,
unsigned char numLocalAttributes,
BLERemoteAttribute** remoteAttributes,
unsigned char numRemoteAttributes) { }
virtual void poll() { }
virtual void startAdvertising() { }
virtual void disconnect() { }
virtual bool updateCharacteristicValue(BLECharacteristic& characteristic) { }
virtual bool broadcastCharacteristic(BLECharacteristic& characteristic) { }
virtual bool canNotifyCharacteristic(BLECharacteristic& characteristic) { }
virtual bool canIndicateCharacteristic(BLECharacteristic& characteristic) { }
virtual bool canReadRemoteCharacteristic(BLERemoteCharacteristic& characteristic) { }
virtual bool readRemoteCharacteristic(BLERemoteCharacteristic& remoteCharacteristic) { }
virtual bool canWriteRemoteCharacteristic(BLERemoteCharacteristic& characteristic) { }
virtual bool writeRemoteCharacteristic(BLERemoteCharacteristic& characteristic, const unsigned char value[], unsigned char length) { }
virtual bool canSubscribeRemoteCharacteristic(BLERemoteCharacteristic& characteristic) { }
virtual bool subscribeRemoteCharacteristic(BLERemoteCharacteristic& characteristic) { }
virtual bool canUnsubscribeRemoteCharacteristic(BLERemoteCharacteristic& characteristic) { }
virtual bool unsubcribeRemoteCharacteristic(BLERemoteCharacteristic& characteristic) { }
virtual void requestAddress() { }
virtual void requestTemperature() { }
virtual void requestBatteryLevel() { }
protected:
unsigned short _advertisingInterval;
bool _connectable;
BLEBondStore* _bondStore;
BLEDeviceEventListener* _eventListener;
};
#endif