Exemple #1
0
static void conn_params_timer_handler(void *privData)
{
	OS_ERR_TYPE os_err;
	struct bt_conn_info info = { 0 };
	const struct bt_le_conn_param conn_params = {
		MIN_CONN_INTERVAL, MAX_CONN_INTERVAL, SLAVE_LATENCY,
		CONN_SUP_TIMEOUT
	};

	bt_conn_get_info(_ble_app_cb.conn_periph, &info);

	/* Check if there was an update in the connection parameters */
	if (info.role != BT_CONN_ROLE_MASTER &&
	    (_ble_app_cb.conn_values.latency != SLAVE_LATENCY ||
	     _ble_app_cb.conn_values.supervision_to != CONN_SUP_TIMEOUT ||
	     _ble_app_cb.conn_values.interval < MIN_CONN_INTERVAL ||
	     _ble_app_cb.conn_values.interval > MAX_CONN_INTERVAL)) {
		/* Start the 30 seconds timer to retry updating the connection */
		timer_start(_ble_app_cb.conn_timer, 30000, &os_err);

		/* Send request to update the connection */
		bt_conn_le_param_update(_ble_app_cb.conn_periph, &conn_params);
	} else
		ble_app_delete_conn_timer();
}
Exemple #2
0
/*
 * Functions definition
 */
int ble_app_conn_update(const struct bt_le_conn_param *p_params)
{
	ble_app_delete_conn_timer();

	if (_ble_app_cb.flags & BLE_APP_ENABLED)
		return bt_conn_le_param_update(_ble_app_cb.conn_periph,
					       p_params);
	else
		return -1;
}
void BLEHelper::updateConnectionInterval()
{
    bt_conn_t* conn = bt_conn_lookup_addr_le(&_address);
    int ret = 0;
    if (NULL != conn)
    {
        ret = bt_conn_le_param_update(conn, &_conn_params);
        pr_debug(LOG_MODULE_BLE, "%s-ret:%d",__FUNCTION__, ret);
        bt_conn_unref(conn);
    }
}
Exemple #4
0
static void le_conn_update(struct k_work *work)
{
	struct bt_conn *conn = CONTAINER_OF(work, struct bt_conn, update_work);

	bt_conn_le_param_update(conn, BT_LE_CONN_PARAM_DEFAULT);
}