Arduino Mega Server
Модератор: Alex
Re: Arduino Mega Server
Вполне может быть. Спасибо, в ближайшее время заменю.
Re: Arduino Mega Server
Ошибочный запрос возвращается с кодом 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
Спасибо, буду иметь в виду.
Re: Arduino Mega Server
Alex, как тебе удобнее выкатывать замечания/предложения по коду?
Пока буду писать подробно по каждому:
почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
Пока буду писать подробно по каждому:
Код: Выделить всё
// 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
Подробно по каждому это отлично.
Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
Во-первых так «системнее»
Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.
Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
э-э... Что-то я не соображу...почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
Во-первых так «системнее»
Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.
Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
Re: Arduino Mega Server
Кстати, SpbDima, вы, судя по всему, человек активный и квалифицированный, было бы неплохо, если бы вам удалось решить проблему с Ethernet библиотекой, сокетами и медленной и некорректной сетевой работой АМС.
Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.
Вот это было бы реально круто и ценно для проекта и пользователей.
Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.
Вот это было бы реально круто и ценно для проекта и пользователей.
Re: Arduino Mega Server
10 сек окно?Alex писал(а):Подробно по каждому это отлично.
Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
э-э... Что-то я не соображу...почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
Во-первых так «системнее»
Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.
Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
Истина при инициализации нужна, чтоб отработали все функции при первом проходе в loop. В конце loop идёт проверка временных диапазонов(кода перед глазами нет, но вроде так).
Re: Arduino Mega Server
У меня и с Ethernet идёт "проглатывание". Но для меня сейчас главное другое:Alex писал(а):Кстати, SpbDima, вы, судя по всему, человек активный и квалифицированный, было бы неплохо, если бы вам удалось решить проблему с Ethernet библиотекой, сокетами и медленной и некорректной сетевой работой АМС.
Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.
Вот это было бы реально круто и ценно для проекта и пользователей.
1. Работа температурных датчиков с конф-файлом, логами и управляющими командами на выход из рабочего диапазона температуры для ds18x20, DHTxx и скоро какой-то новый датчик придёт. Плюс вывод информации на ВЕБ-страницу.
2. Работа с картой памяти с ВЕБ-страницы(upload/download)
3. Доработка библиотеки dallastemperature, либо отказ от неё, т.к. она использует Delay - тем самым подвешивая систему по 1 секунде с каждого датчика.
Re: Arduino Mega Server
Да, там были какие-то заморочки с M, и меньше 10 что-то иногда не срабатывало. Уже не помню что, но причина была.10 сек окно?
да, это тоже важный пункт2. Работа с картой памяти с ВЕБ-страницы(upload/download)
Но всё-таки сеть и сокеты это проблема №1, это фундамент на котором всё стоит и он должен быть правильным.
Re: Arduino Mega Server
Здравствуйте, уважаемые коллеги!
Я установил AMS на Arduino Mega + Ethernet Shield 2 (W5500). Вещь замечательная, как оказалось. Вопрос в количестве одновременных пользователей. Начиная с 2-х клиентов, система тормозит, некоторые элементы перестают прогружаться. В чем суть вопроса: можно ли сделать сервер-парсер, который бы брал информацию (лучше, полностью весь интерфейс) с Arduino, а конечным пользователя возвращал некоторую кэшированную версию страницы (например, обращение к плате проводить раз в 5 секунд)?
Если есть наработки по этому вопросу - пишите, буду рад выслушать.
P.S. Вроде, MajorDoMo умеет что-то подобное, но я так и не смог разобраться, что к чему.
Я установил AMS на Arduino Mega + Ethernet Shield 2 (W5500). Вещь замечательная, как оказалось. Вопрос в количестве одновременных пользователей. Начиная с 2-х клиентов, система тормозит, некоторые элементы перестают прогружаться. В чем суть вопроса: можно ли сделать сервер-парсер, который бы брал информацию (лучше, полностью весь интерфейс) с Arduino, а конечным пользователя возвращал некоторую кэшированную версию страницы (например, обращение к плате проводить раз в 5 секунд)?
Если есть наработки по этому вопросу - пишите, буду рад выслушать.
P.S. Вроде, MajorDoMo умеет что-то подобное, но я так и не смог разобраться, что к чему.