From 1ec51c6c8b0f6365d7f799b0c837e18b8fa3c022 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Sat, 31 Aug 2024 23:29:00 +0800 Subject: [PATCH] =?UTF-8?q?ble=E6=94=AF=E6=8C=81=E6=96=AD=E5=BC=80?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E9=87=8D=E6=96=B0=E6=89=AB=E6=8F=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/service/sdk_initer.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/src/service/sdk_initer.c b/app/src/service/sdk_initer.c index 9eeca5b..6ebb054 100644 --- a/app/src/service/sdk_initer.c +++ b/app/src/service/sdk_initer.c @@ -17,7 +17,6 @@ NRF_BLE_GQ_DEF(m_ble_gatt_queue, NRF_SDH_BLE_CENTRAL_LINK_COUNT, NRF_BLE_GQ_QUEU static uint16_t m_ble_nus_max_data_len = BLE_GATT_ATT_MTU_DEFAULT - OPCODE_LENGTH - HANDLE_LENGTH; static ble_uuid_t const m_nus_uuid = {.uuid = BLE_UUID_NUS_SERVICE, .type = NUS_SERVICE_UUID_TYPE}; static on_sdk_event_t m_onSdkEvent; -static uint16_t m_ble_connect_handle; static char m_bleScanFilterName[40]; // static char m_slaveName[40]; static bool m_autoConnect = false; @@ -107,6 +106,7 @@ static void onScanEvent(scan_evt_t const* p_scan_evt) { 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]); + // m_ble_connect_handle = p_scan_evt->; } break; case NRF_BLE_SCAN_EVT_SCAN_TIMEOUT: { @@ -191,11 +191,11 @@ static void onBleEvent(ble_evt_t const* p_ble_evt, void* p_context) { APP_ERROR_CHECK(err_code); err_code = ble_db_discovery_start(&m_db_disc, p_ble_evt->evt.gap_evt.conn_handle); APP_ERROR_CHECK(err_code); - m_ble_connect_handle = p_gap_evt->conn_handle; + break; case BLE_GAP_EVT_DISCONNECTED: NRF_LOG_INFO("Disconnected. conn_handle: 0x%x, reason: 0x%x", p_gap_evt->conn_handle, p_gap_evt->params.disconnected.reason); - m_ble_connect_handle = 0; + // m_ble_connect_handle = 0; break; case BLE_GAP_EVT_TIMEOUT: if (p_gap_evt->params.timeout.src == BLE_GAP_TIMEOUT_SRC_CONN) { @@ -339,18 +339,16 @@ void zble_master_sdk_ble_tx(uint8_t* data, int32_t len) { ble_nus_c_string_send( void zble_master_sdk_rescan(const char* slaveName, bool autoConnected) { // - uint16_t connect_handle = 0; + CRITICAL_REGION_ENTER(); memset(m_bleScanFilterName, 0, sizeof(m_bleScanFilterName)); if (!slaveName) { memcpy(m_bleScanFilterName, slaveName, strlen(slaveName)); } m_autoConnect = autoConnected; - connect_handle = m_ble_connect_handle; CRITICAL_REGION_EXIT(); - if (connect_handle != 0) { - uint32_t ecode = sd_ble_gap_disconnect(connect_handle, BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION); - NRF_LOG_DEBUG("sd_ble_gap_disconnect ecode:%d", ecode); - } + uint32_t ecode = sd_ble_gap_disconnect(m_ble_nus_c.conn_handle, BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION); + NRF_LOG_INFO("sd_ble_gap_disconnect %d -> %d",m_ble_nus_c.conn_handle,ecode); + }