Browse Source

添加BLOCK数据接收统计

master
zhaohe 1 year ago
parent
commit
41e7b619f0
  1. 58
      ble_app_uart_c_pca10100_s122.uvguix.h_zha
  2. 53
      main.c

58
ble_app_uart_c_pca10100_s122.uvguix.h_zha
File diff suppressed because it is too large
View File

53
main.c

@ -188,13 +188,25 @@ static void db_disc_handler(ble_db_discovery_evt_t* p_evt) { ble_nus_c_on_db_dis
* If @ref ECHOBACK_BLE_UART_DATA is set, the data is sent back to sender.
*/
static void app_uart_force_put(uint8_t data){
ret_code_t ret_val;
do {
ret_val = app_uart_put(data);
if ((ret_val != NRF_SUCCESS) && (ret_val != NRF_ERROR_BUSY)) {
NRF_LOG_ERROR("app_uart_put failed for index 0x%04x.", 0);
APP_ERROR_CHECK(ret_val);
}
} while (ret_val == NRF_ERROR_BUSY);
}
static void ble_nus_chars_received_uart_print(uint8_t* p_data, uint16_t data_len) {
ret_code_t ret_val;
NRF_LOG_DEBUG("Receiving data.");
NRF_LOG_HEXDUMP_DEBUG(p_data, data_len);
app_uart_put(0x5A);
app_uart_put(0xA5);
app_uart_force_put(0x5A);
app_uart_force_put(0xA5);
for (uint32_t i = 0; i < data_len; i++) {
do {
ret_val = app_uart_put(p_data[i]);
@ -204,8 +216,8 @@ static void ble_nus_chars_received_uart_print(uint8_t* p_data, uint16_t data_len
}
} while (ret_val == NRF_ERROR_BUSY);
}
app_uart_put(0x5B);
app_uart_put(0xB5);
app_uart_force_put(0x5B);
app_uart_force_put(0xB5);
}
static void ble_nus_chars_received_uart_print_ch4(uint8_t* p_data, uint16_t data_len) {
@ -213,8 +225,8 @@ static void ble_nus_chars_received_uart_print_ch4(uint8_t* p_data, uint16_t data
NRF_LOG_DEBUG("Receiving data.");
NRF_LOG_HEXDUMP_DEBUG(p_data, data_len);
app_uart_put(0x4A);
app_uart_put(0xA4);
app_uart_force_put(0x4A);
app_uart_force_put(0xA4);
for (uint32_t i = 0; i < data_len; i++) {
do {
ret_val = app_uart_put(p_data[i]);
@ -224,8 +236,8 @@ static void ble_nus_chars_received_uart_print_ch4(uint8_t* p_data, uint16_t data
}
} while (ret_val == NRF_ERROR_BUSY);
}
app_uart_put(0x4B);
app_uart_put(0xB4);
app_uart_force_put(0x4B);
app_uart_force_put(0xB4);
}
/**@brief Function for handling app_uart events.
@ -286,8 +298,13 @@ void uart_event_handle(app_uart_evt_t* p_event) {
*/
/**@snippet [Handling events from the ble_nus_c module] */
static int32_t rxcnt;
static void ble_nus_c_evt_handler(ble_nus_c_t* p_ble_nus_c, ble_nus_c_evt_t const* p_ble_nus_evt) {
typedef struct {
uint32_t rxcnt;
uint32_t m_rx_sum_cnt;
} block_data_rx_state_t;
block_data_rx_state_t block_data_rx_state;
static void ble_nus_c_evt_handler(ble_nus_c_t* p_ble_nus_c, ble_nus_c_evt_t const* p_ble_nus_evt) {
ret_code_t err_code;
switch (p_ble_nus_evt->evt_type) {
@ -305,9 +322,11 @@ static void ble_nus_c_evt_handler(ble_nus_c_t* p_ble_nus_c, ble_nus_c_evt_t c
ble_nus_chars_received_uart_print(p_ble_nus_evt->p_data, p_ble_nus_evt->data_len);
break;
case BLE_NUS_C_EVT_NUS_TX_EVT_2:
ble_nus_chars_received_uart_print_ch4(p_ble_nus_evt->p_data, p_ble_nus_evt->data_len);
rxcnt += p_ble_nus_evt->data_len;
// printf("data_len:%d %d\n",p_ble_nus_evt->data_len,rxcnt);
block_data_rx_state.rxcnt += p_ble_nus_evt->data_len;
for (size_t i = 0; i < p_ble_nus_evt->data_len; i++) {
block_data_rx_state.m_rx_sum_cnt += p_ble_nus_evt->p_data[i];
}
ble_nus_chars_received_uart_print_ch4((uint8_t*)&block_data_rx_state, sizeof(block_data_rx_state));
break;
case BLE_NUS_C_EVT_DISCONNECTED:
@ -601,15 +620,9 @@ int main(void) {
app_timer_create(&m_uart_send_tmr, APP_TIMER_MODE_REPEATED, uart_send_tmr_cb);
app_timer_start(m_uart_send_tmr, APP_TIMER_TICKS(2), NULL);
app_uart_put(1);
app_uart_put(1);
app_uart_put(1);
app_uart_put(1);
app_uart_put(1);
app_uart_put(1);
// Start execution.
printf("BLE UART central example started.\r\n");
// printf("BLE UART central example started.\r\n");
NRF_LOG_INFO("BLE UART central example started.");
scan_start();

Loading…
Cancel
Save