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.
Fork of BLE_API by
Revision 118:f2de8009b969, committed 2014-09-17
- Comitter:
- lipoyang
- Date:
- Wed Sep 17 04:54:22 2014 +0000
- Parent:
- 117:0fb20195102b
- Commit message:
- revert to revison 111
Changed in this revision
diff -r 0fb20195102b -r f2de8009b969 common/UUID.cpp
--- a/common/UUID.cpp Mon Sep 08 17:11:58 2014 +0100
+++ b/common/UUID.cpp Wed Sep 17 04:54:22 2014 +0000
@@ -64,7 +64,7 @@
@endcode
*/
/**************************************************************************/
-UUID::UUID(const LongUUIDBytes_t longUUID) : type(UUID_TYPE_SHORT), baseUUID(), shortUUID(0)
+UUID::UUID(const LongUUID_t longUUID) : type(UUID_TYPE_SHORT), baseUUID(), shortUUID(0)
{
memcpy(baseUUID, longUUID, LENGTH_OF_LONG_UUID);
shortUUID = (uint16_t)((longUUID[2] << 8) | (longUUID[3]));
@@ -98,7 +98,7 @@
The 16-bit BLE UUID value.
*/
/**************************************************************************/
-UUID::UUID(ShortUUIDBytes_t shortUUID) : type(UUID_TYPE_SHORT), baseUUID(), shortUUID(shortUUID)
+UUID::UUID(ShortUUID_t shortUUID) : type(UUID_TYPE_SHORT), baseUUID(), shortUUID(shortUUID)
{
/* empty */
}
diff -r 0fb20195102b -r f2de8009b969 public/BLEDevice.h
--- a/public/BLEDevice.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/BLEDevice.h Wed Sep 17 04:54:22 2014 +0000
@@ -194,27 +194,27 @@
*/
ble_error_t stopAdvertising(void);
- ble_error_t disconnect(Gap::DisconnectionReason_t reason);
+ ble_error_t disconnect(void);
/* APIs to set GAP callbacks. */
void onTimeout(Gap::EventCallback_t timeoutCallback);
- void onConnection(Gap::ConnectionEventCallback_t connectionCallback);
+ void onConnection(Gap::HandleSpecificEventCallback_t connectionCallback);
/**
* Used to setup a callback for GAP disconnection.
*/
- void onDisconnection(Gap::DisconnectionEventCallback_t disconnectionCallback);
+ void onDisconnection(Gap::HandleSpecificEventCallback_t disconnectionCallback);
/**
* Setup a callback for the GATT event DATA_SENT.
*/
- void onDataSent(GattServer::ServerEventCallbackWithCount_t callback);
+ void onDataSent(GattServer::ServerEventCallback_t callback);
/**
* Setup a callback for when a characteristic has its value updated by a
* client.
*/
- void onDataWritten(GattServer::WriteEventCallback_t callback);
+ void onDataWritten(GattServer::EventCallback_t callback);
void onUpdatesEnabled(GattServer::EventCallback_t callback);
void onUpdatesDisabled(GattServer::EventCallback_t callback);
void onConfirmationReceived(GattServer::EventCallback_t callback);
@@ -443,9 +443,9 @@
}
inline ble_error_t
-BLEDevice::disconnect(Gap::DisconnectionReason_t reason)
+BLEDevice::disconnect(void)
{
- return transport->getGap().disconnect(reason);
+ return transport->getGap().disconnect();
}
inline void
@@ -455,25 +455,25 @@
}
inline void
-BLEDevice::onConnection(Gap::ConnectionEventCallback_t connectionCallback)
+BLEDevice::onConnection(Gap::HandleSpecificEventCallback_t connectionCallback)
{
transport->getGap().setOnConnection(connectionCallback);
}
inline void
-BLEDevice::onDisconnection(Gap::DisconnectionEventCallback_t disconnectionCallback)
+BLEDevice::onDisconnection(Gap::HandleSpecificEventCallback_t disconnectionCallback)
{
transport->getGap().setOnDisconnection(disconnectionCallback);
}
inline void
-BLEDevice::onDataSent(GattServer::ServerEventCallbackWithCount_t callback)
+BLEDevice::onDataSent(GattServer::ServerEventCallback_t callback)
{
transport->getGattServer().setOnDataSent(callback);
}
inline void
-BLEDevice::onDataWritten(GattServer::WriteEventCallback_t callback)
+BLEDevice::onDataWritten(GattServer::EventCallback_t callback)
{
transport->getGattServer().setOnDataWritten(callback);
}
@@ -551,25 +551,25 @@
inline ble_error_t
BLEDevice::setDeviceName(const uint8_t *deviceName)
{
- return transport->getGap().setDeviceName(deviceName);
+ return transport->getGattServer().setDeviceName(deviceName);
}
inline ble_error_t
BLEDevice::getDeviceName(uint8_t *deviceName, unsigned *lengthP)
{
- return transport->getGap().getDeviceName(deviceName, lengthP);
+ return transport->getGattServer().getDeviceName(deviceName, lengthP);
}
inline ble_error_t
BLEDevice::setAppearance(uint16_t appearance)
{
- return transport->getGap().setAppearance(appearance);
+ return transport->getGattServer().setAppearance(appearance);
}
inline ble_error_t
BLEDevice::getAppearance(uint16_t *appearanceP)
{
- return transport->getGap().getAppearance(appearanceP);
+ return transport->getGattServer().getAppearance(appearanceP);
}
inline ble_error_t
diff -r 0fb20195102b -r f2de8009b969 public/Gap.h
--- a/public/Gap.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/Gap.h Wed Sep 17 04:54:22 2014 +0000
@@ -40,19 +40,6 @@
ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE
} addr_type_t;
- /**
- * enumeration for disconnection reasons. The values for these reasons are
- * derived from Nordic's implementation; but the reasons are meant to be
- * independent of the transport. If you are returned a reason which is not
- * covered by this enumeration, then please refer to the underlying
- * transport library.
- */
- enum DisconnectionReason_t {
- REMOTE_USER_TERMINATED_CONNECTION = 0x13,
- LOCAL_HOST_TERMINATED_CONNECTION = 0x16,
- CONN_INTERVAL_UNACCEPTABLE = 0x3B,
- };
-
/* Describes the current state of the device (more than one bit can be set) */
typedef struct GapState_s {
unsigned advertising : 1; /**< peripheral is currently advertising */
@@ -74,42 +61,39 @@
virtual ble_error_t setAdvertisingData(const GapAdvertisingData &, const GapAdvertisingData &) = 0;
virtual ble_error_t startAdvertising(const GapAdvertisingParams &) = 0;
virtual ble_error_t stopAdvertising(void) = 0;
- virtual ble_error_t disconnect(DisconnectionReason_t reason) = 0;
+ virtual ble_error_t disconnect(void) = 0;
virtual ble_error_t getPreferredConnectionParams(ConnectionParams_t *params) = 0;
virtual ble_error_t setPreferredConnectionParams(const ConnectionParams_t *params) = 0;
virtual ble_error_t updateConnectionParams(Handle_t handle, const ConnectionParams_t *params) = 0;
- virtual ble_error_t setDeviceName(const uint8_t *deviceName) = 0;
- virtual ble_error_t getDeviceName(uint8_t *deviceName, unsigned *lengthP) = 0;
- virtual ble_error_t setAppearance(uint16_t appearance) = 0;
- virtual ble_error_t getAppearance(uint16_t *appearanceP) = 0;
-
typedef void (*EventCallback_t)(void);
- typedef void (*ConnectionEventCallback_t)(Handle_t, const ConnectionParams_t *);
- typedef void (*DisconnectionEventCallback_t)(Handle_t, DisconnectionReason_t);
+ typedef void (*HandleSpecificEventCallback_t)(Handle_t);
/* Event callback handlers */
void setOnTimeout(EventCallback_t callback) {
onTimeout = callback;
}
- void setOnConnection(ConnectionEventCallback_t callback) {
+ void setOnConnection(HandleSpecificEventCallback_t callback) {
onConnection = callback;
}
- void setOnDisconnection(DisconnectionEventCallback_t callback) {
+ void setOnDisconnection(HandleSpecificEventCallback_t callback) {
onDisconnection = callback;
}
- void processConnectionEvent(Handle_t handle, const ConnectionParams_t *params) {
- state.connected = 1;
- if (onConnection) {
- onConnection(handle, params);
- }
- }
-
- void processDisconnectionEvent(Handle_t handle, DisconnectionReason_t reason) {
- state.connected = 0;
- if (onDisconnection) {
- onDisconnection(handle, reason);
+ void processHandleSpecificEvent(GapEvents::gapEvent_e type, Handle_t handle) {
+ switch (type) {
+ case GapEvents::GAP_EVENT_CONNECTED:
+ state.connected = 1;
+ if (onConnection) {
+ onConnection(handle);
+ }
+ break;
+ case GapEvents::GAP_EVENT_DISCONNECTED:
+ state.connected = 0;
+ if (onDisconnection) {
+ onDisconnection(handle);
+ }
+ break;
}
}
@@ -137,9 +121,9 @@
GapState_t state;
private:
- EventCallback_t onTimeout;
- ConnectionEventCallback_t onConnection;
- DisconnectionEventCallback_t onDisconnection;
+ EventCallback_t onTimeout;
+ HandleSpecificEventCallback_t onConnection;
+ HandleSpecificEventCallback_t onDisconnection;
};
#endif // ifndef __GAP_H__
diff -r 0fb20195102b -r f2de8009b969 public/GapAdvertisingParams.h
--- a/public/GapAdvertisingParams.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/GapAdvertisingParams.h Wed Sep 17 04:54:22 2014 +0000
@@ -63,15 +63,23 @@
\li \c Bluetooth Core Specification 4.0 (Vol. 3), Part C, Section 9.3
*/
/**************************************************************************/
- enum AdvertisingType {
- ADV_CONNECTABLE_UNDIRECTED, /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1 */
- ADV_CONNECTABLE_DIRECTED, /**< Vol 3, Part C, Section 9.3.3 and Vol 6, Part B, Section 2.3.1.2 */
- ADV_SCANNABLE_UNDIRECTED, /**< Include support for Scan Response payloads, see Vol 6, Part B, Section 2.3.1.4 */
- ADV_NON_CONNECTABLE_UNDIRECTED /**< Vol 3, Part C, Section 9.3.2 and Vol 6, Part B, Section 2.3.1.3 */
+ enum AdvertisingType
+ {
+ ADV_CONNECTABLE_UNDIRECTED, /**< Vol 3, Part C, Section 9.3.4 and
+ *Vol 6, Part B, Section 2.3.1.1 */
+ ADV_CONNECTABLE_DIRECTED, /**< Vol 3, Part C, Section 9.3.3 and
+ *Vol 6, Part B, Section 2.3.1.2 */
+ ADV_SCANNABLE_UNDIRECTED, /**< Include support for Scan Response
+ *payloads, see Vol 6, Part B, Section
+ *2.3.1.4 */
+ ADV_NON_CONNECTABLE_UNDIRECTED /**< Vol 3, Part C, Section 9.3.2 and
+ *Vol 6, Part B, Section 2.3.1.3 */
};
- GapAdvertisingParams(AdvertisingType advType = GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED,
- uint16_t interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON,
+ GapAdvertisingParams(AdvertisingType advType =
+ GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED,
+ uint16_t interval =
+ GAP_ADV_PARAMS_INTERVAL_MIN_NONCON,
uint16_t timeout = 0);
virtual ~GapAdvertisingParams(void);
@@ -138,4 +146,5 @@
return _timeout;
}
+
#endif // ifndef __GAP_ADVERTISING_PARAMS_H__
diff -r 0fb20195102b -r f2de8009b969 public/GapEvents.h
--- a/public/GapEvents.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/GapEvents.h Wed Sep 17 04:54:22 2014 +0000
@@ -38,10 +38,43 @@
*/
/******************************************************************/
typedef enum gapEvent_e {
- GAP_EVENT_TIMEOUT = 1, /**< Advertising timed out before a connection was established */
- GAP_EVENT_CONNECTED = 2, /**< A connection was established with a central device */
- GAP_EVENT_DISCONNECTED = 3 /**< A connection was closed or lost with a central device */
+ GAP_EVENT_TIMEOUT = 1, /**< Advertising timed out
+ *before a connection was
+ *established */
+ GAP_EVENT_CONNECTED = 2, /**< A connection was
+ *established with a
+ *central device */
+ GAP_EVENT_DISCONNECTED = 3 /**< A connection was
+ *closed or lost with a
+ *central device */
} gapEvent_t;
+
+ /******************************************************************/
+ /*!
+ \brief
+ Advertising timed out before a connection was established
+ */
+ /******************************************************************/
+ virtual void onTimeout(void) {
+ }
+
+ /******************************************************************/
+ /*!
+ \brief
+ A connection was established with a central device
+ */
+ /******************************************************************/
+ virtual void onConnected(void) {
+ }
+
+ /******************************************************************/
+ /*!
+ \brief
+ A connection was closed or lost with a central device
+ */
+ /******************************************************************/
+ virtual void onDisconnected(void) {
+ }
};
#endif // ifndef __GAP_EVENTS_H__
diff -r 0fb20195102b -r f2de8009b969 public/GattAttribute.h
--- a/public/GattAttribute.h Mon Sep 08 17:11:58 2014 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2006-2013 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __GATT_ATTRIBUTE_H__
-#define __GATT_ATTRIBUTE_H__
-
-#include "blecommon.h"
-#include "UUID.h"
-
-/**************************************************************************/
-/*!
- \brief GATT attribute
-*/
-/**************************************************************************/
-class GattAttribute
-{
-public:
-
- /**
- * @brief Creates a new GattAttribute using the specified
- * UUID, value length, and inital value
- *
- * @param[in] uuid
- * The UUID to use for this attribute
- * @param[in] valuePtr
- * The memory holding the initial value.
- * @param[in] initialLen
- * The min length in bytes of this characteristic's value
- * @param[in] maxLen
- * The max length in bytes of this characteristic's value
- *
- * @section EXAMPLE
- *
- * @code
- *
- * // UUID = 0x2A19, Min length 2, Max len = 2, Properties = write
- * GattCharacteristic c = GattCharacteristic( 0x2A19, 2, 2, BLE_GATT_CHAR_PROPERTIES_WRITE );
- *
- * @endcode
- */
- /**************************************************************************/
- GattAttribute(const UUID &uuid, uint8_t *valuePtr = NULL, uint16_t initialLen = 0, uint16_t maxLen = 0) :
- _uuid(uuid), _valuePtr(valuePtr), _initialLen(initialLen), _lenMax(maxLen), _handle(){
- /* empty */
- }
-
-public:
- uint16_t getHandle(void) const {
- return _handle;
- }
- void setHandle(uint16_t id) {
- _handle = id;
- }
- const UUID &getUUID(void) const {
- return _uuid;
- }
- uint16_t getInitialLength(void) const {
- return _initialLen;
- }
- uint16_t getMaxLength(void) const {
- return _lenMax;
- }
- uint8_t *getValuePtr(void) {
- return _valuePtr;
- }
-
-protected:
- UUID _uuid; /* Characteristic UUID */
- uint8_t *_valuePtr;
- uint16_t _initialLen; /* Initial length of the value */
- uint16_t _lenMax; /* Maximum length of the value */
- uint16_t _handle;
-};
-
-#endif // ifndef __GATT_ATTRIBUTE_H__
diff -r 0fb20195102b -r f2de8009b969 public/GattCharacteristic.h
--- a/public/GattCharacteristic.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/GattCharacteristic.h Wed Sep 17 04:54:22 2014 +0000
@@ -20,7 +20,6 @@
#include "blecommon.h"
#include "UUID.h"
-#include "GattAttribute.h"
/**************************************************************************/
/*!
@@ -297,7 +296,7 @@
uint16_t gatt_nsdesc; /**< Namespace description from Bluetooth Assigned Numbers, normally '0', see @ref BLE_GATT_CPF_NAMESPACES. */
} presentation_format_t;
- /**
+ /**
* @brief Creates a new GattCharacteristic using the specified 16-bit
* UUID, value length, and properties
*
@@ -313,42 +312,53 @@
* The max length in bytes of this characteristic's value
* @param[in] props
* The 8-bit bit field containing the characteristic's properties
- * @param[in] descriptors
- * A pointer to an array of descriptors to be included within this characteristic
- * @param[in] numDescriptors
- * The number of descriptors
+ *
+ * @section EXAMPLE
+ *
+ * @code
+ *
+ * // UUID = 0x2A19, Min length 2, Max len = 2, Properties = write
+ * GattCharacteristic c = GattCharacteristic( 0x2A19, 2, 2, BLE_GATT_CHAR_PROPERTIES_WRITE );
+ *
+ * @endcode
*/
/**************************************************************************/
GattCharacteristic(const UUID &uuid, uint8_t *valuePtr = NULL, uint16_t initialLen = 0, uint16_t maxLen = 0,
- uint8_t props = BLE_GATT_CHAR_PROPERTIES_NONE,
- GattAttribute *descriptors[] = NULL, unsigned numDescriptors = 0) :
- _valueAttribute(uuid, valuePtr, initialLen, maxLen), _properties(props), _descriptors(descriptors), _descriptorCount(numDescriptors) {
-
+ uint8_t props = BLE_GATT_CHAR_PROPERTIES_NONE) :
+ _uuid(uuid), _valuePtr(valuePtr), _initialLen(initialLen), _lenMax(maxLen), _handle(), _properties(props) {
+ /* empty */
}
public:
- GattAttribute& getValueAttribute() {
- return _valueAttribute;
+ uint16_t getHandle(void) const {
+ return _handle;
+ }
+ void setHandle(uint16_t id) {
+ _handle = id;
+ }
+ const UUID &getUUID(void) const {
+ return _uuid;
}
uint8_t getProperties(void) const {
return _properties;
}
- uint8_t getDescriptorCount(void) const {
- return _descriptorCount;
+ uint16_t getInitialLength(void) const {
+ return _initialLen;
}
- GattAttribute *getDescriptor(uint8_t index) {
- if (index >= _descriptorCount) {
- return NULL;
- }
-
- return _descriptors[index];
+ uint16_t getMaxLength(void) const {
+ return _lenMax;
+ }
+ uint8_t *getValuePtr(void) {
+ return _valuePtr;
}
private:
- GattAttribute _valueAttribute;
- uint8_t _properties;
- GattAttribute ** _descriptors;
- uint8_t _descriptorCount;
+ UUID _uuid; /* Characteristic UUID */
+ uint8_t *_valuePtr;
+ uint16_t _initialLen; /* Initial length of the value */
+ uint16_t _lenMax; /* Maximum length of the value */
+ uint16_t _handle;
+ uint8_t _properties;
};
#endif // ifndef __GATT_CHARACTERISTIC_H__
diff -r 0fb20195102b -r f2de8009b969 public/GattCharacteristicWriteCBParams.h
--- a/public/GattCharacteristicWriteCBParams.h Mon Sep 08 17:11:58 2014 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* mbed Microcontroller Library
- * Copyright (c) 2006-2013 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __GATT_CHARACTERISTIC_WRITE_CB_PARAMS_H__
-#define __GATT_CHARACTERISTIC_WRITE_CB_PARAMS_H__
-
-struct GattCharacteristicWriteCBParams {
- enum Type {
- GATTS_CHAR_OP_INVALID = 0x00, /**< Invalid Operation. */
- GATTS_CHAR_OP_WRITE_REQ = 0x01, /**< Write Request. */
- GATTS_CHAR_OP_WRITE_CMD = 0x02, /**< Write Command. */
- GATTS_CHAR_OP_SIGN_WRITE_CMD = 0x03, /**< Signed Write Command. */
- GATTS_CHAR_OP_PREP_WRITE_REQ = 0x04, /**< Prepare Write Request. */
- GATTS_CHAR_OP_EXEC_WRITE_REQ_CANCEL = 0x05, /**< Execute Write Request: Cancel all prepared writes. */
- GATTS_CHAR_OP_EXEC_WRITE_REQ_NOW = 0x06, /**< Execute Write Request: Immediately execute all prepared writes. */
- } op; /**< Type of write operation, */
- uint16_t offset; /**< Offset for the write operation. */
- uint16_t len; /**< Length of the incoming data. */
- const uint8_t *data; /**< Incoming data, variable length. */
-};
-
-#endif /*__GATT_CHARACTERISTIC_WRITE_CB_PARAMS_H__*/
diff -r 0fb20195102b -r f2de8009b969 public/GattServer.h
--- a/public/GattServer.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/GattServer.h Wed Sep 17 04:54:22 2014 +0000
@@ -21,7 +21,6 @@
#include "blecommon.h"
#include "GattService.h"
#include "GattServerEvents.h"
-#include "GattCharacteristicWriteCBParams.h"
/**************************************************************************/
/*!
@@ -37,6 +36,10 @@
virtual ble_error_t addService(GattService &) = 0;
virtual ble_error_t readValue(uint16_t handle, uint8_t buffer[], uint16_t *const lengthP) = 0;
virtual ble_error_t updateValue(uint16_t, uint8_t[], uint16_t, bool localOnly = false) = 0;
+ virtual ble_error_t setDeviceName(const uint8_t *deviceName) = 0;
+ virtual ble_error_t getDeviceName(uint8_t *deviceName, unsigned *lengthP) = 0;
+ virtual ble_error_t setAppearance(uint16_t appearance) = 0;
+ virtual ble_error_t getAppearance(uint16_t *appearanceP) = 0;
// ToDo: For updateValue, check the CCCD to see if the value we are
// updating has the notify or indicate bits sent, and if BOTH are set
@@ -45,13 +48,11 @@
/* Event callback handlers. */
typedef void (*EventCallback_t)(uint16_t attributeHandle);
- typedef void (*WriteEventCallback_t)(uint16_t attributeHandle, const GattCharacteristicWriteCBParams *eventDataP);
- typedef void (*ServerEventCallback_t)(void); /**< independent of any particular attribute */
- typedef void (*ServerEventCallbackWithCount_t)(unsigned count); /**< independent of any particular attribute */
- void setOnDataSent(ServerEventCallbackWithCount_t callback) {
+ typedef void (*ServerEventCallback_t)(void); /* independent of any particular attribute */
+ void setOnDataSent(ServerEventCallback_t callback) {
onDataSent = callback;
}
- void setOnDataWritten(WriteEventCallback_t callback) {
+ void setOnDataWritten(EventCallback_t callback) {
onDataWritten = callback;
}
void setOnUpdatesEnabled(EventCallback_t callback) {
@@ -64,14 +65,13 @@
onConfirmationReceived = callback;
}
- void handleDataWrittenEvent(uint16_t charHandle, const GattCharacteristicWriteCBParams *params) {
- if (onDataWritten) {
- onDataWritten(charHandle, params);
- }
- }
-
void handleEvent(GattServerEvents::gattEvent_e type, uint16_t charHandle) {
switch (type) {
+ case GattServerEvents::GATT_EVENT_DATA_WRITTEN:
+ if (onDataWritten) {
+ onDataWritten(charHandle);
+ }
+ break;
case GattServerEvents::GATT_EVENT_UPDATES_ENABLED:
if (onUpdatesEnabled) {
onUpdatesEnabled(charHandle);
@@ -90,9 +90,15 @@
}
}
- void handleDataSentEvent(unsigned count) {
- if (onDataSent) {
- onDataSent(count);
+ void handleEvent(GattServerEvents::gattEvent_e type) {
+ switch (type) {
+ case GattServerEvents::GATT_EVENT_DATA_SENT:
+ if (onDataSent) {
+ onDataSent();
+ }
+ break;
+ default:
+ break;
}
}
@@ -104,14 +110,13 @@
protected:
uint8_t serviceCount;
uint8_t characteristicCount;
- uint8_t descriptorCount;
private:
- ServerEventCallbackWithCount_t onDataSent;
- WriteEventCallback_t onDataWritten;
- EventCallback_t onUpdatesEnabled;
- EventCallback_t onUpdatesDisabled;
- EventCallback_t onConfirmationReceived;
+ ServerEventCallback_t onDataSent;
+ EventCallback_t onDataWritten;
+ EventCallback_t onUpdatesEnabled;
+ EventCallback_t onUpdatesDisabled;
+ EventCallback_t onConfirmationReceived;
};
#endif // ifndef __GATT_SERVER_H__
diff -r 0fb20195102b -r f2de8009b969 public/GattServerEvents.h
--- a/public/GattServerEvents.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/GattServerEvents.h Wed Sep 17 04:54:22 2014 +0000
@@ -44,6 +44,53 @@
GATT_EVENT_UPDATES_DISABLED = 4, /**< Notify/Indicate Disabled in CCCD */
GATT_EVENT_CONFIRMATION_RECEIVED = 5 /**< Response received from Indicate message */
} gattEvent_t;
+
+ /******************************************************************/
+ /*!
+ \brief
+ A message was successfully transmitted
+ */
+ /******************************************************************/
+ virtual void onDataSent(uint16_t charHandle) {
+ }
+
+ /******************************************************************/
+ /*!
+ \brief
+ The GATT client (the phone, tablet, etc.) wrote data to a
+ characteristic or descriptor on the GATT Server (the peripheral
+ device).
+ */
+ /******************************************************************/
+ virtual void onDataWritten(uint16_t charHandle) {
+ }
+
+ /******************************************************************/
+ /*!
+ \brief
+ A Notify or Indicate flag was enabled in the CCCD
+ */
+ /******************************************************************/
+ virtual void onUpdatesEnabled(uint16_t charHandle) {
+ }
+
+ /******************************************************************/
+ /*!
+ \brief
+ A Notify or Indicate flag was disabled in the CCCD
+ */
+ /******************************************************************/
+ virtual void onUpdatesDisabled(uint16_t charHandle) {
+ }
+
+ /******************************************************************/
+ /*!
+ \brief
+ A confirmation response was received from an Indicate message
+ */
+ /******************************************************************/
+ virtual void onConfirmationReceived(uint16_t charHandle) {
+ }
};
#endif // ifndef __GATT_SERVER_EVENTS_H__
diff -r 0fb20195102b -r f2de8009b969 public/GattService.h
--- a/public/GattService.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/GattService.h Wed Sep 17 04:54:22 2014 +0000
@@ -31,20 +31,6 @@
class GattService
{
public:
- /**
- * @brief Creates a new GattCharacteristic using the specified 16-bit
- * UUID, value length, and properties
- *
- * @note The UUID value must be unique in the service and is normally >1
- *
- * @param[in] uuid
- * The UUID to use for this characteristic
- * @param[in] characteristics
- * A pointer to an array of characteristics to be included within this service
- * @param[in] numCharacteristics
- * The number of characteristics
- */
- /**************************************************************************/
GattService(const UUID &uuid, GattCharacteristic *characteristics[], unsigned numCharacteristics);
enum {
diff -r 0fb20195102b -r f2de8009b969 public/UUID.h
--- a/public/UUID.h Mon Sep 08 17:11:58 2014 +0100
+++ b/public/UUID.h Wed Sep 17 04:54:22 2014 +0000
@@ -21,8 +21,8 @@
#include "blecommon.h"
const unsigned LENGTH_OF_LONG_UUID = 16;
-typedef uint16_t ShortUUIDBytes_t;
-typedef uint8_t LongUUIDBytes_t[LENGTH_OF_LONG_UUID];
+typedef uint16_t ShortUUID_t;
+typedef uint8_t LongUUID_t[LENGTH_OF_LONG_UUID];
class UUID
{
@@ -33,8 +33,8 @@
};
public:
- UUID(const LongUUIDBytes_t);
- UUID(ShortUUIDBytes_t);
+ UUID(const LongUUID_t);
+ UUID(ShortUUID_t);
virtual ~UUID(void);
public:
@@ -44,18 +44,18 @@
const uint8_t* getBaseUUID(void) const {
return baseUUID;
}
- ShortUUIDBytes_t getShortUUID(void) const {
+ ShortUUID_t getShortUUID(void) const {
return shortUUID;
}
private:
- uint8_t type; // UUID_TYPE_SHORT or UUID_TYPE_LONG
- LongUUIDBytes_t baseUUID; /* the base of the long UUID (if
+ uint8_t type; // UUID_TYPE_SHORT or UUID_TYPE_LONG
+ LongUUID_t baseUUID; /* the base of the long UUID (if
* used). Note: bytes 12 and 13 (counting from LSB)
* are zeroed out to allow comparison with other long
* UUIDs which differ only in the 16-bit relative
* part.*/
- ShortUUIDBytes_t shortUUID; // 16 bit uuid (byte 2-3 using with base)
+ ShortUUID_t shortUUID; // 16 bit uuid (byte 2-3 using with base)
};
#endif // ifndef __UUID_H__
