Страница 2 из 3

Re: Свойство объекта

Добавлено: Чт фев 08, 2018 12:35 pm
slgeo
condor77 писал(а):Доброго дня.
Не знал куда засунуть свой вопрос и поскольку он касается свойства объекта то решил сюда. Да простит меня топикстартер.
Вопрос в следующем: Можно ли свойство использовать в качестве имени скрипта?
Типа вот так:

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

runScript('RadioSetting.LastRadioName');
Нутром чую что можно но не работает. Видимо синтаксис подводит.
Несмотря на то, что вам подсказали, нутром чувствую, что что-то избыточное делаете, создавая лишние скрипты. Опишите весь бизнес-процесс и мы подскажем как сделать лучше )

Re: Свойство объекта

Добавлено: Чт фев 08, 2018 3:34 pm
condor77
slgeo писал(а): Несмотря на то, что вам подсказали, нутром чувствую, что что-то избыточное делаете, создавая лишние скрипты. Опишите весь бизнес-процесс и мы подскажем как сделать лучше )
Всё очень просто. Я прикрутил сцену с Радио по примеру вот отсюда https://majordomo.smartliving.ru/forum/ ... 200#p30737
Там есть кнопка ON которая включает последнюю использованную станцию. Но прикол в том что она для этого использует свойство ID радиостанции. И это всё работает при использовании модуля онлайн радио. Но в маркете есть модуль Radio 101.ru
И вот при работе с ним нет никакого ID последней станции. Вот я и подумал а почему бы не настроить запуск последней станции не по ID а по её имени. И поскольку для каждой кнопки станции на сцене есть свой сценарий запуска, имя которого совпадает с именем станции. В общем как-то так.
Пример кода сценария запуска станцииSPOILER_SHOW

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

cm('RadioSetting.Control',array('cmd'=>'stop'));
say('Включаю радио Euro Hits');
getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=23', 0);
sg('RadioSetting.LastStationName',"Euro Hits");
setGlobal("RadioSetting.On",1);
Пример кода сценария кнопки ONSPOILER_SHOW

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

// Запуск последней радиостанции
cm('RadioSetting.Control',array('cmd'=>'stop'));
say('Включаю радио');
runScript(gg('RadioSetting.LastStationName'));
setGlobal("RadioSetting.On",1);

Re: Свойство объекта

Добавлено: Чт фев 08, 2018 4:00 pm
slgeo
Хм...понятно. Но сценарий на станцию, как то неправильно это. Хотя это вопрос к разработчику модуля 101.ru

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 9:03 pm
ksv
У меня вопрос по первоначальной теме!
Можно ли как-то изменить время хранения истории свойства для конкретного объекта (а не для класса целиком)?
К примеру, у класса SDevices есть свойство status. Но самих девайсов великое множество, и для разных из них статус меняется с очень разной частотой, и история изменения этого статуса для каких-то устройств вообще не нужна, для каких-то нужна небольшая, для других большая. А выбора нет, для всех только одинаковое время хранения можно задать?

Нашел пожелание трехлетней давности viewtopic.php?f=6&t=334&start=40#p28957
Многим это нужно, но, как я понял, до сих пор этот вопрос не решен. Очень жаль.

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 9:11 pm
xor
ksv писал(а): Пт авг 23, 2019 9:03 pm У меня вопрос по первоначальной теме!
Можно ли как-то изменить время хранения истории свойства для конкретного объекта (а не для класса целиком)?
К примеру, у класса SDevices есть свойство status. Но самих девайсов великое множество, и для разных из них статус меняется с очень разной частотой, и история изменения этого статуса для каких-то устройств вообще не нужна, для каких-то нужна небольшая, для других большая. А выбора нет, для всех только одинаковое время хранения можно задать?
посмотрите Оптимайзер, там можно и для каждого объекта.свойства задать свою глубину( естественно, не большую общей в классе)

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 9:13 pm
ksv
Да вот как раз его и смотрел, после чего и написал вопрос. Нету там такого. Или я не понял как. Подскажите, плз.

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 9:15 pm
ksv
Нашел, блин, перед глазами же...
Но почему-то у меня в списке далеко не все объекты, это почему?

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 9:27 pm
Logrus
у подкласса еще можно вместо наследуемого от родительского создать аналогичное такое же свое со своими настройками
при записи фильтровать
про оптимайзер сказали

а с историей в свойстве есть нюанс, как она работает при записи если превышает то еще и чистится, т.е. желательно не превышать то операции при каждой записи/изменении свойства чуть растягиваются

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 10:00 pm
ksv
При записи я уже фильтрую, но этого недостаточно.

Про создание свойства у подкласса мне понятно все, кроме одного.
Вот к примеру, при обновлении свойства status у SDevices вызываются методы statusUpdated и setUpdatedText.
Если я в подклассе создам такие-же свойства, то эти родительские методы вызываться будут? Где вообще харнится эта зависимость когда что вызывается?

Про оптимайзер мне непонятно, почему у меня там очень неполный список свойств и объектов. Как настроить историю для всех? По какому принципу составлен этот неполный список?

А уверены, что каждая запись при превышении истории растягивается? Я полагал, что раз точность установки хранения истории равна одному дню, то и чистка производится раз в сутки. Или там интервал прямо с точностью до секунды относительно текущего момента берется?

Re: Свойство объекта

Добавлено: Пт авг 23, 2019 10:20 pm
Logrus
1 отлично
2 statusUpdated прописать, и в нем инжекцию. а setUpdatedText уже из метода, если пропишете то будут, хранится в бд
3 скрином, то не понятно что непонятно
4 проверка срока хранения происходит при записи и если превысил то чистится - это про историю в свойстве, а не очистку оптимайзером