From 4b78dde8f1962d9dd98a6aef5623a70a19c50941 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 30 Aug 2024 10:14:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dconnect=E4=B8=8A=E6=8A=A5?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=20blename=E4=B8=BA=E7=A9=BA=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/service/sdk_initer.c | 17 ++++++++++++++--- app/src/service/sdk_initer.h | 7 +++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/service/sdk_initer.c b/app/src/service/sdk_initer.c index edeb1b2..c7d9809 100644 --- a/app/src/service/sdk_initer.c +++ b/app/src/service/sdk_initer.c @@ -69,6 +69,8 @@ static ble_gap_conn_params_t m_conn_param = { .conn_sup_timeout = CONN_SUP_TIMEOUT // Supervisory timeout. }; +static sdk_event_t connectEventCache; + static void onScanEvent(scan_evt_t const* p_scan_evt) { static sdk_event_t reportEvent; memset(&reportEvent, 0, sizeof(reportEvent)); @@ -84,6 +86,15 @@ static void onScanEvent(scan_evt_t const* p_scan_evt) { case NRF_BLE_SCAN_EVT_CONNECTED: { ble_gap_evt_connected_t const* p_connected = p_scan_evt->params.connected.p_connected; + { + connectEventCache.event = kevent_connected; + strcpy(connectEventCache.data.on_connect.blename, ble_find_name(p_adv->data.p_data, p_adv->data.len)); + connectEventCache.data.on_connect.rssi = p_adv->rssi; + connectEventCache.data.on_connect.tx_power = p_adv->tx_power; + memcpy(connectEventCache.data.on_connect.peeradd, p_adv->peer_addr.addr, BLE_GAP_ADDR_LEN); + // ΡΣΊσΙΟ±¨ + } + NRF_LOG_INFO("Connecting to target %02x%02x%02x%02x%02x%02x", p_connected->peer_addr.addr[0], p_connected->peer_addr.addr[1], p_connected->peer_addr.addr[2], p_connected->peer_addr.addr[3], p_connected->peer_addr.addr[4], p_connected->peer_addr.addr[5]); } break; @@ -109,7 +120,7 @@ static void onScanEvent(scan_evt_t const* p_scan_evt) { NRF_LOG_ERROR("sd_ble_gap_connect() failed: 0x%x.", err_code); } } - } + } } break; default: break; @@ -130,8 +141,8 @@ static void onBleNusEvent(ble_nus_c_t* p_ble_nus_c, ble_nus_c_evt_t const* p_ble APP_ERROR_CHECK(err_code); NRF_LOG_INFO("Connected to device with Nordic UART Service."); - event.event = kevent_connected; - m_onSdkEvent(&event); + // event.event = kevent_connected; + m_onSdkEvent(&connectEventCache); break; case BLE_NUS_C_EVT_NUS_TX_EVT: event.event = kevent_onRxData; diff --git a/app/src/service/sdk_initer.h b/app/src/service/sdk_initer.h index b97d531..503ca94 100644 --- a/app/src/service/sdk_initer.h +++ b/app/src/service/sdk_initer.h @@ -46,6 +46,13 @@ typedef struct { uint8_t rssi; int8_t tx_power; } on_scan_result; + + struct { + char blename[30]; + uint8_t peeradd[BLE_GAP_ADDR_LEN]; + uint8_t rssi; + int8_t tx_power; + } on_connect; } data; } sdk_event_t;