ESP32: HTTPS + Bluetooth - нехватка оперативной памяти

А если бы вы знали, в чём проблема, то этого обсуждения не было бы вовсе. К чему эта полемика?)

Ещё раз повторюсь: пост для тех, кто работал с HPPTS и Bluetooth в одном проекте и сталкивался с такой проблемой, а не для конкретно вас)

Где я “быканул”? Я считаю, что вы недопустимо общаетесь с незнакомым вам человеком, приводя абсолютно неуместные метафоры. И грубы тут вы, пора бы обратить внимание на своё поведение)

Вашу позицию я понял, удачи.

Да, я ничё, не хотите решать проблему – не решайте, не моя ж проблема. Предпочитаете просто потрындеть – кто я такой, чтобы Вам запрещать? Удачи!

братишь, давай я тебе как тупенькому, разъясню. Мущина с поросем на аватарке имел в виду, что вы, болезные, никак себе не можете поместить в ваш ссохшийся от просмотра рилсов мозг простую мысль о том, что надо бы выучить базовые принципы существования материи, вместо того, чтобы упираться в детали конкретной реализации того или оного куска оной. А ты сразу в оппозицию, ну чтоты как киркоров, прости Г-споди.

Не трать сил, братиШЬ)

Действительно жопа. Даже забавно: решение задачи — просто перейти с HTTP на HTTPS на ESP32 —, по-видимому, не представляется возможным в связке с Bluetooth.

Если кто-то столкнулся с такой же проблемой, советую рассмотреть вариант: вместо HTTPS использовать WebSocket (с WSS) и BLE. Благо для BLE есть авторские легковесные библиотеки, такие как NimBLE library или esp32_ble_light. Возможно, что-то и выйдет.

Мои проверки на проекте, созданном с нуля:
Обязательно нужно производить инициализацию Bluetooth ТОЛЬКО после инициализации WebSocket!

  1. WebSocket (WSS) + классический Bluetooth (не BLE).
    WebSocket соединился с сервером, но точку Bluetooth не видят другие устройства (хотя ESP32 память выделил).

  2. WebSocket (WSS) + BLE (встроенная библиотека ESP32).
    WebSocket соединился с сервером, точка Bluetooth даже видна, но через какое-то время (10–15 минут) соединение с сервером по WebSocket разрывается. Кроме того, оперативной памяти остаётся впритык, и эту реализацию сложно вставить в нормальный проект.

Буду пробовать другие библиотеки (например, NimBLE) и отпишу, что да как, когда руки дойдут.

На всякий случай, вот ссылка на обсуждение на иностранном форуме с адекватными людьми. Может там что-нибудь всплывет:
https://forum.arduino.cc/t/esp32-https-bluetooth-lack-of-ram/1344865/5

Ну, вот проблема и закрыта, можно идти пить пиво.

:sweat_smile:

Действительно - адекватные люди:
JimLee: Where are you freeing the string you allocated with malloc()?
Zeembro: Thank you, yes, you’re right, but it’s not critical in the context of the problem.
JimLee: Your problem is running out of RAM. So a memory leak is not critical? Ok

У каждого свои представления об адекватности)

В текущем диалоге нет ничего особенного

Он и там права качал и заявлял знающим людям, что ему виднее, что “critical”, а что не “critical”. Как и здесь.

Похоже, мои слова о том, что если бы он знал что здесь “critical”, то и темы бы этой не было, пролетели мимо мозгов (или того, что их заменяет). Как и совет, что делать. Сделал бы, что советовали, глядишь, и решилась бы проблема, а так … что …

Аминь.

Дружище, если что-то не critical, значит я это тестил, а не с неба взял. Если не можете ничем подсказать, просто не пишите под этот пост, спасибо. Ваши слова обсолютно не уместны и излишне

Дружище, если бы Вы умели тестить, то … (дальше Вы знаете)

Я Вам подсказал, просто Вы не можете понять, что лопатить код, вставлять в него отладочный вывод и изучать его – это и есть тот секретный способ отладки программ, который профи тщательно скрывают от новичком. И что по-другому программы не отлаживаются.

Простите, но я всегда сам решаю что и где мне писать или не писать. И впредь намерен поступать так же.

Ладно, продолжай писать, я разрешаю

Мы уже на ты? Опечатка или естество попёрло? Впрочем, мне пофиг, можете не отвечать.

у тебя позиция какая-то дебильная, в сумме на двух языках факты с двух форумов:

  1. прошивка падает с сообщением о нехватке оперативной памяти
  2. в 72 строке у тебя память течет в явном виде
  3. о пункте 2 тебя уведомили минимум по одному разу на каждом языке
  4. ты на это ответил людям: пофиг; вы не поняли, проблема в другом, ищите дальше; это некритично.
  5. ты не распознаешь сарказм - это явная психопатология, тут такие периодически проявляются, лучше всех все знают, усираются, но не поддаются. ты из таких? бывает)
  6. Мущина с поросем на аватарке(с) один из самых терпеливых думающих людей здесь, ну ты и это просрал.

вывод напрашивается неутешительный

1 лайк

братиШЬ, сходи покури, пивка выпей там не знаю. Напряженный ты какой-то…

зато не тупой.

1 лайк

Казалось бы, что проще - добавь ты в код очистку выделенной памяти и закрой вопрос с этим malloc. Заодно и докажешь всем, критично это или нет.
Ну нет, мы будем спорить на двух форумах и обзывать всех неадекватами.

Тестил и оставил ошибку? ну хорош врать-то…
Судя по обсуждению, ты просто в упор не понимаешь, как пользоваться динамической памятью… с учетом этого все твои рассуждения о том, что тут критично а что нет - пустой звук.

3 лайка

А почему вы молчите насчет websocket? Ту библиотеку, которая гуляет на просторах инет мне пришлось сильно переработать, поскольку нещадно жрала память. Я реализорывал управление lg webos управление.

То, что bluetooth реализация для esp32 написана криво - совсем не умоляет, что пользоваться ей можно, только постараться проанализировать ее в рамках вашей реализации. Например вынести некоторые переменные в область констант или программный код. И дело тут не в https. У меня на esp8266 реализация websocket+https+igmp. Попатеть пришлось много, чтобы все уместить.

то, что они вежливые - вовсе не значит, что они беззубые, не обольщайтесь. А особо упертые там попадают в специальную ветку славы :slight_smile:

1 лайк

Легенда, братиШЬ