Радио-управление nooLight
-
- Сообщения: 28
- Зарегистрирован: Чт июн 30, 2016 5:58 pm
- Благодарил (а): 18 раз
- Поблагодарили: 0
Re: Радио-управление nooLight
Доброе время суток!
Еще раз обращаюсь к участникам форума. Пожалуйста! Может все таки кто-то знает в чем может быть проблема и может мне ответить. Мое предыдущее сообщение. Заранее большое спасибо!
Еще раз обращаюсь к участникам форума. Пожалуйста! Может все таки кто-то знает в чем может быть проблема и может мне ответить. Мое предыдущее сообщение. Заранее большое спасибо!
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Радио-управление nooLight
Это вызов с передачей параметровTiNNauR писал(а): Вот куда смотреть в этой уже ситуации, где копать? Заранее спасибо!)
Код: Выделить всё
// морская волна
$this->callMethod('setColor',array("VALUE"=>'001000100100'));
Код: Выделить всё
$value = $params['VALUE'];
if ($value){
$brightness=substr($value,0,3);
$R=substr($value,3,3);
$G=substr($value,6,3);
$B=substr($value,9,3);
}else{
$brightness=$params['brightness'];
$R=$params['R'];
$G=$params['G'];
$B=$params['B'];
}
$this->setProperty('brightness',$brightness);
$this->setProperty('R',$R);
$this->setProperty('G',$G);
$this->setProperty('B',$B);
$this->callMethod('refresh');
Код: Выделить всё
$brightness=$this->getProperty("brightness");
$r=$this->getProperty("R");
$g=$this->getProperty("G");
$b=$this->getProperty("B");
Последний раз редактировалось ErmolenkoM Вт дек 13, 2016 9:22 pm, всего редактировалось 1 раз.
- За это сообщение автора ErmolenkoM поблагодарил:
- TiNNauR (Ср дек 14, 2016 2:09 am)
- Рейтинг: 1.16%
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Радио-управление nooLight
удалено
Последний раз редактировалось ErmolenkoM Вт дек 13, 2016 9:23 pm, всего редактировалось 1 раз.
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Радио-управление nooLight
удалено
Последний раз редактировалось ErmolenkoM Вт дек 13, 2016 9:23 pm, всего редактировалось 1 раз.
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Радио-управление nooLight
Здравствуйте...прочитал ваши сообщения и совсем запутался...так много всего и в итоге не понятно что именно не работает...TiNNauR писал(а):Доброе время суток!
Еще раз обращаюсь к участникам форума. Пожалуйста! Может все таки кто-то знает в чем может быть проблема и может мне ответить. Мое предыдущее сообщение. Заранее большое спасибо!
Канал управления, ставится в ручную, что касается Noolite.... остальное толком не понял что не работает...
- Рейтинг: 1.16%
-
- Сообщения: 28
- Зарегистрирован: Чт июн 30, 2016 5:58 pm
- Благодарил (а): 18 раз
- Поблагодарили: 0
Re: Радио-управление nooLight
Всем доброе время суток! Огромное спасибо, что откликнулись и ответили, особенно Михаилу за его выдержку .
Как привел пример кода Михаил ( я сверил с тем, что у меня, может быть что-то упустил?) то, у меня так же и это все работает ( я может и не совсем разбираюсь в коде, но в этом я разобрался, это я понял, там понятно, что от куда берется и куда подставляется и как один метод вызывает другой и т.д. по цепочке) а не работает …..как раз метод sendCommand, ну, сам метод то работает, но с одним НО : - вот эта строчка
$cmdline='sleep 0.5; /usr/local/bin/noolitepc -api '.'-set_color_ch '.$this->getProperty("channel").' '.$r_value.' '.$g_value.' '.$b_value;
safe_exec($cmdline);
подставляет все кроме переменных .$r_value.' '.$g_value.' '.$b_value; , которые формируются в предыдущем методе refresh, их просто нет: в памяти, или в этом цикле( ну, или я не совсем правильно изъяснился) . Так вот, если в методе sendCommand перед этой строчкой, т.е., в самом начале, их(эти переменные) еще раз присвоить , типа так
$r_value =$this->getProperty("R");
$g_value =$this->getProperty("G");
$b_value =$this->getProperty("B");
То, метод полностью подставляет все значения и на выходе получается что-то типа
20:27:01 DEBUG [root]: Executing: sleep 0.5; /usr/local/bin/noolitepc -api -set_color_ch 1 000 050 100 (at /var/www/lib/general.class.php:553)
И канал есть и цвет. В итоге цветовые часы работают. А если не присваивать, а оставить код метода без изменений, то ничего не происходит. Типа так:
22:00:06 DEBUG [root]: Executing: sleep 0.5; /usr/local/bin/noolitepc -api -set_color_ch 1 (at /var/www/lib/general.class.php:553)
Только канал, установок цвета нету. Вот и вопрос, почему оно не держит в памяти переменные , которые присвоило в предыдущем методе refresh? Как я ни пытался изменять метод refresh, какие переменные не присваивал - $r_value =$this->getProperty("R"); или $r=$this->getProperty("R"); а потом, конечно, соответственно менял в sendCommand ( чтоб было одинаково) то это никак не отображалось на выходе, sendCommand не работал, и только если изменить его код, как я писал выше ( в самом начале кода еще раз присвоить переменные) только тогда все работало как нужно.
Еще раз огромное всем спасибо!
Сейчас постараюсь объяснить.остальное толком не понял что не работает...
Как привел пример кода Михаил ( я сверил с тем, что у меня, может быть что-то упустил?) то, у меня так же и это все работает ( я может и не совсем разбираюсь в коде, но в этом я разобрался, это я понял, там понятно, что от куда берется и куда подставляется и как один метод вызывает другой и т.д. по цепочке) а не работает …..как раз метод sendCommand, ну, сам метод то работает, но с одним НО : - вот эта строчка
$cmdline='sleep 0.5; /usr/local/bin/noolitepc -api '.'-set_color_ch '.$this->getProperty("channel").' '.$r_value.' '.$g_value.' '.$b_value;
safe_exec($cmdline);
подставляет все кроме переменных .$r_value.' '.$g_value.' '.$b_value; , которые формируются в предыдущем методе refresh, их просто нет: в памяти, или в этом цикле( ну, или я не совсем правильно изъяснился) . Так вот, если в методе sendCommand перед этой строчкой, т.е., в самом начале, их(эти переменные) еще раз присвоить , типа так
$r_value =$this->getProperty("R");
$g_value =$this->getProperty("G");
$b_value =$this->getProperty("B");
То, метод полностью подставляет все значения и на выходе получается что-то типа
20:27:01 DEBUG [root]: Executing: sleep 0.5; /usr/local/bin/noolitepc -api -set_color_ch 1 000 050 100 (at /var/www/lib/general.class.php:553)
И канал есть и цвет. В итоге цветовые часы работают. А если не присваивать, а оставить код метода без изменений, то ничего не происходит. Типа так:
22:00:06 DEBUG [root]: Executing: sleep 0.5; /usr/local/bin/noolitepc -api -set_color_ch 1 (at /var/www/lib/general.class.php:553)
Только канал, установок цвета нету. Вот и вопрос, почему оно не держит в памяти переменные , которые присвоило в предыдущем методе refresh? Как я ни пытался изменять метод refresh, какие переменные не присваивал - $r_value =$this->getProperty("R"); или $r=$this->getProperty("R"); а потом, конечно, соответственно менял в sendCommand ( чтоб было одинаково) то это никак не отображалось на выходе, sendCommand не работал, и только если изменить его код, как я писал выше ( в самом начале кода еще раз присвоить переменные) только тогда все работало как нужно.
Еще раз огромное всем спасибо!
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Радио-управление nooLight
переменные в PHP начинаются с символа $ и не требуют объявления и типизации. Но и живут (область видимости их) только локально. То есть один метод не видит переменные другого, поэтому используется трюк с передачей значений через свойства объекта.TiNNauR писал(а): переменных .$r_value.' '.$g_value.' '.$b_value; , которые формируются в предыдущем методе refresh, их просто нет: в памяти, или в этом цикле( ну, или я не совсем правильно изъяснился)
- За это сообщение автора ErmolenkoM поблагодарил:
- TiNNauR (Чт дек 15, 2016 1:48 am)
- Рейтинг: 1.16%
-
- Сообщения: 28
- Зарегистрирован: Чт июн 30, 2016 5:58 pm
- Благодарил (а): 18 раз
- Поблагодарили: 0
Re: Радио-управление nooLight
Доброе время суток! Огромное спасибо за разъяснения!
сдесь
$cmdline='sleep 0.5; /usr/local/bin/noolitepc -api '.'-set_color_ch '.$this->getProperty("channel").' '.$r_value.' '.$g_value.' '.$b_value;
safe_exec($cmdline);
или сдесь - это с этого ErmolenkoM Заголовок сообщения: Re: Радио-управление nooLight Сообщение Добавлено: Пн янв 13, 2014 2:15 pm поста
$cmdline='sleep 0.5; /usr/local/bin/noolitepc -api '.$params['command'];
safe_exec($cmdline);
потому что у меня без заранее присвоения переменных в этом методе, увы, не работает. Еще раз спасибо!
Я так понял, что если нужно в каком-то методе оперировать с переменными данными, то их нужно просто вызвать в этом методе из свойства объекта, куда они заранее были занесены. Только как sendCommand работает у других людей, если у них в коде не присваиваются значения переменных?То есть один метод не видит переменные другого, поэтому используется трюк с передачей значений через свойства объекта
сдесь
$cmdline='sleep 0.5; /usr/local/bin/noolitepc -api '.'-set_color_ch '.$this->getProperty("channel").' '.$r_value.' '.$g_value.' '.$b_value;
safe_exec($cmdline);
или сдесь - это с этого ErmolenkoM Заголовок сообщения: Re: Радио-управление nooLight Сообщение Добавлено: Пн янв 13, 2014 2:15 pm поста
$cmdline='sleep 0.5; /usr/local/bin/noolitepc -api '.$params['command'];
safe_exec($cmdline);
потому что у меня без заранее присвоения переменных в этом методе, увы, не работает. Еще раз спасибо!
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: Радио-управление nooLight
здесь вызов метода sendCommand с передачей параматра commandTiNNauR писал(а): как sendCommand работает у других людей, если у них в коде не присваиваются значения переменных?
refresh
Код: Выделить всё
$this->callMethod("sendCommand",array('command'=>'-set_color_ch '.$this->getProperty("channel").' '.$r_value.' '.$g_value.' '.$b_value));
sendCommand
Код: Выделить всё
$cmdline='sleep 0.5; /usr/bin/noolitepc -api '.$params['command'];
safe_exec($cmdline);
- За это сообщение автора ErmolenkoM поблагодарил:
- TiNNauR (Пт дек 16, 2016 2:15 am)
- Рейтинг: 1.16%
-
- Сообщения: 28
- Зарегистрирован: Чт июн 30, 2016 5:58 pm
- Благодарил (а): 18 раз
- Поблагодарили: 0
Re: Радио-управление nooLight
Привет еще раз всем участникам. Появился инет, и я решил поблагодарить всех за помощь!! Спасибо большое, натолкнули на мысль))). Подумал, сделал, получилось. Сейчас работает. Дальше буду ковырять и смотреть. Еще раз огромное спасибо!!