New version

Based on the main repo's master version, with edits to the API.
This commit is contained in:
Irit Arkin 2015-11-16 09:51:46 +00:00
parent f0b7da3b4b
commit cb039a4336
1 changed files with 13 additions and 13 deletions

View File

@ -20,7 +20,7 @@
/** /**
* This class provides a wrapper for the core advertising parameters, * This class provides a wrapper for the core advertising parameters,
* including the advertising type (Connectable Undirected, * including the advertising type (Connectable Undirected,
* Non Connectable Undirected, etc.), as well as the advertising and * Non Connectable Undirected and so on), as well as the advertising and
* timeout intervals. * timeout intervals.
*/ */
class GapAdvertisingParams { class GapAdvertisingParams {
@ -32,7 +32,7 @@ public:
/*! /*!
* Encapsulates the peripheral advertising modes, which determine how * Encapsulates the peripheral advertising modes, which determine how
* the device appears to other central devices in hearing range * the device appears to other central devices in hearing range.
*/ */
enum AdvertisingType_t { enum AdvertisingType_t {
ADV_CONNECTABLE_UNDIRECTED, /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1 */ ADV_CONNECTABLE_UNDIRECTED, /**< Vol 3, Part C, Section 9.3.4 and Vol 6, Part B, Section 2.3.1.1 */
@ -40,18 +40,18 @@ public:
ADV_SCANNABLE_UNDIRECTED, /**< Include support for Scan Response payloads, see Vol 6, Part B, Section 2.3.1.4 */ 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 */ ADV_NON_CONNECTABLE_UNDIRECTED /**< Vol 3, Part C, Section 9.3.2 and Vol 6, Part B, Section 2.3.1.3 */
}; };
typedef enum AdvertisingType_t AdvertisingType; /* deprecated type alias. */ typedef enum AdvertisingType_t AdvertisingType; /* Deprecated type alias. */
public: public:
GapAdvertisingParams(AdvertisingType_t advType = ADV_CONNECTABLE_UNDIRECTED, GapAdvertisingParams(AdvertisingType_t advType = ADV_CONNECTABLE_UNDIRECTED,
uint16_t interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON, uint16_t interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON,
uint16_t timeout = 0) : _advType(advType), _interval(interval), _timeout(timeout) { uint16_t timeout = 0) : _advType(advType), _interval(interval), _timeout(timeout) {
/* Interval checks */ /* Interval checks. */
if (_advType == ADV_CONNECTABLE_DIRECTED) { if (_advType == ADV_CONNECTABLE_DIRECTED) {
/* Interval must be 0 in directed connectable mode */ /* Interval must be 0 in directed connectable mode. */
_interval = 0; _interval = 0;
} else if (_advType == ADV_NON_CONNECTABLE_UNDIRECTED) { } else if (_advType == ADV_NON_CONNECTABLE_UNDIRECTED) {
/* Min interval is slightly larger than in other modes */ /* Min interval is slightly larger than in other modes. */
if (_interval < GAP_ADV_PARAMS_INTERVAL_MIN_NONCON) { if (_interval < GAP_ADV_PARAMS_INTERVAL_MIN_NONCON) {
_interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON; _interval = GAP_ADV_PARAMS_INTERVAL_MIN_NONCON;
} }
@ -59,7 +59,7 @@ public:
_interval = GAP_ADV_PARAMS_INTERVAL_MAX; _interval = GAP_ADV_PARAMS_INTERVAL_MAX;
} }
} else { } else {
/* Stay within interval limits */ /* Stay within interval limits. */
if (_interval < GAP_ADV_PARAMS_INTERVAL_MIN) { if (_interval < GAP_ADV_PARAMS_INTERVAL_MIN) {
_interval = GAP_ADV_PARAMS_INTERVAL_MIN; _interval = GAP_ADV_PARAMS_INTERVAL_MIN;
} }
@ -68,9 +68,9 @@ public:
} }
} }
/* Timeout checks */ /* Timeout checks. */
if (timeout) { if (timeout) {
/* Stay within timeout limits */ /* Stay within timeout limits. */
if (_timeout > GAP_ADV_PARAMS_TIMEOUT_MAX) { if (_timeout > GAP_ADV_PARAMS_TIMEOUT_MAX) {
_timeout = GAP_ADV_PARAMS_TIMEOUT_MAX; _timeout = GAP_ADV_PARAMS_TIMEOUT_MAX;
} }
@ -90,14 +90,14 @@ public:
} }
/** /**
* @return the advertisement interval (in milliseconds) * @return the advertisement interval (in milliseconds).
*/ */
uint16_t getInterval(void) const { uint16_t getInterval(void) const {
return ADVERTISEMENT_DURATION_UNITS_TO_MS(_interval); return ADVERTISEMENT_DURATION_UNITS_TO_MS(_interval);
} }
/** /**
* @return the advertisement interval in units advertisement duration units--i.e. 0.625ms units. * @return the advertisement interval in advertisement duration units (0.625ms units).
*/ */
uint16_t getIntervalInADVUnits(void) const { uint16_t getIntervalInADVUnits(void) const {
return _interval; return _interval;
@ -113,8 +113,8 @@ public:
private: private:
AdvertisingType_t _advType; AdvertisingType_t _advType;
uint16_t _interval; /* in ADV duration units (i.e. 0.625ms) */ uint16_t _interval; /* In ADV duration units (i.e. 0.625ms). */
uint16_t _timeout; /* in seconds */ uint16_t _timeout; /* In seconds. */
}; };
#endif // ifndef __GAP_ADVERTISING_PARAMS_H__ #endif // ifndef __GAP_ADVERTISING_PARAMS_H__