• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Постоянная загрузка данных.

pvvx

Активный участник сообщества
А во-вторых, с чего Вы взяли, что врач (ЕСП) работает медленнее, чем указано в графике регистратуры (браузера)?
Ваш врач увидев 5 человек хлопает дверью и уходит с работы. :)
Если Ajax по таймеру, то запросы накапливаются в очереди и когда связь прорвется, то все они и ринутся одновременно :p
 

pvvx

Активный участник сообщества
В запросе на js для Ajax есть установка таймаута на него. И он завершиться с передачей ошибки - нет ответа. Следующий запрос вызывают по приему ответа или ошибки, а не по таймеру.
 

ART_HA

Member
Ваш врач увидев 5 человек хлопает дверью и уходит с работы. :)
Мой врач не видит этих пять человек, потому что они в коридоре.

ESP на него не ответила.
Чего бы ради не ответила-то?

Если Ajax по таймеру, то запросы накапливаются ...
Еще раз: если ядро не в состоянии обслужить запросы, то такой МК заведомо не работоспособен.

В запросе на js для Ajax есть установка таймаута на него. И он завершиться с передачей ошибки - нет ответа.
Да с чего это вдруг ответа-то нет?
 

pvvx

Активный участник сообщества
Но это тоже не спасет дела ESP. Вы всё равно не исправите неправильную работу с TCP у ESP и даже не сможете ничего сделать на ней работающего согласно минимальным рекомендациям RFC. ESP служит только для ознакомления азам с малыми примерами (и то устаревшими на сегодня), а не для рабочих устройств.
 
Мой врач не видит этих пять человек, потому что они в коридоре.
"Врач" выходит в коридор и спрашивает "кто следующий"? При виде 5 человек сидящих на 4 стульях начинает ругаться на ковид и отказывается работать пока лишние не выйдут. :)
Чего бы ради не ответила-то?
не может. лишних пациентов в коридоре гоняет?
И при этом отлично себя чувствует!
В приниципе да, только пациентов в это время не лечит(ваш код не выполняет)
 

ART_HA

Member
Но это тоже не спасет дела ESP. Вы всё равно не исправите неправильную работу с TCP у ESP и даже не сможете ничего сделать на ней работающего согласно минимальным рекомендациям RFC. ESP служит только для ознакомления азам с малыми примерами...
Посмотрите плиз заголовок темы.
Там поставлена задача вывода с ЕСП значения на экран компа или смартфона чаще, чем раз в секунду.
Разве это не малый пример?

"Врач" выходит в коридор и спрашивает "кто следующий"? При виде 5 человек сидящих на 4 стульях...
При наличии в очереди к нему в коридоре 5 человек сидящих на 4 стульях такая ситуация невозможна.

В приниципе да, только пациентов в это время не лечит(ваш код не выполняет)
Как же не лечит, когда у него пациент на приеме сидит?
 
ESP служит только для ознакомления азам с малыми примерами
Или прототипирования различных задач, на которых важен результат (моргание лампочками) а не внутренняя реализация. В моем примере надо показать на экране смартфона расстояние с лазерного датчика. Как это реализовано пока не важно. Важно чтобы все детали продавались по 1-2 штуки одновременно на амазоне и алиэкспрессе (чип и дипе), было много примеров работающего кода с этим датчиком.
Замена esp?
При наличии в очереди к нему в коридоре 5 человек сидящих на 4 стульях такая ситуация невозможна.
Еще как возможно. Подумайте а кто именно в ESP отличает 5 человека скажем от 4 и кто рассаживает их по стульям? Насколько помню отдельного процессора под это не предусмотрено, будет использоваться тот-же самый что считает вашу задачу.

Как же не лечит, когда у него пациент на приеме сидит?
Дык говорю: врач в коридоре - очередь строит.
 

ART_HA

