А шлет туда флудом в лупе и хочет чтоб оно работало
Serjio
ну вот, решил же - вполне решение
Николай
Если я буду слать туда меньше чем буфер при его пустом значении?
Serjio
ну оно нерезиновое. у тебя слив на 5 литров в минуту, а ты заливаешь сверху 25 литров.
Николай
Я не могу слать с такой проверкой? Схера ли?
Николай
Но слать ток тогда когда там пусто
Но слать ток тогда когда там пусто
Тебе в третий раз повторить?
Serjio
ну. об этом там на скриншоте и говорят.
Николай
Прикол в том что када ошибка оно виснет в делее либовом на долго слетает конект
Николай
Потому что там выполняется флуш и он делает делей пока буффер не освободится
Николай
Если буфер пуст, шлем, нет, не шлем, так в лупе в чем трабл?
Код почитай библы ардуиновский и пойми принцип ее работы. Либо пиши сам на esp-idf
Николай
Прям слуш?
Николай
Уверен?
Я пасс.
Николай
хватит негативить и сливаться
хватит негативить и сливаться
Что делать? Сливаться?
Николай
ну а че
А что еще мне нельзя делать ? 🤡
Николай
я говорил, я говорил, и все
Николай
я умнее всех)
Николай
я не спорю, кстати. если я что то спрашиваю, по определению считаю себя тупее
Надо сесть код за тебя написать?
Я тебе дал направление в котором нужно копать.
Николай
вот в чем я не прав?
Еще раз повторяю. Вот как раз когда у тебя твоя программа "зависает", в этот момент он и пытается отправить буфер который ты ему засрал. До дна.
Николай
допустим буфер 16 байт. я отправил 8. луп, проверяю. не ушло, опять луп. и так далее пока там не будет пусто, опять отправляем.
Потому что там флуш - синхронная функция
Что проверить?
Николай
виснет оно не от слуша аллО!
Николай
ты сам нашел тогда делей кратный 100мс
А он еще и упертый. Ладно.
Короче все я сливаюсь
Serjio
ну код-то покажите?)
Дебагер тебе в руки
Ставь брейкпоинты и так далее
Николай
ну код-то покажите?)
https://forum.arduino.ru/t/esp32-oshibka-blyutuz/10017
Николай
тут я накидал стресс тест
а там выше скриншот - он откуда?
Ты посмотри его "стресс тест" и он удивляется что код виснет. Он в лупе без делея что-то шлет
Serjio
ну так вставить делей небольшой после каждого отправленного сообщения - но это костыль
Serjio
10мс делей нельзя? что он, сломает коннект?
Николай
все равно засрет
10мс делей нельзя? что он, сломает коннект?
Про многозадачность он тоже не слышал.
Николай
даже 100мс
Serjio
этот скриншот - он не из ардуины
Николай
этот скриншот - он не из ардуины
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/bluetooth/esp_spp.html#_CPPv413esp_spp_write8uint32_tiP7uint8_t
Serjio
if (Serial.available())
Забавно он называет себя "тупым". Но когда ему пытаешься объяснить в чем он неправ, то "это ничего не даст", "Это тут не причем"...
Николай
if (Serial.available())
это буфер чтения
Serjio
отсюдова https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/
Serjio
делэй 20
Николай
ты вообще не о том
делэй 20
Забей. Не трать время)
Николай
там прием буфера чтения с сериала, и отправка в бт
Николай
void loop() { if (Serial.available()) { SerialBT.write(Serial.read()); } if (SerialBT.available()) { Serial.write(SerialBT.read()); } delay(20); }
Николай
вы че, тут о другом вообще
Serjio
о чем? после serialBT.write, перед следующим таким - задержка как минимум 20 по твоей ссылке - не из ардуины дока. сделай как в примере есп-идф
Serjio
пойду кино смотреть
Николай
ап
Николай
Я вангую оно встает в этой функции. Здесь как раз проверка освобождения очереди через 100 мс
Николай
Вот ты и получаешь свои чудесные цифры 100 200 300 400
Serjio
проверять - в esp-idf, в ардуине, видимо, такого не завезли.
SSR
🤦‍♂️ ой все. Я тебе объяснял и это тоже
Так чё, ты заказываешь склад, я пишу скетч?
Николай
вот такая конструкция пашет, надо видимо сделать что то подобное для проверки буфера отправки
Николай
Так чё, ты заказываешь склад, я пишу скетч?
ок, скок ты хочешь за разжовывания?
Serjio
о, ну вот. значит, завезли.