Arduino Mega Server

Модератор: Alex

Olls
Сообщения: 3
Зарегистрирован: Вс янв 31, 2016 9:55 pm

Re: Arduino Mega Server

Сообщение Olls »

Сам понимаю что должно... диоды усердно моргают, порт рабочий,. Но чудеса, без свитча сайт открывается, роутер айпи присваивает , с свитчем моргает так же , а айпи не выделятся.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Я сталкивался с такой вещью: через коммутатор работает нормально, а при подключении напрямую к роутеру — нет. С другим коммутатором тоже всё нормально. Роутер — современный Зуксель.
Beer100
Сообщения: 15
Зарегистрирован: Чт мар 28, 2013 12:33 pm

Re: Arduino Mega Server

Сообщение Beer100 »

Подскажите, каковы правила подключения датчиков к конкретным пинам ардуины? Где и как в AMS настраивать эти моменты? Я так понимаю, привязку пинов к датчикам можно менять "на лету"?
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Сейчас практически готов первый блок (долгожданной) документации и в ближайшее время он будет выложен на сайте. И посвящён этот блок как раз подключению датчиков и устройств к АМС.
Beer100
Сообщения: 15
Зарегистрирован: Чт мар 28, 2013 12:33 pm

Re: Arduino Mega Server

Сообщение Beer100 »

Думаю, не только я буду очень этому рад!
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Думаю, не только я буду очень этому рад!
Я тоже так думаю и всем пользователям, которые умудрились работать с такой сложной системой как АМС без документации, нужно памятник поставить. :)

Но документации не было по объективной причине — это отдельный и большой труд. Теперь, постепенно, будет выкладываться документация.

Но теперь затормозится развитие АМС — я не могу делать всё и сразу. (Благо 0.14 версия очень достойная)
Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am

Re: Arduino Mega Server

Сообщение Xseon »

Alex'y respect и просьба или вопрос...
Как правильно обработать запрос вида http://ipAMS/index.htm?rgb=1&r=10&g=110&b=100&a=40
Я при находжении command="rgb" передаю в функцию setRGBA() параметр вида 1&r=10&g=110&b=100&a=40
Вот функция установки RGB в AMS:

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

void setRGBA() {
  byte parsedParams=0;  
  int r, g, b, a;
  unsigned char* buf = new unsigned char[32];
  parameter.getBytes(buf, 32, 0);
  char* inputString = (char*)buf;
  parsedParams=0;
  char* buffer = strtok(inputString,"&");
  if(buffer!=NULL){
    for(buffer=strtok(NULL,"&"); buffer!=NULL;     buffer=strtok(NULL,"&") ) 
    {
      String buffer1= String(buffer);
      params[parsedParams].name= buffer1.substring(0,buffer1.indexOf('='));   
      params[parsedParams].value=strtoint(buffer1.substring(buffer1.indexOf('=')+1)); 
      parsedParams++; // отмечаем сколько удалось распарсить
    }
   } 
  r = params[0].value;
  g = params[1].value;
  b = params[2].value;
  a = params[3].value;
  color(led1, r, g, b); //Вызываем функцию установки цвета из стандартного пакета AMS
 }
Код рабочий, НО при частом обращении из вне, контроллер виснет наглухо...с чем связано понять пока не удалось...может кто чего дельного подскажет или Alex допишет сам)))
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Если на простые вопросы есть возможность отвечать, то на анализ кода и эксперименты сейчас нет времени (может кто из мастеров или заинтересованных подскажет).

Могу только высказать предположение, что зависания связаны не с кодом, а с сетевой работой с одним свободным сокетом (но может это не так и виноват именно код).

Установить где конкретно виснет можно поставив маркеры, выводящие сообщения в Сериал. Причина выясняется за пять минут.
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am

Re: Arduino Mega Server

Сообщение SPbDima »

Xseon писал(а):Alex'y respect и просьба или вопрос...
Как правильно обработать запрос вида http://ipAMS/index.htm?rgb=1&r=10&g=110&b=100&a=40
Я при находжении command="rgb" передаю в функцию setRGBA() параметр вида 1&r=10&g=110&b=100&a=40
Вот функция установки RGB в AMS:

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

void setRGBA() {
  byte parsedParams=0;  
  int r, g, b, a;
  unsigned char* buf = new unsigned char[32];
  parameter.getBytes(buf, 32, 0);
  char* inputString = (char*)buf;
  parsedParams=0;
  char* buffer = strtok(inputString,"&");
  if(buffer!=NULL){
    for(buffer=strtok(NULL,"&"); buffer!=NULL;     buffer=strtok(NULL,"&") ) 
    {
      String buffer1= String(buffer);
      params[parsedParams].name= buffer1.substring(0,buffer1.indexOf('='));   
      params[parsedParams].value=strtoint(buffer1.substring(buffer1.indexOf('=')+1)); 
      parsedParams++; // отмечаем сколько удалось распарсить
    }
   } 
  r = params[0].value;
  g = params[1].value;
  b = params[2].value;
  a = params[3].value;
  color(led1, r, g, b); //Вызываем функцию установки цвета из стандартного пакета AMS
 }
 
Код рабочий, НО при частом обращении из вне, контроллер виснет наглухо...с чем связано понять пока не удалось...может кто чего дельного подскажет или Alex допишет сам)))
1. Чем код Алекса по парсингу запросов не устроил?
2. Откуда код стащили?
3. Зачем столько указателей?
4. увидел
5. Проблема в "unsigned char* buf = new unsigned char[32];" - если не знаете, то зачем забивать кучу?
Последний раз редактировалось SPbDima Пн фев 01, 2016 8:23 pm, всего редактировалось 1 раз.
Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am

Re: Arduino Mega Server

Сообщение Xseon »

1. Если вы штатным парсингом Алекса можете распарсить несколько параметров за раз, то подскажите как, был бы очень признателен.
2. С простор интернета и переделкой под себя.
3. Можно и без них, но увеличится объем резервируемой памяти.
4. Входящий параметр штатный

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

parameter.getBytes(buf, 32, 0); // Этот штатный "parameter" типа String 
5. Я так понимаю меня спасет sizeof?
Спасибо за отклик тёска.
Ответить