High level Bluetooth Low Energy API and radio abstraction layer

Fork of BLE_API by Bluetooth Low Energy

Revision:
1023:a072b59caddb
Parent:
1022:306c409f6c09
Child:
1028:9dc2ab644517
diff -r 306c409f6c09 -r a072b59caddb ble/services/URIBeaconConfigService.h
--- a/ble/services/URIBeaconConfigService.h	Thu Dec 10 09:15:02 2015 +0000
+++ b/ble/services/URIBeaconConfigService.h	Thu Dec 10 09:15:02 2015 +0000
@@ -168,7 +168,12 @@
 
         ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
 
-        ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS, UUID_URI_BEACON_SERVICE, sizeof(UUID_URI_BEACON_SERVICE));
+        // UUID is in different order in the ADV frame (!)
+        uint8_t reversedServiceUUID[sizeof(UUID_URI_BEACON_SERVICE)];
+        for (unsigned int i = 0; i < sizeof(UUID_URI_BEACON_SERVICE); i++) {
+            reversedServiceUUID[i] = UUID_URI_BEACON_SERVICE[sizeof(UUID_URI_BEACON_SERVICE) - i - 1];
+        }
+        ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_128BIT_SERVICE_IDS, reversedServiceUUID, sizeof(reversedServiceUUID));
         ble.gap().accumulateAdvertisingPayload(GapAdvertisingData::GENERIC_TAG);
         ble.gap().accumulateScanResponse(GapAdvertisingData::COMPLETE_LOCAL_NAME, reinterpret_cast<const uint8_t *>(&DEVICE_NAME), sizeof(DEVICE_NAME));
         ble.gap().accumulateScanResponse(GapAdvertisingData::TX_POWER_LEVEL,