BLE: Implement connection parameter management in GAP.

pull/8738/head
Vincent Coubard 2018-11-26 15:25:46 +00:00
parent 89355b9fb0
commit 2d63714f2e
1 changed files with 30 additions and 13 deletions

View File

@ -1611,8 +1611,17 @@ void GenericGap::on_disconnection_complete(const pal::GapDisconnectionCompleteEv
void GenericGap::on_connection_parameter_request(const pal::GapRemoteConnectionParameterRequestEvent &e) void GenericGap::on_connection_parameter_request(const pal::GapRemoteConnectionParameterRequestEvent &e)
{ {
// intern behavior, accept all new parameter requests if (_user_manage_connection_parameter_requests) {
// TODO: expose an API so user code can accept or reject such request _eventHandler->onUpdateConnectionParametersRequest(
UpdateConnectionParametersRequestEvent(
e.connection_handle,
conn_interval_t(e.min_connection_interval),
conn_interval_t(e.max_connection_interval),
e.connection_latency,
supervision_timeout_t(e.supervision_timeout)
)
);
} else {
_pal_gap.accept_connection_parameter_request( _pal_gap.accept_connection_parameter_request(
e.connection_handle, e.connection_handle,
e.min_connection_interval, e.min_connection_interval,
@ -1623,11 +1632,19 @@ void GenericGap::on_connection_parameter_request(const pal::GapRemoteConnectionP
/* maximum_connection_event_length */ 0 /* maximum_connection_event_length */ 0
); );
} }
}
void GenericGap::on_connection_update(const pal::GapConnectionUpdateEvent &e) void GenericGap::on_connection_update(const pal::GapConnectionUpdateEvent &e)
{ {
// TODO: add feature in interface to notify the user that the connection _eventHandler->onConnectionParametersUpdateComplete(
// has been updated. ConnectionParametersUpdateCompleteEvent(
e.status == pal::hci_error_code_t::SUCCESS ? BLE_ERROR_NONE : BLE_ERROR_UNSPECIFIED,
e.connection_handle,
conn_interval_t(e.connection_interval),
e.connection_latency,
supervision_timeout_t(e.supervision_timeout)
)
);
} }
void GenericGap::on_unexpected_error(const pal::GapUnexpectedErrorEvent &e) void GenericGap::on_unexpected_error(const pal::GapUnexpectedErrorEvent &e)