This commit is contained in:
@@ -167,6 +167,33 @@ static void hf_cb(esp_hf_client_cb_event_t event, esp_hf_client_cb_param_t *para
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---- Reconnexion automatique ----
|
||||||
|
* Tant que le SLC n'est pas etabli, on tente periodiquement de se reconnecter
|
||||||
|
* au dernier appareil appaire. Le mobile (deja bonde) accepte la connexion des
|
||||||
|
* qu'il est a portee -> reconnexion auto sans action utilisateur. On ne tente
|
||||||
|
* QUE lorsque deconnecte (evite la collision RFCOMM avec un connect du mobile). */
|
||||||
|
static void reconnect_task(void *arg)
|
||||||
|
{
|
||||||
|
(void)arg;
|
||||||
|
for (;;) {
|
||||||
|
vTaskDelay(pdMS_TO_TICKS(8000)); /* intervalle de tentative */
|
||||||
|
if (s_slc) {
|
||||||
|
continue; /* deja connecte */
|
||||||
|
}
|
||||||
|
int num = esp_bt_gap_get_bond_device_num();
|
||||||
|
if (num <= 0) {
|
||||||
|
continue; /* aucun appareil appaire */
|
||||||
|
}
|
||||||
|
int n = (num > 4) ? 4 : num;
|
||||||
|
esp_bd_addr_t list[4];
|
||||||
|
if (esp_bt_gap_get_bond_device_list(&n, list) != ESP_OK || n <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ESP_LOGI(TAG, "reconnexion HFP auto vers l'appareil appaire...");
|
||||||
|
esp_hf_client_connect(list[0]); /* le mobile accepte s'il est a portee */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* ---- API publique ---- */
|
/* ---- API publique ---- */
|
||||||
|
|
||||||
esp_err_t bt_hfp_init(bt_hfp_event_cb_t cb)
|
esp_err_t bt_hfp_init(bt_hfp_event_cb_t cb)
|
||||||
@@ -226,6 +253,9 @@ esp_err_t bt_hfp_init(bt_hfp_event_cb_t cb)
|
|||||||
esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE)
|
esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Tache de reconnexion auto vers le dernier appareil appaire. */
|
||||||
|
xTaskCreate(reconnect_task, "bt_reconnect", 3072, NULL, 4, NULL);
|
||||||
|
|
||||||
ESP_LOGI(TAG, "bt_hfp pret — appairer le mobile sur 'RTC_BL_PHONE'");
|
ESP_LOGI(TAG, "bt_hfp pret — appairer le mobile sur 'RTC_BL_PHONE'");
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user