Страница 116 из 326
Re: Arduino Mega Server
Добавлено: Вс янв 31, 2016 11:23 pm
Olls
Сам понимаю что должно... диоды усердно моргают, порт рабочий,. Но чудеса, без свитча сайт открывается, роутер айпи присваивает , с свитчем моргает так же , а айпи не выделятся.
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 7:51 am
Alex
Я сталкивался с такой вещью: через коммутатор работает нормально, а при подключении напрямую к роутеру — нет. С другим коммутатором тоже всё нормально. Роутер — современный Зуксель.
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 11:34 am
Beer100
Подскажите, каковы правила подключения датчиков к конкретным пинам ардуины? Где и как в AMS настраивать эти моменты? Я так понимаю, привязку пинов к датчикам можно менять "на лету"?
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 12:54 pm
Alex
Сейчас практически готов первый блок (долгожданной) документации и в ближайшее время он будет выложен на сайте. И посвящён этот блок как раз подключению датчиков и устройств к АМС.
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 3:29 pm
Beer100
Думаю, не только я буду очень этому рад!
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 4:39 pm
Alex
Думаю, не только я буду очень этому рад!
Я тоже так думаю и всем пользователям, которые умудрились работать с такой сложной системой как АМС без документации, нужно памятник поставить.
Но документации не было по объективной причине — это отдельный и большой труд. Теперь, постепенно, будет выкладываться документация.
Но теперь затормозится развитие АМС — я не могу делать всё и сразу. (Благо 0.14 версия очень достойная)
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 5:44 pm
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 допишет сам)))
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 6:11 pm
Alex
Если на простые вопросы есть возможность отвечать, то на анализ кода и эксперименты сейчас нет времени (может кто из мастеров или заинтересованных подскажет).
Могу только высказать предположение, что зависания связаны не с кодом, а с сетевой работой с одним свободным сокетом (но может это не так и виноват именно код).
Установить где конкретно виснет можно поставив маркеры, выводящие сообщения в Сериал. Причина выясняется за пять минут.
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 7:56 pm
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];" - если не знаете, то зачем забивать кучу?
Re: Arduino Mega Server
Добавлено: Пн фев 01, 2016 8:08 pm
Xseon
1. Если вы штатным парсингом Алекса можете распарсить несколько параметров за раз, то подскажите как, был бы очень признателен.
2. С простор интернета и переделкой под себя.
3. Можно и без них, но увеличится объем резервируемой памяти.
4. Входящий параметр штатный
Код: Выделить всё
parameter.getBytes(buf, 32, 0); // Этот штатный "parameter" типа String
5. Я так понимаю меня спасет sizeof?
Спасибо за отклик тёска.