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.
Diff: public/ServiceDiscovery.h
- Revision:
- 470:150c2363f776
- Parent:
- 469:c95e603d60dd
- Child:
- 474:2a8a453ecd7e
diff -r c95e603d60dd -r 150c2363f776 public/ServiceDiscovery.h
--- a/public/ServiceDiscovery.h Fri Jun 19 15:51:59 2015 +0100
+++ b/public/ServiceDiscovery.h Fri Jun 19 15:51:59 2015 +0100
@@ -20,164 +20,11 @@
#include "UUID.h"
#include "Gap.h"
#include "GattAttribute.h"
+#include "DiscoveredService.h"
+#include "DiscoveredCharacteristic.h"
class ServiceDiscovery {
public:
- /**@brief Type for holding information about the service and the characteristics found during
- * the discovery process.
- */
- class DiscoveredService {
- public:
- void setup(UUID uuidIn, GattAttribute::Handle_t startHandleIn, GattAttribute::Handle_t endHandleIn) {
- uuid = uuidIn;
- startHandle = startHandleIn;
- endHandle = endHandleIn;
- }
-
- void setup(GattAttribute::Handle_t startHandleIn, GattAttribute::Handle_t endHandleIn) {
- startHandle = startHandleIn;
- endHandle = endHandleIn;
- }
-
- void setupLongUUID(UUID::LongUUIDBytes_t longUUID) {
- uuid.setupLong(longUUID);
- }
-
- public:
- const UUID &getUUID(void) const {
- return uuid;
- }
-
- const GattAttribute::Handle_t& getStartHandle(void) const {
- return startHandle;
- }
- const GattAttribute::Handle_t& getEndHandle(void) const {
- return endHandle;
- }
-
- public:
- DiscoveredService() : uuid(UUID::ShortUUIDBytes_t(0)),
- startHandle(GattAttribute::INVALID_HANDLE),
- endHandle(GattAttribute::INVALID_HANDLE) {
- /* empty */
- }
-
- private:
- DiscoveredService(const DiscoveredService &);
-
- private:
- UUID uuid; /**< UUID of the service. */
- GattAttribute::Handle_t startHandle; /**< Service Handle Range. */
- GattAttribute::Handle_t endHandle; /**< Service Handle Range. */
- };
-
- /**@brief Structure for holding information about the service and the characteristics found during
- * the discovery process.
- */
- class DiscoveredCharacteristic {
- public:
- 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. */
- };
-
- struct ReadResponse_t {
- GattAttribute::Handle_t handle; /**< Attribute Handle. */
- uint16_t offset; /**< Offset of the attribute data. */
- uint16_t len; /**< Attribute data length. */
- const uint8_t *data; /**< Attribute data, variable length. */
- };
- typedef void (*ReadCallback_t)(const ReadResponse_t *params);
-
- static void setupOnDataRead(ReadCallback_t callback) {
- onDataReadCallback = callback;
- }
-
- public:
- void setup(Properties_t propsIn,
- GattAttribute::Handle_t declHandleIn,
- GattAttribute::Handle_t valueHandleIn) {
- props = propsIn;
- declHandle = declHandleIn;
- valueHandle = valueHandleIn;
- }
-
- void setup(UUID::ShortUUIDBytes_t uuidIn,
- Properties_t propsIn,
- GattAttribute::Handle_t declHandleIn,
- GattAttribute::Handle_t valueHandleIn) {
- uuid = uuidIn;
- props = propsIn;
- declHandle = declHandleIn;
- valueHandle = valueHandleIn;
- }
-
- void setupLongUUID(UUID::LongUUIDBytes_t longUUID) {
- uuid.setupLong(longUUID);
- }
-
- public:
- UUID::ShortUUIDBytes_t getShortUUID(void) const {
- return uuid.getShortUUID();
- }
-
- const Properties_t& getProperties(void) const {
- return props;
- }
-
- const GattAttribute::Handle_t& getDeclHandle(void) const {
- return declHandle;
- }
- const GattAttribute::Handle_t& getValueHandle(void) const {
- return valueHandle;
- }
-
- public:
- DiscoveredCharacteristic() : uuid(UUID::ShortUUIDBytes_t(0)),
- props(),
- declHandle(GattAttribute::INVALID_HANDLE),
- valueHandle(GattAttribute::INVALID_HANDLE) {
- /* empty */
- }
-
- private:
- UUID uuid;
- Properties_t props;
- GattAttribute::Handle_t declHandle;
- GattAttribute::Handle_t valueHandle;
-
- static ReadCallback_t onDataReadCallback;
- };
-
-public:
typedef void (*ServiceCallback_t)(const DiscoveredService &);
typedef void (*CharacteristicCallback_t)(const DiscoveredCharacteristic &);
typedef void (*TerminationCallback_t)(Gap::Handle_t connectionHandle);