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
Diff: public/Gap.h
- Revision:
- 541:aa30f63e7b3f
- Parent:
- 537:00d5affbb2b2
- Child:
- 542:d60f1c06fa33
diff -r 1fb1e0b809eb -r aa30f63e7b3f public/Gap.h
--- a/public/Gap.h Fri Jun 19 15:52:08 2015 +0100
+++ b/public/Gap.h Fri Jun 19 15:52:08 2015 +0100
@@ -45,6 +45,13 @@
typedef uint8_t Address_t[ADDR_LEN]; /* 48-bit address, LSB format. */
typedef Address_t address_t; /* @Note: deprecated. Use Address_t instead. */
+ enum TimeoutSource_t {
+ TIMEOUT_SRC_ADVERTISING = 0x00, /**< Advertising timeout. */
+ TIMEOUT_SRC_SECURITY_REQUEST = 0x01, /**< Security request timeout. */
+ TIMEOUT_SRC_SCAN = 0x02, /**< Scanning timeout. */
+ TIMEOUT_SRC_CONN = 0x03, /**< Connection timeout. */
+ };
+
/**
* Enumeration for disconnection reasons. The values for these reasons are
* derived from Nordic's implementation; but the reasons are meant to be
@@ -183,7 +190,7 @@
return (gapUnits * UNIT_0_625_MS) / 1000;
}
- typedef void (*EventCallback_t)(void);
+ typedef void (*TimeoutEventCallback_t)(TimeoutSource_t source);
typedef void (*ConnectionEventCallback_t)(const ConnectionCallbackParams_t *params);
typedef void (*HandleSpecificEvent_t)(Handle_t handle);
typedef void (*DisconnectionEventCallback_t)(Handle_t, DisconnectionReason_t);
@@ -742,11 +749,16 @@
_advParams = newParams;
}
+ /* Event callback handlers */
public:
virtual ble_error_t startRadioScan(const GapScanningParams &scanningParams) = 0;
- /* Event callback handlers */
- void setOnTimeout(EventCallback_t callback) {onTimeout = callback;}
+ /**
+ * Setup a callback for timeout events. Refer to TimeoutSource_t for
+ * possible event types.
+ */
+ void onTimeout(TimeoutEventCallback_t callback) {timeoutCallback = callback;}
+
void setOnConnection(ConnectionEventCallback_t callback) {onConnection = callback;}
/**
@@ -813,7 +825,7 @@
_scanningParams(),
_scanResponse(),
state(),
- onTimeout(NULL),
+ timeoutCallback(NULL),
onConnection(NULL),
onDisconnection(NULL),
onRadioNotification(),
@@ -897,16 +909,9 @@
onAdvertisementReport.call(¶ms);
}
- void processEvent(GapEvents::gapEvent_e type) {
- switch (type) {
- case GapEvents::GAP_EVENT_TIMEOUT:
- state.advertising = 0;
- if (onTimeout) {
- onTimeout();
- }
- break;
- default:
- break;
+ void processTimeoutEvent(TimeoutSource_t source) {
+ if (timeoutCallback) {
+ timeoutCallback(source);
}
}
@@ -919,7 +924,7 @@
GapState_t state;
protected:
- EventCallback_t onTimeout;
+ TimeoutEventCallback_t timeoutCallback;
ConnectionEventCallback_t onConnection;
DisconnectionEventCallback_t onDisconnection;
RadioNotificationEventCallback_t onRadioNotification;
