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: mbed_EddystoneURL_Beacon_ssci mbed_EddystoneURL_Beacon_ssci mbed_EddystoneURL_Beacon_ssci
Fork of BLE_API by
Diff: ble/GattServer.h
- Revision:
- 728:997ba5e7b3b6
- Parent:
- 727:1a1f5c5aedfe
- Child:
- 729:951b577529c9
--- a/ble/GattServer.h Mon Jul 06 10:10:34 2015 +0100
+++ b/ble/GattServer.h Mon Jul 06 10:10:34 2015 +0100
@@ -53,7 +53,7 @@
* characteristics contained within.
*/
virtual ble_error_t addService(GattService &) {
- return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
}
/**
@@ -72,7 +72,7 @@
* @return BLE_ERROR_NONE if a value was read successfully into the buffer.
*/
virtual ble_error_t read(GattAttribute::Handle_t attributeHandle, uint8_t buffer[], uint16_t *lengthP) {
- return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
}
/**
@@ -94,10 +94,10 @@
*
* @note This API is a version of above with an additional connection handle
* parameter to allow fetches for connection-specific multivalued
- * attribtues (such as the CCCDs).
+ * attributes (such as the CCCDs).
*/
virtual ble_error_t read(Gap::Handle_t connectionHandle, GattAttribute::Handle_t attributeHandle, uint8_t *buffer, uint16_t *lengthP) {
- return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
}
/**
@@ -119,13 +119,13 @@
* @return BLE_ERROR_NONE if we have successfully set the value of the attribute.
*/
virtual ble_error_t write(GattAttribute::Handle_t, const uint8_t *, uint16_t, bool localOnly = false) {
- return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
}
/**
* Update the value of a characteristic on the local GattServer. A version
* of the same as above with connection handle parameter to allow updates
- * for connection-specific multivalued attribtues (such as the CCCDs).
+ * for connection-specific multivalued attributes (such as the CCCDs).
*
* @param[in] connectionHandle
* Connection Handle.
@@ -145,7 +145,38 @@
* @return BLE_ERROR_NONE if we have successfully set the value of the attribute.
*/
virtual ble_error_t write(Gap::Handle_t connectionHandle, GattAttribute::Handle_t, const uint8_t *, uint16_t, bool localOnly = false) {
- return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
+ }
+
+ /**
+ * Determine the updates-enabled status (notification/indication) for the current connection from a characteristic's CCCD.
+ *
+ * @param characteristic
+ * The characteristic
+ * @param[out] enabledP
+ * Upon return, *enabledP is true if updates are enabled, else false.
+ *
+ * @return BLE_ERROR_NONE if the connection and handle are found. false otherwise.
+ */
+ virtual ble_error_t areUpdatesEnabled(const GattCharacteristic &characteristic, bool *enabledP) {
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
+ }
+
+ /**
+ * Determine the connection-specific updates-enabled status (notification/indication) from a characteristic's CCCD.
+ *
+ * @param connectionHandle
+ * The connection handle
+ * @param[out] enabledP
+ * Upon return, *enabledP is true if updates are enabled, else false.
+ *
+ * @param characteristic
+ * The characteristic
+ *
+ * @return BLE_ERROR_NONE if the connection and handle are found. false otherwise.
+ */
+ virtual ble_error_t areUpdatesEnabled(Gap::Handle_t connectionHandle, const GattCharacteristic &characteristic, bool *enabledP) {
+ return BLE_ERROR_NOT_IMPLEMENTED; /* Requesting action from porter(s): override this API if this capability is supported. */
}
/**
@@ -267,21 +298,21 @@
}
}
- void handleEvent(GattServerEvents::gattEvent_e type, GattAttribute::Handle_t charHandle) {
+ void handleEvent(GattServerEvents::gattEvent_e type, GattAttribute::Handle_t attributeHandle) {
switch (type) {
case GattServerEvents::GATT_EVENT_UPDATES_ENABLED:
if (updatesEnabledCallback) {
- updatesEnabledCallback(charHandle);
+ updatesEnabledCallback(attributeHandle);
}
break;
case GattServerEvents::GATT_EVENT_UPDATES_DISABLED:
if (updatesDisabledCallback) {
- updatesDisabledCallback(charHandle);
+ updatesDisabledCallback(attributeHandle);
}
break;
case GattServerEvents::GATT_EVENT_CONFIRMATION_RECEIVED:
if (confirmationReceivedCallback) {
- confirmationReceivedCallback(charHandle);
+ confirmationReceivedCallback(attributeHandle);
}
break;
default:
