High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Revision 557:fdfcce65ca22, committed 2015-06-19
- Comitter:
- rgrover1
- Date:
- Fri Jun 19 15:52:10 2015 +0100
- Parent:
- 556:34fa32a420f9
- Child:
- 558:f5d517505e85
- Commit message:
- Synchronized with git rev 3bf2c95c
Author: Rohit Grover
Gap.h: provide default implementations for virtual functions and fix up comments.
Changed in this revision
public/Gap.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/public/Gap.h Fri Jun 19 15:52:10 2015 +0100 +++ b/public/Gap.h Fri Jun 19 15:52:10 2015 +0100 @@ -144,7 +144,7 @@ typedef void (*RadioNotificationEventCallback_t) (bool radio_active); /* gets passed true for ACTIVE; false for INACTIVE. */ /* - * These functions must be defined in the platform-specific sub-class. + * The following functions are meant to be overridden in the platform-specific sub-class. */ public: /** @@ -153,38 +153,52 @@ * * @return BLE_ERROR_NONE on success. */ - virtual ble_error_t setAddress(AddressType_t type, const Address_t address) = 0; + virtual ble_error_t setAddress(AddressType_t type, const Address_t address) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Fetch the BTLE MAC address and type. * * @return BLE_ERROR_NONE on success. */ - virtual ble_error_t getAddress(AddressType_t *typeP, Address_t address) = 0; + virtual ble_error_t getAddress(AddressType_t *typeP, Address_t address) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * @return Minimum Advertising interval in milliseconds. */ - virtual uint16_t getMinAdvertisingInterval(void) const = 0; + virtual uint16_t getMinAdvertisingInterval(void) const { + return 0; /* default implementation; override this API if this capability is supported. */ + } /** * @return Minimum Advertising interval in milliseconds for non-connectible mode. */ - virtual uint16_t getMinNonConnectableAdvertisingInterval(void) const = 0; + virtual uint16_t getMinNonConnectableAdvertisingInterval(void) const { + return 0; /* default implementation; override this API if this capability is supported. */ + } /** * @return Maximum Advertising interval in milliseconds. */ - virtual uint16_t getMaxAdvertisingInterval(void) const = 0; + virtual uint16_t getMaxAdvertisingInterval(void) const { + return 0xFFFF; /* default implementation; override this API if this capability is supported. */ + } - virtual ble_error_t stopAdvertising(void) = 0; + virtual ble_error_t stopAdvertising(void) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Stop scanning. The current scanning parameters remain in effect. * * @retval BLE_ERROR_NONE if successfully stopped scanning procedure. */ - virtual ble_error_t stopScan() = 0; + virtual ble_error_t stopScan() { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Create a connection (GAP Link Establishment). @@ -204,7 +218,9 @@ virtual ble_error_t connect(const Address_t peerAddr, Gap::AddressType_t peerAddrType, const ConnectionParams_t *connectionParams, - const GapScanningParams *scanParams) = 0; + const GapScanningParams *scanParams) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * This call initiates the disconnection procedure, and its completion will @@ -214,7 +230,9 @@ * @param reason * The reason for disconnection to be sent back to the peer. */ - virtual ble_error_t disconnect(DisconnectionReason_t reason) = 0; + virtual ble_error_t disconnect(DisconnectionReason_t reason) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Get the GAP peripheral preferred connection parameters. These are the @@ -228,7 +246,9 @@ * @return BLE_ERROR_NONE if the parameters were successfully filled into * the given structure pointed to by params. */ - virtual ble_error_t getPreferredConnectionParams(ConnectionParams_t *params) = 0; + virtual ble_error_t getPreferredConnectionParams(ConnectionParams_t *params) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Set the GAP peripheral preferred connection parameters. These are the @@ -238,7 +258,9 @@ * @param[in] params * The structure containing the desired parameters. */ - virtual ble_error_t setPreferredConnectionParams(const ConnectionParams_t *params) = 0; + virtual ble_error_t setPreferredConnectionParams(const ConnectionParams_t *params) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Update connection parameters while in the peripheral role. @@ -250,14 +272,18 @@ * Pointer to desired connection parameters. If NULL is provided on a peripheral role, * the parameters in the PPCP characteristic of the GAP service will be used instead. */ - virtual ble_error_t updateConnectionParams(Handle_t handle, const ConnectionParams_t *params) = 0; + virtual ble_error_t updateConnectionParams(Handle_t handle, const ConnectionParams_t *params) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Set the device name characteristic in the GAP service. * @param[in] deviceName * The new value for the device-name. This is a UTF-8 encoded, <b>NULL-terminated</b> string. */ - virtual ble_error_t setDeviceName(const uint8_t *deviceName) = 0; + virtual ble_error_t setDeviceName(const uint8_t *deviceName) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Get the value of the device name characteristic in the GAP service. @@ -277,27 +303,35 @@ * number of bytes actually returned in deviceName. The application may * use this information to retry with a suitable buffer size. */ - virtual ble_error_t getDeviceName(uint8_t *deviceName, unsigned *lengthP) = 0; + virtual ble_error_t getDeviceName(uint8_t *deviceName, unsigned *lengthP) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Set the appearance characteristic in the GAP service. * @param[in] appearance * The new value for the device-appearance. */ - virtual ble_error_t setAppearance(GapAdvertisingData::Appearance appearance) = 0; + virtual ble_error_t setAppearance(GapAdvertisingData::Appearance appearance) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Get the appearance characteristic in the GAP service. * @param[out] appearance * The new value for the device-appearance. */ - virtual ble_error_t getAppearance(GapAdvertisingData::Appearance *appearanceP) = 0; + virtual ble_error_t getAppearance(GapAdvertisingData::Appearance *appearanceP) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Set the radio's transmit power. * @param[in] txPower Radio transmit power in dBm. */ - virtual ble_error_t setTxPower(int8_t txPower) = 0; + virtual ble_error_t setTxPower(int8_t txPower) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /** * Query the underlying stack for permitted arguments for setTxPower(). @@ -307,10 +341,15 @@ * @param[out] countP * Out parameter to receive the array's size. */ - virtual void getPermittedTxPowerValues(const int8_t **, size_t *) = 0; + virtual void getPermittedTxPowerValues(const int8_t **valueArrayPP, size_t *countP) { + *countP = 0; /* default implementation; override this API if this capability is supported. */ + } -public: - virtual ble_error_t startRadioScan(const GapScanningParams &scanningParams) = 0; +protected: + /* Override the following in the underlying adaptation layer to provide the functionality of scanning. */ + virtual ble_error_t startRadioScan(const GapScanningParams &scanningParams) { + return BLE_ERROR_NOT_IMPLEMENTED; /* default implementation; override this API if this capability is supported. */ + } /* * APIs with non-virtual implementations. @@ -429,7 +468,7 @@ setAppearance(app); ble_error_t rc; - if ((rc = _advPayload.addAppearance(app)) != BLE_ERROR_NONE) { + if ((rc = _advPayload.addAppearance(app)) != BLE_ERROR_NONE) { return rc; } @@ -692,7 +731,7 @@ _advParams = newParams; } - /* Event callback handlers */ + /* Event callback handlers. */ public: /** * Setup a callback for timeout events. Refer to TimeoutSource_t for @@ -759,6 +798,7 @@ _scanResponse.clear(); } + /* Entry points for the underlying stack to report events back to the user. */ public: void processConnectionEvent(Handle_t handle, Role_t role,