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.
Dependents: BLE_ANCS_SDAPI BLE_temperature BLE_HeartRate writable_gatt ... more
Diff: btle/btle_discovery.h
- Revision:
- 263:d5da37e9a93b
- Parent:
- 262:d6682155f833
- Child:
- 279:6e5e79f1fb61
--- a/btle/btle_discovery.h Fri Jun 19 15:55:24 2015 +0100
+++ b/btle/btle_discovery.h Fri Jun 19 15:55:24 2015 +0100
@@ -18,102 +18,10 @@
#define _BTLE_DISCOVERY_H_
#include "ble.h"
-#include "UUID.h"
-#include "Gap.h"
+#include "ServiceDiscovery.h"
void bleGattcEventHandler(const ble_evt_t *p_ble_evt);
-class ServiceDiscovery {
-public:
- /**@brief Structure for holding information about the service and the characteristics found during
- * the discovery process.
- */
- struct DiscoveredService {
- void setup(ShortUUIDBytes_t uuidIn, Gap::Handle_t start, Gap::Handle_t end) {
- uuid = uuidIn;
- startHandle = start;
- endHandle = end;
- }
-
- ShortUUIDBytes_t uuid; /**< UUID of the service. */
- Gap::Handle_t startHandle; /**< Service Handle Range. */
- Gap::Handle_t endHandle; /**< Service Handle Range. */
- };
-
- /**@brief Structure for holding information about the service and the characteristics found during
- * the discovery process.
- */
- struct DiscoveredCharacteristic {
- struct Properties_t {
- static const uint8_t BROADCAST_PROPERTY_MASK = 0x01;
- static const uint8_t READ_PROPERTY_MASK = 0x02;
- static const uint8_t WRITE_WO_RESPONSE_PROPERTY_MASK = 0x04;
- static const uint8_t WRITE_PROPERTY_MASK = 0x08;
- static const uint8_t NOTIFY_PROPERTY_MASK = 0x10;
- static const uint8_t INDICATE_PROPERTY_MASK = 0x20;
- static const uint8_t AUTH_SIGNED_PROPERTY_MASK = 0x40;
-
- Properties_t() : broadcast(0), read(0), write_wo_resp(0), write(0), notify(0), indicate(0), auth_signed_wr(0) {
- /* empty */
- }
-
- Properties_t(uint8_t props) :
- broadcast(props & BROADCAST_PROPERTY_MASK),
- read(props & READ_PROPERTY_MASK),
- write_wo_resp(props & WRITE_WO_RESPONSE_PROPERTY_MASK),
- write(props & WRITE_PROPERTY_MASK),
- notify(props & NOTIFY_PROPERTY_MASK),
- indicate(props & INDICATE_PROPERTY_MASK),
- auth_signed_wr(props & AUTH_SIGNED_PROPERTY_MASK) {
- /* empty*/
- }
-
- uint8_t broadcast :1; /**< Broadcasting of the value permitted. */
- uint8_t read :1; /**< Reading the value permitted. */
- uint8_t write_wo_resp :1; /**< Writing the value with Write Command permitted. */
- uint8_t write :1; /**< Writing the value with Write Request permitted. */
- uint8_t notify :1; /**< Notications of the value permitted. */
- uint8_t indicate :1; /**< Indications of the value permitted. */
- uint8_t auth_signed_wr :1; /**< Writing the value with Signed Write Command permitted. */
- };
-
- void setup(ShortUUIDBytes_t uuidIn, Properties_t propsIn, Gap::Handle_t declHandleIn, Gap::Handle_t valueHandleIn) {
- uuid = uuidIn;
- props = propsIn;
- declHandle = declHandleIn;
- valueHandle = valueHandleIn;
- }
-
- ShortUUIDBytes_t uuid;
- Properties_t props;
- Gap::Handle_t declHandle;
- Gap::Handle_t valueHandle;
- };
-
-public:
- typedef void (*ServiceCallback_t)(const DiscoveredService &);
- typedef void (*CharacteristicCallback_t)(const DiscoveredCharacteristic &);
-
-public:
- static ble_error_t launch(Gap::Handle_t connectionHandle,
- ServiceCallback_t sc,
- CharacteristicCallback_t cc = NULL);
- static ble_error_t launch(Gap::Handle_t connectionHandle,
- UUID matchingServiceUUIDIn,
- ServiceCallback_t sc,
- UUID matchingCharacteristicUUIDIn = ShortUUIDBytes_t(BLE_UUID_UNKNOWN),
- CharacteristicCallback_t cc = NULL);
-
- static void terminate(void);
-
-protected:
- Gap::Handle_t connHandle; /**< Connection handle as provided by the SoftDevice. */
- UUID matchingServiceUUID;
- ServiceCallback_t serviceCallback;
- UUID matchingCharacteristicUUID;
- CharacteristicCallback_t characteristicCallback;
-};
-
class NordicServiceDiscovery : public ServiceDiscovery
{
public:

