@@ -44,6 +44,14 @@ static const uint16_t advertising_interval_max = 0x4000;
44
44
static const uint16_t supervision_timeout_min = 0x000A ;
45
45
static const uint16_t supervision_timeout_max = 0x0C80 ;
46
46
47
+ static const Gap::ConnectionParams_t default_connection_params = {
48
+ /* min conn interval */ 50 ,
49
+ /* max conn interval */ 100 ,
50
+ /* slave latency */ 0 ,
51
+ /* supervision timeout */ 600
52
+ };
53
+
54
+ static const GapScanningParams default_scan_params;
47
55
48
56
/*
49
57
* Return true if value is included in the range [lower_bound : higher_bound]
@@ -491,6 +499,14 @@ ble_error_t GenericGap::connect(
491
499
const ConnectionParams_t* connectionParams,
492
500
const GapScanningParams* scanParams
493
501
) {
502
+ if (connectionParams == NULL ) {
503
+ connectionParams = &default_connection_params;
504
+ }
505
+
506
+ if (scanParams == NULL ) {
507
+ scanParams = &default_scan_params;
508
+ }
509
+
494
510
if (is_scan_params_valid (scanParams) == false ) {
495
511
return BLE_ERROR_PARAM_OUT_OF_RANGE;
496
512
}
@@ -501,6 +517,9 @@ ble_error_t GenericGap::connect(
501
517
502
518
// TODO fix upper layer API, address type factorization is incorrect.
503
519
520
+ // Force scan stop before initiating the scan used for connection
521
+ stopScan ();
522
+
504
523
return _pal_gap.create_connection (
505
524
scanParams->getInterval (),
506
525
scanParams->getWindow (),
0 commit comments