LedDisplay/vscode/OmobiLEDdisplayBluetooth/include/BluetoothLeUartServer.h

61 lines
1.5 KiB
C
Raw Normal View History

#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