ㅤ
А шлет туда флудом в лупе и хочет чтоб оно работало
Николай
Serjio
ну вот, решил же - вполне решение
Николай
Если я буду слать туда меньше чем буфер при его пустом значении?
Serjio
ну оно нерезиновое. у тебя слив на 5 литров в минуту, а ты заливаешь сверху 25 литров.
Николай
Я не могу слать с такой проверкой? Схера ли?
Николай
Николай
Но слать ток тогда когда там пусто
ㅤ
Serjio
ну. об этом там на скриншоте и говорят.
Николай
Прикол в том что када ошибка оно виснет в делее либовом на долго слетает конект
Николай
ㅤ
ㅤ
Потому что там выполняется флуш и он делает делей пока буффер не освободится
Николай
Если буфер пуст, шлем, нет, не шлем, так в лупе в чем трабл?
ㅤ
Код почитай библы ардуиновский и пойми принцип ее работы. Либо пиши сам на esp-idf
Николай
Николай
Прям слуш?
Николай
Уверен?
ㅤ
Я пасс.
Николай
хватит негативить и сливаться
ㅤ
Николай
ну а че
ㅤ
А что еще мне нельзя делать ? 🤡
Николай
я говорил, я говорил, и все
Николай
я умнее всех)
Николай
я не спорю, кстати. если я что то спрашиваю, по определению считаю себя тупее
ㅤ
Надо сесть код за тебя написать?
ㅤ
Я тебе дал направление в котором нужно копать.
Николай
Николай
вот в чем я не прав?
ㅤ
Еще раз повторяю. Вот как раз когда у тебя твоя программа "зависает", в этот момент он и пытается отправить буфер который ты ему засрал. До дна.
Николай
допустим буфер 16 байт. я отправил 8. луп, проверяю. не ушло, опять луп. и так далее пока там не будет пусто, опять отправляем.
ㅤ
Потому что там флуш - синхронная функция
Николай
ㅤ
Что проверить?
Николай
виснет оно не от слуша аллО!
Николай
ты сам нашел тогда делей кратный 100мс
ㅤ
А он еще и упертый. Ладно.
ㅤ
Короче все я сливаюсь
Serjio
ну код-то покажите?)
ㅤ
Дебагер тебе в руки
ㅤ
Ставь брейкпоинты и так далее
ㅤ
Николай
тут я накидал стресс тест
Serjio
Serjio
ну так вставить делей небольшой после каждого отправленного сообщения - но это костыль
Николай
Serjio
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())
ㅤ
Забавно он называет себя "тупым". Но когда ему пытаешься объяснить в чем он неправ, то "это ничего не даст", "Это тут не причем"...
Николай
Serjio
отсюдова
https://randomnerdtutorials.com/esp32-bluetooth-classic-arduino-ide/
Serjio
делэй 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, в ардуине, видимо, такого не завезли.
Николай
вот такая конструкция пашет, надо видимо сделать что то подобное для проверки буфера отправки
ㅤ
Николай
Serjio
о, ну вот. значит, завезли.