Дизайн интерфейса
Модератор: immortal
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Дизайн интерфейса
Alex, вопрос наверное к тебе, опять =D. В начале темы на твоих скринах часто мелькает "индикатор прохождения минутного цикла". Можешь код выложить?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Дизайн интерфейса
Создаём объект testOnNewMinute и его свойстваAlex, вопрос наверное к тебе, опять =D. В начале темы на твоих скринах часто мелькает "индикатор прохождения минутного цикла". Можешь код выложить?
value
visio
В секундный цикл помещаем код
$seconds = date('s', time());
$seconds = $seconds / 10;
$a = "";
for ($i = 0; $i <= $seconds; $i++) {
$a = $a.'●';
}
В onNewMinute ставим маркеры, например
setGlobal('testOnNewMinute.value', 'START');
setGlobal('testOnNewMinute.value', 'OK');
Если минутный цикл зависнет, то в панели будет написано на каком этапе
Далее, в \htdocs\templates\default.html добавляем яваскрипт
cycle_test_value = new middle_connector('testOnNewMinute.value', '', 9000, 0);
cycle_test_visio = new middle_connector('testOnNewMinute.visio', '', 9000, 0);
function show9s() {
$("#cycle_value").html(cycle_test_value.valueStr);
$("#cycle_visio").html(cycle_test_visio.valueStr);
}
$(document).ready(function(){
setInterval('show9s()', 9000);
});
И не забываем подключить middle_connector
<script language="javascript" type="text/javascript" src="/middle/middle_connector.js"></script>
И отображаем на странице
<font size="3" color="#77bb77" face="Arial"> <span id="cycle_visio"></span></font>
<font size="2" color="lightgray" face="Arial"><span id="cycle_value"><b>OK</b></span></font>
Всё это желательно проделывать с пониманием, иначе навряд ли это запустится.
Последний раз редактировалось Alex Вт окт 06, 2015 12:44 pm, всего редактировалось 1 раз.
- За это сообщение автора Alex поблагодарил:
- nick7zmail (Сб окт 10, 2015 10:02 am)
- Рейтинг: 1.16%
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Дизайн интерфейса
Всё очень просто. PowerALL это новый объект, а perDay и perDay_, costDay это свойства объекта oeALL.Я проста не понимаю нужно ещё один объект powerALL.value и в нём свойство Value ?
Также откуда берётся остальные значения ?
А te3state.now это умный тариф, можно для простоты заменить фиксированной таксой.
-
- Сообщения: 469
- Зарегистрирован: Вт мар 12, 2013 1:22 am
- Благодарил (а): 41 раз
- Поблагодарили: 81 раз
Re: Дизайн интерфейса
Alex, выложите папку /jsdata ?
В Вашем шаблоне default.html идут ссылки на различные скрипты оттуда, в частности на:
/jsdata/tabs_mini1.js
/jsdata/face_connector.js
и нигде не нашел по форуму:
/jsgraphics/state2.js
В Вашем шаблоне default.html идут ссылки на различные скрипты оттуда, в частности на:
/jsdata/tabs_mini1.js
/jsdata/face_connector.js
и нигде не нашел по форуму:
/jsgraphics/state2.js
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Дизайн интерфейса
А есть какой-нибудь секундный цикл встроенный в систему? (Например я знаю что checkstate отрабатывает каждую секунду...где он вызывается?). А то создавать таймер по этому методу по-моему как то напрягет систему: вызывать скрипт каждую секунду. Или я ошибаюсь?Alex писал(а): В секундный цикл помещаем код
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Дизайн интерфейса
Выложил апхив jsdata,zipAlex, выложите папку /jsdata ?
В Вашем шаблоне default.html идут ссылки на различные скрипты оттуда, в частности на:
/jsdata/tabs_mini1.js
/jsdata/face_connector.js
и нигде не нашел по форуму:
/jsgraphics/state2.js
Вот пример скриптов — нужно только один раз запуститьА есть какой-нибудь секундный цикл встроенный в систему? (Например я знаю что checkstate отрабатывает каждую секунду...где он вызывается?). А то создавать таймер по этому методу по-моему как то напрягет систему: вызывать скрипт каждую секунду. Или я ошибаюсь?
timer_1s
============
clearTimeout("timer_1s_timeout");
// -------------------->
// Код для запуска раз в 1 секунду
// -------------------->
setTimeOut("timer_1s_timeout", "runScript('timer_1s');", 1);
timer_1s_stop
=============
clearTimeout("timer_1s_timeout");
- Вложения
-
- jsdata.zip
- jsdata
- (2.44 КБ) 264 скачивания
- Рейтинг: 1.16%
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Дизайн интерфейса
Всегда все стараюсь проделывать с пониманием, но когда заходит речь о ява скриптах - могу только догадываться как правильно, ну или хотя бы чтобы работало. Заставить работать не все получается.Alex писал(а): Всё это желательно проделывать с пониманием, иначе навряд ли это запустится.
Про секундный цикл - я не имел ввиду, что не понял как его делать), я имел ввиду то что скрипт, который убивает свой таймаут, потом устанавливает себя же на запуск через секунду, и потом опять все по-кругу - по моему как то сильно похоже на самодельные костыли)). (как уже говорил - поправьте, если не прав). Я вот избрал чуть более простой способ ежесекундно запускать метод. В system.checkState добавил
Код: Выделить всё
callMethod('ClockChime.onNewSecond');
Но это оффтоп. Вернемся к индикатору.
Я думаю в цикл надо добавить как минимум sg() как то так:
Код: Выделить всё
for ($i = 0; $i <= $seconds; $i++) {
$a = $a.'■';
sg('ClockChime.visio', $a);
}
Код: Выделить всё
<script language="javascript" type="text/javascript" src="/js/middle_connector.js"></script>
<script language="javascript" type="text/javascript" src="/js/middle_object.js"></script>
Далее вписал скрипт:
Код: Выделить всё
<script language="javascript">
cycle_test_value = new middle_connector('ClockChime.value', '', 9000, 0);
cycle_test_visio = new middle_connector('ClockChime.visio', '', 9000, 0);
function show9s() {
$("#cycle_value").html(cycle_test_value.valueStr);
$("#cycle_visio").html(cycle_test_visio.valueStr);
}
$(document).ready(function(){
setInterval('show9s()', 9000);
});
</script>
И вписал в верхнюю панель это:
Код: Выделить всё
<td align="right" width="5%" >
<font size="3" color="#77bb77" face="Arial"> <span id="cycle_visio"></span></font>
<font size="2" color="lightgray" face="Arial"><span id="cycle_value"><b>OK</b></span></font>
</td>
Код: Выделить всё
<span id="cycle_value"><b>OK</b></span>
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: Дизайн интерфейса
Для справки. system.checkState запускается не раз в секунду, а раз в 5 секунд. Или даже 6, т.к. в коде есть задержка sleep(1). Большинство циклов в MJD крутится с 5-6 секундным интервалом.
Ниже выдержка из исходника цикла cycle_states.php:
Ниже выдержка из исходника цикла cycle_states.php:
Код: Выделить всё
while (1)
{
if (time() - $checked_time > 5)
{
setGlobal((str_replace('.php', '', basename(__FILE__))) . 'Run', time(), 1);
$checked_time = time();
cycleBody();
}
if (file_exists('./reboot') || IsSet($_GET['onetime']))
{
$db->Disconnect();
exit;
}
sleep(1);
}
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Дизайн интерфейса
Совершенно верно. Кубики нужно «запихнуть» в свойство, видимо этот кусок я пропустил при копировании.Я думаю в цикл надо добавить как минимум sg() как то так:
Код: Выделить всё
<script language="javascript" type="text/javascript" src="/js/middle_connector.js"></script>
<script language="javascript" type="text/javascript" src="/js/middle_object.js"></script>
Там чуть ниже выложен код из системы и комментарий пользователя, что у него всё заработалоМидл коннектор качал отсюда (из первого поста, может там чего то не хватает?).
Тут трудно сказать, на первый взгляд всё правильно. Для начала нужно понять работает ли цикл и сам коннектор. Попробуйте запустить вместоДалее вписал скрипт:
$("#cycle_value").html(cycle_test_value.valueStr);
$("#cycle_value").html('test');
Тогда будет понятно, попадает ли вообще что-то в "#cycle_value"
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
- Благодарил (а): 121 раз
- Поблагодарили: 2010 раз
Re: Дизайн интерфейса
Спасибо, не знал. А есть информация - какой php запускает onNewHour/onNewMinute?skysilver писал(а):Для справки. system.checkState запускается не раз в секунду, а раз в 5 секунд. Или даже 6
Попробовал...ноль реакции. Результат тот же. Либо middle_connector не подключается, либо скрипт цикла на страничке не запускается. Как понять?Alex писал(а):
$("#cycle_value").html(cycle_test_value.valueStr);
$("#cycle_value").html('test');
Тогда будет понятно, попадает ли вообще что-то в "#cycle_value"
PS: на всякий случай попробовал перекинуть все из js в middle, и подключить соответственно. Результат тот же.
Последний раз редактировалось nick7zmail Пт окт 09, 2015 5:36 pm, всего редактировалось 1 раз.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<