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

Re: Arduino Mega Server

Добавлено: Сб май 28, 2016 9:22 pm
ipz
Установил AMS для целей обучения)))
Прикрутил Livolo, чтоб не простаивал почем зря.

Есть предложение пересмотреть формат команд (на усмотрение Алекса). Сейчас команды сервер воспринимает в формате

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

http://MEGA_IP/&rele4=1 
Если мега будет управлять более сложными процессами - я бы предпочел передавать отдельно команду, отдельно параметры. В моем случае это могла бы быть строка

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

http://MEGA_IP/livolo?id=xxxxx&key=Y 

Тогда парсинг бы выглядел следующим образом:

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

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 = "";
      }

    Serialprint("command: "); Serial.println(command);
    Serialprint("parameter: "); Serial.println(parameter);
          
    setKey();
    
    #ifdef LEDS_FEATURE
      setNightLed();
      setColorLed();
    #endif

    #ifdef LIVOLO_FEATURE
      livolo_switch();
    #endif
    
    // erase request
    request = "";
  } // if (url.indexOf("?") >= 0)
} // parseCommands
 
В результате в переменной command будем иметь livolo, а в переменной parameter id=xxxxx&key=Y. Вторая переменная будет уже парсится в соответствующей функции, если команда соответствует.

Я переделаю, конечно, свой модуль, чтобы он работал с парсингом из стандартной поставки. Но душа не лежит)))

Re: Arduino Mega Server

Добавлено: Сб май 28, 2016 10:30 pm
ipz
Как-то так.
В версии AMS 0.15 пин 8 занят модулем NRF24. Надо задать любой свободный (перечислены на закладке doc) в строке

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

Livolo livolo(8) 
PS: Проблема оказалась в том, что разные браузеры отправляют запрос по 3 - 5 раз в промежуток времени до 4 секунд. Для livolo это критично, т.к. одна и та же кнопка key=8 работает как переключатель. Поэтому свет включался/выключался по нескольку раз.
Пришлось запоминать для каждого id время, когда ему отправлялась какая-нибудь команда.
Массив идентификаторов предполагает 4 значения (можно поменять)
Задержка, в течении которой новая команда не будет отправлена, установлена в 4 секунды, т.к. мой SmartTV пойман на том, что отправлял 5-й запрос на 3899 миллисекунде.

UPD: Мне кажется, что клиенту нужно что-то отвечать после обработки команды, чтоб он не бомбил запросами, но что отвечать не знаю))

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 11:22 am
nick7zmail
Добрался до AMS 0.15. Загрузил, посмотрел...На страничке сети попытался записать ip-адрес в eeprom, выдало сообщение - что это всего лишь альфа)) Где зашиты примеры работы с eeprom?

Проапгрэйдил код своего "урезанного" AMS до 0.15 версии. Теперь медитирую на точки в мониторе порта =D.

Так же запилил рекомендации от alexsis_76 в серверную часть. Кэширование однако тащит)) Раза в 3-4 быстрее стало перещелкиваться между страничками. Однако когда заходишь по ip-адресу (без указания страниц) такое ощущение, что кэширование не работает. alexsis_76, у тебя так же? Есть идеи как заставить и в этом случае из кэша грузить? А то там грузится из кэша только какой-то sovetnik-co.js (кстати что это?)

UPD: с sovetnik разобрался - эт одно из добавлений, про остальное - вопрос остаётся.

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 12:20 pm
serghei
nick7zmail писал(а):..... Раза в 3-4 быстрее стало перещелкиваться между страничками....... А то там грузится только какой-то sovetnik-co.js (кстати что это?)
У меня такого файла нет. Когда первый раз захожу на страницу-чесно грузит с карты секунды 3-5. Потом из кеша мгновенно.

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 8:33 pm
nick7zmail
serghei писал(а): У меня такого файла нет. Когда первый раз захожу на страницу-чесно грузит с карты секунды 3-5. Потом из кеша мгновенно.
С файлом разобрался - это одно из дополнений хрома. Если на дуе грузит 3-5 сек, то на меге - это 10-15...в лучшем случае 8. Было бы неплохо, если бы первое обращение тоже кэшировалось.

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 9:56 pm
serghei
Так на то оно и первое! Мега и W5100 да,секунд 10 грузится.Потом выставляешь время,в течение которого браузер помнит страницу.Причем ХР + хром = пустые HTML страницы, то есть вообще никак.7 + опера все летает на дуе, мега очень тяжело и не может нормально открыть полноэкранное демо- картинки есть,но нет значений. Сейчас на дуе вывел полноэкранный вольтметр, уже день бьюсь ,чтобы вывести температуру сенсора, замучался с индификаторами
градусника. Хотя на LCD без проблем. В общем не одно так другое- Мега отлично работает с электро,так не рисует демо. У дуи всё летает,так не работает электро))) Жесть. (похоже,всетаки спалил А1, хотя на других скетчах как то работает...)
P.S. Не подскажите мне что-же надо подставить в FULL2 чтобы вывести значение температуры сенсора? HTML на фоне картинки есть....

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 10:00 pm
nick7zmail
serghei писал(а):Так на то оно и первое! Мега и W5100 да,секунд 10 грузится.Потом выставляешь время,в течение которого браузер помнит страницу.
Ну дак кэш то на компе храниться, он не обновляется при повторном входе, если время не вышло. По идее из кэша может (как я думаю) и заход по ip-адресу грузиться. Вопрос - как это сделать?))

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 10:04 pm
serghei
Тут ничем помочь не могу. Из-за хитрого провайдера захожу пока по локалке

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 10:10 pm
nick7zmail
serghei писал(а):Тут ничем помочь не могу. Из-за хитрого провайдера захожу пока по локалке
Дак я тоже по локалке)) из инета доступен только MD... и то не по ip, а по ddns.

Re: Arduino Mega Server

Добавлено: Вс май 29, 2016 10:12 pm
serghei
я пробросил порт в АМС и захожу на работе удаленно.Дома так не получается