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: microbit_rubber_ducky microbit_mouse_BLE microbit_mouse_BLE_daybreak_version microbit_presenter
Fork of nRF51822 by
Diff: source/nRF5xGattClient.h
- Revision:
- 570:f162898cb6c4
- Parent:
- 567:e1800bd55a9e
- Child:
- 571:bbf6410b6a89
--- a/source/nRF5xGattClient.h Mon Jan 11 10:19:20 2016 +0000
+++ b/source/nRF5xGattClient.h Mon Jan 11 10:19:21 2016 +0000
@@ -19,13 +19,10 @@
#include "ble/GattClient.h"
#include "nRF5xServiceDiscovery.h"
-#include "nRF5xCharacteristicDescriptorDiscoverer.h"
class nRF5xGattClient : public GattClient
{
public:
- static nRF5xGattClient &getInstance();
-
/**
* When using S110, all Gatt client features will return
* BLE_ERROR_NOT_IMPLEMENTED
@@ -88,14 +85,14 @@
const UUID &matchingCharacteristicUUIDIn = UUID::ShortUUIDBytes_t(BLE_UUID_UNKNOWN));
virtual void onServiceDiscoveryTermination(ServiceDiscovery::TerminationCallback_t callback) {
- _discovery.onTermination(callback);
+ discovery.onTermination(callback);
}
/**
* Is service-discovery currently active?
*/
virtual bool isServiceDiscoveryActive(void) const {
- return _discovery.isActive();
+ return discovery.isActive();
}
/**
@@ -103,31 +100,9 @@
* invocation of the TerminationCallback if service-discovery is active.
*/
virtual void terminateServiceDiscovery(void) {
- _discovery.terminate();
+ discovery.terminate();
}
- /**
- * @brief Implementation of GattClient::discoverCharacteristicDescriptors
- * @see GattClient::discoverCharacteristicDescriptors
- */
- virtual ble_error_t discoverCharacteristicDescriptors(
- const DiscoveredCharacteristic& characteristic,
- const CharacteristicDescriptorDiscovery::DiscoveryCallback_t& discoveryCallback,
- const CharacteristicDescriptorDiscovery::TerminationCallback_t& terminationCallback
- );
-
- /**
- * @brief Implementation of GattClient::isCharacteristicDiscoveryActive
- * @see GattClient::isCharacteristicDiscoveryActive
- */
- virtual bool isCharacteristicDescriptorsDiscoveryActive(const DiscoveredCharacteristic& characteristic) const;
-
- /**
- * @brief Implementation of GattClient::terminateCharacteristicDiscovery
- * @see GattClient::terminateCharacteristicDiscovery
- */
- virtual void terminateCharacteristicDescriptorsDiscovery(const DiscoveredCharacteristic& characteristic);
-
virtual ble_error_t read(Gap::Handle_t connHandle, GattAttribute::Handle_t attributeHandle, uint16_t offset) const {
uint32_t rc = sd_ble_gattc_read(connHandle, attributeHandle, offset);
if (rc == NRF_SUCCESS) {
@@ -170,26 +145,42 @@
}
}
+ /**
+ * @brief Clear nRF5xGattClient's state.
+ *
+ * @return
+ * BLE_ERROR_NONE if successful.
+ */
+ virtual ble_error_t reset(void) {
+ /* Clear all state that is from the parent, including private members */
+ if (GattClient::reset() != BLE_ERROR_NONE) {
+ return BLE_ERROR_INVALID_STATE;
+ }
+
+ /* Clear derived class members */
+ discovery.reset();
+
+ return BLE_ERROR_NONE;
+ }
+
public:
- nRF5xGattClient() : _discovery(this) {
+ /*
+ * Allow instantiation from nRF5xn when required.
+ */
+ friend class nRF5xn;
+
+ nRF5xGattClient() : discovery(this) {
/* empty */
}
- nRF5xServiceDiscovery& discovery() {
- return _discovery;
- }
-
- nRF5xCharacteristicDescriptorDiscoverer& characteristicDescriptorDiscoverer() {
- return _characteristicDescriptorDiscoverer;
- }
+ friend void bleGattcEventHandler(const ble_evt_t *p_ble_evt);
private:
nRF5xGattClient(const nRF5xGattClient &);
const nRF5xGattClient& operator=(const nRF5xGattClient &);
private:
- nRF5xServiceDiscovery _discovery;
- nRF5xCharacteristicDescriptorDiscoverer _characteristicDescriptorDiscoverer;
+ nRF5xServiceDiscovery discovery;
#endif // if !S110
};
