Шаблон класса / Class Template

Новые релизы, обновления и т.п.

Модератор: immortal

Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Шаблон класса / Class Template

Сообщение Chainik » Вс сен 02, 2018 10:20 pm

nick7zmail писал(а):
Вс сен 02, 2018 9:43 pm
Всё вписали в html блок? Или что-то в "дополнительный яваскрипт код"? Туда ничего не надо вписывать. Всё только в основное поле состояния.
И я так...просто ради примера накидал...не обязательно повторять...можно в своём чём нить пробовать))
Да, все в только в html-блок. Видимо у вас есть "волшебная палочка" или где-то в коде применяются заклинания (типа сим-салабим)...

PS. Не рисовалось ничего, потому что на домашнюю страницу вставлял (так и должно быть?). Вставил на сцену первый код, заработало! Вставил второй код: индикатор отрисовался, однако стрелка все время на нуле и на изменения свойства не реагирует.
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблон класса / Class Template

Сообщение xor » Пн сен 03, 2018 2:17 am

Chainik писал(а):
Вс сен 02, 2018 10:20 pm
...
PS. Не рисовалось ничего, потому что на домашнюю страницу вставлял (так и должно быть?). Вставил на сцену первый код, заработало! Вставил второй код: индикатор отрисовался, однако стрелка все время на нуле и на изменения свойства не реагирует.
Если у вас мастер-ветка, то в альфе недавно по сценам обновления были.
Повторил второй код с реальным объектом - заработало. Единственный минус, на мой взгляд, старт с нулём вначале, а не с реальным значением свойства. Если медленно меняется, долго в нуле стоит.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шаблон класса / Class Template

Сообщение nick7zmail » Пн сен 03, 2018 6:24 am

Да, вставлять, естественно, на сцену пробовал, т.к. разговор ранее про сцены шел...старт с нуля - да, недороботочка...но идея то была показать что не так с конструкцией %объект.свойство%, а не сделать полноценный индикатор))...тут конструкция объект.свойство вывозит тем, что значения, как сказал Сергей, подменяются при загрузке страницы. Т.е. чтобы их в индикаторе с вебсокетами выставить - надо просто запросить единоразово по url текущее значение.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Шаблон класса / Class Template

Сообщение tarasfrompir » Пн сен 03, 2018 9:34 am

nick7zmail писал(а):
Пн сен 03, 2018 6:24 am
Да, вставлять, естественно, на сцену пробовал, т.к. разговор ранее про сцены шел...старт с нуля - да, недороботочка...но идея то была показать что не так с конструкцией %объект.свойство%, а не сделать полноценный индикатор))...тут конструкция объект.свойство вывозит тем, что значения, как сказал Сергей, подменяются при загрузке страницы. Т.е. чтобы их в индикаторе с вебсокетами выставить - надо просто запросить единоразово по url текущее значение.
Ник или xor :roll: можно просто рабочий пример у тебя ... если довел до ума....
Ато я тут кручу верчу то показывает то не показывает индикатор - то с нуля рисует струлку все время с обновлением через время, то еще что то .....вчера замучился
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Шаблон класса / Class Template

Сообщение nick7zmail » Пн сен 03, 2018 12:23 pm

Не...я не доводил до ума)) Если сильно надо - могу заморочиться.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Шаблон класса / Class Template

Сообщение tarasfrompir » Пн сен 03, 2018 12:43 pm

nick7zmail писал(а):
Пн сен 03, 2018 12:23 pm
Не...я не доводил до ума)) Если сильно надо - могу заморочиться.
Да уж как вроде дело принцыпа.... для меня :oops:
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблон класса / Class Template

Сообщение xor » Пн сен 03, 2018 11:09 pm

tarasfrompir1 писал(а):
Пн сен 03, 2018 12:43 pm
nick7zmail писал(а):
Пн сен 03, 2018 12:23 pm
Не...я не доводил до ума)) Если сильно надо - могу заморочиться.
Да уж как вроде дело принцыпа.... для меня :oops:
Как у меня заработало:
на сцену добавил новый элемент html c размерами 200*200
ему создал состояние 1, в его поле Код добавил (немного почистил лишнее)):
СпойлерПоказать

Код: Выделить всё

 <canvas id="canvasRadial3" width="201" height="201"></canvas>
<script language='javascript'>
$.subscribe('wsConnected', function (_) {
         var payload;
         payload = new Object();
         payload.action = 'Subscribe';
         payload.data = new Object();
         payload.data.TYPE='properties';
         payload.data.PROPERTIES='humidity00.value'; // мой объект.свойство
         wsSocket.send(JSON.stringify(payload));
        });
function processPropertiesUpdate(data) {
         var obj=jQuery.parseJSON(data);
         var objCnt = obj.length;
           if (objCnt) {
              for(var i=0;i<objCnt;i++) {
               if (obj[i]['PROPERTY']=='humidity00.value') {  // мой объект.свойство
               rad3val=obj[i]['VALUE'];
               radial3.setValueAnimated(obj[i]['VALUE']);
      $.publish('humidity00.value.updated', obj[i]['VALUE']);}  // мой объект.свойство.updated
              }
           }
        }$.subscribe('wsData', function (_, response) {
          if (response.action=='properties') {
           processPropertiesUpdate(response.data);
          }
          });
		  </script>

