Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Судя по всему, размер можно сделать любым, лишь бы память позволяла, а на Меге её просто нет (вся занята). А на Дуе можно попробовать — должно хватить.
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm

Re: Arduino Mega Server

Сообщение pastry777 »

это лишь 800 байт и на меге хватает пока еще..в принципе решил вопрос созданием другой строки,в которую собираю уже полный запрос,не вмешиваясь в алгоритм всех тех родных переменных,но это наверняка не оптимально...но пока так...
эти 800 байт конечно нужны в оперативке,но кратковременно,как буфер:собрали весь запрос,вытянули с него необходимый POST,у меня это порядка 50 символов обычно,остальное тут же удалили....вот пишу и думаю,что в качестве буфера можно и SD задействовать=)ну,потеряв в скорости обработки,конечно...

вопрос закрыт,нашел способ собрать POST и без этого всего огорода,без буфера в смысле,штатными средствами родного скетча,добавив буквально один цикл for=)
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Тут нужно помнить, что 800 байт это 10% памяти и те 2000 байт, которые показываются свободными на самом деле не существуют — это пограничная зона стека и кучи.

Заберёте 800 и может случиться ситуация, когда как раз их не хватит для сжатия и разжатия и пойдут глюки.
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am

Re: Arduino Mega Server

Сообщение SPbDima »

Alex, приведение к String для вывода:
Serial.print("i="+String(i));
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am

Re: Arduino Mega Server

Сообщение SPbDima »

pastry777, всё правильно, в GET запросе только параметры запроса(128 символов за глаза и за уши), а все данные передаются в теле POST запроса, только будьте внимательны! проверяйте количество загруженных символов в ардуино из-за размера буффера шилда, иначе при появлении багов, из-за не полностью загруженной информации, голову сломаете. Пример можете взять с отправки новых настроек температурных датчиков в sensors.js.

Проверить загрузку jpg смогу только 9 января. Но можешь сам проверить сравнив содержимое файлов на SD и на ПК
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm

Re: Arduino Mega Server

Сообщение pastry777 »

SPbDima писал(а):pastry777, всё правильно
спасибо,этот вопрос отпал,нашел решение даже более практичное!
с картинками не смогу сам ничего сделать,не соображаю...файл на сд меньше размером,чем исходный на компе..

вылезла новая проблема,функция очистки массива char из AMS в ее первозданном виде не работает вообще!
несколько часов потратил пока вообще нашел в чем проблема,так еще и решения не вижу=(

Код: Выделить всё

void StrClear(char *str, char length) {
  for (int i = 0; i < length; i++) {
    str[i] = 0;
  }
}
 
Вложения
screenshot_Sun_Jan_03_18.02.29.jpg
screenshot_Sun_Jan_03_18.02.29.jpg (419.97 КБ) 13030 просмотров
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm

Re: Arduino Mega Server

Сообщение pastry777 »

может кому еще пригодится,спасла только вот эта нагугленная штука:

Код: Выделить всё

memset(&HTTP_req, 0, sizeof(HTTP_req));
 
[/size]
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am

Re: Arduino Mega Server

Сообщение SPbDima »

А чем вызвано использование указателя в получаемом значении функции?
void StrClear(char *str, char length)

у Алекса инициализация происходит следующем способом:
char HTTP_req[REQ_BUF_SIZE] = {0};

Так зачем городить огород?
Последний раз редактировалось SPbDima Вс янв 03, 2016 8:56 pm, всего редактировалось 1 раз.
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm

Re: Arduino Mega Server

Сообщение pastry777 »

если б я знал=)
функцию взял из амс как была...
и по всем форумам этот цикл тоже предлагают само-собой,ну что там ведь,просто перебор и нолик вписываем,ведь правда...
не работает!
но!я пробовал указатель убирать,когда экспериментировал,среда разработки сразу ругалась...
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am

Re: Arduino Mega Server

Сообщение SPbDima »

Переменная глобальная, поэтому её не нужно передавать в функцию

Ты работаешь с указателем на первый эл-т массива, а не с самим массивом.
Последний раз редактировалось SPbDima Пн янв 04, 2016 11:06 am, всего редактировалось 1 раз.
Ответить