mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #13462 from paul-szczepanek-arm/cancel-connect-no-address
BLE remove address from API to cancel connectpull/13501/head
commit
d6e93b182c
|
@ -1002,30 +1002,11 @@ public:
|
||||||
/** Cancel the connection attempt. This is not guaranteed to succeed. As a result
|
/** Cancel the connection attempt. This is not guaranteed to succeed. As a result
|
||||||
* onConnectionComplete in the event handler will be called. Check the success parameter
|
* onConnectionComplete in the event handler will be called. Check the success parameter
|
||||||
* to see if the connection was created.
|
* to see if the connection was created.
|
||||||
* @depreacted This version has a defective API. You must provide the address of the peer.
|
|
||||||
* Please use the cancelConnect that takes peer address as parameters.
|
|
||||||
* This call will attempt to cancel the most recently requested connection.
|
|
||||||
*
|
*
|
||||||
* @return BLE_ERROR_NONE if the connection attempt has been requested to be cancelled.
|
* @return BLE_ERROR_NONE if the connection attempt has been requested to be cancelled.
|
||||||
* Returns BLE_ERROR_OPERATION_NOT_PERMITTED if no ongoing connection for last used address found.
|
* Returns BLE_ERROR_OPERATION_NOT_PERMITTED if no ongoing connection for last used address found.
|
||||||
*/
|
*/
|
||||||
MBED_DEPRECATED_SINCE("mbed-os-6.3.0", "Defective API. Please use the cancelConnect that takes peer address as parameters.")
|
|
||||||
ble_error_t cancelConnect();
|
ble_error_t cancelConnect();
|
||||||
|
|
||||||
/** Cancel the connection attempt. This is not guaranteed to succeed. As a result
|
|
||||||
* onConnectionComplete in the event handler will be called. Check the success parameter
|
|
||||||
* to see if the connection was created.
|
|
||||||
*
|
|
||||||
* @param peerAddressType Address type you want to cancel connection process for.
|
|
||||||
* @param peerAddress Address you want to cancel connection process for.
|
|
||||||
*
|
|
||||||
* @return BLE_ERROR_NONE if the connection attempt has been requested to be cancelled.
|
|
||||||
* Returns BLE_ERROR_OPERATION_NOT_PERMITTED if no ongoing connection for address found.
|
|
||||||
*/
|
|
||||||
ble_error_t cancelConnect(
|
|
||||||
peer_address_type_t peerAddressType,
|
|
||||||
const address_t &peerAddress
|
|
||||||
);
|
|
||||||
#endif // BLE_ROLE_CENTRAL
|
#endif // BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
#if BLE_FEATURE_CONNECTABLE
|
#if BLE_FEATURE_CONNECTABLE
|
||||||
|
|
|
@ -1298,22 +1298,13 @@ public:
|
||||||
/**
|
/**
|
||||||
* Cancel the ongoing connection creation process.
|
* Cancel the ongoing connection creation process.
|
||||||
*
|
*
|
||||||
* @param peer_address_type Type of address used by the advertiser. Not used
|
|
||||||
* if initiator_policy use the whitelist.
|
|
||||||
*
|
|
||||||
* @param Address used by the advertiser in its advertising packets. Not
|
|
||||||
* used if initiator_policy use the whitelist.
|
|
||||||
*
|
|
||||||
* @return BLE_ERROR_NONE if the request has been successfully sent or the
|
* @return BLE_ERROR_NONE if the request has been successfully sent or the
|
||||||
* appropriate error otherwise.
|
* appropriate error otherwise.
|
||||||
*
|
*
|
||||||
* @note: See Bluetooth 5 Vol 2 PartE: 7.8.13 LE create connection cancel
|
* @note: See Bluetooth 5 Vol 2 PartE: 7.8.13 LE create connection cancel
|
||||||
* command.
|
* command.
|
||||||
*/
|
*/
|
||||||
virtual ble_error_t cancel_connection_creation(
|
virtual ble_error_t cancel_connection_creation() = 0;
|
||||||
peer_address_type_t peerAddressType,
|
|
||||||
const ble::address_t &peerAddress
|
|
||||||
) = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the number of total whitelist entries that can be stored in the
|
* Return the number of total whitelist entries that can be stored in the
|
||||||
|
|
|
@ -97,10 +97,7 @@ public:
|
||||||
uint16_t maximum_connection_event_length
|
uint16_t maximum_connection_event_length
|
||||||
);
|
);
|
||||||
|
|
||||||
ble_error_t cancel_connection_creation(
|
ble_error_t cancel_connection_creation();
|
||||||
peer_address_type_t peerAddressType,
|
|
||||||
const ble::address_t &peerAddress
|
|
||||||
);
|
|
||||||
|
|
||||||
uint8_t read_white_list_capacity();
|
uint8_t read_white_list_capacity();
|
||||||
|
|
||||||
|
|
|
@ -322,25 +322,23 @@ ble_error_t PalGap::create_connection(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ble_error_t PalGap::cancel_connection_creation(
|
ble_error_t PalGap::cancel_connection_creation()
|
||||||
peer_address_type_t peerAddressType,
|
|
||||||
const ble::address_t &peerAddress
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
ble_error_t error = BLE_ERROR_OPERATION_NOT_PERMITTED;
|
||||||
|
|
||||||
for (uint8_t connection_id = 0; connection_id < DM_CONN_MAX; connection_id++) {
|
for (uint8_t connection_id = 0; connection_id < DM_CONN_MAX; connection_id++) {
|
||||||
if (dmConnCb.ccb[connection_id].inUse &&
|
if (dmConnCb.ccb[connection_id].inUse &&
|
||||||
dmConnCb.ccb[connection_id].state == DM_CONN_SM_ST_CONNECTING &&
|
dmConnCb.ccb[connection_id].state == DM_CONN_SM_ST_CONNECTING) {
|
||||||
BdaCmp(dmConnCb.ccb[connection_id].peerAddr, peerAddress.data())) {
|
|
||||||
DmConnClose(
|
DmConnClose(
|
||||||
DM_CLIENT_ID_APP,
|
DM_CLIENT_ID_APP,
|
||||||
/* connection handle */ connection_id + 1 /* connection IDs start at 1 */,
|
/* connection handle */ connection_id + 1 /* connection IDs start at 1 */,
|
||||||
/* reason - invalid (use success) */ 0x00
|
/* reason - invalid (use success) */ 0x00
|
||||||
);
|
);
|
||||||
return BLE_ERROR_NONE;
|
|
||||||
}
|
}
|
||||||
|
error = BLE_ERROR_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return BLE_ERROR_OPERATION_NOT_PERMITTED;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -209,11 +209,6 @@ public:
|
||||||
const ConnectionParameters &connectionParams
|
const ConnectionParameters &connectionParams
|
||||||
);
|
);
|
||||||
|
|
||||||
ble_error_t cancelConnect(
|
|
||||||
peer_address_type_t peerAddressType,
|
|
||||||
const address_t &peerAddress
|
|
||||||
);
|
|
||||||
|
|
||||||
ble_error_t cancelConnect();
|
ble_error_t cancelConnect();
|
||||||
#endif // BLE_ROLE_CENTRAL
|
#endif // BLE_ROLE_CENTRAL
|
||||||
|
|
||||||
|
@ -601,10 +596,6 @@ private:
|
||||||
BitArray<BLE_GAP_MAX_ADVERTISING_SETS> _set_is_connectable;
|
BitArray<BLE_GAP_MAX_ADVERTISING_SETS> _set_is_connectable;
|
||||||
|
|
||||||
bool _user_manage_connection_parameter_requests : 1;
|
bool _user_manage_connection_parameter_requests : 1;
|
||||||
|
|
||||||
/* these need be removed when the deprecated cancelConnect() is removed */
|
|
||||||
peer_address_type_t _last_used_peer_address_type = peer_address_type_t::ANONYMOUS;
|
|
||||||
ble::address_t _last_used_peer_address;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ble
|
} // namespace ble
|
||||||
|
|
|
@ -507,9 +507,6 @@ ble_error_t Gap::connect(
|
||||||
return BLE_ERROR_INVALID_PARAM;
|
return BLE_ERROR_INVALID_PARAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
_last_used_peer_address_type = peerAddressType;
|
|
||||||
_last_used_peer_address = peerAddress;
|
|
||||||
|
|
||||||
// ensure scan is stopped.
|
// ensure scan is stopped.
|
||||||
_pal_gap.scan_enable(false, false);
|
_pal_gap.scan_enable(false, false);
|
||||||
|
|
||||||
|
@ -541,9 +538,6 @@ ble_error_t Gap::connect(
|
||||||
adjusted_address_type = peer_address_type_t::RANDOM;
|
adjusted_address_type = peer_address_type_t::RANDOM;
|
||||||
}
|
}
|
||||||
|
|
||||||
_last_used_peer_address_type = adjusted_address_type;
|
|
||||||
_last_used_peer_address = peerAddress;
|
|
||||||
|
|
||||||
return _pal_gap.extended_create_connection(
|
return _pal_gap.extended_create_connection(
|
||||||
connectionParams.getFilter(),
|
connectionParams.getFilter(),
|
||||||
connectionParams.getOwnAddressType(),
|
connectionParams.getOwnAddressType(),
|
||||||
|
@ -631,20 +625,10 @@ ble_error_t Gap::rejectConnectionParametersUpdate(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ble_error_t Gap::cancelConnect()
|
ble_error_t Gap::cancelConnect()
|
||||||
{
|
{
|
||||||
if (_last_used_peer_address_type != peer_address_type_t::ANONYMOUS) {
|
return _pal_gap.cancel_connection_creation();
|
||||||
return cancelConnect(_last_used_peer_address_type, _last_used_peer_address);
|
|
||||||
}
|
|
||||||
return BLE_ERROR_OPERATION_NOT_PERMITTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
ble_error_t Gap::cancelConnect(
|
|
||||||
peer_address_type_t peerAddressType,
|
|
||||||
const ble::address_t &peerAddress
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return _pal_gap.cancel_connection_creation(peerAddressType, peerAddress);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ble_error_t Gap::readPhy(ble::connection_handle_t connection)
|
ble_error_t Gap::readPhy(ble::connection_handle_t connection)
|
||||||
|
|
Loading…
Reference in New Issue