diff --git a/src/BLEOTA.cpp b/src/BLEOTA.cpp index e69de29..053c438 100644 --- a/src/BLEOTA.cpp +++ b/src/BLEOTA.cpp @@ -0,0 +1,22 @@ +#include "BLEOTA.h" + +BLEOTAClass::BLEOTAClass(){ + _pVersionNumber = new BLECharacteristic(VERSION_NUMBER_UUID, BLECharacteristic::PROPERTY_NOTIFY); + _pVersionNumberDescriptor = new BLEDescriptor(VERSION_NUMBER_DESCRIPTOR_UUID); +}; + +void BLEOTAClass::begin(BLEServer* server, char* versionNumber = "1.0.0") { + // set internal versionNumber + _vNum = versionNumber; + // set internal server + _pServer = server; + // create service + BLEService* otaService = _pServer->createService(OTA_SERVICE_UUID); + // version number property + otaService->addCharacteristic(_pVersionNumber); + _pVersionNumber->setValue(_vNum); + _pVersionNumberDescriptor->setValue("Version Number"); + _pVersionNumber->addDescriptor(_pVersionNumberDescriptor); + + otaService->start(); +} \ No newline at end of file diff --git a/src/BLEOTA.h b/src/BLEOTA.h index cee2f2e..1f819eb 100644 --- a/src/BLEOTA.h +++ b/src/BLEOTA.h @@ -1,4 +1,22 @@ #ifndef BLEOTA #define BLEOTA +#include +#include + +#define OTA_SERVICE_UUID "71a4438e-fd52-4b15-b3d2-ec0e3e56193b" +#define VERSION_NUMBER_UUID "1978a3df-c009-4837-b295-57ef429dde8c" +#define VERSION_NUMBER_DESCRIPTOR_UUID "1e0c35d1-ba03-4f4d-a99c-bac7664d95ed" + +class BLEOTAClass { + public: + BLEOTAClass(); + void begin(BLEServer* server, char* versionNumber = "1.0.0"); + private: + BLEServer* _pServer; + char* _vNum; + BLECharacteristic* _pVersionNumber; + BLEDescriptor* _pVersionNumberDescriptor; +}; + #endif /* BLEOTA */ \ No newline at end of file