static void on_ble_evt(ble_evt_t * p_ble_evt) { uint32_t err_code; const ble_gap_evt_t * p_gap_evt = &p_ble_evt->evt.gap_evt; uint8_t Arr[6]; // uint32_t err_code; ble_gap_addr_t device_addr; switch (p_ble_evt->header.evt_id) { case BLE_GAP_EVT_ADV_REPORT: { // printf("Advertiesing.....\r\n"); const ble_gap_evt_adv_report_t * p_adv_report = &p_gap_evt->params.adv_report; int8_t rssi = p_ble_evt->evt.gap_evt.params.adv_report.rssi; uint8_t rssi_1=(uint8_t)rssi;rssi_1=(0xFF-rssi_1)+1; GCu_Array[0]=NRF_FICR->DEVICEID[0];GCu_Array[1]=NRF_FICR->DEVICEID[0]>>8; GCu_Array[2]=NRF_FICR->DEVICEID[0]>>16;GCu_Array[3]=NRF_FICR->DEVICEID[0]>>24; GCu_Array[4]=NRF_FICR->DEVICEID[1];GCu_Array[5]=NRF_FICR->DEVICEID[1]>>8; printf("",GCu_Array[0],GCu_Array[1],GCu_Array[2],GCu_Array[3],GCu_Array[4],GCu_Array[5]); printf("", p_adv_report->peer_addr.addr[0], p_adv_report->peer_addr.addr[1], p_adv_report->peer_addr.addr[2], p_adv_report->peer_addr.addr[3], p_adv_report->peer_addr.addr[4], p_adv_report->peer_addr.addr[5] ); printf("",rssi_1); printf("\r\n"); // if (is_uuid_present(&m_nus_uuid, p_adv_report)) { err_code = sd_ble_gap_connect(&p_adv_report->peer_addr, &m_scan_params, &m_connection_param); if (err_code == NRF_SUCCESS) { // scan is automatically stopped by the connect err_code = bsp_indication_set(BSP_INDICATE_IDLE); APP_ERROR_CHECK(err_code); APPL_LOG("Connecting to target: %02x%02x%02x%02x%02x%02x\r\n", p_adv_report->peer_addr.addr[0], p_adv_report->peer_addr.addr[1], p_adv_report->peer_addr.addr[2], p_adv_report->peer_addr.addr[3], p_adv_report->peer_addr.addr[4], p_adv_report->peer_addr.addr[5] ); } } break; } case BLE_GAP_EVT_CONNECTED: APPL_LOG("Connected to target\r\n"); err_code = bsp_indication_set(BSP_INDICATE_CONNECTED); APP_ERROR_CHECK(err_code); // start discovery of services. The NUS Client waits for a discovery result err_code = ble_db_discovery_start(&m_ble_db_discovery, p_ble_evt->evt.gap_evt.conn_handle); APP_ERROR_CHECK(err_code); break; case BLE_GAP_EVT_TIMEOUT: if (p_gap_evt->params.timeout.src == BLE_GAP_TIMEOUT_SRC_SCAN) { APPL_LOG("[APPL]: Scan timed out.\r\n"); scan_start(); } else if (p_gap_evt->params.timeout.src == BLE_GAP_TIMEOUT_SRC_CONN) { APPL_LOG("[APPL]: Connection Request timed out.\r\n"); } break; case BLE_GAP_EVT_SEC_PARAMS_REQUEST: // Pairing not supported err_code = sd_ble_gap_sec_params_reply(p_ble_evt->evt.gap_evt.conn_handle, BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP, NULL, NULL); APP_ERROR_CHECK(err_code); break; case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST: // Accepting parameters requested by peer. err_code = sd_ble_gap_conn_param_update(p_gap_evt->conn_handle, &p_gap_evt->params.conn_param_update_request.conn_params); APP_ERROR_CHECK(err_code); break; default: break; } }