Arduino Mega Server
Модератор: Alex
Re: Arduino Mega Server
Сам понимаю что должно... диоды усердно моргают, порт рабочий,. Но чудеса, без свитча сайт открывается, роутер айпи присваивает , с свитчем моргает так же , а айпи не выделятся.
Re: Arduino Mega Server
Я сталкивался с такой вещью: через коммутатор работает нормально, а при подключении напрямую к роутеру — нет. С другим коммутатором тоже всё нормально. Роутер — современный Зуксель.
Re: Arduino Mega Server
Подскажите, каковы правила подключения датчиков к конкретным пинам ардуины? Где и как в AMS настраивать эти моменты? Я так понимаю, привязку пинов к датчикам можно менять "на лету"?
Re: Arduino Mega Server
Сейчас практически готов первый блок (долгожданной) документации и в ближайшее время он будет выложен на сайте. И посвящён этот блок как раз подключению датчиков и устройств к АМС.
Re: Arduino Mega Server
Думаю, не только я буду очень этому рад!
Re: Arduino Mega Server
Я тоже так думаю и всем пользователям, которые умудрились работать с такой сложной системой как АМС без документации, нужно памятник поставить.Думаю, не только я буду очень этому рад!
Но документации не было по объективной причине — это отдельный и большой труд. Теперь, постепенно, будет выкладываться документация.
Но теперь затормозится развитие АМС — я не могу делать всё и сразу. (Благо 0.14 версия очень достойная)
Re: Arduino Mega Server
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:
Код рабочий, НО при частом обращении из вне, контроллер виснет наглухо...с чем связано понять пока не удалось...может кто чего дельного подскажет или Alex допишет сам)))
Как правильно обработать запрос вида 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
}
Re: Arduino Mega Server
Если на простые вопросы есть возможность отвечать, то на анализ кода и эксперименты сейчас нет времени (может кто из мастеров или заинтересованных подскажет).
Могу только высказать предположение, что зависания связаны не с кодом, а с сетевой работой с одним свободным сокетом (но может это не так и виноват именно код).
Установить где конкретно виснет можно поставив маркеры, выводящие сообщения в Сериал. Причина выясняется за пять минут.
Могу только высказать предположение, что зависания связаны не с кодом, а с сетевой работой с одним свободным сокетом (но может это не так и виноват именно код).
Установить где конкретно виснет можно поставив маркеры, выводящие сообщения в Сериал. Причина выясняется за пять минут.
Re: Arduino Mega Server
1. Чем код Алекса по парсингу запросов не устроил?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:Код рабочий, НО при частом обращении из вне, контроллер виснет наглухо...с чем связано понять пока не удалось...может кто чего дельного подскажет или Alex допишет сам)))Код: Выделить всё
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 }
2. Откуда код стащили?
3. Зачем столько указателей?
4. увидел
5. Проблема в "unsigned char* buf = new unsigned char[32];" - если не знаете, то зачем забивать кучу?
Последний раз редактировалось SPbDima Пн фев 01, 2016 8:23 pm, всего редактировалось 1 раз.
Re: Arduino Mega Server
1. Если вы штатным парсингом Алекса можете распарсить несколько параметров за раз, то подскажите как, был бы очень признателен.
2. С простор интернета и переделкой под себя.
3. Можно и без них, но увеличится объем резервируемой памяти.
4. Входящий параметр штатный
5. Я так понимаю меня спасет sizeof?
Спасибо за отклик тёска.
2. С простор интернета и переделкой под себя.
3. Можно и без них, но увеличится объем резервируемой памяти.
4. Входящий параметр штатный
Код: Выделить всё
parameter.getBytes(buf, 32, 0); // Этот штатный "parameter" типа String Спасибо за отклик тёска.