Merge branch 'bugfix/btdm_fix_ble_throughput_demo_fail' into 'master'

Component/bt: fix throughput_demo_fail

See merge request idf/esp-idf!2467
This commit is contained in:
Jiang Jiang Jian 2018-05-31 18:53:01 +08:00
commit a3a0b01c1b
5 changed files with 15 additions and 10 deletions

View File

@ -604,6 +604,8 @@ static bool IRAM_ATTR btdm_sleep_check_duration(uint32_t *slot_cnt)
if (*slot_cnt < BTDM_MIN_SLEEP_DURATION) { if (*slot_cnt < BTDM_MIN_SLEEP_DURATION) {
return false; return false;
} }
/* wake up 3 slots in advance */
*slot_cnt = *slot_cnt -3;
return true; return true;
} }
@ -835,9 +837,9 @@ esp_err_t esp_bt_controller_init(esp_bt_controller_config_t *cfg)
btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT; btdm_lpcycle_us_frac = RTC_CLK_CAL_FRACT;
btdm_lpcycle_us = 32 << btdm_lpcycle_us_frac; btdm_lpcycle_us = 32 << btdm_lpcycle_us_frac;
#if CONFIG_BTDM_MODEM_SLEEP_MODE_ORIG
bool select_src_ret = false; bool select_src_ret = false;
bool set_div_ret = false; bool set_div_ret = false;
#if CONFIG_BTDM_MODEM_SLEEP_MODE_ORIG
#if CONFIG_BTDM_LPCLK_SEL_MAIN_XTAL #if CONFIG_BTDM_LPCLK_SEL_MAIN_XTAL
select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL); select_src_ret = btdm_lpclk_select_src(BTDM_LPCLK_SEL_XTAL);
set_div_ret = btdm_lpclk_set_div(rtc_clk_xtal_freq_get() * 32 - 1); set_div_ret = btdm_lpclk_set_div(rtc_clk_xtal_freq_get() * 32 - 1);

View File

@ -482,14 +482,16 @@ static void throughput_client_task(void *param)
while(1) { while(1) {
#if (CONFIG_GATTS_NOTIFY_THROUGHPUT) #if (CONFIG_GATTS_NOTIFY_THROUGHPUT)
vTaskDelay(2000 / portTICK_PERIOD_MS); vTaskDelay(2000 / portTICK_PERIOD_MS);
uint32_t bit_rate = 0; if(is_connecet){
if (start_time) { uint32_t bit_rate = 0;
current_time = esp_timer_get_time(); if (start_time) {
bit_rate = notify_len * SECOND_TO_USECOND / (current_time - start_time); current_time = esp_timer_get_time();
ESP_LOGI(GATTC_TAG, "Notify Bit rate = %d Btye/s, = %d bit/s, time = %ds", bit_rate = notify_len * SECOND_TO_USECOND / (current_time - start_time);
bit_rate, bit_rate<<3, (int)((current_time - start_time) / SECOND_TO_USECOND)); ESP_LOGI(GATTC_TAG, "Notify Bit rate = %d Btye/s, = %d bit/s, time = %ds",
} else { bit_rate, bit_rate<<3, (int)((current_time - start_time) / SECOND_TO_USECOND));
ESP_LOGI(GATTC_TAG, "Notify Bit rate = 0 Btye/s, = 0 bit/s"); } else {
ESP_LOGI(GATTC_TAG, "Notify Bit rate = 0 Btye/s, = 0 bit/s");
}
} }
#endif /* #if (CONFIG_GATTS_NOTIFY_THROUGHPUT) */ #endif /* #if (CONFIG_GATTS_NOTIFY_THROUGHPUT) */
#if (CONFIG_GATTC_WRITE_THROUGHPUT) #if (CONFIG_GATTC_WRITE_THROUGHPUT)

View File

@ -2,3 +2,4 @@
# by default in this example # by default in this example
CONFIG_BT_ENABLED=y CONFIG_BT_ENABLED=y
CONFIG_GATTS_NOTIFY_THROUGHPUT=y CONFIG_GATTS_NOTIFY_THROUGHPUT=y
CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=n

View File

@ -611,7 +611,6 @@ void throughput_server_task(void *param)
while(1) { while(1) {
#if (CONFIG_GATTS_NOTIFY_THROUGHPUT) #if (CONFIG_GATTS_NOTIFY_THROUGHPUT)
if (!can_send_notify) { if (!can_send_notify) {
ESP_LOGI(GATTS_TAG, "===");
int res = xSemaphoreTake(gatts_semaphore, portMAX_DELAY); int res = xSemaphoreTake(gatts_semaphore, portMAX_DELAY);
assert(res == pdTRUE); assert(res == pdTRUE);
} else { } else {

View File

@ -2,3 +2,4 @@
# by default in this example # by default in this example
CONFIG_BT_ENABLED=y CONFIG_BT_ENABLED=y
CONFIG_GATTS_NOTIFY_THROUGHPUT=y CONFIG_GATTS_NOTIFY_THROUGHPUT=y
CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=n