Термин OSGi обычно относится к любой из организаций альянса OSGi или технологии “OSGi Services Platform”. OSGi Alliance является независимой компанией, целью которой является определение спецификации для предоставления и потребления услуг по сетям WAN или LAN.
Он был предназначен в основном для применения в домашних сетях и, следовательно, в так называемой домашней автоматизации или компьютеризации дома.
В этой статье мы рассмотрим, как реализовать вездесущую систему для набора лифтов определенного здания с использованием OSGI.
Необходимые инструменты и плагины для установки:
- Eclipse для разработчиков RCP и RAP: https://www.eclipse.org/downloads/packages/release/helios/sr2/eclipse-rcp-and-rap-developers .
- Установка Bndtools 4.3.1. Инструкции: https://bndtools.org/installation.html .
Общие сведения
Приложение по внедрению механизмов и лифтов для конкретного здания имеет следующие функции:
- В здании есть два лифта и одна кнопка вызова на каждом этаже здания.
- Пользователь может запросить лифт с определенного этажа. Подъедет лифт, который ближе или тот, кто свободен. Если вы оба заняты, лифт, который сначала освободится, удовлетворит этот запрос.
- Если лифт не занят, он возвращается на свой неисправный этаж.
- Находясь внутри лифта, пользователь должен нажать на целевой этаж.
- Если пользователь нажимает более одного раза кнопка вызова на данном этаже, панель лифта соответствующего этажа подает звуковой сигнал, указывающий, что запрос уже выполняется.
Вездесущая среда имеет следующие компоненты:
- Лифт 1
Лифт 2
Механизм вызова 1 этаж
Механизм вызова 2-го этажа
Механизм вызова 3-го этажа
Механизм вызова 4-го этажа
Механизм вызова 5-го этажа
Эти компоненты расположены в 5-этажном здании. Особенности каждого лифта:
- Лифт 1 может перемещаться между первым и пятый этаж, и его этаж-первый этаж (первый этаж).
- Лифт 1 может перемещаться между первым и пятый этаж, и его этаж-пятый этаж (последний этаж).
Важные части проекта
Каждый раздел определяется следующим образом:
- В API определены интерфейсы для bunbles.
- В Provider реализация bundles.
- В command методы и команды, которые позволяют взаимодействовать с функциями bundles.
Команды работы
Для взаимодействия с функциональными возможностями системы это вы можете выполнить его через из командной консоли со следующими инструкциями:
- call1//- механизм вызова лифт этаж 1 call2//- механизм вызова лифт этаж 2
- call3//- механизм вызова лифт этаж 3 call4//- механизм вызова лифт этаж 4
- call4//- механизм вызова лифта этаж 5 mir1 [целевой этаж]//- порядок перемещения лифта 1 на указанный целевой этаж.
- mir2 [целевой этаж]//- порядок перемещения лифта 2 на указанный целевой этаж.
В дополнение к командам инструкций, вы также найдете команды, которые позволяют нам получать информацию о текущее состояние каждого из лифтов и различных механизмов на каждом из этажей здания:
- m1//- информация о механизме этаж 1 m2//- информация о механизме этаж 2
- m3//- информация о механизме этаж 3 m4//- информация о механизме этаж 4
- m5//- информация о механизме этаж 5 e1//- Общая информация о лифте 1
- e2//- Общая информация о лифте 2
Ejecución del proyecto en Eclipse для разработчиков RCP и RAP
Для реализации проекта мы должны обратиться к решению://орг.impl в файле
Run. bndrun и выберите Run OSGi, чтобы запустить то же самое. На следующем изображении этот процесс может быть продемонстрирован:
После выполнения первая команда, которую мы можем написать lb
, который указывает нам, что реализации, определенные в раздел важные части этого документа выполняются правильно:
После этого можно использовать команды, указанные в разделе операционные команды, определенные в этом документе, для взаимодействия с развернутой системой:
Исходный код этой реализации вы можете найти в следующем репозитории на GitHub |//Elevatorosgi
До скорого! Увидимся в Твиттер !!:)
Оригинал: “https://dev.to/esdanielgomez/simulacion-de-un-entorno-ubicuo-para-elevadores-de-un-edificio-con-osgi-507”