summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-03-28 12:51:24 +1100
committerjacqueline <me@jacqueline.id.au>2024-03-28 12:51:24 +1100
commitdd3346d381d0db6e179a1127a746deb9b096d5bc (patch)
treed4928925b28f333affdc4e498f0f3d51acbfb4c3 /src
parent4cec85af2d779ea8f6e3b46dfbea61ef5b0419f8 (diff)
downloadtangara-fw-dd3346d381d0db6e179a1127a746deb9b096d5bc.tar.gz
HACK: auto-accept CFM pairing, and increase the connection timeout
This gets Tangara connecting to most non-trivial devices, including car headunits and my laptop. We can add a real UI / better timeout handling for this later (likely via a new BluetoothState?)
Diffstat (limited to 'src')
-rw-r--r--src/drivers/bluetooth.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/drivers/bluetooth.cpp b/src/drivers/bluetooth.cpp
index 84c81de0..d15ffd7f 100644
--- a/src/drivers/bluetooth.cpp
+++ b/src/drivers/bluetooth.cpp
@@ -515,7 +515,7 @@ static void timeoutCallback(TimerHandle_t) {
}
void Connecting::entry() {
- sTimeoutTimer = xTimerCreate("bt_timeout", pdMS_TO_TICKS(5000), false, NULL,
+ sTimeoutTimer = xTimerCreate("bt_timeout", pdMS_TO_TICKS(15000), false, NULL,
timeoutCallback);
xTimerStart(sTimeoutTimer, portMAX_DELAY);
@@ -568,8 +568,9 @@ void Connecting::react(const events::internal::Gap& ev) {
transit<Idle>();
break;
case ESP_BT_GAP_CFM_REQ_EVT:
- ESP_LOGW(kTag, "user needs to do cfm. idk man.");
- transit<Idle>();
+ // FIXME: Expose a UI for this instead of auto-accepting.
+ ESP_LOGW(kTag, "CFM request, PIN is: %lu", ev.param->cfm_req.num_val);
+ esp_bt_gap_ssp_confirm_reply(ev.param->cfm_req.bda, true);
break;
case ESP_BT_GAP_KEY_NOTIF_EVT:
ESP_LOGW(kTag, "the device is telling us a password??");