AllJoyn и Windows 10 — делаем так, чтобы наши устройства говорили на одном языкеДата публикации: 26.08.2015
Отдельно мы решили рассмотреть одну из очень важных частей этой концепции в разрезе Windows 10 (но, конечно, не ограничивающейся этой ОС) — популярный протокол взаимодействия устройств AllJoyn, который уже стал де-факто стандартом. Тем более, что Windows 10 и сопутствующий Windows 10 SDK предоставляют специальную поддержку данного протокола. Что за AllJoyn?
Основной заслугой данного протокола является специальный уровень абстракции, позволяющий устройствам и приложениям предлагать себя в качестве провайдера определенных услуг и находить другие устройства и приложения без использования какого-либо дополнительного оборудования и специальных серверов. Архитектурно это выглядит следующим образом – AllJoyn-сеть состоит из виртуальных роутеров (Routers) и приложений (Apps). Приложения общаются со своим роутером, а роутеры, в свою очередь, с другими роутерами и другими приложениям, относящимися к данному роутеру. Таким образом, приложения могут общаться друг с другом посредством сети этих виртуальных роутеров. При этом приложение и виртуальный роутер, к которому он прикреплен, могут находится на разных физических устройствах. Подробнее про архитектуру AllJoyn можно почитать тут (общая информация) и тут (Windows 10 IoT). Windows 10 IoT AllJoynСпешу порадовать — в Windows 10 включена полная поддержка данного протокола, а именно: Во-первых, вам не нужно заботиться об AllJoyn-роутере, описанном выше, так как Windows 10 включает специальный сервис AllJoyn Router Service, который может использоваться как вашими приложениями, так и другими устройствами в сети. Во-вторых, Windows 10 включает специальный API для работы с AllJoyn-протоколом, который находится в пространстве имен Windows.Devices.AllJoyn (https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.alljoyn.aspx) (поддерживаются С++, C#, JavaScript). Таким образом, вам не нужно ставить дополнительные SDK и инструменты, все уже готово и работает.
Пример создания AllJoyn-приложения на Windows 10Ниже мы будем использовать Windows 10 Insider Preview и бесплатную версию Visual Studio 2015 Community Edition (RC) (скачать). Одним из популярных примеров AllJoyn является проект Connected Lighting Project, который представляет ни что иное, как лампочку, реализующую AllJoyn-интерфейс для получения информации и управления устройством. Ниже посмотрим на процесс создания Windows 10-клиета для управления такой умной лампочкой. Полный исходный код приложения можно найти на GitHub. Итак… Шаг 1. Создаем новый Widows Runtime C++ компонент и используем AllJoynCodeGen (см. выше) для автогенерации кода. Публичный AllJoyn Introspection XML для данного проекта можно найти тут. Детальные инструкции лежат здесь. Шаг 2. Создаем новое Windows 10 C#/XAML приложение и добавляем в зависимости только что созданный Windows Runtime компонент. Шаг 3. Теперь мы можем реализовать логику по нахождению и управлению нашей лампочкой Для того, чтобы найти и подсоединиться к лампочке: Чтобы изменить яркость: Это действительно весь код :) Основные AllJoyn классы были предоставлены Windows 10 API, остальные сгенерированы c помощью AllJoynCodeGen. Шаг 4. Тестируем: В качестве тестовой лампочки можно использовать Lamp Simulator Application (Android, скачать). Итак, запускаем наше приложение на Windows Phone 10 телефоне и Lamp Simulator на Android, и смотрим, как это все работает вместе. Автор статьи: Гребнов Сергей Данный материал написан участником сообщества. В статье представлено мнение автора, которое может не совпадать с мнением корпорации Microsoft. Microsoft не несет ответственности за проблемы в работе аппаратного или программного обеспечения, которые могли возникнуть после использования материалов данной статьи. |