From e043aed433417104b94b0f42f593446c8ae93316 Mon Sep 17 00:00:00 2001 From: zwsd Date: Fri, 8 Jul 2022 15:26:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E6=94=B6=E6=97=B6=E9=97=B4=E4=BB=8E2s?= =?UTF-8?q?=E5=8F=98=E6=88=90100ms=EF=BC=8C=E6=95=B0=E6=8D=AE=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=94=BE=E5=9C=A8=E4=BA=86main=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/gatts_demo.c | 61 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/main/gatts_demo.c b/main/gatts_demo.c index abbf5a2..9e5b982 100644 --- a/main/gatts_demo.c +++ b/main/gatts_demo.c @@ -557,21 +557,23 @@ static void gatts_profile_a_event_handler(esp_gatts_cb_event_t event, esp_gatt_i //实际只让接收profile_b_buffer_size-1个 #define profile_b_buffer_size 100 -char gatts_profile_b_write_buffer[profile_b_buffer_size] = {0}; -uint8_t gatts_profile_b_write_buffer_len = 0; +char bluetooth_rx_buffer[profile_b_buffer_size] = {0}; +uint8_t bluetooth_rx_buffer_len = 0; bool bluetooth_rx_off = false; bool flag = true; uint32_t total = 0; -#define timer_interval_num 2 +#define timer_interval_num 100 #define timer_interval_s (uint32_t)1000000 #define timer_interval_ms (uint32_t)1000 #define timer_interval_us (uint32_t)1 +void bluetooth_gatts_try_process_data(); + void buffer_all_init() { - gatts_profile_b_write_buffer_len = 0; - memset(gatts_profile_b_write_buffer, 0, profile_b_buffer_size); + bluetooth_rx_buffer_len = 0; + memset(bluetooth_rx_buffer, 0, profile_b_buffer_size); } void timer_set_pause_and_counter_zero(int group, int timer) @@ -612,38 +614,26 @@ static void gatts_profile_b_event_handler(esp_gatts_cb_event_t event, esp_gatt_i } case ESP_GATTS_WRITE_EVT: { - // if ((gatts_profile_b_write_buffer_len+param->write.len > profile_b_buffer_size)) - // { - - // } - if (bluetooth_rx_off == false) { timer_set_pause_and_counter_zero(TIMER_GROUP_0, TIMER_0); timer_start(TIMER_GROUP_0, TIMER_0); - } - else - { - ESP_LOGI("!!!", "%s", &gatts_profile_b_write_buffer[0]); - bluetooth_rx_off = false; - timer_set_pause_and_counter_zero(TIMER_GROUP_0, TIMER_0); - buffer_all_init(); + ESP_LOGI(GATTS_TAG, "GATT_WRITE_EVT, conn_id %d, trans_id %d, handle %d\n", param->write.conn_id, param->write.trans_id, param->write.handle); + if (!param->write.is_prep) + { + ESP_LOGI(GATTS_TAG, "GATT_WRITE_EVT, value len %d, value :", param->write.len); + esp_log_buffer_hex(GATTS_TAG, param->write.value, param->write.len); + + for (int i = 0; i < param->write.len; i++) + { + bluetooth_rx_buffer[bluetooth_rx_buffer_len++] = param->write.value[i]; + } + } example_write_event_env(gatts_if, &b_prepare_write_env, param); break; } - ESP_LOGI(GATTS_TAG, "GATT_WRITE_EVT, conn_id %d, trans_id %d, handle %d\n", param->write.conn_id, param->write.trans_id, param->write.handle); - if (!param->write.is_prep) - { - ESP_LOGI(GATTS_TAG, "GATT_WRITE_EVT, value len %d, value :", param->write.len); - esp_log_buffer_hex(GATTS_TAG, param->write.value, param->write.len); - - for (int i = 0; i < param->write.len; i++) - { - gatts_profile_b_write_buffer[gatts_profile_b_write_buffer_len++] = param->write.value[i]; - } - } example_write_event_env(gatts_if, &b_prepare_write_env, param); break; } @@ -814,7 +804,7 @@ void app_main(void) { esp_err_t ret; - timer_group_init(TIMER_GROUP_0, TIMER_0, true, timer_interval_num, timer_interval_s); + timer_group_init(TIMER_GROUP_0, TIMER_0, true, timer_interval_num, timer_interval_ms); // Initialize NVS. ret = nvs_flash_init(); @@ -901,7 +891,20 @@ void app_main(void) void bluetooth_gatts_try_process_data() { + //接收完毕 if (bluetooth_rx_off) { + //关闭定时器 + timer_set_pause_and_counter_zero(TIMER_GROUP_0, TIMER_0); + //打印输出 + ESP_LOGI(GATTS_TAG, "%s", &bluetooth_rx_buffer[0]); + //验证数据 + + //处理数据 + + //接收标志位设为未接收 + bluetooth_rx_off = false; + //buffer置0 + buffer_all_init(); } } \ No newline at end of file