@@ -112,6 +112,7 @@ AdafruitBluefruit::AdafruitBluefruit(void)
112
112
113
113
_ppcp_min_conn = BLE_GAP_CONN_MIN_INTERVAL_DFLT;
114
114
_ppcp_max_conn = BLE_GAP_CONN_MAX_INTERVAL_DFLT;
115
+ _ppcp_conn_sup_timeout = BLE_GAP_CONN_SUPERVISION_TIMEOUT_MS / 10 ; // in 10ms unit
115
116
_conn_interval = 0 ;
116
117
117
118
_connect_cb = NULL ;
@@ -409,7 +410,7 @@ err_t AdafruitBluefruit::begin(uint8_t prph_count, uint8_t central_count)
409
410
.min_conn_interval = _ppcp_min_conn, // in 1.25ms unit
410
411
.max_conn_interval = _ppcp_max_conn, // in 1.25ms unit
411
412
.slave_latency = BLE_GAP_CONN_SLAVE_LATENCY,
412
- .conn_sup_timeout = BLE_GAP_CONN_SUPERVISION_TIMEOUT_MS / 10 // in 10ms unit
413
+ .conn_sup_timeout = _ppcp_conn_sup_timeout, // in 10ms unit
413
414
};
414
415
415
416
VERIFY_STATUS ( sd_ble_gap_ppcp_set (&gap_conn_params) );
@@ -547,7 +548,7 @@ bool AdafruitBluefruit::setConnInterval(uint16_t min, uint16_t max)
547
548
.min_conn_interval = _ppcp_min_conn, // in 1.25ms unit
548
549
.max_conn_interval = _ppcp_max_conn, // in 1.25ms unit
549
550
.slave_latency = BLE_GAP_CONN_SLAVE_LATENCY,
550
- .conn_sup_timeout = BLE_GAP_CONN_SUPERVISION_TIMEOUT_MS / 10 // in 10ms unit
551
+ .conn_sup_timeout = _ppcp_conn_sup_timeout // in 10ms unit
551
552
};
552
553
553
554
VERIFY_STATUS ( sd_ble_gap_ppcp_set (&gap_conn_params), false );
@@ -561,6 +562,28 @@ bool AdafruitBluefruit::setConnIntervalMS(uint16_t min_ms, uint16_t max_ms)
561
562
}
562
563
563
564
565
+ bool AdafruitBluefruit::setConnSupervisionTimeout (uint16_t timeout)
566
+ {
567
+ _ppcp_conn_sup_timeout = timeout;
568
+
569
+ ble_gap_conn_params_t gap_conn_params =
570
+ {
571
+ .min_conn_interval = _ppcp_min_conn, // in 1.25ms unit
572
+ .max_conn_interval = _ppcp_max_conn, // in 1.25ms unit
573
+ .slave_latency = BLE_GAP_CONN_SLAVE_LATENCY,
574
+ .conn_sup_timeout = _ppcp_conn_sup_timeout // in 10ms unit
575
+ };
576
+
577
+ VERIFY_STATUS ( sd_ble_gap_ppcp_set (&gap_conn_params), false );
578
+
579
+ return true ;
580
+ }
581
+
582
+ bool AdafruitBluefruit::setConnSupervisionTimeoutMS (uint16_t timeout_ms)
583
+ {
584
+ return setConnSupervisionTimeout (timeout_ms / 10 ); // 10ms unit
585
+ }
586
+
564
587
void AdafruitBluefruit::setConnectCallback ( BLEGap::connect_callback_t fp )
565
588
{
566
589
_connect_cb = fp;
@@ -730,6 +753,10 @@ void AdafruitBluefruit::printInfo(void)
730
753
Serial.printf (" max = %.2f ms" , _ppcp_max_conn*1 .25f );
731
754
Serial.println ();
732
755
756
+ Serial.printf (title_fmt, " Conn Timeout" );
757
+ Serial.printf (" %.2f ms, " , _ppcp_conn_sup_timeout*10 .0f );
758
+ Serial.println ();
759
+
733
760
/* ------------- List the paried device -------------*/
734
761
Serial.printf (title_fmt, " Peripheral Paired Devices" );
735
762
Serial.println ();
0 commit comments