Dmytro
Anton
попробовал увеличить скорость переключения до 1000 в секунду. ничего не поменялось
Dmytro
Возможно стоит отдавать побольше. Но в любом случае вот эта дополнительная робота с вочдогом не нужна. У вас же срабатывало и без esp_task_wdt_reset ?
Void
menuconfig вырубить гавкалку. И забыть. Когда дойдет до тестов включить.
Anton
Anton
хм
Anton
if (delay_time < 10) delay_time = 10; — и больше не гавкает...
Anton
делей для выравнивания, чтобы один "кадр" был ровно 100 мс
Void
С тасками делай это пипец как не нормально.
Anton
в плане?
Anton
это изначально придумано для анимации "процесс идёт"
Anton
ровно в 100мс попадать не так важно, как просто "не торопиться" и отдавать тики
Dmytro
Anton
то есть, это вообще не то, для чего, нарпимер, микросекундный делей в ардуино
Anton
по сути, это информация шедулеру "не трогать меня до такого-то тика"
romanetz
Anton
Не совсем
выслушаю уточнение с удовольствием
Anton
Void
Что скрывается за делай_мс?
Dmytro
Anton
if (delay_time < portTICK_PERIOD_MS) delay_time = portTICK_PERIOD_MS; — всё равно печатает delay: 10
Anton
Anton
лан, пойду воздухом подышу. за беседу про собаку спасибо
Dmytro
почему?
Каждая смена контекста (между задачами) отнимает время. А вы их количество увеличили в 10 раз. В документации espressif вроде встречались пределы, можно поискать. Когда тикрейт быстрее чем стоит - ничего просто не будет нормально работать
romanetz
Немного, впрочем. На 1khz это что-то в районе единиц %
romanetz
На 10 khz - ну, десяток, может, 15
Anton
Anton
Anton
и почему ж ресет собаки ничего не даёт?
Anton
if (delay_time < portTICK_PERIOD_MS)
taskYIELD();
else
vTaskDelay(delay_time / portTICK_PERIOD_MS);
срабатывает собака
Anton
и? унутре там что? что делать надо?
Anton
я ж не пользуюсь ардуино-фреймворком
Slava
ок
Anton
ардуино фреймворк сделан поверх esp-idf, иногда там можно интересный код выцепить. но в случае сторожевой собаки мне вчера не удалось понять что же я делаю не так
Anton
гм. поднял тик рейт до 1000, скорость "кадра" упала где-то на половину процента, но собака перестала гавкать совсем
Anton
короче, сторожевая собака мне осталась не до конца понятной. кроме как что надо давать задаче спать хотя бы один тик, я ничего не понял. ресет через esp_task_wdt_reset();
taskYIELD();
ничего не даёт. что мне не понятно.
Dmytro
Anton
я пока что просто пытаюсь понять собаку...
I
в ESP8266 вотчдог успокаивается с помощью system_soft_wdt_feed
I
не надо reset
Slava
Dmytro
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/wdts.html#task-watchdog-timer
Andre
Вопрос по OTA, пример OTAWebUpdater.
Там используется скрипт
"<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script>"
Всё бы хорошо, но если ESP используется как точка доступа (без интернета), к которой подключается телефон, то телефон не сможет загрузить файл прошивки, так как весь этот HTML не отработает, потому что не получится скачать скрипт из интернета.
Как это обойти?
Я не владею HTML, не говоря об ajax, js итд.
Anonymous
jquery.min.js закатай на флеш ESP32
Andre
jquery.min.js закатай на флеш ESP32
можно ли написать
const char* googleScript = "всё это мясо по ссылке из https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"
?
Andre
jquery.min.js закатай на флеш ESP32
отдавать, полагаю, надо кодом вроде:
server.on("/script", HTTP_GET, []() {
server.sendHeader("Connection", "close");
server.send(200, "text/html", googleScript);
});
?
Anonymous
garik
Технически, никто не мешает отдать и из строки, но это аццкое извращение. Content-Type только надо "text/javascript". Если есть возможность переписать без jquery, лучше это сделать
Andre
Anton
garik
garik
Ради отправки одной формы
Anton
можно ж в data положить
garik
Anonymous
Переписать не смогу. На HTML могу максимум простые теги использовать. Пока попробую запихать в себя скрипт, и отдавать его.
Примерно так переводится
function getByteArray(file){
let fileData = file.toString('hex');
let result = [];
for (let i = 0; i < fileData.length; i+=2)
result.push('0x'+fileData[i]+''+fileData[i+1]);
return result;
}
// Gzip the jquery.min.js file with JS Code.
const gzippedIndex = zlib.gzipSync("jquery.min.js", {'level': zlib.constants.Z_BEST_COMPRESSION});
let indexjs = getByteArray(gzippedIndex);
const uint8_t WEBSERIAL_HTML[] PROGMEM = = { ${indexjs} };
garik
romanetz
romanetz
Прям файлы как есть можно закатывать в прошивку
romanetz
Я вот прям на днях так jschart закинул на веб страницу. Пример с интернета взята, нагуглил. Модифицировал - вместо http запросов через вебсокет данные пуляю
garik
Так и до npm install скоро докатимся 😄
romanetz
И сборки прошивки на самом себе? )
garik
Anonymous
romanetz
romanetz
Если esp32 нужен ради чего то другого, пустая флешка никакого гешефта не приносит никому, не пользователю, ни создателю
garik
Тоже верно