Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вс янв 03, 2016 2:33 pm

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

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

Re: Arduino Mega Server

Сообщение SPbDima » Вс янв 03, 2016 3:19 pm

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

Re: Arduino Mega Server

Сообщение SPbDima » Вс янв 03, 2016 3:31 pm

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

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

Re: Arduino Mega Server

Сообщение pastry777 » Вс янв 03, 2016 6:57 pm

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 КБ) 12499 просмотров
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server

Сообщение pastry777 » Вс янв 03, 2016 7:35 pm

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

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

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

Re: Arduino Mega Server

Сообщение SPbDima » Вс янв 03, 2016 8:51 pm

А чем вызвано использование указателя в получаемом значении функции?
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
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server

Сообщение pastry777 » Вс янв 03, 2016 8:56 pm

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

Re: Arduino Mega Server

Сообщение SPbDima » Вс янв 03, 2016 8:57 pm

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

Ты работаешь с указателем на первый эл-т массива, а не с самим массивом.
Последний раз редактировалось SPbDima Пн янв 04, 2016 11:06 am, всего редактировалось 1 раз.
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server

Сообщение pastry777 » Вс янв 03, 2016 9:14 pm

я еще раз повторюсь,я ничего не менял,функцию скопировал из амс так как есть...
скажем так,когда я писал далее по коду(не при инициализации) HTTP_req[REQ_BUF_SIZE] = {0};
строка тоже не затиралась...

вот что пишет,если убрать указатель...
Вложения
Безымянный.jpg
Безымянный.jpg (95.96 КБ) 12631 просмотр
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am
Благодарил (а): 9 раз
Поблагодарили: 21 раз

Re: Arduino Mega Server

Сообщение SPbDima » Вс янв 03, 2016 10:11 pm

Получается у Алекса глупость написана. Может сам придумал, может списал где. По поводу ошибки: объявление char str - означает str содержит 1 символ, а ты работаешь с str как с массивом. Самое простое это:

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

void http_req_clear() {
 for(int i=0; i<REQ_BUF_SIZE; i++)
  REQ_BUF_SIZE[i]=''; // либо чем обнулять хотите
} 
Ответить