Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: nrf51-sdk
Dependents: microbit-dal microbit-ble-open microbit-dal-eddystone microbit-dal-ble-accelerometer-example ... more
Diff: btle/btle_discovery.h
- Revision:
- 248:71ef03789dd3
- Parent:
- 247:df37e7bb3f71
- Child:
- 250:db3c51656388
diff -r df37e7bb3f71 -r 71ef03789dd3 btle/btle_discovery.h
--- a/btle/btle_discovery.h Fri Jun 19 15:55:22 2015 +0100
+++ b/btle/btle_discovery.h Fri Jun 19 15:55:22 2015 +0100
@@ -91,10 +91,6 @@
class ServiceDiscovery {
public:
- static const unsigned BLE_DB_DISCOVERY_MAX_SRV = 4; /**< Maximum number of services we can retain information for after a single discovery. */
- static const unsigned BLE_DB_DISCOVERY_MAX_CHAR_PER_SRV = 4; /**< Maximum number of characteristics per service we can retain information for. */
- static const uint16_t SRV_DISC_START_HANDLE = 0x0001; /**< The start handle value used during service discovery. */
-
typedef void (*ServiceCallback_t)(void);
typedef void (*CharacteristicCallback_t)(void);
@@ -108,11 +104,27 @@
UUID matchingCharacteristicUUID = ShortUUIDBytes_t(BLE_UUID_UNKNOWN),
CharacteristicCallback_t cc = NULL);
- static ServiceDiscovery *getSingleton(void);
+ static void terminate(void);
+
+protected:
+ Gap::Handle_t connHandle; /**< Connection handle as provided by the SoftDevice. */
+ ServiceCallback_t serviceCallback;
+ CharacteristicCallback_t characteristicCallback;
+};
+
+class NordicServiceDiscovery : public ServiceDiscovery {
+public:
+ static const unsigned BLE_DB_DISCOVERY_MAX_SRV = 4; /**< Maximum number of services we can retain information for after a single discovery. */
+ static const unsigned BLE_DB_DISCOVERY_MAX_CHAR_PER_SRV = 4; /**< Maximum number of characteristics per service we can retain information for. */
+ static const uint16_t SRV_DISC_START_HANDLE = 0x0001; /**< The start handle value used during service discovery. */
public:
- void terminate(void) {
+ void setupDiscoveredServices(const ble_gattc_evt_prim_srvc_disc_rsp_t *response);
+ void setupDiscoveredCharacteristics(const ble_gattc_evt_char_disc_rsp_t *response);
+
+ void terminateServiceDiscovery(void) {
sDiscoveryActive = false;
+ cDiscoveryActive = false;
printf("end of service discovery\r\n");
}
@@ -151,31 +163,6 @@
sDiscoveryActive = false;
}
-protected:
- ServiceDiscovery() {
- /* empty */
- }
-
-protected:
- DiscoveredService services[BLE_DB_DISCOVERY_MAX_SRV]; /**< Information related to the current service being discovered.
- * This is intended for internal use during service discovery. */
- DiscoveredCharacteristic characteristics[BLE_DB_DISCOVERY_MAX_CHAR_PER_SRV];
-
- uint16_t connHandle; /**< Connection handle as provided by the SoftDevice. */
- uint8_t serviceIndex; /**< Index of the current service being discovered. This is intended for internal use during service discovery.*/
- uint8_t numServices; /**< Number of services at the peers GATT database.*/
- uint8_t characteristicIndex; /**< Index of the current characteristic being discovered. This is intended for internal use during service discovery.*/
- uint8_t numCharacteristics; /**< Number of characteristics within the service.*/
-
- bool sDiscoveryActive;
- bool cDiscoveryActive;
-};
-
-class NordicServiceDiscovery : public ServiceDiscovery {
-public:
- void setupDiscoveredServices(const ble_gattc_evt_prim_srvc_disc_rsp_t *response);
- void setupDiscoveredCharacteristics(const ble_gattc_evt_char_disc_rsp_t *response);
-
public:
ble_error_t launchCharacteristicDiscovery(Gap::Handle_t connectionHandle, Gap::Handle_t startHandle, Gap::Handle_t endHandle);
@@ -224,6 +211,18 @@
}
}
+private:
+ uint8_t serviceIndex; /**< Index of the current service being discovered. This is intended for internal use during service discovery.*/
+ uint8_t numServices; /**< Number of services at the peers GATT database.*/
+ uint8_t characteristicIndex; /**< Index of the current characteristic being discovered. This is intended for internal use during service discovery.*/
+ uint8_t numCharacteristics; /**< Number of characteristics within the service.*/
+
+ bool sDiscoveryActive;
+ bool cDiscoveryActive;
+
+ DiscoveredService services[BLE_DB_DISCOVERY_MAX_SRV]; /**< Information related to the current service being discovered.
+ * This is intended for internal use during service discovery. */
+ DiscoveredCharacteristic characteristics[BLE_DB_DISCOVERY_MAX_CHAR_PER_SRV];
};
#endif /*_BTLE_DISCOVERY_H_*/
\ No newline at end of file