Browse Source

接收时间从2s变成100ms,数据处理放在了main中

master
zwsd 3 years ago
parent
commit
e043aed433
  1. 61
      main/gatts_demo.c

61
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();
}
}
Loading…
Cancel
Save