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: BLE_PowerBank_HeyFaradey
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;
