Resident
Resident
Content-Type точно правильный ?
Vlad
Vlad
нихера не работает это поделие нейросетей :)
да я и не удивлен уже
Vlad
❌ Почему не работает chunked POST
Библиотека HTTPClient не поддерживает полноценно чанкованную передачу данных. Метод sendRequest() можно использовать, но только если вы полностью формируете запрос самостоятельно, без вызова http.POST().
Также, даже если вы попытаетесь это сделать, не все серверы поддерживают чанковую передачу POST-данных, особенно PHP-скрипты по умолчанию.
—————-
но Qwen, походу, и быстрее и поумнее Дипсика
Resident
Resident
Мой вариант пробовал?
Vlad
Результат:
если заголовок пихать в коде Ардуино: http.addHeader("Transfer-Encoding", "chunked");
то мой сервер перестает подключаться разрешать :)
короче, как я понял, чтобы сервак _автоматически_ чанки собирал для PHP - надо nginx настраивать обязательно.
а счас скриптом НЕавтоматически - собирать чанки - таки возможно, своим PHP кодом, с дефолтными настройками.
так что и успокоюсь, API все равно своё PHP-шное
Resident
Vlad
Vlad
Evgeniy
Это библиотеки из ардуино?
Vlad
да, но это код непосредственно с потоком, текстовое формирование запросов
Evgeniy
Интересно, где такие проблемы возникли - IDF?
Vlad
Интересно, где такие проблемы возникли - IDF?
нет, но это с дефолтным PHP 8.4 сервером.
вот кстати, если бы найти РАБОЧИЙ ХОТЬ КАК-ТО ардуиновый код с PHP-сервером - это было бы вариантом минимально-рабочим.
но я пока не нашел
Evgeniy
Находил такую инфу:
esp_http_client_open(client, -1);
When you open with a write_len of -1, it will set the "Transfer-Encoding" header to "chunked" automatically. It will also force the http method to POST. (see http_client_prepare_first_line() in the source code https://github.com/espressif/esp-idf/bl ... p_client.c)
Evgeniy
Возможно в этом и решение.
Max
ㅤ
Anton
опа, продолжение моего бага подъехало: https://github.com/espressif/esp-idf/issues/7045
ok-home
ㅤ
да
Да, я тоже парочку заказал, исключительно ради c5. Че-то пока не пришли. Ибо c5 отдельно в продаже не нашел
Resident
Vlad
Core panic ловишь?
хз, удалённый контроллер, но ребутится по Собаке.
исходная причина тоже уже понятна - торможения сервера когда начинаются.
раньше в коде таймаут стоял 5 секунд - буталось гораздо чаще.
счас поставил 8 сек - уже реже
Vlad
Anton
ога, переоткрыли, мож таки докопаюццо и чего-нить поправят
я в своё время покопался, но там дебри mbedtls начались и я бросил. что смог отрепортил. вот, смотрю там очередной заход пошёл. я как понял, там закавыка с надёжностью канала в момент установления секурного соединения. обошёл я это ручными таймаутами на повторяющийся EAGAIN с переоткрытием соединения
Vlad
Vlad
Сергей
а i3c это не странный мем разве? только увидел и охринел немного, реально такое задумали?
Evgeniy
Evgeniy
Evgeniy
Там вроде доступны эти же функции
Vlad
ну там же не просто активировать настройку приходится (типа что-то включить\выключить в idf), а все объекты для http другие
Сергей
ㅤ
ㅤ
Сергей
Что?
ну типо i2c. только революция и называется i3c
лучше моложе там умнее сильнее
ㅤ
Vlad
Каких
не помню уже, помню, что там было много навешано датчиков, штук 7 разных, и аналоговых, и i2c, и spi, и 1wire.
и я долбался что часть не работала.
пока не перепаял всю мотню на другую платку
Anton
Anton
esp_http_client_config_t config = {
.url = url, //
.method = HTTP_METHOD_POST, //
.event_handler = _http_collect_data_handle, //
.user_data = &ret->body, //
.timeout_ms = 10000, //
.is_async = false, //
.disable_auto_redirect = true, //
};
esp_http_client_handle_t client = esp_http_client_init(&config);
esp_http_client_set_header(client, "Content-Type", "application/x-www-form-urlencoded");
esp_http_client_set_post_field(client, post_data->data, str_length(post_data));
esp_err_t err = esp_http_client_perform(client);
Сергей
Anton
Anton
Vlad
хмм, а какую еще ерунду можно слать, если сервак отказывается чанки хавать в текущем состоянии
Anton
я вчера свои сорцы пошерстил, помню, что делал чанкед сам и даже на ардуино-фв сколько-то лет назад. не нашёл...
Anton
я по итогу на есп-идф полностью перешёл. даже драйвера под рфид-ридер свои написал вместо ардуиновских
Vlad
суть в том, что упор сделан на дешевые shared-хостинги (со стандартным php & maria db), на которых быстро разворачивается копия проекта кода & api.
один такой хост - одна небольшая группа датчиков.
проект отлажен, масштабирован - ну, не до переписывания всего с нуля.
поэтому вот рамки ограничений таковы.
Evgeniy
Такие хостинги зачастую имеют ограничения по настройкам, рассчитаны на сайтики, на питоне backend гибче будет
Vlad
т.е. приходится плясать в означенных рамках.
но к датчикам потихоньку требования растут, данные частотного анализа - большие.
можно и контроллеры брать с PSRAM, и VDS-серваки плодить и башлять за них почем зря, пока нормально не продашь проект...
ᅠDin
Привет. Помогите пожалуйста, купил esp32s3, припаял к адаптеру, подтянул ресет и гпи0 и ен к 3.3в. Плата прошивается, но он не "запускается" и как я понял он в бутлупе, постоянно выводит эти данные. Загуглив ошибку, на иностранных форумах нашел похожие проблемы, но как починить это я так и не понял. Может вы можете подсказать?
ᅠDin
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40376a62
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x118c
load:0x403c8700,len:0x4
load:0x403c8704,len:0xc20
load:0x403cb700,len:0x30e0
entry 0x403c88b8
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x3 (RTC_SW_SYS_RST),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x40376a62
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce2820,len:0x118c
load:0x403c8700,len:0x4
load:0x403c8704,len:0xc20
load:0x403cb700,len:0x30e0
entry 0x403c88b8
Resident
с какого блока записывал ?
ㅤ
ᅠDin
А что записываешь туда и чем?
В начале хотел еспхоум, он нормально прошивается, но к вай фай не подключается. Сейчас пробую залить через Ардуино Иде, он так же успешно прошивается, но в выводе порта выдает что я скинул. Единственное, почитав форумы, я выбрал в флешмод и psram - OPI, и загрузил миналку светодиодом. Он работает, но как то странно и в выводе порта выдает также теже данные постоянно.
Прошиваю с помощью Arduino nano. Есть ещё usb ttl (ch340) но он что-то ничего не прошивает
Anton
Anton
Vlad
а на вордпрессе дешевле :)
нет, это одно и тоже же, с точки зр. сервера.
в сервере же суть, а мк просто клиент, НЕ ЛЮБЫЕ запросы которых НЕ любой сервак готов хавать
Anton
Anton
давай по порядку. откуда вообще взялся чанкед?
Vlad
давай по порядку. откуда вообще взялся чанкед?
1) я сделал fft на esp32 и нужно отправлять результат на shared-хостинг PHP (глубинные настройки сервера т.е. недоступны).
2) ограниченный объем данных (после анализа полного спектра) обычным POST - уходит счас на сервер ОК (PHP api свой самописный).
3) но счас думаю про отправку полного спектра частотного анализа, RAM не хватает у обычных esp32 без extra PSRAM.
Колобок подкинул идею про chunked.
Vlad
Evgeniy
Вот не понятно: в приёме POST запроса чтение делается порциями заданного размера.
Почему нельзя при отправке POST сделать также, собирая JSON на лету и даже без Chunked?
Evgeniy
@testtest133 что думаешь?
Vlad
Anton