Skip to content

Commit ee9f2a4

Browse files
committed
Update examples.
1 parent 27d5fcf commit ee9f2a4

File tree

2 files changed

+154
-167
lines changed

2 files changed

+154
-167
lines changed

examples/BLE_Beacon_Scanner/BLE_Beacon_Scanner.ino

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -79,27 +79,24 @@ class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks
7979
return;
8080
}
8181

82-
uint8_t *payLoad = advertisedDevice->getPayload();
82+
BLEUUID eddyUUID = (uint16_t)0xfeaa;
8383

84-
BLEUUID checkUrlUUID = (uint16_t)0xfeaa;
85-
86-
if (advertisedDevice->getServiceUUID().equals(checkUrlUUID))
84+
if (advertisedDevice->getServiceUUID().equals(eddyUUID))
8785
{
88-
if (payLoad[11] == 0x10)
86+
std::string serviceData = advertisedDevice->getServiceData(eddyUUID);
87+
if (serviceData[0] == 0x10)
8988
{
9089
Serial.println("Found an EddystoneURL beacon!");
9190
BLEEddystoneURL foundEddyURL = BLEEddystoneURL();
92-
std::string eddyContent((char *)&payLoad[11]); // incomplete EddystoneURL struct!
9391

94-
foundEddyURL.setData(eddyContent);
92+
foundEddyURL.setData(serviceData);
9593
std::string bareURL = foundEddyURL.getURL();
9694
if (bareURL[0] == 0x00)
9795
{
98-
size_t payLoadLen = advertisedDevice->getPayloadLength();
9996
Serial.println("DATA-->");
100-
for (int idx = 0; idx < payLoadLen; idx++)
97+
for (int idx = 0; idx < serviceData.length(); idx++)
10198
{
102-
Serial.printf("0x%08X ", payLoad[idx]);
99+
Serial.printf("0x%08X ", serviceData[idx]);
103100
}
104101
Serial.println("\nInvalid Data");
105102
return;
@@ -110,23 +107,15 @@ class MyAdvertisedDeviceCallbacks : public BLEAdvertisedDeviceCallbacks
110107
Serial.printf("TX power %d\n", foundEddyURL.getPower());
111108
Serial.println("\n");
112109
}
113-
else if (payLoad[11] == 0x20)
110+
else if (serviceData[0] == 0x20)
114111
{
115112
Serial.println("Found an EddystoneTLM beacon!");
116113
BLEEddystoneTLM foundEddyURL = BLEEddystoneTLM();
117-
std::string eddyContent((char *)&payLoad[11]); // incomplete EddystoneURL struct!
118-
119-
eddyContent = "01234567890123";
120-
121-
for (int idx = 0; idx < 14; idx++)
122-
{
123-
eddyContent[idx] = payLoad[idx + 11];
124-
}
114+
foundEddyURL.setData(serviceData);
125115

126-
foundEddyURL.setData(eddyContent);
127116
Serial.printf("Reported battery voltage: %dmV\n", foundEddyURL.getVolt());
128117
Serial.printf("Reported temperature from TLM class: %.2fC\n", (double)foundEddyURL.getTemp());
129-
int temp = (int)payLoad[16] + (int)(payLoad[15] << 8);
118+
int temp = (int)serviceData[5] + (int)(serviceData[4] << 8);
130119
float calcTemp = temp / 256.0f;
131120
Serial.printf("Reported temperature from data: %.2fC\n", calcTemp);
132121
Serial.printf("Reported advertise count: %d\n", foundEddyURL.getCount());

0 commit comments

Comments
 (0)