61 lines
1.5 KiB
C
61 lines
1.5 KiB
C
|
#ifndef BLUETOOTH_LE_UART_SERVER
|
||
|
#define BLUETOOTH_LE_UART_SERVER
|
||
|
|
||
|
#include <BLEDevice.h>
|
||
|
#include <BLEServer.h>
|
||
|
#include <BLEUtils.h>
|
||
|
#include <BLE2902.h>
|
||
|
#include <Arduino.h>
|
||
|
|
||
|
class BluetoothLeUartServerCallbacks;
|
||
|
|
||
|
class BluetoothLeUartServer : protected BLEServerCallbacks, protected BLECharacteristicCallbacks
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
explicit BluetoothLeUartServer(String deviceName, const char uartServiceUUID[36], const char rxUUID[36], const char txUUID[36]);
|
||
|
|
||
|
// befriend for callbacks
|
||
|
friend class BLEServer;
|
||
|
friend class BLECharacteristic;
|
||
|
|
||
|
// public functions
|
||
|
void setCallbacks(BluetoothLeUartServerCallbacks *callbacks);
|
||
|
void sendData(String data);
|
||
|
|
||
|
bool getDeviceConnected();
|
||
|
|
||
|
protected:
|
||
|
// callbacks for BLEServer
|
||
|
void onConnect(BLEServer *pServer) override;
|
||
|
void onDisconnect(BLEServer *pServer) override;
|
||
|
|
||
|
// callback for BLECharacteristic
|
||
|
void onWrite(BLECharacteristic *rxCharacteristic) override;
|
||
|
|
||
|
private:
|
||
|
const char *uartServiceUUID;
|
||
|
const char *rxUUID;
|
||
|
const char *txUUID;
|
||
|
|
||
|
BLEServer *bleServer;
|
||
|
BLEService *bleService;
|
||
|
BLECharacteristic *txCharacteristic;
|
||
|
BLECharacteristic *rxCharacteristic;
|
||
|
|
||
|
bool deviceConnected = false;
|
||
|
BluetoothLeUartServerCallbacks *callbacks;
|
||
|
};
|
||
|
|
||
|
class BluetoothLeUartServerCallbacks
|
||
|
{
|
||
|
public:
|
||
|
virtual ~BluetoothLeUartServerCallbacks(){};
|
||
|
|
||
|
const char* test = "testlol";
|
||
|
|
||
|
virtual void onDeviceConnectedChanged(bool deviceConnected);
|
||
|
virtual void onDataReceived(String data);
|
||
|
};
|
||
|
|
||
|
#endif // BLUETOOTH_LE_UART_SERVER
|