Browse Source

修复connect上报事件 blename为空的bug

master
zhaohe 11 months ago
parent
commit
4b78dde8f1
  1. 17
      app/src/service/sdk_initer.c
  2. 7
      app/src/service/sdk_initer.h

17
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. .conn_sup_timeout = CONN_SUP_TIMEOUT // Supervisory timeout.
}; };
static sdk_event_t connectEventCache;
static void onScanEvent(scan_evt_t const* p_scan_evt) { static void onScanEvent(scan_evt_t const* p_scan_evt) {
static sdk_event_t reportEvent; static sdk_event_t reportEvent;
memset(&reportEvent, 0, sizeof(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: { case NRF_BLE_SCAN_EVT_CONNECTED: {
ble_gap_evt_connected_t const* p_connected = p_scan_evt->params.connected.p_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], 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]); 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; } 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); NRF_LOG_ERROR("sd_ble_gap_connect() failed: 0x%x.", err_code);
} }
} }
}
}
} break; } break;
default: default:
break; 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); APP_ERROR_CHECK(err_code);
NRF_LOG_INFO("Connected to device with Nordic UART Service."); 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; break;
case BLE_NUS_C_EVT_NUS_TX_EVT: case BLE_NUS_C_EVT_NUS_TX_EVT:
event.event = kevent_onRxData; event.event = kevent_onRxData;

7
app/src/service/sdk_initer.h

@ -46,6 +46,13 @@ typedef struct {
uint8_t rssi; uint8_t rssi;
int8_t tx_power; int8_t tx_power;
} on_scan_result; } on_scan_result;
struct {
char blename[30];
uint8_t peeradd[BLE_GAP_ADDR_LEN];
uint8_t rssi;
int8_t tx_power;
} on_connect;
} data; } data;
} sdk_event_t; } sdk_event_t;

Loading…
Cancel
Save