Страница 107 из 326

Re: Arduino Mega Server

Добавлено: Пт янв 15, 2016 3:55 pm
Alex
Вполне может быть. Спасибо, в ближайшее время заменю.

Re: Arduino Mega Server

Добавлено: Пт янв 15, 2016 8:39 pm
SPbDima
Ошибочный запрос возвращается с кодом 200 OK

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

void sendErrorAnswer(char mess[], EthernetClient cl) {
  cl.print(mess);
  cl.println(F(" ERROR"));
  cl.println(F("Connnection: close"));
  cl.println();
}
Правильнее было бы, что то типа:

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

void sendNotImplemented(char mess[], EthernetClient cl) {
  cl.println(F("HTTP/1.1 501 Not Implemented")); 
  cl.println(F("Content-Type: text/html")); 
  cl.println(F("Connnection: close")); 
  cl.println();
  cl.println(mess);
}

Re: Arduino Mega Server

Добавлено: Пт янв 15, 2016 8:52 pm
Alex
Спасибо, буду иметь в виду.

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 12:49 am
SPbDima
Alex, как тебе удобнее выкатывать замечания/предложения по коду?
Пока буду писать подробно по каждому:

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

// timers
unsigned long timeSec; // time in seconds
unsigned long timer1s;  boolean cycle1s = false;
unsigned long timer4s;  boolean cycle4s = false;
unsigned long timer20s; boolean cycle20s = false;
unsigned long timer30s; boolean cycle30s = false;
unsigned long timer1m;  boolean cycle1m = false;
unsigned long timer3m;  boolean cycle3m = false;
unsigned long timer5m;  boolean cycle5m = false;
int startSendTime = 10;
почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 7:13 am
Alex
Подробно по каждому это отлично.

Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
э-э... Что-то я не соображу...

Во-первых так «системнее»

Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.

Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 7:33 am
Alex
Кстати, SpbDima, вы, судя по всему, человек активный и квалифицированный, было бы неплохо, если бы вам удалось решить проблему с Ethernet библиотекой, сокетами и медленной и некорректной сетевой работой АМС.

Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.

Вот это было бы реально круто и ценно для проекта и пользователей.

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 2:16 pm
SPbDima
Alex писал(а):Подробно по каждому это отлично.

Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
э-э... Что-то я не соображу...

Во-первых так «системнее»

Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.

Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
10 сек окно?
Истина при инициализации нужна, чтоб отработали все функции при первом проходе в loop. В конце loop идёт проверка временных диапазонов(кода перед глазами нет, но вроде так).

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 2:50 pm
SPbDima
Alex писал(а):Кстати, SpbDima, вы, судя по всему, человек активный и квалифицированный, было бы неплохо, если бы вам удалось решить проблему с Ethernet библиотекой, сокетами и медленной и некорректной сетевой работой АМС.

Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.

Вот это было бы реально круто и ценно для проекта и пользователей.
У меня и с Ethernet идёт "проглатывание". Но для меня сейчас главное другое:
1. Работа температурных датчиков с конф-файлом, логами и управляющими командами на выход из рабочего диапазона температуры для ds18x20, DHTxx и скоро какой-то новый датчик придёт. Плюс вывод информации на ВЕБ-страницу.
2. Работа с картой памяти с ВЕБ-страницы(upload/download)
3. Доработка библиотеки dallastemperature, либо отказ от неё, т.к. она использует Delay - тем самым подвешивая систему по 1 секунде с каждого датчика.

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 5:09 pm
Alex
10 сек окно?
Да, там были какие-то заморочки с M, и меньше 10 что-то иногда не срабатывало. Уже не помню что, но причина была.
2. Работа с картой памяти с ВЕБ-страницы(upload/download)
да, это тоже важный пункт

Но всё-таки сеть и сокеты это проблема №1, это фундамент на котором всё стоит и он должен быть правильным.

Re: Arduino Mega Server

Добавлено: Сб янв 16, 2016 11:40 pm
nikita
Здравствуйте, уважаемые коллеги!
Я установил AMS на Arduino Mega + Ethernet Shield 2 (W5500). Вещь замечательная, как оказалось. Вопрос в количестве одновременных пользователей. Начиная с 2-х клиентов, система тормозит, некоторые элементы перестают прогружаться. В чем суть вопроса: можно ли сделать сервер-парсер, который бы брал информацию (лучше, полностью весь интерфейс) с Arduino, а конечным пользователя возвращал некоторую кэшированную версию страницы (например, обращение к плате проводить раз в 5 секунд)?
Если есть наработки по этому вопросу - пишите, буду рад выслушать.
P.S. Вроде, MajorDoMo умеет что-то подобное, но я так и не смог разобраться, что к чему.