BLE - Added device information service, plus firmware and manufacturer characteristic

This commit is contained in:
chrismcna
2020-08-22 11:53:05 +01:00
parent 1b3c68147f
commit b6907e63f2
2 changed files with 28 additions and 0 deletions

View File

@@ -264,6 +264,29 @@ void blectl_setup( void ) {
// Start advertising // Start advertising
pServer->getAdvertising()->addServiceUUID( pService->getUUID() ); pServer->getAdvertising()->addServiceUUID( pService->getUUID() );
// Create device information service
BLEService *pDeviceInformationService = pServer->createService(DEVICE_INFORMATION_SERVICE_UUID);
// Create manufacturer name string Characteristic -
BLECharacteristic* pManufacturerNameStringCharacteristic = pDeviceInformationService->createCharacteristic( MANUFACTURER_NAME_STRING_CHARACTERISTIC_UUID, BLECharacteristic::PROPERTY_READ );
pManufacturerNameStringCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
pManufacturerNameStringCharacteristic->addDescriptor( new BLE2902() );
pManufacturerNameStringCharacteristic->setValue("Lily Go");
// Create manufacturer name string Characteristic -
BLECharacteristic* pFirmwareRevisionStringCharacteristic = pDeviceInformationService->createCharacteristic( FIRMWARE_REVISION_STRING_CHARACTERISTIC_UUID, BLECharacteristic::PROPERTY_READ );
pFirmwareRevisionStringCharacteristic->setAccessPermissions(ESP_GATT_PERM_READ_ENCRYPTED | ESP_GATT_PERM_WRITE_ENCRYPTED);
pFirmwareRevisionStringCharacteristic->addDescriptor( new BLE2902() );
pFirmwareRevisionStringCharacteristic->setValue(__FIRMWARE__);
// Start battery service
pDeviceInformationService->start();
// Start advertising battery service
pServer->getAdvertising()->addServiceUUID( pDeviceInformationService->getUUID() );
// Create battery service // Create battery service
BLEService *pBatteryService = pServer->createService(BATTERY_SERVICE_UUID); BLEService *pBatteryService = pServer->createService(BATTERY_SERVICE_UUID);

View File

@@ -30,6 +30,11 @@
#define CHARACTERISTIC_UUID_RX BLEUUID("6E400002-B5A3-F393-E0A9-E50E24DCCA9E") #define CHARACTERISTIC_UUID_RX BLEUUID("6E400002-B5A3-F393-E0A9-E50E24DCCA9E")
#define CHARACTERISTIC_UUID_TX BLEUUID("6E400003-B5A3-F393-E0A9-E50E24DCCA9E") #define CHARACTERISTIC_UUID_TX BLEUUID("6E400003-B5A3-F393-E0A9-E50E24DCCA9E")
#define DEVICE_INFORMATION_SERVICE_UUID BLEUUID((uint16_t)0x180A) // Device Information server UUID
#define MANUFACTURER_NAME_STRING_CHARACTERISTIC_UUID BLEUUID((uint16_t)0x2A29) // Device Information - manufacturer name string UUID
#define FIRMWARE_REVISION_STRING_CHARACTERISTIC_UUID BLEUUID((uint16_t)0x2A26) // Device Information - firmware revision UUID
#define BATTERY_SERVICE_UUID BLEUUID((uint16_t)0x180F) // Battery service UUID #define BATTERY_SERVICE_UUID BLEUUID((uint16_t)0x180F) // Battery service UUID
#define BATTERY_SERVICE_BATTERY_LEVEL_CHARACTERISTIC_UUID BLEUUID((uint16_t)0x2A19) // Battery service - battery level characteristic UUID #define BATTERY_SERVICE_BATTERY_LEVEL_CHARACTERISTIC_UUID BLEUUID((uint16_t)0x2A19) // Battery service - battery level characteristic UUID
#define BATTERY_SERVICE_BATTERY_LEVEL_DESCRIPTOR_UUID BLEUUID((uint16_t)0x2901) // Battery service - battery level descriptor UUID #define BATTERY_SERVICE_BATTERY_LEVEL_DESCRIPTOR_UUID BLEUUID((uint16_t)0x2901) // Battery service - battery level descriptor UUID