diff --git a/src/local/BLELocalDevice.cpp b/src/local/BLELocalDevice.cpp index 341f5aa7..d2c8a1b3 100644 --- a/src/local/BLELocalDevice.cpp +++ b/src/local/BLELocalDevice.cpp @@ -185,6 +185,11 @@ void BLELocalDevice::setManufacturerData(const uint8_t manufacturerData[], int m GAP.setManufacturerData(manufacturerData, manufacturerDataLength); } +void BLELocalDevice::setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength) +{ + GAP.setManufacturerData(companyId, manufacturerData, manufacturerDataLength); +} + void BLELocalDevice::setLocalName(const char *localName) { GAP.setLocalName(localName); diff --git a/src/local/BLELocalDevice.h b/src/local/BLELocalDevice.h index 6e970c71..20837c14 100644 --- a/src/local/BLELocalDevice.h +++ b/src/local/BLELocalDevice.h @@ -44,6 +44,7 @@ class BLELocalDevice { void setAdvertisedServiceUuid(const char* advertisedServiceUuid); void setAdvertisedService(const BLEService& service); void setManufacturerData(const uint8_t manufacturerData[], int manufacturerDataLength); + void setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength); void setLocalName(const char *localName); void setDeviceName(const char* deviceName); diff --git a/src/utility/GAP.cpp b/src/utility/GAP.cpp index 78b1556e..757a905d 100644 --- a/src/utility/GAP.cpp +++ b/src/utility/GAP.cpp @@ -54,6 +54,15 @@ void GAPClass::setManufacturerData(const uint8_t manufacturerData[], int manufac _manufacturerDataLength = manufacturerDataLength; } +void GAPClass::setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength) +{ + uint8_t tmpManufacturerData[manufacturerDataLength + 2]; + tmpManufacturerData[0] = companyId & 0xff; + tmpManufacturerData[1] = companyId >> 8; + memcpy(&tmpManufacturerData[2], manufacturerData, manufacturerDataLength); + this->setManufacturerData(tmpManufacturerData, manufacturerDataLength + 2); +} + void GAPClass::setLocalName(const char *localName) { _localName = localName; diff --git a/src/utility/GAP.h b/src/utility/GAP.h index a75b9386..c2a99daa 100644 --- a/src/utility/GAP.h +++ b/src/utility/GAP.h @@ -31,6 +31,7 @@ class GAPClass { void setAdvertisedServiceUuid(const char* advertisedServiceUuid); void setManufacturerData(const uint8_t manufacturerData[], int manufacturerDataLength); + void setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength); void setLocalName(const char *localName); bool advertising();