<script>
    var radial3;
	var rad3val;
	init();
    function init() {
        // Define some sections
        var sections = [steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),
                        steelseries.Section(25, 50, 'rgba(0, 220, 0, 0.3)'),
                        steelseries.Section(50, 75, 'rgba(220, 220, 0, 0.3)') ],

            // Define one area
            areas = [steelseries.Section(75, 100, 'rgba(220, 0, 0, 0.3)')],

            // Define value gradient for bargraph
            valGrad = new steelseries.gradientWrapper(  0,
                                                        100,
                                                        [ 0, 0.33, 0.66, 0.85, 1],
                                                        [ new steelseries.rgbaColor(0, 0, 200, 1),
                                                          new steelseries.rgbaColor(0, 200, 0, 1),
                                                          new steelseries.rgbaColor(200, 200, 0, 1),
                                                          new steelseries.rgbaColor(200, 0, 0, 1),
                                                          new steelseries.rgbaColor(200, 0, 0, 1) ]);


        radial3 = new steelseries.Radial('canvasRadial3', {
                            gaugeType: steelseries.GaugeType.TYPE4,
                            size: 201,
                            section: sections,
                            area: areas,
                            titleString: "Title",
                            unitString: "Type4",
                            threshold: 50,
                            lcdVisible: true
                        });
    }


</script>
<script src="../SteelSeries/tween-min.js"></script> //путь к стальнымСериям мой - в корне
<script src="../SteelSeries/steelseries-min.js"></script>
Открываем эту сцену, видим гауге со стрелкой в нуле. В объектах открываем наше свойство и редактируем значение, обновляю, стрелка перемещается.
если есть что-нибудь быстро меняющееся цифрововое, лучше с ним пробовать
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблон класса / Class Template

Сообщение xor » Вт сен 04, 2018 12:43 am

Получилось добавить стартовое значение.
Делал по аналогии viewtopic.php?f=5&t=2810&p=41624&hilit= ... ted#p41624
Добавил разовое получение свойства по запросу, я так делал на домашних страницах через Pchart, сейчас уже, наверное, можно через апи делать или через /objects/?op=get&object=humidity00&p=value.
(Да, так - /objects/?op=get&object=humidity00&p=value - даже функцию не надо переписывать.)

Код: Выделить всё

     function live_upd(url,gauge) {
             $.ajax({
             url: url,
             }).done(function(data) { 
              if (data!='') {gauge.setValueAnimated(parseFloat(data));}
             });
    }
СпойлерПоказать

Код: Выделить всё

<canvas id="canvasRadial3" width="201" height="201"></canvas>

<script language='javascript'>
$.subscribe('wsConnected', function (_) {
         var payload;
         payload = new Object();
         payload.action = 'Subscribe';
         payload.data = new Object();
         payload.data.TYPE='properties';
         payload.data.PROPERTIES='humidity00.value';
         wsSocket.send(JSON.stringify(payload));
        });
function processPropertiesUpdate(data) {
         var obj=jQuery.parseJSON(data);
         var objCnt = obj.length;
           if (objCnt) {
              for(var i=0;i<objCnt;i++) {
               if (obj[i]['PROPERTY']=='humidity00.value') {
               //rad3val=obj[i]['VALUE'];
               radial3.setValueAnimated(obj[i]['VALUE']);
      $.publish('humidity00.value.updated', obj[i]['VALUE']);}
              }
           }
        }$.subscribe('wsData', function (_, response) {
          if (response.action=='properties') {
           processPropertiesUpdate(response.data);
          }
          });
		  </script>

<script>
    var radial3;
    //var rad3val;
	init();
    function init() {
        // Define some sections
        var sections = [steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),
                        steelseries.Section(25, 50, 'rgba(0, 220, 0, 0.3)'),
                        steelseries.Section(50, 75, 'rgba(220, 220, 0, 0.3)') ],

            // Define one area
            areas = [steelseries.Section(75, 100, 'rgba(220, 0, 0, 0.3)')],

            // Define value gradient for bargraph
            valGrad = new steelseries.gradientWrapper(  0,
                                                        100,
                                                        [ 0, 0.33, 0.66, 0.85, 1],
                                                        [ new steelseries.rgbaColor(0, 0, 200, 1),
                                                          new steelseries.rgbaColor(0, 200, 0, 1),
                                                          new steelseries.rgbaColor(200, 200, 0, 1),
                                                          new steelseries.rgbaColor(200, 0, 0, 1),
                                                          new steelseries.rgbaColor(200, 0, 0, 1) ]);


        radial3 = new steelseries.Radial('canvasRadial3', {
                            gaugeType: steelseries.GaugeType.TYPE4,
                            size: 201,
                            section: sections,
                            area: areas,
                            titleString: "Title",
                            unitString: "Type4",
                            threshold: 50,
                            lcdVisible: true
                            });
        live_upd("/pChart/?op=value&p=humidity00.value",radial3); 
      
    }
     function live_upd(url,gauge) {
             $.ajax({
             url: url,
             }).done(function(data) { 
              if (data!='') {gauge.setValueAnimated(parseFloat(data));}
             });
    }


</script>
<script src="../SteelSeries/tween-min.js"></script>
<script src="../SteelSeries/steelseries-min.js"></script>
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Шаблон класса / Class Template

Сообщение tarasfrompir » Вт сен 04, 2018 6:48 am

ну странно все равно по 0 - чего только уже не прописывал
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Шаблон класса / Class Template

Сообщение xor » Вт сен 04, 2018 7:17 pm

tarasfrompir1 писал(а):
Вт сен 04, 2018 6:48 am
ну странно все равно по 0 - чего только уже не прописывал
а что в отладчике?
Ответить