Я пытаюсь создать приложение esp32, в котором у меня одновременно включены Bluetooth и Wi-Fi.
Bluetooth используется с профилем a2dp, где esp является приемником.После получения данных они должны быть опубликованы через сокет UDP в качестве широковещательной рассылки в сеть.
Проблема в антенне.И BT, и Wi-Fi делятся этим.Поток a2dp, кажется, постоянно получает антенну и выпускает ее очень редко (~ 2 пакета / мин, у меня ~ 3000 пакетов / мин).
Итак, мой вопрос: есть ли какой-то семафор, который можно приобрести, чтобы иметь полный контроль над антенной?Таким образом, мой сокет сможет отправлять данные в сеть?
Я использую свой esp32 с freeRTOS.Библиотека FreeRTOS написана на C, но я пытаюсь обернуть все в C ++.Тем не менее, я думаю, что эта проблема связана с C lib, поэтому я помечаю ее как C.
Я открыт для любых предложений, как это сделать.Заранее спасибо.
ОБНОВЛЕНИЕ :
Я использую release/v3.3
из официального репо esp-idf
.
У меня есть: CONFIG_SW_COEXIST_ENABLE=y
и CONFIG_SW_COEXIST_PREFERENCE_WIFI=y
Я не могу найти CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE
в моей конфигурации.
Упомянутая конфигурация не работает.
Я попытался прочитать сообщение, но не могу найти "scan_window
" или "scan_interval
" в моей библиотеке.Было написано, что оно находится где-то в gap_api
, но не может его найти.
Вот мой код + config: https://github.com/Dimfred/esp32_bt_streamer
Задача клиента сокета, которая должна транслироватьa2dp_msg
, запускается здесь: https://github.com/Dimfred/esp32_bt_streamer/blob/master/main/app/event_handler.cpp#L22
Все события, извлеченные из станции / точки доступа / bluetooth / a2dp, все фиксируются в event_handler.hpp / cpp