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;