Skip to content

Commit d27fff5

Browse files
committed
Add API function to set advertising and scan response data
1 parent f848913 commit d27fff5

File tree

4 files changed

+69
-0
lines changed

4 files changed

+69
-0
lines changed

src/BLEAdvertisingData.cpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,45 @@ int BLEAdvertisingData::availableForWrite()
6363
return available;
6464
}
6565

66+
void BLEAdvertisingData::clear()
67+
{
68+
_remainingLength = MAX_AD_DATA_LENGTH;
69+
_rawData = NULL;
70+
_rawDataLength = 0;
71+
_hasFlags = false;
72+
_localName = NULL;
73+
_manufacturerData = NULL;
74+
_manufacturerDataLength = 0;
75+
_hasManufacturerCompanyId = false;
76+
_advertisedServiceUuid = NULL;
77+
_serviceData = NULL;
78+
_serviceDataLength = 0;
79+
}
80+
81+
void BLEAdvertisingData::copy(const BLEAdvertisingData& adv)
82+
{
83+
_remainingLength = adv._remainingLength;
84+
_rawData = adv._rawData;
85+
_rawDataLength = adv._rawDataLength;
86+
_flags = adv._flags;
87+
_hasFlags = adv._hasFlags;
88+
_localName = adv._localName;
89+
_manufacturerData = adv._manufacturerData;
90+
_manufacturerDataLength = adv._manufacturerDataLength;
91+
_manufacturerCompanyId = adv._manufacturerCompanyId;
92+
_hasManufacturerCompanyId = adv._hasManufacturerCompanyId;
93+
_advertisedServiceUuid = adv._advertisedServiceUuid;
94+
_serviceDataUuid = adv._serviceDataUuid;
95+
_serviceData = adv._serviceData;
96+
_serviceDataLength = adv._serviceDataLength;
97+
}
98+
99+
BLEAdvertisingData& BLEAdvertisingData::operator=(const BLEAdvertisingData &other)
100+
{
101+
copy(other);
102+
return *this;
103+
}
104+
66105
bool BLEAdvertisingData::setAdvertisedServiceUuid(const char* advertisedServiceUuid)
67106
{
68107
BLEUuid uuid(advertisedServiceUuid);

src/BLEAdvertisingData.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ class BLEAdvertisingData {
5252
virtual ~BLEAdvertisingData();
5353

5454
int availableForWrite();
55+
void clear();
56+
void copy(const BLEAdvertisingData& adv);
57+
BLEAdvertisingData& operator=(const BLEAdvertisingData &other);
5558

5659
bool setAdvertisedService(const BLEService& service);
5760
bool setAdvertisedServiceUuid(const char* advertisedServiceUuid);

src/local/BLELocalDevice.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,26 @@ void BLELocalDevice::setLocalName(const char *localName)
214214
_scanResponseData.setLocalName(localName);
215215
}
216216

217+
void BLELocalDevice::setAdvertisingData(BLEAdvertisingData& advertisingData)
218+
{
219+
_advertisingData = advertisingData;
220+
}
221+
222+
void BLELocalDevice::setScanResponseData(BLEAdvertisingData& scanResponseData)
223+
{
224+
_scanResponseData = scanResponseData;
225+
}
226+
227+
BLEAdvertisingData& BLELocalDevice::getAdvertisingData()
228+
{
229+
return _advertisingData;
230+
}
231+
232+
BLEAdvertisingData& BLELocalDevice::getScanResponseData()
233+
{
234+
return _scanResponseData;
235+
}
236+
217237
void BLELocalDevice::setDeviceName(const char* deviceName)
218238
{
219239
GATT.setDeviceName(deviceName);

src/local/BLELocalDevice.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ class BLELocalDevice {
4949
void setManufacturerData(const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength);
5050
void setLocalName(const char *localName);
5151

52+
void setAdvertisingData(BLEAdvertisingData& advertisingData);
53+
void setScanResponseData(BLEAdvertisingData& scanResponseData);
54+
5255
void setDeviceName(const char* deviceName);
5356
void setAppearance(uint16_t appearance);
5457

@@ -76,6 +79,10 @@ class BLELocalDevice {
7679

7780
void debug(Stream& stream);
7881
void noDebug();
82+
83+
protected:
84+
BLEAdvertisingData& getAdvertisingData();
85+
BLEAdvertisingData& getScanResponseData();
7986

8087
private:
8188
BLEAdvertisingData _advertisingData;

0 commit comments

Comments
 (0)