Re: есть особенность 1-wire ключей (status)
Добавлено: Ср дек 24, 2014 10:16 pm
Странно как-то работает, если менять свойство через админку, выключатели обновляются, если щелкать одним из них, то второй не обновляется(
Сейчас сделано так, что после обновления связанной переменной её новое значение не передаётся в модуль, вызвавший это обновление. Если говорить проще, то при изменении свойства через один пункт меню, другой пункт меню не изменится до перезагрузки страницы. Хотя, я думаю, это ограничение можно будет исправить. Помечу себе.denis писал(а):Странно как-то работает, если менять свойство через админку, выключатели обновляются, если щелкать одним из них, то второй не обновляется(
Сейчас, на сколько я помню, выбор связанных объектов, свойств и методов идёт через выбор из списка, так что ошибиться будет сложно.Victor_S писал(а):Забыл добавить одно пожелание к Сергею...
Касается оно интерфейса в настройках привязки действия при клике на элементе сцены.
Если выбрать действие - реакция на Объект.Свойство - то появляется следующая картинка(словами т.к. MJ у меня на другой машине без инета):
label: Запускать Объект.Метод ->дальше справа большое поле ввода.
Во второй строке - под label пусто, а под полем ввода еще одно такое же поле ввода.
Я потратил очень много времени пока не догадался, что нужно вводить Объект в верхнее поле, а Метод - в нижнее...т.к. на экране это выглядит так что нужно вводить в верхнее поле сразу значение Объект.Метод, а второе поле еще для одного метода...
Думаю стоит поставить по одному label перед каждым полем ввода:
Объект - > поле
Метод - > поле.
Сейчас это где?sergejey писал(а): Сейчас, на сколько я помню, выбор связанных объектов, свойств и методов идёт через выбор из списка, так что ошибиться будет сложно.
Система обновляется практически ежедневно и последняя установленная версия устаревает уже на следующий день -- где-то в мелочах, где-то в чём-то серьёзном. Аноный обновлений можно смотреть на форуме, а можно на главной странице сайта -- там выкладываются комментарии обновления исходников через GitHub. Да и самостоятельно система не обновляется -- такой функции не заложено.Victor_S писал(а):Сейчас это где?sergejey писал(а): Сейчас, на сколько я помню, выбор связанных объектов, свойств и методов идёт через выбор из списка, так что ошибиться будет сложно.
Ставил систему с сайта за несколько дней до своего поста... Комп с MD пока без выхода в инет, поэтому сам не обновляется. Хорошо бы все же какие-то апдейты для таких случаев выкладывать.
Если кратко, то такой возможности нет. Честно говоря, такой необходимости не возникало никогда. А в чём экономия вызова getProperty несколько раз или один? Чем проще функция, тем нагляднее код, даже если это в ущерб его размеру. Указанный код наверное можно как-то оптимизировать, но в первую очередь на уровне логики, т.к. мне не очень понятны все эти условия.Victor_S писал(а): Появился вопрос по управлению многоканальными 1-wire ключами:
Как можно одним вызовом setProperty передать несколько параметров в устройство? Или может как-то по другому, например, включить/выключить несколько каналов сразу, а не по очереди?
Тот же вопрос по функции getProperty(). Каким образом за один вызов можно прочитать и присвоить переменным несколько параметров?
У меня статус 2-х канального ключа определяестя постоянно вот таким кодом:
Как его оптимизировать?
Victor_S писал(а):Сейчас это где?sergejey писал(а): Сейчас, на сколько я помню, выбор связанных объектов, свойств и методов идёт через выбор из списка, так что ошибиться будет сложно.
Ставил систему с сайта за несколько дней до своего поста... Комп с MD пока без выхода в инет, поэтому сам не обновляется. Хорошо бы все же какие-то апдейты для таких случаев выкладывать.
Появился вопрос по управлению многоканальными 1-wire ключами:
Как можно одним вызовом setProperty передать несколько параметров в устройство? Или может как-то по другому, например, включить/выключить несколько каналов сразу, а не по очереди?
Тот же вопрос по функции getProperty(). Каким образом за один вызов можно прочитать и присвоить переменным несколько параметров?
У меня статус 2-х канального ключа определяестя постоянно вот таким кодом:
$p4=$this->getProperty("pio4");
$p5=$this->getProperty("pio5");
$s2=$this->getProperty("sens2");
$s3=$this->getProperty("sens3");
$s4=$this->getProperty("sens4");
$s5=$this->getProperty("sens5");
if(((!$p4 or $p4==0) and (!$p5 or $p5==0) and (!$s2 or $s2==0) and (!$s3 or $s3==0) and $s4==1 and $s5==1)
or ($p4==1 and (!$p5 or $p5==0) and (!$s2 or $s2==0) and (!$s3 or $s3==0) and (!$s4 or $s4==0) and $s5==1)
or ((!$p4 or $p4==0) and $p5==1 and (!$s2 or $s2==0) and (!$s3 or $s3==0) and $s4==1 and (!$s5 or $s5==0))
or ($p4==1 and $p5==1 and (!$s2 or $s2==0) and (!$s3 or $s3==0) and (!$s4 or $s4==0) and (!$s5 or $s5==0))
)
{
$this->setProperty("ch1_status", 0);
$this->setProperty("ch2_status", 0);
}
if(
((!$p4 or $p4==0) and (!$p5 or $p5==0) and $s2==1 and $s3==1 and $s4==1 and $s5==1)
or ($p4==1 and $p5==1 and $s2==1 and $s3==1 and (!$s4 or $s4==0) and (!$s5 or $s5==0))
)
{
$this->setProperty("ch1_status", 1);
$this->setProperty("ch2_status", 1);
}
if(
($p4==1 and (!$p5 or $p5==0) and (!$s2 or $s2==0) and $s3==1 and (!$s4 or $s4==0) and $s5==1)
or ((!$p4 or $p4==0) and (!$p5 or $p5==0) and (!$s2 or $s2==0) and $s3==1 and $s4==1 and $s5==1)
)
{
$this->setProperty("ch1_status", 0);
$this->setProperty("ch2_status", 1);
}
if(
((!$p4 or $p4==0) and $p5==1 and $s2==1 and (!$s3 or $s3==0) and $s4==1 and (!$s5 or $s5==0))
or ((!$p4 or $p4==0) and (!$p5 or $p5==0) and $s2==1 and (!$s3 or $s3==0) and $s4==1 and $s5==1)
)
{
$this->setProperty("ch1_status", 1);
$this->setProperty("ch2_status", 0);
}
Как его оптимизировать?