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

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 1:07 pm
Vit
Dragon писал(а):
Vit писал(а):
На сцене добавьте элемент например картинку, в нем два состояния например вкл/выкл и условие status=1 вкл и наоборот .
добавил элемент ..лампы.. сделал два состояния On и Off. но при запуска интерфейса сцены элемент пропадает.

дается мне что где то и что то еще надо прописывать. а что и где я без понятия.
Как на скрине поставьте условие статус например.

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 2:54 pm
Dragon
Я недавно только начал разбираться, я не особо понимаю куда все прописывать, думаю что для начала мне куда то надо прописать все эти методы, условия. кнопку то я сделал, ей то надо откуда то взять статус, что нажата кнопка или нет ну и так далее...

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 4:56 pm
Bagir
План понимания примерно такой:
У Вас есть:
1. Порт IN на Меге, к которому подключен выключатель на стене.
2. Порт OUT на Меге, к которому подключена лампочка в комнате.
3. Есть лампочка на сцене.
4. Нужно создать объект Relay1MegaD1 класса Relays.
Теперь это все нужно перевязать большим узлом с бантиком ))

В классе Relays мы создадим объект Relay1MegaD1. У него будет свойство Status, по которому можно узнать, включен свет или нет. Наш объект всегда можно спросить о статусе, и он ответит нам 0-выкл или 1-вкл. Еще у него будут методы Включить (turnOff ) и выключить (turnOff ). Все это уже там есть. Нам лишь надо добавить код в методы включить и выключить. Тогда наш объект уже сможет чем то управлять, а именно портом OUT на Меге.

Теперь про лампочку на сцене. Она будет смотреть на свойство status объекта Relay1MegaD1 и показывать его состояние. А при клике по лампочке, она должна выполнить метод turnOn или turnOff объекта Relay1MegaD1.

Все, мы научили объект Relay1MegaD1 класса Relays управлять портом OUT на Меге и завязали лампочку на сцене с объектом Relay1MegaD1 класса Relays.

Осталось настроить сообщения от выключателя, который подключен к Меге на порт IN, чтобы при его нажатии наш объект Relay1MegaD1 переключал реле. Это можно сделать в методе incomingMessage класса MegaD. Об этом мы вчера говорили, и все получилось.

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 5:42 pm
Dragon
Bagir писал(а):
В классе Relays мы создадим объект Relay1MegaD1. У него будет свойство Status, по которому можно узнать, включен свет или нет. Наш объект всегда можно спросить о статусе, и он ответит нам 0-выкл или 1-вкл. Еще у него будут методы Включить (turnOff ) и выключить (turnOff ). Все это уже там есть. Нам лишь надо добавить код в методы включить и выключить. Тогда наш объект уже сможет чем то управлять, а именно портом OUT на Меге.
Как прописать метод опроса объекта.

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 6:00 pm
Bagir
Если вы про лампочку на сцене, то у нее надо создать два состояния с разными картинками горит и не горит. Назовем состояния Включено и Выключено. В каждом из них нужно указать
Object Relay1MegaD1
Property Status
Condition =
Value 1 и 0 соответственно

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 6:03 pm
Dragon
да я так и сделал но почему то не работает

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 6:43 pm
Bagir
В объектах ничего не нужно для отображения элементов на сценах. А вот в элементах указывается свойство, при котором конкретное состояние будет показано на сцене.
Таким образом можно сделать как смену состояний, так и показ элемента только при нужном состоянии. Если условие отображение всех состояний элемента не выполняется, он пропадет со сцены.

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 6:44 pm
Bagir
Ой как бы спойлеры не помешали!!! Можно создавать компактные мега посты. Надо просить Сергея чтобы прикрутил!

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 7:30 pm
Dragon
сделал все как вы сказали но значек лампы на сцене не отображается, где прописываются условия где проверить.

Re: Активные объекты на сценах

Добавлено: Вс сен 14, 2014 7:47 pm
Bagir
Ну тогда я даже и не знаю. Этот момент у меня вообще на ура сразу получился. Попробуйте изменить Условие отображения -> n/a (всегда показывать)
Изображение