BLE: rename duration type and extract them out of Gap.

pull/8738/head
Vincent Coubard 2018-11-14 16:29:51 +00:00
parent a1d464f2c0
commit 1324116377
7 changed files with 66 additions and 84 deletions

View File

@ -44,22 +44,22 @@ void clamp(T& value, const R& min, const R& max) {
} }
} }
typedef Duration<uint32_t, 625, Range<0x20, 0xFFFFFF> > unit_adv_interval_t; typedef Duration<uint32_t, 625, Range<0x20, 0xFFFFFF> > adv_interval_t;
typedef Duration<uint16_t, 10000, Range<0x00, 0xFFFF> > unit_adv_duration_t; typedef Duration<uint16_t, 10000, Range<0x00, 0xFFFF> > adv_duration_t;
typedef Duration<uint16_t, 10000, Range<0x00, 0xFFFF> > unit_scan_duration_t; typedef Duration<uint16_t, 10000, Range<0x00, 0xFFFF> > scan_duration_t;
typedef Duration<uint16_t, 1280000, Range<0x00, 0xFFFF> > unit_scan_period_t; typedef Duration<uint16_t, 1280000, Range<0x00, 0xFFFF> > scan_period_t;
typedef Duration<uint16_t, 625, Range<0x04, 0xFFFF> > unit_scan_interval_t; typedef Duration<uint16_t, 625, Range<0x04, 0xFFFF> > scan_interval_t;
typedef Duration<uint16_t, 625, Range<0x04, 0xFFFF> > unit_scan_window_t; typedef Duration<uint16_t, 625, Range<0x04, 0xFFFF> > scan_window_t;
typedef Duration<uint16_t, 1250, Range<0x06, 0x0C80> > unit_conn_interval_t; typedef Duration<uint16_t, 1250, Range<0x06, 0x0C80> > conn_interval_t;
typedef Duration<uint16_t, 10000, Range<0x0A, 0x0C80> > unit_supervision_timeout_t; typedef Duration<uint16_t, 10000, Range<0x0A, 0x0C80> > supervision_timeout_t;
typedef Duration<uint16_t, 625, Range< 0, 0xFFFF> > unit_conn_event_length_t; typedef Duration<uint16_t, 625, Range< 0, 0xFFFF> > conn_event_length_t;
typedef Duration<uint16_t, 10000, Range<0x0A, 0x4000> > unit_sync_timeout_t; typedef Duration<uint16_t, 10000, Range<0x0A, 0x4000> > sync_timeout_t;
typedef Duration<uint16_t, 1250, Range<0x06, 0xFFFF> > unit_periodic_interval_t; typedef Duration<uint16_t, 1250, Range<0x06, 0xFFFF> > periodic_interval_t;
typedef Duration<uint32_t, 1000> unit_ms_t; typedef Duration<uint32_t, 1000> ms_t;
typedef Duration<uint32_t, 1> unit_us_t; typedef Duration<uint32_t, 1> us_t;
typedef Bounded<uint16_t, 0, 0x01F3> unit_slave_latency_t; typedef Bounded<uint16_t, 0, 0x01F3> slave_latency_t;
/** /**
* Opaque reference to a connection. * Opaque reference to a connection.

View File

@ -535,24 +535,6 @@ public:
unsigned connected : 1; unsigned connected : 1;
}; };
/* Time units. */
typedef ble::unit_adv_interval_t UnitAdvInterval_t; /**< 625us */
typedef ble::unit_adv_duration_t UnitAdvDuration_t; /**< 10ms */
typedef ble::unit_scan_duration_t UnitScanDuration_t; /**< 10ms */
typedef ble::unit_scan_period_t UnitScanPeriod_t; /**< 1.28ms */
typedef ble::unit_scan_interval_t UnitScanInterval_t; /**< 625us */
typedef ble::unit_scan_window_t UnitScanWindow_t; /**< 625us */
typedef ble::unit_conn_interval_t UnitConnInterval_t; /**< 1.25ms */
typedef ble::unit_supervision_timeout_t UnitSupervisionTimeout_t;/**< 10ms */
typedef ble::unit_conn_event_length_t UnitConnEventLength_t; /**< 625us */
typedef ble::unit_sync_timeout_t UnitSyncTimeout_t; /**< 10ms */
typedef ble::unit_periodic_interval_t UnitPeriodicInterval_t; /**< 1.25ms */
typedef ble::unit_ms_t UnitMs_t; /**< Milliseconds */
typedef ble::unit_us_t UnitUs_t; /**< Microseconds */
/** Measured in number of events. */
typedef ble::unit_slave_latency_t UnitSlaveLatency_t;
/** /**
* Opaque value type representing a connection handle. * Opaque value type representing a connection handle.
* *
@ -1840,7 +1822,7 @@ public:
*/ */
virtual ble_error_t startAdvertising( virtual ble_error_t startAdvertising(
AdvHandle_t handle, AdvHandle_t handle,
UnitAdvDuration_t maxDuration = UnitAdvDuration_t(0), ble::adv_duration_t maxDuration = ble::adv_duration_t(0),
uint8_t maxEvents = 0 uint8_t maxEvents = 0
) )
{ {
@ -1881,8 +1863,8 @@ public:
*/ */
virtual ble_error_t setPeriodicAdvertisingParameters( virtual ble_error_t setPeriodicAdvertisingParameters(
AdvHandle_t handle, AdvHandle_t handle,
UnitPeriodicInterval_t periodicAdvertisingIntervalMin, ble::periodic_interval_t periodicAdvertisingIntervalMin,
UnitPeriodicInterval_t periodicAdvertisingIntervalMax, ble::periodic_interval_t periodicAdvertisingIntervalMax,
bool advertiseTxPower = true bool advertiseTxPower = true
) { ) {
(void) handle; (void) handle;
@ -1976,8 +1958,8 @@ public:
*/ */
virtual ble_error_t startScan( virtual ble_error_t startScan(
ble::scanning_filter_duplicates_t filtering = ble::SCAN_FILTER_DUPLICATES_DISABLED, ble::scanning_filter_duplicates_t filtering = ble::SCAN_FILTER_DUPLICATES_DISABLED,
UnitScanDuration_t duration = UnitScanDuration_t(0), ble::scan_duration_t duration = ble::scan_duration_t(0),
UnitScanPeriod_t period = UnitScanPeriod_t(0) ble::scan_period_t period = ble::scan_period_t(0)
) { ) {
use_non_deprecated_scan_api(); use_non_deprecated_scan_api();
/* Requesting action from porter(s): override this API if this capability is supported. */ /* Requesting action from porter(s): override this API if this capability is supported. */
@ -2000,8 +1982,8 @@ public:
PeerAddressType_t peerAddressType, PeerAddressType_t peerAddressType,
Address_t peerAddress, Address_t peerAddress,
uint8_t sid, uint8_t sid,
UnitSlaveLatency_t maxPacketSkip, ble::slave_latency_t maxPacketSkip,
UnitSyncTimeout_t timeout ble::sync_timeout_t timeout
) { ) {
/* Requesting action from porter(s): override this API if this capability is supported. */ /* Requesting action from porter(s): override this API if this capability is supported. */
return BLE_ERROR_NOT_IMPLEMENTED; return BLE_ERROR_NOT_IMPLEMENTED;
@ -2017,8 +1999,8 @@ public:
* @return BLE_ERROR_NONE on success. * @return BLE_ERROR_NONE on success.
*/ */
virtual ble_error_t createSync( virtual ble_error_t createSync(
UnitSlaveLatency_t maxPacketSkip, ble::slave_latency_t maxPacketSkip,
UnitSyncTimeout_t timeout ble::sync_timeout_t timeout
) { ) {
/* Requesting action from porter(s): override this API if this capability is supported. */ /* Requesting action from porter(s): override this API if this capability is supported. */
return BLE_ERROR_NOT_IMPLEMENTED; return BLE_ERROR_NOT_IMPLEMENTED;

View File

@ -50,8 +50,8 @@ public:
/* setters */ /* setters */
ConnectionParameters& setScanParameters( ConnectionParameters& setScanParameters(
ble::unit_scan_interval_t scanInterval, ble::scan_interval_t scanInterval,
ble::unit_scan_window_t scanWindow, ble::scan_window_t scanWindow,
ble::phy_t phy = ble::phy_t::LE_1M ble::phy_t phy = ble::phy_t::LE_1M
) { ) {
uint8_t phy_index = handlePhyToggle(phy, true); uint8_t phy_index = handlePhyToggle(phy, true);
@ -63,13 +63,13 @@ public:
} }
ConnectionParameters& setConnectionParameters( ConnectionParameters& setConnectionParameters(
ble::unit_conn_interval_t minConnectionInterval, ble::conn_interval_t minConnectionInterval,
ble::unit_conn_interval_t maxConnectionInterval, ble::conn_interval_t maxConnectionInterval,
ble::unit_slave_latency_t slaveLatency, ble::slave_latency_t slaveLatency,
ble::unit_supervision_timeout_t connectionSupervisionTimeout, ble::supervision_timeout_t connectionSupervisionTimeout,
ble::phy_t phy = ble::phy_t::LE_1M, ble::phy_t phy = ble::phy_t::LE_1M,
ble::unit_conn_event_length_t minEventLength = ble::unit_conn_event_length_t(0), ble::conn_event_length_t minEventLength = ble::conn_event_length_t(0),
ble::unit_conn_event_length_t maxEventLength = ble::unit_conn_event_length_t(0xFFFF) ble::conn_event_length_t maxEventLength = ble::conn_event_length_t(0xFFFF)
) { ) {
uint8_t phy_index = handlePhyToggle(phy, true); uint8_t phy_index = handlePhyToggle(phy, true);

View File

@ -49,7 +49,7 @@ struct AdvertisingReportEvent {
ble::advertising_sid_t SID, ble::advertising_sid_t SID,
ble::advertising_power_t txPower, ble::advertising_power_t txPower,
ble::rssi_t rssi, ble::rssi_t rssi,
ble::unit_periodic_interval_t periodicInterval, ble::periodic_interval_t periodicInterval,
const ble::peer_address_type_t &directAddressType, const ble::peer_address_type_t &directAddressType,
const ble::address_t &directAddress, const ble::address_t &directAddress,
const mbed::Span<const uint8_t> &advertisingData const mbed::Span<const uint8_t> &advertisingData
@ -108,7 +108,7 @@ struct AdvertisingReportEvent {
} }
/** Get interval. */ /** Get interval. */
ble::unit_periodic_interval_t getPeriodicInterval() const { ble::periodic_interval_t getPeriodicInterval() const {
return periodicInterval; return periodicInterval;
} }
@ -136,7 +136,7 @@ private:
ble::advertising_sid_t SID; ble::advertising_sid_t SID;
ble::advertising_power_t txPower; ble::advertising_power_t txPower;
ble::rssi_t rssi; ble::rssi_t rssi;
ble::unit_periodic_interval_t periodicInterval; ble::periodic_interval_t periodicInterval;
ble::peer_address_type_t directAddressType; ble::peer_address_type_t directAddressType;
const ble::address_t &directAddress; const ble::address_t &directAddress;
mbed::Span<const uint8_t> advertisingData; mbed::Span<const uint8_t> advertisingData;
@ -167,9 +167,9 @@ struct ConnectionCompleteEvent {
const ble::address_t &peerAddress, const ble::address_t &peerAddress,
const ble::address_t &localResolvablePrivateAddress, const ble::address_t &localResolvablePrivateAddress,
const ble::address_t &peerResolvablePrivateAddress, const ble::address_t &peerResolvablePrivateAddress,
ble::unit_conn_interval_t connectionInterval, ble::conn_interval_t connectionInterval,
ble::unit_slave_latency_t connectionLatency, ble::slave_latency_t connectionLatency,
ble::unit_supervision_timeout_t supervisionTimeout, ble::supervision_timeout_t supervisionTimeout,
uint16_t masterClockAccuracy uint16_t masterClockAccuracy
) : ) :
status(status), status(status),
@ -220,17 +220,17 @@ struct ConnectionCompleteEvent {
} }
/** Get connection interval. */ /** Get connection interval. */
ble::unit_conn_interval_t getConnectionInterval() const { ble::conn_interval_t getConnectionInterval() const {
return connectionInterval; return connectionInterval;
} }
/** Get connection latency. */ /** Get connection latency. */
ble::unit_slave_latency_t getConnectionLatency() const { ble::slave_latency_t getConnectionLatency() const {
return connectionLatency; return connectionLatency;
} }
/** Get supervision timeout. */ /** Get supervision timeout. */
ble::unit_supervision_timeout_t getSupervisionTimeout() const { ble::supervision_timeout_t getSupervisionTimeout() const {
return supervisionTimeout; return supervisionTimeout;
} }
@ -247,9 +247,9 @@ private:
const ble::address_t &peerAddress; const ble::address_t &peerAddress;
const ble::address_t &localResolvablePrivateAddress; const ble::address_t &localResolvablePrivateAddress;
const ble::address_t &peerResolvablePrivateAddress; const ble::address_t &peerResolvablePrivateAddress;
ble::unit_conn_interval_t connectionInterval; ble::conn_interval_t connectionInterval;
ble::unit_slave_latency_t connectionLatency; ble::slave_latency_t connectionLatency;
ble::unit_supervision_timeout_t supervisionTimeout; ble::supervision_timeout_t supervisionTimeout;
uint16_t masterClockAccuracy; uint16_t masterClockAccuracy;
}; };

View File

@ -31,8 +31,8 @@
class ScanParameters { class ScanParameters {
public: public:
typedef ble::unit_scan_window_t scan_window_t; typedef ble::scan_window_t scan_window_t;
typedef ble::unit_scan_interval_t scan_interval_t; typedef ble::scan_interval_t scan_interval_t;
enum own_address_type_t { enum own_address_type_t {
PUBLIC_ADDRESS = 0x00, PUBLIC_ADDRESS = 0x00,

View File

@ -106,7 +106,7 @@ public:
ble_error_t startAdvertising( ble_error_t startAdvertising(
AdvHandle_t handle, AdvHandle_t handle,
UnitAdvDuration_t maxDuration, adv_duration_t maxDuration,
uint8_t maxEvents uint8_t maxEvents
); );
@ -116,8 +116,8 @@ public:
virtual ble_error_t setPeriodicAdvertisingParameters( virtual ble_error_t setPeriodicAdvertisingParameters(
AdvHandle_t handle, AdvHandle_t handle,
UnitPeriodicInterval_t periodicAdvertisingIntervalMin, periodic_interval_t periodicAdvertisingIntervalMin,
UnitPeriodicInterval_t periodicAdvertisingIntervalMax, periodic_interval_t periodicAdvertisingIntervalMax,
bool advertiseTxPower bool advertiseTxPower
); );
@ -136,21 +136,21 @@ public:
virtual ble_error_t startScan( virtual ble_error_t startScan(
scanning_filter_duplicates_t filtering, scanning_filter_duplicates_t filtering,
UnitScanDuration_t duration, scan_duration_t duration,
UnitScanPeriod_t period scan_period_t period
); );
virtual ble_error_t createSync( virtual ble_error_t createSync(
PeerAddressType_t peerAddressType, PeerAddressType_t peerAddressType,
uint8_t *peerAddress, uint8_t *peerAddress,
uint8_t sid, uint8_t sid,
Gap::UnitSlaveLatency_t maxPacketSkip, slave_latency_t maxPacketSkip,
Gap::UnitSyncTimeout_t timeout sync_timeout_t timeout
); );
virtual ble_error_t createSync( virtual ble_error_t createSync(
Gap::UnitSlaveLatency_t maxPacketSkip, slave_latency_t maxPacketSkip,
Gap::UnitSyncTimeout_t timeout sync_timeout_t timeout
); );
virtual ble_error_t cancelCreateSync(); virtual ble_error_t cancelCreateSync();

View File

@ -1913,7 +1913,7 @@ ble_error_t GenericGap::setAdvertisingData(
ble_error_t GenericGap::startAdvertising( ble_error_t GenericGap::startAdvertising(
AdvHandle_t handle, AdvHandle_t handle,
UnitAdvDuration_t maxDuration, adv_duration_t maxDuration,
uint8_t maxEvents uint8_t maxEvents
) { ) {
ble_error_t error = BLE_ERROR_NONE; ble_error_t error = BLE_ERROR_NONE;
@ -2017,8 +2017,8 @@ bool GenericGap::isAdvertisingActive(AdvHandle_t handle) {
ble_error_t GenericGap::setPeriodicAdvertisingParameters( ble_error_t GenericGap::setPeriodicAdvertisingParameters(
Gap::AdvHandle_t handle, Gap::AdvHandle_t handle,
UnitPeriodicInterval_t periodicAdvertisingIntervalMin, periodic_interval_t periodicAdvertisingIntervalMin,
UnitPeriodicInterval_t periodicAdvertisingIntervalMax, periodic_interval_t periodicAdvertisingIntervalMax,
bool advertiseTxPower bool advertiseTxPower
) )
{ {
@ -2198,9 +2198,9 @@ void GenericGap::on_enhanced_connection_complete(
peer_address, peer_address,
local_resolvable_private_address, local_resolvable_private_address,
peer_resolvable_private_address, peer_resolvable_private_address,
UnitConnInterval_t(connection_interval), conn_interval_t(connection_interval),
connection_latency, connection_latency,
UnitSupervisionTimeout_t(supervision_timeout), supervision_timeout_t(supervision_timeout),
master_clock_accuracy.get_ppm() master_clock_accuracy.get_ppm()
) )
); );
@ -2236,7 +2236,7 @@ void GenericGap::on_extended_advertising_report(
advertising_sid, advertising_sid,
tx_power, tx_power,
rssi, rssi,
UnitPeriodicInterval_t(periodic_advertising_interval), ble::periodic_interval_t(periodic_advertising_interval),
(PeerAddressType_t::type)direct_address_type.value(), (PeerAddressType_t::type)direct_address_type.value(),
(BLEProtocol::AddressBytes_t&)direct_address, (BLEProtocol::AddressBytes_t&)direct_address,
mbed::make_Span(data, data_length) mbed::make_Span(data, data_length)
@ -2399,8 +2399,8 @@ ble_error_t GenericGap::setScanParameters(const ScanParameters &params)
ble_error_t GenericGap::startScan( ble_error_t GenericGap::startScan(
scanning_filter_duplicates_t filtering, scanning_filter_duplicates_t filtering,
UnitScanDuration_t duration, scan_duration_t duration,
UnitScanPeriod_t period scan_period_t period
) )
{ {
use_non_deprecated_scan_api(); use_non_deprecated_scan_api();
@ -2447,8 +2447,8 @@ ble_error_t GenericGap::createSync(
Gap::PeerAddressType_t peerAddressType, Gap::PeerAddressType_t peerAddressType,
uint8_t *peerAddress, uint8_t *peerAddress,
uint8_t sid, uint8_t sid,
UnitSlaveLatency_t maxPacketSkip, slave_latency_t maxPacketSkip,
UnitSyncTimeout_t timeout sync_timeout_t timeout
) )
{ {
if (is_extended_advertising_available() == false) { if (is_extended_advertising_available() == false) {
@ -2476,8 +2476,8 @@ ble_error_t GenericGap::createSync(
} }
ble_error_t GenericGap::createSync( ble_error_t GenericGap::createSync(
UnitSlaveLatency_t maxPacketSkip, slave_latency_t maxPacketSkip,
UnitSyncTimeout_t timeout sync_timeout_t timeout
) { ) {
if (is_extended_advertising_available() == false) { if (is_extended_advertising_available() == false) {
return BLE_ERROR_NOT_IMPLEMENTED; return BLE_ERROR_NOT_IMPLEMENTED;