Почему интерфейс BeeToo?

Основным достоинством данного интерфейса является максимальная простота и функциональность, которая достигается за счет использования сценарного управления объектом автоматизации и переноса в интерфейсы третьего уровня редко используемых функциональных элементов (например, пультов дистанционного управления).

Готовый интерфейс для автоматизации дома/квартиры

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

Интерфейс доступен для разрешения 1024x768 iPad 2, iPad mini. Остальные разрешения будут поддерживать в скором времени.

Проект интерфейса содержит:

  • готовые шаблоны для 11 помещений
  • меню управления всеми помещениями, где отображаются состояния освещения и сценариев с возможностью их отключения
  • наборы графических элементов (кнопки сценариев, пульты дистанционного управления, иконки теле и радио каналов, и другие функциональные элементы)
  • страницы и попапы с реализацией динамических переходов

Логика управления каждым помещением единообразна. В главном интерфейсе комнаты (например, страница BeeToo_room1_main_popup) располагаются кнопки запуска сценариев, план помещения, с размещенными на нем группами света, элементы управления климатом.

После запуска любого сценария пользователь переходит в интерфейс управления данным сценарием (страница BeeToo_room1_tv_popup, BeeToo_room1_radio_popup и т.д.), где так же имеется план помещения с группами света и элементами управления климатом, а так же имеются кнопки запуска всех доступных сценариев, кроме запущенного. Навигация в рамках интерфейса осуществляется уже привычным жестом слайдинга.

Для перехода в интерфейс управления другими помещениями необходимо нажать и удерживать на названии текущего помещения.

В данном интерфейсе видно: какой сценарий запущен в каждом из помещениий и включено ли в помещении освещение. Для выключения света или сценария пользователю необходимо нажать и удерживать на иконке освещения (лампочке) или на иконке сценария. Так же пользователь имеет возможность выключить все сценарии и всё освещение во всех помещениях нажав и удерживая и кнопку «Выключить все» (большая красная кнопка с значком выключения). Так же из меню можно поднять или опустить все шторы в доме.

Для перехода в другую комнату пользователю достаточно только нажать на кнопку соответствующей комнаты.

Ознакомиться с особенностями работы интерфейса вы можете, посмотрев ролик:

Управление набором комнат

Внимание! В графической части проекта значительное количество невидимых (прозрачных) компонентов графического интерфейса. Эти компоненты зачастую перекрывают друг друга, когда один компонент лежит поверх другого. За счет этого реализуется графическая целостность проекта и сохраняется его высокое удобство использования.

Например, на странице BeeToo_rooms_menu_popup располагается индикатор текущего запущенного сценария Room1ActiveScenarioRoomMenu. Индикатор спозиционирован так, чтобы он идеально вписывался в графическое оформление. Данный индикатор также можно нажать и тем самым выключить сценарий. Использовать индикатор как кнопку проблематично: его размеры слишком малы. Поэтому поверх индикатора располагается прозрачная кнопка Room1StopActiveScenarioBtn, которая обрабатывает события нажатии. Значительный размер кнопки и ее позиция (кнопка занимает почти всю площадь родительского цветного блока) обеспечивает доступность этой кнопки на экране мобильного устройства.

При работе с компонентами (добавление, копирование, удаление, перемещение) не забывайте о "невидимых" компонентах. Сохраняйте их позицию относительно условно связанных компонентов, над или под которыми они находятся. Не забывайте переименовывать и менять свойства невидимым компонентам вместе с видимыми.

Как переименовать комнату "room1" в "Кинозал"

Чтобы изменить название комнаты, под которым она отображается пользователю, достаточно исправить значение Text для соответсвующих компонентов UI с Room1 на Кинозал в двух страницах: BeeToo_room1_main_popup и BeeToo_rooms_menu_popup

Внимание! Будьте аккуратны, не пропускайте компоненты при переименовании. Переименовать необходимо строго все графические компоненты. Если хотя бы один будет пропущен, то возможно наложение имен при последующем слиянии ( merge ) проектов. Учитывая, что скрипты обращаются к элементам UI по именам, возможно серьезное нарушение логики работы проекта.

