1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-28 07:51:19 +01:00

pkg/nimble/autoconn: cleanup timing params

This commit is contained in:
Hauke Petersen 2020-07-06 15:31:05 +02:00
parent bd48f06de4
commit 29640252b7
2 changed files with 43 additions and 42 deletions

View File

@ -27,38 +27,38 @@ extern "C" {
* @name Default parameters used for the nimble_netif_autoconn module
* @{
*/
#ifndef NIMBLE_AUTOCONN_PERIOD_SCAN
#define NIMBLE_AUTOCONN_PERIOD_SCAN (2000U) /* 2s */
#ifndef NIMBLE_AUTOCONN_PERIOD_SCAN_MS
#define NIMBLE_AUTOCONN_PERIOD_SCAN_MS (2000U) /* 2s */
#endif
#ifndef NIMBLE_AUTOCONN_PERIOD_ADV
#define NIMBLE_AUTOCONN_PERIOD_ADV (10000U) /* 10s */
#ifndef NIMBLE_AUTOCONN_PERIOD_ADV_MS
#define NIMBLE_AUTOCONN_PERIOD_ADV_MS (10000U) /* 10s */
#endif
#ifndef NIMBLE_AUTOCONN_PERIOD_JITTER
#define NIMBLE_AUTOCONN_PERIOD_JITTER (5000U) /* 0-5s */
#ifndef NIMBLE_AUTOCONN_PERIOD_JITTER_MS
#define NIMBLE_AUTOCONN_PERIOD_JITTER_MS (5000U) /* 0-5s */
#endif
#ifndef NIMBLE_AUTOCONN_ADV_ITVL
#define NIMBLE_AUTOCONN_ADV_ITVL (100U) /* 100ms */
#ifndef NIMBLE_AUTOCONN_ADV_ITVL_MS
#define NIMBLE_AUTOCONN_ADV_ITVL_MS (100U) /* 100ms */
#endif
#ifndef NIMBLE_AUTOCONN_SCAN_ITVL
#define NIMBLE_AUTOCONN_SCAN_ITVL (1500U) /* 1.5s */
#ifndef NIMBLE_AUTOCONN_SCAN_ITVL_MS
#define NIMBLE_AUTOCONN_SCAN_ITVL_MS (1500U) /* 1.5s */
#endif
#ifndef NIMBLE_AUTOCONN_SCAN_WIN
#define NIMBLE_AUTOCONN_SCAN_WIN (110U) /* 110ms */
#ifndef NIMBLE_AUTOCONN_SCAN_WIN_MS
#define NIMBLE_AUTOCONN_SCAN_WIN_MS (110U) /* 110ms */
#endif
#ifndef NIMBLE_AUTOCONN_CONN_TIMEOUT
#define NIMBLE_AUTOCONN_CONN_TIMEOUT (330U) /* 3 * SCAN_WIN */
#ifndef NIMBLE_AUTOCONN_CONN_TIMEOUT_MS
#define NIMBLE_AUTOCONN_CONN_TIMEOUT_MS (3 * NIMBLE_AUTOCONN_SCAN_WIN_MS)
#endif
#ifndef NIMBLE_AUTOCONN_CONN_ITVL
#define NIMBLE_AUTOCONN_CONN_ITVL (75U) /* 75ms */
#ifndef NIMBLE_AUTOCONN_CONN_ITVL_MS
#define NIMBLE_AUTOCONN_CONN_ITVL_MS (75U) /* 75ms */
#endif
#ifndef NIMBLE_AUTOCONN_CONN_LATENCY
#define NIMBLE_AUTOCONN_CONN_LATENCY (0)
#endif
#ifndef NIMBLE_AUTOCONN_CONN_SUPER_TO
#define NIMBLE_AUTOCONN_CONN_SUPER_TO (2500U) /* 2.5s */
#ifndef NIMBLE_AUTOCONN_CONN_SVTO_MS
#define NIMBLE_AUTOCONN_CONN_SVTO_MS (2500U) /* 2.5s */
#endif
#ifndef NIMBLE_AUTOCONN_NODE_ID
@ -66,17 +66,17 @@ extern "C" {
#endif
#ifndef NIMBLE_AUTOCONN_PARAMS
#define NIMBLE_AUTOCONN_PARAMS \
{ .period_scan = NIMBLE_AUTOCONN_PERIOD_SCAN, \
.period_adv = NIMBLE_AUTOCONN_PERIOD_ADV, \
.period_jitter = NIMBLE_AUTOCONN_PERIOD_JITTER, \
.adv_itvl = NIMBLE_AUTOCONN_ADV_ITVL, \
.scan_itvl = NIMBLE_AUTOCONN_SCAN_ITVL, \
.scan_win = NIMBLE_AUTOCONN_SCAN_WIN, \
.conn_timeout = NIMBLE_AUTOCONN_CONN_TIMEOUT, \
.conn_itvl = NIMBLE_AUTOCONN_CONN_ITVL, \
.conn_latency = NIMBLE_AUTOCONN_CONN_LATENCY, \
.conn_super_to = NIMBLE_AUTOCONN_CONN_SUPER_TO, \
#define NIMBLE_AUTOCONN_PARAMS \
{ .period_scan = NIMBLE_AUTOCONN_PERIOD_SCAN_MS, \
.period_adv = NIMBLE_AUTOCONN_PERIOD_ADV_MS, \
.period_jitter = NIMBLE_AUTOCONN_PERIOD_JITTER_MS, \
.adv_itvl = NIMBLE_AUTOCONN_ADV_ITVL_MS, \
.scan_itvl = NIMBLE_AUTOCONN_SCAN_ITVL_MS, \
.scan_win = NIMBLE_AUTOCONN_SCAN_WIN_MS, \
.conn_timeout = NIMBLE_AUTOCONN_CONN_TIMEOUT_MS, \
.conn_itvl = NIMBLE_AUTOCONN_CONN_ITVL_MS, \
.conn_latency = NIMBLE_AUTOCONN_CONN_LATENCY, \
.conn_super_to = NIMBLE_AUTOCONN_CONN_SVTO_MS, \
.node_id = NIMBLE_AUTOCONN_NODE_ID, }
#endif
/**@}*/

View File

@ -279,12 +279,13 @@ int nimble_autoconn_update(const nimble_autoconn_params_t *params,
ble_npl_time_ms_to_ticks(params->period_jitter, &_period_jitter);
/* populate the connection parameters */
_conn_params.scan_itvl = ((params->scan_win * 1000) / BLE_HCI_SCAN_ITVL);
_conn_params.scan_window = ((params->scan_win * 1000) / BLE_HCI_SCAN_ITVL);
_conn_params.itvl_min = ((params->conn_itvl * 1000) / BLE_HCI_CONN_ITVL);
_conn_params.itvl_max = ((params->conn_itvl * 1000) / BLE_HCI_CONN_ITVL);
_conn_params.scan_itvl = BLE_GAP_SCAN_ITVL_MS(params->scan_win);
_conn_params.scan_window = _conn_params.scan_itvl;
_conn_params.itvl_min = BLE_GAP_CONN_ITVL_MS(params->conn_itvl);
_conn_params.itvl_max = _conn_params.itvl_min;
_conn_params.latency = 0;
_conn_params.supervision_timeout = (params->conn_super_to / 10);
_conn_params.supervision_timeout = BLE_GAP_SUPERVISION_TIMEOUT_MS(
params->conn_super_to);
_conn_params.min_ce_len = 0;
_conn_params.max_ce_len = 0;
_conn_timeout = params->conn_timeout;
@ -300,18 +301,18 @@ int nimble_autoconn_update(const nimble_autoconn_params_t *params,
/* calculate the used scan parameters */
struct ble_gap_disc_params scan_params;
scan_params.itvl = ((params->scan_itvl * 1000) / BLE_HCI_SCAN_ITVL),
scan_params.window = ((params->scan_win * 1000) / BLE_HCI_SCAN_ITVL),
scan_params.filter_policy = 0,
scan_params.limited = 0,
scan_params.passive = 0,
scan_params.filter_duplicates = 1,
scan_params.itvl = BLE_GAP_SCAN_ITVL_MS(params->scan_itvl);
scan_params.window = BLE_GAP_SCAN_WIN_MS(params->scan_win);
scan_params.filter_policy = 0;
scan_params.limited = 0;
scan_params.passive = 0;
scan_params.filter_duplicates = 1;
/* set the advertising parameters used */
_adv_params.conn_mode = BLE_GAP_CONN_MODE_UND;
_adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN;
_adv_params.itvl_min = ((params->adv_itvl * 1000) / BLE_HCI_ADV_ITVL);
_adv_params.itvl_max = ((params->adv_itvl * 1000) / BLE_HCI_ADV_ITVL);
_adv_params.itvl_min = BLE_GAP_ADV_ITVL_MS(params->adv_itvl);
_adv_params.itvl_max = _adv_params.itvl_min;
_adv_params.channel_map = 0;
_adv_params.filter_policy = 0;
_adv_params.high_duty_cycle = 0;