Описание
--------------
Библиотека предназначена для создания интерактивных элементов управления на веб-страницах. Элементы привязываются к объектам MajorDoMo и позволяют управлять их работой. Работает всё это на JavaScript и PHP через Ajax в обе стороны — элемент отслеживает изменение состояния объекта в MajorDoMo (и автоматически меняет внешний вид) и позволяет менять состояние объекта кликом мыши.
На данный момент библиотека содержит один управляющий элемент control_button. Это интерактивная кнопка, которая поддерживает три состояния on, off и неопределённое (когда произошла какая-либо ошибка).
Работает это так. Кнопка раз в заданный интервал времени (3+ сек.) связывается с сервером и проверяет состояние объекта. Если состояние on, то включается нижняя LED полоса на кнопке заданным вами цветом. Если состояние off, то LED не горит и надпись приглушена. Если произошла ошибка, то LED и надпись мигают синим цветом.
При клике на кнопке цвет надписи (состояние) изменяется мгновенно, а LED полоска включается / выключается с небольшой задержкой (~1 сек.), необходимой для связи с сервером. При наведении мыши кнопка немного меняет цвет.
Инсталляция
-------------------
Нужно создать папку middle_control в каталоге htdocs и распаковать в неё три файла из архива.
Подключение
-------------------
Код: Выделить всё
<script language="javascript" type="text/javascript" src="/middle_control/middle_control.js"></script>
<script language="javascript" type="text/javascript" src="/middle_control/control_button.js"></script>
Код: Выделить всё
<canvas id="btn-hom" width="54" height="28">Canvas not supported</canvas>
Код: Выделить всё
<script>
btn01 = new control_button('btn-hom', 'tempHOM.on_off', 'Дом', 3000, 1);
btn01.alertmin = 0;
btn01.alertmax = 1;
btn01.led_color = 'rgba(240, 140, 30, 1)'; // orange
btn01.objectToSend = 'tempHOM';
btn01.redraw();
</script>
Интеграция
----------------
У объекта MajorDoMo нужно создать метод set_on_off такого содержания
Код: Выделить всё
$on_off = $params['on_off'];
$this->setProperty('on_off', $on_off);