Как изменить фоновое изображение для комнаты room1

Фоновое изображение (background) необходимо менять в UI компоненте Background на странице BeeToo_background_popup. У компонента Background множество состояний (State 1, State 2, State 3 и т.д.), в каждом определена фоновое изображение Image. Его и следует менять.

Как указывается взаимосвязь между конкретным помещением и номером состояния State компонента Background? Данный механизм описан на странице API: api.html/showBackground

Как удалить комнату "room2"

Чтобы удалить комнату, например Room2 , необходимо:

Как создать новую комнату "Room12"

Чтобы создать новую комнату Room12 , необходимо создать 4 основных ее компонента:

Раскроем подробнее каждый этап.

Создать токены

Необходимо создать по образу и подобию остальных помещений следующий перечень токенов:

Токены можно скопировать с токенов для другого помещения (например Room3 ) и переименовать для соответствия комнате Room12 . Подробней о создании Tokens и связывании их с элементами UI читайте на официальном wiki-ресурсе iRidium: iRidium GUI Editor Project Tokens

Страницы комнаты

Необходимо по образу и подобию других комнат, создать страницы для комнаты Room12 , а именно:

Скриптовые модули

Необходимо создать скриптовые модули для реализации логики, связанной с помещением Room12 :

Скриптовые модули можно скопировать со скриптов для другого помещения (например Room3 ) и переименовать для соответствия комнате Room12 . Переименовывать необходимо как названия скриптовых модулей, так и переменные и методы, которые используются внутри скриптов. Например:

BeeToo_rooms_menu_popup

Элементы для отображения состояния комнаты Room12 можно скопировать с элементов для другого помещения (например Room3 ) и переименовать для соответствия комнате Room12 . Необходимо переименовать каждый элемент графического дизайна, например:

Не забудьте для графических элементов настроить связи с токенами (Project tokens) помещения Room12 .

Связь с оборудованием

Чтобы проект стал по-настоящему работоспособным, необходимо реализовать управление оборудованием. Управление оборудованием можно разделить на две большие категории:

"Ключевые" команды

Ключевые команды характерны способом своей отправки. Так, например, команды касательно старта/остановки сценариев отправляются в моменты, когда пользователь переходит между интерфейсами. Зачастую, эти ключевые команды отправляются НЕ по нажатию кнопки. При входе на страницу конкретного сценария BeeToo_room1_blueray3d_sc из главной страницы BeeToo_room1_main_popup происходит вызов процедуры startRoom1BLUERAY3DScenario в которую и следует помещять все команды, производящие непосредственную подготовку оборудования к проигрыванию сценария

Аналогичным образом, в процедуру stopRoom1ScenarioForced помещается код, выключающий все оборудование в комнате. А в процедуру stopRoom1Scenario помещается код, который выключает все оборудование, кроме того, которое долго стартует. Таким образом, можно оставить пользователю возможность выключить сценарий и запустить другой через небольшой промежуток времени и не ожидать длительное время повторного включения оборудования. Если же сценарий выключен через stopRoom1Scenario и некоторое время (например 2 минуты) помещение остается невостребованным, то можно выключать все оборудование по timeout.

"Простые" команды

Простые команды назначаются кнопкам и другим графическим элементам как правило простым стандартным способом, который описан в разделе Работа с оборудованием вики iRidium: http://wiki2.iridiummobile.ru/Работа с оборудованием

Подобным образом назначаются команды кнопкам пультов устройств:

Исключением являются типизированные кнопки, которые повторяются на множестве страниц. Например, кнопка Mute во всех многочисленных страницах разных сценариев помещения Room1 производит одно и то же действие. Поэтому, она везде вызывает одну процедуру room1ChangeMute. Код которой в свою очередь может производить отправку некоторой команды на оборудование. Как выполнять отправку команд в Runtime (из кода), читайте на странице Driver API вики iRidium: http://wiki2.iridiummobile.ru/Drivers_API.

Аналогичным образом, для "ползунка" громкости, который присутствует практически на каждой странице сценария, назначаются две процедуры на два события (для примера рассмотрим сценарий Room1Blueray3DScenario):