@@ -25,6 +25,7 @@ BLEAdvertisedDevice::BLEAdvertisedDevice() {
25
25
m_manufacturerData = " " ;
26
26
m_name = " " ;
27
27
m_rssi = -9999 ;
28
+ m_serviceUUIDs = {};
28
29
m_serviceData = {};
29
30
m_serviceDataUUIDs = {};
30
31
m_txPower = 0 ;
@@ -34,8 +35,6 @@ BLEAdvertisedDevice::BLEAdvertisedDevice() {
34
35
m_haveManufacturerData = false ;
35
36
m_haveName = false ;
36
37
m_haveRSSI = false ;
37
- m_haveServiceData = false ;
38
- m_haveServiceUUID = false ;
39
38
m_haveTXPower = false ;
40
39
41
40
} // BLEAdvertisedDevice
@@ -107,19 +106,15 @@ BLEScan* BLEAdvertisedDevice::getScan() {
107
106
* @return Number of service data discovered.
108
107
*/
109
108
int BLEAdvertisedDevice::getServiceDataCount () {
110
- if (m_haveServiceData)
111
- return m_serviceData.size ();
112
- else
113
- return 0 ;
114
-
109
+ return m_serviceData.size ();
115
110
} // getServiceDataCount
116
111
117
112
/* *
118
113
* @brief Get the service data.
119
114
* @return The ServiceData of the advertised device.
120
115
*/
121
116
std::string BLEAdvertisedDevice::getServiceData () {
122
- return m_serviceData[ 0 ] ;
117
+ return m_serviceData. empty () ? std::string () : m_serviceData. front () ;
123
118
} // getServiceData
124
119
125
120
/* *
@@ -130,12 +125,20 @@ std::string BLEAdvertisedDevice::getServiceData(int i) {
130
125
return m_serviceData[i];
131
126
} // getServiceData
132
127
128
+ /* *
129
+ * @brief Get the number of service data UUIDs.
130
+ * @return Number of service data UUIDs discovered.
131
+ */
132
+ int BLEAdvertisedDevice::getServiceDataUUIDCount () {
133
+ return m_serviceDataUUIDs.size ();
134
+ } // getServiceDataUUIDCount
135
+
133
136
/* *
134
137
* @brief Get the service data UUID.
135
138
* @return The service data UUID.
136
139
*/
137
140
BLEUUID BLEAdvertisedDevice::getServiceDataUUID () {
138
- return m_serviceDataUUIDs[ 0 ] ;
141
+ return m_serviceDataUUIDs. empty () ? BLEUUID () : m_serviceDataUUIDs. front () ;
139
142
} // getServiceDataUUID
140
143
141
144
/* *
@@ -146,12 +149,20 @@ BLEUUID BLEAdvertisedDevice::getServiceDataUUID(int i) {
146
149
return m_serviceDataUUIDs[i];
147
150
} // getServiceDataUUID
148
151
152
+ /* *
153
+ * @brief Get the number of service UUIDs.
154
+ * @return Number of service UUIDs discovered.
155
+ */
156
+ int BLEAdvertisedDevice::getServiceUUIDCount () {
157
+ return m_serviceUUIDs.size ();
158
+ } // getServiceUUIDCount
159
+
149
160
/* *
150
161
* @brief Get the Service UUID.
151
162
* @return The Service UUID of the advertised device.
152
163
*/
153
164
BLEUUID BLEAdvertisedDevice::getServiceUUID () {
154
- return m_serviceUUIDs[ 0 ] ;
165
+ return m_serviceUUIDs. empty () ? BLEUUID () : m_serviceUUIDs. front () ;
155
166
} // getServiceUUID
156
167
157
168
/* *
@@ -167,7 +178,7 @@ BLEUUID BLEAdvertisedDevice::getServiceUUID(int i) {
167
178
* @return Return true if service is advertised
168
179
*/
169
180
bool BLEAdvertisedDevice::isAdvertisingService (BLEUUID uuid){
170
- for (int i = 0 ; i < m_serviceUUIDs. size (); i++) {
181
+ for (int i = 0 ; i < getServiceUUIDCount (); i++) {
171
182
if (m_serviceUUIDs[i].equals (uuid)) return true ;
172
183
}
173
184
return false ;
@@ -224,7 +235,7 @@ bool BLEAdvertisedDevice::haveRSSI() {
224
235
* @return True if there is a service data value present.
225
236
*/
226
237
bool BLEAdvertisedDevice::haveServiceData () {
227
- return m_haveServiceData ;
238
+ return !m_serviceData. empty () ;
228
239
} // haveServiceData
229
240
230
241
@@ -233,7 +244,7 @@ bool BLEAdvertisedDevice::haveServiceData() {
233
244
* @return True if there is a service UUID value present.
234
245
*/
235
246
bool BLEAdvertisedDevice::haveServiceUUID () {
236
- return m_haveServiceUUID ;
247
+ return !m_serviceUUIDs. empty () ;
237
248
} // haveServiceUUID
238
249
239
250
@@ -486,7 +497,6 @@ void BLEAdvertisedDevice::setServiceUUID(const char* serviceUUID) {
486
497
*/
487
498
void BLEAdvertisedDevice::setServiceUUID (BLEUUID serviceUUID) {
488
499
m_serviceUUIDs.push_back (serviceUUID);
489
- m_haveServiceUUID = true ;
490
500
log_d (" - addServiceUUID(): serviceUUID: %s" , serviceUUID.toString ().c_str ());
491
501
} // setServiceUUID
492
502
@@ -496,7 +506,6 @@ void BLEAdvertisedDevice::setServiceUUID(BLEUUID serviceUUID) {
496
506
* @param [in] data ServiceData value.
497
507
*/
498
508
void BLEAdvertisedDevice::setServiceData (std::string serviceData) {
499
- m_haveServiceData = true ; // Set the flag that indicates we have service data.
500
509
m_serviceData.push_back (serviceData); // Save the service data that we received.
501
510
} // setServiceData
502
511
@@ -506,7 +515,6 @@ void BLEAdvertisedDevice::setServiceData(std::string serviceData) {
506
515
* @param [in] data ServiceDataUUID value.
507
516
*/
508
517
void BLEAdvertisedDevice::setServiceDataUUID (BLEUUID uuid) {
509
- m_haveServiceData = true ; // Set the flag that indicates we have service data.
510
518
m_serviceDataUUIDs.push_back (uuid);
511
519
log_d (" - addServiceDataUUID(): serviceDataUUID: %s" , uuid.toString ().c_str ());
512
520
} // setServiceDataUUID
@@ -542,7 +550,7 @@ std::string BLEAdvertisedDevice::toString() {
542
550
free (pHex);
543
551
}
544
552
if (haveServiceUUID ()) {
545
- for (int i=0 ; i < m_serviceUUIDs. size (); i++) {
553
+ for (int i=0 ; i < getServiceUUIDCount (); i++) {
546
554
res += " , serviceUUID: " + getServiceUUID (i).toString ();
547
555
}
548
556
}
0 commit comments