Limit the number of simultaneously connected devices to BluetoothSerial to only 1 (#2061)

This commit is contained in:
Nikos Mouratidis 2018-11-20 00:08:15 +08:00 committed by Me No Dev
parent 44ca2ee976
commit 0d564d7b1d

View File

@ -50,6 +50,7 @@ static xQueueHandle _spp_tx_queue = NULL;
static SemaphoreHandle_t _spp_tx_done = NULL; static SemaphoreHandle_t _spp_tx_done = NULL;
static TaskHandle_t _spp_task_handle = NULL; static TaskHandle_t _spp_task_handle = NULL;
static EventGroupHandle_t _spp_event_group = NULL; static EventGroupHandle_t _spp_event_group = NULL;
static boolean secondConnectionAttempt;
#define SPP_RUNNING 0x01 #define SPP_RUNNING 0x01
#define SPP_CONNECTED 0x02 #define SPP_CONNECTED 0x02
@ -162,13 +163,22 @@ static void esp_spp_cb(esp_spp_cb_event_t event, esp_spp_cb_param_t *param)
break; break;
case ESP_SPP_SRV_OPEN_EVT://Server connection open case ESP_SPP_SRV_OPEN_EVT://Server connection open
if (!_spp_client){
_spp_client = param->open.handle; _spp_client = param->open.handle;
} else {
secondConnectionAttempt = true;
esp_spp_disconnect(param->open.handle);
}
xEventGroupSetBits(_spp_event_group, SPP_CONNECTED); xEventGroupSetBits(_spp_event_group, SPP_CONNECTED);
log_i("ESP_SPP_SRV_OPEN_EVT"); log_i("ESP_SPP_SRV_OPEN_EVT");
break; break;
case ESP_SPP_CLOSE_EVT://Client connection closed case ESP_SPP_CLOSE_EVT://Client connection closed
if(secondConnectionAttempt) {
secondConnectionAttempt = false;
} else {
_spp_client = 0; _spp_client = 0;
}
xEventGroupClearBits(_spp_event_group, SPP_CONNECTED); xEventGroupClearBits(_spp_event_group, SPP_CONNECTED);
log_i("ESP_SPP_CLOSE_EVT"); log_i("ESP_SPP_CLOSE_EVT");
break; break;