2525
2626#define MAX_AD_DATA_LENGTH (31 )
2727
28+ enum BLEFlags {
29+ BLEFlagsLimitedDiscoverable = 0x01 ,
30+ BLEFlagsGeneralDiscoverable = 0x02 ,
31+ BLEFlagsBREDRNotSupported = 0x04
32+ };
33+
2834enum BLEAdField {
35+ BLEFieldFlags = 0x01 ,
36+ BLEFieldIncompleteAdvertisedService16 = 0x02 ,
37+ BLEFieldCompleteAdvertisedService16 = 0x03 ,
38+ BLEFieldIncompleteAdvertisedService128 = 0x06 ,
39+ BLEFieldCompleteAdvertisedService128 = 0x07 ,
2940 BLEFieldShortLocalName = 0x08 ,
3041 BLEFieldCompleteLocalName = 0x09 ,
31- BLEFieldAdvertisedService16 = 0x02 ,
32- BLEFieldAdvertisedService128 = 0x06 ,
3342 BLEFieldServiceData = 0x16 ,
3443 BLEFieldManufacturerData = 0xFF ,
3544
@@ -46,7 +55,11 @@ class BLEAdvertisingData {
4655 void setManufacturerData (const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength);
4756 void setLocalName (const char *localName);
4857 void setAdvertisedServiceData (uint16_t uuid, const uint8_t data[], int length);
58+ void setRawData (const uint8_t * data, uint8_t length);
59+ void setFlags (uint8_t flags);
4960
61+ protected:
62+ friend class BLELocalDevice ;
5063 bool updateData ();
5164 uint8_t * data ();
5265 int dataLength () const ;
@@ -57,19 +70,28 @@ class BLEAdvertisingData {
5770 bool addManufacturerData (const uint16_t companyId, const uint8_t manufacturerData[], int manufacturerDataLength);
5871 bool addLocalName (const char *localName);
5972 bool addAdvertisedServiceData (uint16_t uuid, const uint8_t data[], int length);
73+ bool addRawData (const uint8_t * data, uint8_t length);
74+ bool addFlags (uint8_t flags);
6075
6176 bool addField (BLEAdField field, const char * data);
6277 bool addField (BLEAdField field, const uint8_t * data, uint8_t length);
6378
6479 uint8_t _data[MAX_AD_DATA_LENGTH];
6580 int _dataLength;
6681
67- const char * _advertisedServiceUuid;
82+ const uint8_t * _rawData;
83+ uint8_t _rawDataLength;
84+
85+ uint8_t _flags;
86+ bool _hasFlags;
87+ const char * _localName;
88+
6889 const uint8_t * _manufacturerData;
6990 int _manufacturerDataLength;
7091 uint16_t _manufacturerCompanyId;
7192 bool _hasManufacturerCompanyId;
72- const char * _localName;
93+
94+ const char * _advertisedServiceUuid;
7395 uint16_t _serviceDataUuid;
7496 const uint8_t * _serviceData;
7597 int _serviceDataLength;
0 commit comments