Arduino Mega Server

Модератор: Alex

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

Re: Arduino Mega Server

Сообщение Alex » Вс июл 12, 2015 3:59 pm

> А то мне уже неудобно тебя беспокоить.

Ничего страшного, чем смогу — помогу.

> Но никакой реакции не даёт, будто команды не принимаются вообще.

Правильно, теперь вставляем маркер между

  if (command.indexOf("rele4") >= 0) {

---> <---
    if (parameter.indexOf("1") >= 0) {

и анализируем результат. И так далее. Проблема будет точно идентифицирована через несколько итераций.

> Думаю придётса писать свою функцию для парсинга

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

Re: Arduino Mega Server

Сообщение Alex » Вс июл 12, 2015 4:51 pm

Добавил (оригинальные) графики реального времени. Автоматическая настройка на максимальную величину и вывод текущего значения. Исходные коды будут в очередном «релизе».
Вложения
gr.png
графики
gr.png (13.95 КБ) 20736 просмотров
За это сообщение автора Alex поблагодарили (всего 2):
annakin (Вс июл 12, 2015 5:19 pm) • fynto (Ср авг 19, 2015 3:36 pm)
Рейтинг: 2.33%
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Arduino Mega Server

Сообщение annakin » Вс июл 12, 2015 5:15 pm

Алекс Пасиб за идею с маркерами, я выявил где была ошибка у тебя.
Надо было заменить просто этот символ ? на этот & в функции:

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

void parseCommands(EthernetClient cl) {
  int posBegin;
  int posEnd;
  int posParam;
  if (request.indexOf("&") >= 0) {
    posBegin = request.indexOf("&") + 1;
    posEnd = request.indexOf("HTTP");
    if (request.indexOf("=") >= 0) {
       posParam = request.indexOf("=");
       command = request.substring(posBegin, posParam);              
       parameter = request.substring(posParam + 1, posEnd - 1);              
    } else {
        command = request.substring(posBegin, posEnd - 1);              
        parameter = "";
      }
 //   Serial.print("command: "); Serial.println(command);
 //   Serial.print("parameter: "); Serial.println(parameter);
    
    setKey(); 
    setNightLed();
    setColorLed();
    // erase request
    request = ""; 
  } //if (url.indexOf("?") >= 0)
} // parseCommands
 
Шас запрос выглядит так:

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

getURL("http://192.168.2.37/&rele4=1", 0);
У тебя ведь модуль Server_ajax начинает парсить только если присутствует & на другие символы он не реагирует.
Но зато я много уже понял в твоём коде ))
Последний раз редактировалось annakin Вс июл 12, 2015 5:47 pm, всего редактировалось 1 раз.
Server: Raspberry Pi 3 B+
OS: Rasbian
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Arduino Mega Server

Сообщение annakin » Вс июл 12, 2015 5:20 pm

Alex писал(а):Добавил (оригинальные) графики реального времени. Автоматическая настройка на максимальную величину и вывод текущего значения. Исходные коды будут в очередном «релизе».
Как я понимаю у тебя такие штуки стоят на каждом устройстве с которого нужно считать данные:
http://www.aliexpress.com/item/Free-Shi ... 04935.html
Server: Raspberry Pi 3 B+
OS: Rasbian
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вс июл 12, 2015 6:52 pm

> я выявил где была ошибка у тебя. Надо было заменить просто этот символ ? на этот & в функции:

Странно, как же у меня всё работало с вопросительными знаками? В любом случае спасибо, как буду разбираться с этим модулем — проверю по-подробнее.

> Как я понимаю у тебя такие штуки стоят на каждом устройстве с которого нужно считать данные:

// 1 2 3 4 5 1 2 3 4 5 6 7 8
double ICAL[] = {0, 1.35, 1.28, 0.73, 0.73, 1.28, 0.72, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73, 0.73};

Такие только те, у которых коэффициенты больше единицы, другие маркировку уже не вспомню, но это не принципиально.
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Arduino Mega Server

Сообщение annakin » Пн июл 13, 2015 10:34 am

Привет Алекс и снова я к тебе с вопросом.
Заметил такой баг.
После 15 минут гдето AMS перестаёт принимать команды на включение реле.
И в Мониторе Порта постоянно пишет вот это:

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

GET /request_generic&nocache=4198 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=5078 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=4246 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=6680 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=8496 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=2560 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=4286 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=1892 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=5559 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=8018 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=2219 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=4068 HTTP/1.1
Host: 192.168.0.10
GET /request_dash&nocache=4499 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=9214 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=5516 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=2459 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=1958 HTTP/1.1
Host: 192.168.0.10
GET /request_generic&nocache=3558 HTTP/1.1
Host: 192.168.0
GET /request_dash&nocache=1075 HTTP/1.1
Host: 192.168.0.10
Что за 192.68.0.10 ?
У меня этот IP нигде не прописан.
Может из за этого АМС перестаёт отвечать за просы ?
Server: Raspberry Pi 3 B+
OS: Rasbian
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн июл 13, 2015 12:28 pm

> Заметил такой баг

Вот это уже интересно.

Я столкнулся с такой проблемой: пока интенсивность Ajax обмена была невысокой — всё работало нормально. Потом вдруг заметил, что через некоторое время обмен «замораживается». Попытка выяснить в чём проблема в JavaScript-е или в Ардуине не увенчалась успехом, причём иногда обмен возобновляется по неизвестным причинам и также внезапно прекращается опять. То есть ничто не «виснет», причина в чём-то другом.

Попутно столкнулся с непонятным мне явлением: когда закрываешь браузер, то Ajax запросы продолжают сыпаться (судя по сериал монитору) ещё несколько минут. Откуда?!

С проблемой 192.168.0.10 и 192.168.0 не сталкивался (или не замечал). В общем этот «затык» с заморозкой требует решения и стоит в первых строчках TODO. Мне бы самому хотелось разобраться с этим вопросом и избавиться от этого неприятного глюка...
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Arduino Mega Server

Сообщение annakin » Пн июл 13, 2015 1:20 pm

Я К примеру не пользуюсь веб сервером АМС я управляю Ардуиной из Алисы.
Почему я выбрал твою разработку потому что мне нравятся построение функции и модульной системы.
Шас тоже буду разбираться почему сервер АМС замораживается и перестаёт отвечать на команды.
Но у тебя шансов больше выявить проблему так как код твой ))
Но в любом случае буду держать в курсе если что.
Server: Raspberry Pi 3 B+
OS: Rasbian
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Пн июл 13, 2015 1:32 pm

Рано или поздно :) разберёмся. Для начала неплохо было бы понять проблема на стороне браузера или на стороне Ардуино и с какого света сыплются запросы от убитого браузера. :)))
annakin
Сообщения: 130
Зарегистрирован: Пн окт 28, 2013 5:06 pm
Откуда: Молдова
Благодарил (а): 11 раз
Поблагодарили: 10 раз

Re: Arduino Mega Server

Сообщение annakin » Пн июл 13, 2015 2:05 pm

Попутно столкнулся с непонятным мне явлением: когда закрываешь браузер, то Ajax запросы продолжают сыпаться (судя по сериал монитору) ещё несколько минут. Откуда?!
У меня такого нету, я работаю в Хроме 43. И При закрытии Хрома запросы от Ajax прекращаются сразу.
А по поводу заморозки АМС, я начал одключать один за одним модули и посмотрим какой даёт збой.
Вот что я заметил, на команду о включении реле он не отвечает, но темперутару с датчиком он считывает и шлёт Алисе.
Значит затык гдето в функциях.
Server: Raspberry Pi 3 B+
OS: Rasbian
Ответить