Member
Еще как возможно. Подумайте а кто именно в ESP отличает 5 человека скажем от 4 и кто рассаживает их по стульям?
По Вашей аналогии никто. И уж точно не врач. И не потому, что он медленно работает, а потому, что ему этим заниматься некогда - он обслуживает очередного пациента.
Иными словами, если при запросах каждые 0,1 сек. ЕСП будет зависать или отваливаться, то придется снизить частоту запросов. Но т.к. таких катаклизмов не наблюдается, значит ЕСП успевает обрабатывать все запросы.
 
По Вашей аналогии никто. И уж точно не врач.
как раз врач. Кто ж еще? специального сопроцессора(медсестры) у 8266 для этого нет. Вот в ESP32 посадили двух врачей, но как я понял это только бардака добавило :)
он обслуживает очередного пациента.
Есть такое слово "прерывание". В нашем примере аналогом будет звонок главврача типа "Семенова почему у вас в очереди больше 4 человек!! немедленно разберитесь!". Пациент идет лесом, точнее сидит в кабинете. врач разруливает коридор.

успевает обрабатывать все запросы.
а как вы это проверяете? В loop выводите на пин и проверяете осциллом?
то придется снизить частоту запросов
правильнее уменьшить их число.
 

pvvx

Активный участник сообщества
Если вам понятны только бытовые аналогии, раз нет понимания в технической документации, то ESP представляет из себя автомобиль, в который залез абориген не знающий правил.

По дачному участку его можно пустить “кататься”, а на дорогах общего пользования он возможно аварию и не создаст, т.к. ума, надеюсь хватит на уклонение от встречных авто, но на последствия у оказавшихся рядом ему совсем наплевать. На большее писатели Arduino и не смогли – они вставили только патчи в LwIP с нарушениями всех правил – либо они их не знают, или считают что хулиганство в сети это норма.

Чтобы сделать хоть какое-то соответствие RFC вам придется переписать SDK, дизасемблировав, обратно исправить LwIP, установить в нем оптимальные настройки с динамическими буферами.

Тогда кол-во одновременно открытых соединений и файлов будет примерно как в Web-свелке – в пределе к сотне. Далее надо будет ввести ограничение с таймаутами на открытие соединеений при увеличении кол-ва TCP перешедших в состояние TIME_WAIT и запоминать номер кольцевого счетчика портов в RTC, если используется deep-sleep.

Но это всё невозможно в Arduino и при использовании структур-функций C++. Они слишком много жрут ресурсов, а их и так критически не хватает в ESP для простейшего TCP.
 

pvvx

Активный участник сообщества
Если вы не в состоянии произвести такую работу с ESP8266, то довольствуйтесь только UDP.
 
то ESP представляет из себя автомобиль, в который залез абориген не знающий правил.
Совершенно верно, именно под это он заточен, и поэтому выстрелил. Вот я например веб разработчик, пишу на C# и javascript, в принципе могу разобраться в чем угодно. :)
надо по быстрому склепать прототип для показа идеи стартапа. Купил пучок esp32 и esp8266 ? быстро погуглил примеры, подправил под себя. Все работает почти как и планировалось. Правда как и предупреждали ESP32 глючит на народных либах куда больше esp8266 так что вернулся пока на 8266. Худо бедно проект собрался и работает и заказчик счас пытается продать идею стартапа.
Что вы можете предложить на замену esp в такой ситуации?

Если вы не в состоянии произвести такую работу с ESP8266, то довольствуйтесь только UDP.
В пример носом не ткнете? Напомню: надо прочитать значение с лазерного датчика расстояния и вывести его на экран смартфона... в цикле...быстро.... желательно чтобы контроллер мог пнуть телефон а не наооборот (но это уже необязательно)
 

pvvx

Активный участник сообщества
В пример носом не ткнете? Напомню: надо прочитать значение с лазерного датчика расстояния и вывести его на экран смартфона... в цикле...быстро.... желательно чтобы контроллер мог пнуть телефон а не наооборот (но это уже необязательно)
Шлете UDP пакетики с ESP82 и принимаете в своем приложении на смарте.
И желательно никаких multicast, особенно broadcast. WiFi для этого не предназначен - он разбудит все спящие устройства... Если уж совсем в нетерпеж - используйте WiFi6 :)
 
Сверху Снизу