BLE: merge ble::scanning_filter_duplicates_t and pal::duplicate_filter_t

pull/8738/head
Vincent Coubard 2018-11-15 12:32:28 +00:00
parent cc8b43f3ab
commit d1cb1e1a39
5 changed files with 28 additions and 35 deletions

View File

@ -1944,7 +1944,7 @@ public:
* @return BLE_ERROR_NONE on success. * @return BLE_ERROR_NONE on success.
*/ */
virtual ble_error_t startScan( virtual ble_error_t startScan(
ble::scanning_filter_duplicates_t filtering = ble::SCAN_FILTER_DUPLICATES_DISABLED, ble::duplicates_filter_t filtering = ble::duplicates_filter_t::DISABLE,
ble::scan_duration_t duration = ble::scan_duration_t(0), ble::scan_duration_t duration = ble::scan_duration_t(0),
ble::scan_period_t period = ble::scan_period_t(0) ble::scan_period_t period = ble::scan_period_t(0)
) { ) {

View File

@ -347,17 +347,33 @@ struct initiator_filter_policy_t : SafeEnum<initiator_filter_policy_t, uint8_t>
initiator_filter_policy_t(type value) : SafeEnum(value) { } initiator_filter_policy_t(type value) : SafeEnum(value) { }
}; };
/** /**
* Scanning policy filter mode. * Scanning policy filter mode.
* *
* @see Bluetooth Core Specification 4.2 (Vol. 6), Part B, Section 4.3.3. * @see Bluetooth Core Specification 4.2 (Vol. 6), Part B, Section 4.3.3.
*/ */
enum scanning_filter_duplicates_t { struct duplicates_filter_t : SafeEnum<duplicates_filter_t, uint8_t >{
SCAN_FILTER_DUPLICATES_DISABLED = 0, /**< Do not remove duplicate reports. */ enum type {
SCAN_FILTER_DUPLICATES_ENABLED = 1, /**< Remove duplicate reports. */ /**
SCAN_FILTER_DUPLICATES_ENABLED_PER_PERIOD = 2 /**< Remove reports which are duplicate * Disable duplicate filtering.
within a single period. */ */
DISABLE,
/**
* Enable duplicate filtering.
*/
ENABLE,
/**
* Enable duplicate filtering, reset the cache periodically.
*/
PERIODIC_RESET
};
/**
* Construct a new duplicates_filter_t value.
*/
duplicates_filter_t(type value) : SafeEnum(value) { }
}; };
struct own_address_type_t : ble::SafeEnum<own_address_type_t, uint8_t> { struct own_address_type_t : ble::SafeEnum<own_address_type_t, uint8_t> {

View File

@ -175,7 +175,7 @@ public:
/** @copydoc Gap::startScan /** @copydoc Gap::startScan
*/ */
virtual ble_error_t startScan( virtual ble_error_t startScan(
scanning_filter_duplicates_t filtering, duplicates_filter_t filtering,
scan_duration_t duration, scan_duration_t duration,
scan_period_t period scan_period_t period
); );

View File

@ -644,30 +644,7 @@ struct advertising_fragment_description_t :
SafeEnum<advertising_fragment_description_t, uint8_t>(value) { } SafeEnum<advertising_fragment_description_t, uint8_t>(value) { }
}; };
struct duplicates_filter_t : SafeEnum<duplicates_filter_t, uint8_t >{ typedef ble::duplicates_filter_t duplicates_filter_t;
enum type {
/**
* Disable duplicate filtering.
*/
DISABLE,
/**
* Enable duplicate filtering.
*/
ENABLE,
/**
* Enable duplicate filtering, reset the cache periodically.
*/
PERIODIC_RESET
};
/**
* Construct a new duplicates_filter_t value.
*/
duplicates_filter_t(type value) :
SafeEnum<duplicates_filter_t, uint8_t>(value) { }
};
/** /**
* Identify a periodic advertising sync. * Identify a periodic advertising sync.

View File

@ -2412,7 +2412,7 @@ ble_error_t GenericGap::setScanParameters(const ScanParameters &params)
} }
ble_error_t GenericGap::startScan( ble_error_t GenericGap::startScan(
scanning_filter_duplicates_t filtering, duplicates_filter_t filtering,
scan_duration_t duration, scan_duration_t duration,
scan_period_t period scan_period_t period
) )
@ -2427,7 +2427,7 @@ ble_error_t GenericGap::startScan(
if (is_extended_advertising_available()) { if (is_extended_advertising_available()) {
return _pal_gap.extended_scan_enable( return _pal_gap.extended_scan_enable(
/* enable */true, /* enable */true,
(pal::duplicates_filter_t::type) filtering, filtering,
duration.value(), duration.value(),
period.value() period.value()
); );
@ -2438,7 +2438,7 @@ ble_error_t GenericGap::startScan(
ble_error_t err = _pal_gap.scan_enable( ble_error_t err = _pal_gap.scan_enable(
true, true,
filtering == SCAN_FILTER_DUPLICATES_DISABLED ? false : true filtering == duplicates_filter_t::DISABLE ? false : true
); );
if (err) { if (err) {