Содержание
- Введение
- Windows 10 IoT Core / Core Pro
- Вариант 1. Веб-интерфейс управления
- Что такое Windows_10_IoT_Core_X64_Packages.msi? Как исправить связанные с ним ошибки? [РЕШЕНО]
- Вариант 2. PowerShell
- Что такое Windows Core OS
- Подготовка к установке
- Приступаем к установке
- Использование микро-ПК
- Деплоим Windows 10 приложения на Raspberry Pi 2
- Собственно, Internet of Things
- Самое интересное
- Заключение
Введение
Теперь сложная часть, каждый раз после перезагрузки устройства по умолчанию запускается стандартное приложени. Единственое приложения для регистрации приложения по умолчанию является PowerShell. Итак, давайте рассмотрим как работать с PowerShell.
С последней версией IoT Core Windows 10 портал для веб-управления стал еще проще в использовании и предоставляет простой способ зарегистрировать приложение в качестве приложения для запуска без использования команд PowerShell.
Windows 10 IoT Core / Core Pro
Windows 10 IoT Core
Читайте также: Где находится диспетчер задач в Windows 7 и как его открыть?
— предназначена для маленьких устройств, в которых не требуется графический интерфейс. В этой версии операционной системы отсутствует поддержка стандартной графической оболочки, а также Desktop-приложений, таких как Mail, Photos, People и т.д.
Операционная система Windows 10 IoT Core доступна в нескольких версиях:
Windows 10 IoT Core
Microsoft выпустил бесплатную операционную систему для разработчиков Windows 10 IoT Core, которая доступна для скачивания на сайте. Windows 10 IoT Core предназначена для сообщества разработчиков для использования только на ограниченном наборе аппаратных платформ и только для создания и тестирования прототипов будущих устройств. В данный момент поддерживаются платформы Raspberry Pi 2 и MinnowBoard Max. Использование этой версии операционной системы в коммерческих устройствах сопряжено с некоторым риском. Поскольку все обновления устанавливаются автоматически, то возможен вариант, когда обновления могут внести ненужные коррективы в отлаженную и протестированную сборку образа или добавить ненужный устройству функционал.
Windows 10 IoT Core Pro
3 ноября 2020 года для производителей устройств стала доступна новая версия операционной системы в семействе Windows 10 — Windows 10 IoT Core Pro.
В сравнении с Windows 10 IoT Core новая операционная система Windows 10 IoT Core Pro
будет поддерживать более широкий круг устройств, а также предоставлять дополнительные возможности по администрированию. Windows 10 IoT Core Pro будет включен следующий дополнительный функционал:
- Возможность отключать automatic update или выставлять период обновления
- Возможность поддержки решений от сторонних компаний по управлению обновлениями и самим устройством
Для Windows 10 IoT Core и Windows 10 IoT Core Pro предусмотрены разные типы сервисной поддержки:
Windows 10 IoT Core – Current Branch (CB) |
|
Windows 10 IoT Core Pro – Current Branch for Business (CBB) |
|
Обе версии поддерживают как х86 так и ARM архитектуру процессоров
Технические требования:
Процессор:
1 Ггц (х86) Оперативная память: 256Мб Объем хранилища: от 2 Гб
Для получения информации по ценам, консультаций, а также загрузки пробных версий продуктов Microsoft Windows 10 IoT обращайтесь к официальному дистрибьютору Microsoft Windows 10 IoT (Windows Embedded) в России и СНГ — АО «Компонента» по телефону +7 (495) 150-2-150 или по e-mail
Вариант 1. Веб-интерфейс управления
Это самый простой способ зарегистрировать приложение в качестве приложения для автозапуска. Для этого вам просто нужно войти в портал веб-управления, размещенный в Windows 10 IoT Core. В этой статье мы рассмотрим Веб-интерфейс управления с последним обновлением ОС Insider Preview (когда эта статья была написана) ’10 .0.10531 ‘. Вы можете найти это обновление для конкретной платы на веб-сайте Microsoft IoT.
На шаге 4 вам нужно узнать имя раздела Вашего приложений. Иногда это может сбивать с толку. Раздел имен вашего приложения можно найти с помощью шага 7 и 8 метода PowserShell, который поясняется ниже.
Что такое Windows_10_IoT_Core_X64_Packages.msi? Как исправить связанные с ним ошибки? [РЕШЕНО]
Иногда ошибки Windows_10_IoT_Core_X64_Packages.msi и другие системные ошибки MSI могут быть связаны с проблемами в реестре Windows. Несколько программ может использовать файл Windows_10_IoT_Core_X64_Packages.msi, но когда эти программы удалены или изменены, иногда остаются «осиротевшие» (ошибочные) записи реестра MSI.
В принципе, это означает, что в то время как фактическая путь к файлу мог быть изменен, его неправильное бывшее расположение до сих пор записано в реестре Windows. Когда Windows пытается найти файл по этой некорректной ссылке (на расположение файлов на вашем компьютере), может возникнуть ошибка Windows_10_IoT_Core_X64_Packages.msi. Кроме того, заражение вредоносным ПО могло повредить записи реестра, связанные с Windows 10 IoT Core, Version 1607 x86. Таким образом, эти поврежденные записи реестра MSI необходимо исправить, чтобы устранить проблему в корне.
Редактирование реестра Windows вручную с целью удаления содержащих ошибки ключей Windows_10_IoT_Core_X64_Packages.msi не рекомендуется, если вы не являетесь специалистом по обслуживанию ПК. Ошибки, допущенные при редактировании реестра, могут привести к неработоспособности вашего ПК и нанести непоправимый ущерб вашей операционной системе. На самом деле, даже одна запятая, поставленная не в том месте, может воспрепятствовать загрузке компьютера!
Читайте также: virtualbox Raw-режим недоступен любезно предоставлено Hyper-V windows 10
В связи с подобным риском мы настоятельно рекомендуем использовать надежные инструменты очистки реестра, такие как WinThruster (разработанный Microsoft Gold Certified Partner), чтобы просканировать и исправить любые проблемы, связанные с Windows_10_IoT_Core_X64_Packages.msi. Используя очистку реестра, вы сможете автоматизировать процесс поиска поврежденных записей реестра, ссылок на отсутствующие файлы (например, вызывающих ошибку Windows_10_IoT_Core_X64_Packages.msi) и нерабочих ссылок внутри реестра. Перед каждым сканированием автоматически создается резервная копия, позволяющая отменить любые изменения одним кликом и защищающая вас от возможного повреждения компьютера. Самое приятное, что устранение ошибок реестра может резко повысить скорость и производительность системы.
Предупреждение: Если вы не являетесь опытным пользователем ПК, мы НЕ рекомендуем редактирование реестра Windows вручную. Некорректное использование Редактора реестра может привести к серьезным проблемам и потребовать переустановки Windows. Мы не гарантируем, что неполадки, являющиеся результатом неправильного использования Редактора реестра, могут быть устранены. Вы пользуетесь Редактором реестра на свой страх и риск.
Перед тем, как вручную восстанавливать реестр Windows, необходимо создать резервную копию, экспортировав часть реестра, связанную с Windows_10_IoT_Core_X64_Packages.msi (например, Windows 10 IoT Core, Version 1607 x86):
- Нажмите на кнопку Начать.
- Введите «command» в строке поиска… ПОКА НЕ НАЖИМАЙТЕ ENTER!
- Удерживая клавиши CTRL-Shift на клавиатуре, нажмите ENTER.
- Будет выведено диалоговое окно для доступа.
- Нажмите Да.
- Черный ящик открывается мигающим курсором.
- Введите «regedit» и нажмите ENTER.
- В Редакторе реестра выберите ключ, связанный с Windows_10_IoT_Core_X64_Packages.msi (например, Windows 10 IoT Core, Version 1607 x86), для которого требуется создать резервную копию.
- В меню Файл выберите Экспорт.
- В списке Сохранить в выберите папку, в которую вы хотите сохранить резервную копию ключа Windows 10 IoT Core, Version 1607 x86.
- В поле Имя файла введите название файла резервной копии, например «Windows 10 IoT Core, Version 1607 x86 резервная копия».
- Убедитесь, что в поле Диапазон экспорта выбрано значение Выбранная ветвь.
- Нажмите Сохранить.
- Файл будет сохранен с расширением .reg.
- Теперь у вас есть резервная копия записи реестра, связанной с Windows_10_IoT_Core_X64_Packages.msi.
Следующие шаги при ручном редактировании реестра не будут описаны в данной статье, так как с большой вероятностью могут привести к повреждению вашей системы. Если вы хотите получить больше информации о редактировании реестра вручную, пожалуйста, ознакомьтесь со ссылками ниже.
Мы не несем никакой ответственности за результаты действий, совершенных по инструкции, приведенной ниже — вы выполняете эти задачи на свой страх и риск.
Windows XP https://www.theeldergeek.com/windows_xp_registry.htm
Windows 7 https://www.theeldergeek.com/windows_7/registry_edits_for_win7.htm
Windows Vista https://support.microsoft.com/kb/2688326 — LetMeFixItMyselfAlways
Вариант 2. PowerShell
Согласно Википедии, PowerShell: «Windows PowerShell — это система автоматизации задач и управления конфигурацией от Microsoft, состоящая из командной строки и связанного языка сценариев, основанного на .NET Framework».
Простым языком можно сказать, что это более сложная командная строка, которая имеет средство создания сценариев.
Команды PowerShell для IoT
Обратитесь к веб-сайту Microsoft IoT, чтобы просмотреть доступные команды для ядра IoT Windows 10.
Наша статья будет сосредоточена только на командах, необходимых для регистрации приложения в качестве автозапуска.
Команда запуска: IoTStartup
Обратитесь к веб-сайту Microsoft IoT, чтобы просмотреть доступные команды для ядра IoT Windows 10
Чтобы просмотреть приложение, которое вы развернули на своем устройстве, вы можете использовать следующие команды.
Читайте также: Как восстановить реестр Windows 7/8.1/10?
IotStartup list список всех установленных приложений с заголовками и без заголовков.
IotStartup headed list перечисляет все установленные приложения с заголовками.
IotStartup headless list перечисляет все установленные приложения без заголовков
Приложения с заголовком — это те, у которых есть пользовательский интерфейс. Приложение без заголовка не имеет пользовательского интерфейса, а только фоновые приложения.
IotStartup startup список всех установленных приложений с заголовками и без заголовков, зарегистрированных для запуска.
IotStartup add регистры приложений с заголовками и без заголовков установленные в качестве запуска.
IotStartup add DefaultApp регистры приложений с заголовками и без заголовков установленные в качестве запуска по умолчанию.
IotStartup remove удаляет приложения заголовкои и без из режима запуска и регистрирует обратное заводское приложение, включенное по умолчанию.
ПРИМЕЧАНИЕ. Может быть только два приложения для запуска. Один долен быть с заголовком второй без заголовка. Два приложения с заголовком и два без не могут быть зарегистрированы в качестве запуска.
Что такое Windows Core OS
Основная идея проекта Windows Core OS заключается в том, что это будет универсальная платформа для всех устройств. Предположительно, первая версия будет предназначена для мобильных устройств, а последующие — для десктопов и Xbox. Профильные СМИ высказывают мнение, что новая ОС придет на смену Windows 10.
Windows Core OS представляет собой опенсорсный костяк ОС, похожий на проект Android. Этот скелет предназначен не для конечных пользователей, а для производителей и разработчиков, которые смогут создать кастомизированные операционные системы на базе данного фреймворка. Таким образом каждая оболочка будет подогнана под спецификации конкретного устройства, и в тоже время общая база обеспечит их совместимость друг с другом.
Microsoft использует в разработке Windows Core OS модульный подход — к базовому фреймворку можно добавить столько модулей, сколько захочется. Это могут быть поддержка специфических нативных приложений, графических интерфейсов и так далее. Модульный подход должен сделать ОС гибче.
Профильные СМИ поясняют, зачем Microsoft понадобилась такая ОС — дело в том, что сама по себе Windows довольно стара, ей больше 30 лет, и в будущем она не сможет быть настолько гибкой, как того требует развитие технологий. Некоторые издания пишут, что Windows Core OS сможет составить Android ту конкуренцию, которую не смогла составить Windows Mobile.
- ИТ-маркетплейс Market.CNews: выбрать лучший из тысячи тариф на облачную инфраструктуру IaaS среди десятков поставщиков
- Короткая ссылка
- Распечатать
Начало › Windows 10 › Компьютер Raspberry Pi 2 и его настройки Windows 10
Raspberry Pi 2 – это совсем маленький компьютер, представляющий собой в продаже всего лишь одну небольшую плату, на которой расположены все компоненты. Девайс даже компактнее по размерам, чем большинство современных смартфонов – всего лишь чуть меньше, чем 9х6 сантиметров. Но по своим возможностям он способен с лёгкостью превзойти некоторые настольные ПК.
Поставляется это устройство без предустановленной операционной системы. На него существует несколько пакетов ОС, включая различные варианты Linux. Но коньком стала Windows 10 IoT Core. Компания Microsoft приняла решение портировать свою новейшую версию операционки на микрокомпьютер в апреле 2015 года. И к концу месяца готовая сборка уже была доступна для всех желающих. Но чтобы её установить на Raspberry Pi 2, нужно ещё постараться.
Подготовка к установке
В подготовку входит сбор необходимых для инсталляции компонентов. Понадобятся:
- Непосредственно сам микрокомпьютер Raspberry Pi 2 и монитор для него.
- Кабели HDMI, Ethernet и Micro-USB для соединения компонентов друг с другом и для питания компьютера.
- Клавиатура и мышка с кабелем USB.
- Карта Micro-SD, на которую в итоге и будет проходить установка. Должна быть десятого поколения. Можно новее.
- Собственно, сама система для микрокомпьютера.
- Компьютер-донор с Windows 10 – система обязательно должна быть основной, а не дополнительной на виртуальном ПК.
Перед установкой операционной системы на устройство нужно сначала записать её на накопитель, который будет с ним использоваться. Делается это следующим образом:
После скачки файла в формате *.iso надо установить его в виртуальный привод (система-донор уже это умеет самостоятельно). Оттуда запустить файл в формате *.msi и установить его.
Для того, чтобы начать установку Windows 10 IoT непосредственно на съёмный накопитель SD, нужно найти в той папке, куда установилась утилита из предыдущего шага, файл под названием IoTCoreImageHelper.exe. Чтобы долго не рыскать по папкам в системе, можно просто вбить его имя без расширения в Поиск (в меню «Пуск» или специальной строчке под иконкой с лупой рядом) и немного подождать.
Посмотрите ещё: Как обновить Windows 7 до Windows 10
После открытия этого файла появится окно графической утилиты. В ней следует указать, где расположен flash.ffu (это образ системы, который необходим для установки его в Raspberry Pi 2) и на какой накопитель, собственно, его загружать. Как правило, нужный файл находится по пути «C:Program Files (x86)Microsoft IoTFFURaspberryPi2». Затем карточку надо достать (обязательно при помощи безопасного извлечения, иначе файлы могут быть повреждены!).
Приступаем к установке
В первую очередь нужно «облагородить» саму плату микрокомпьютера – подключить к ней сетевой провод, монитор или телевизор при помощи кабеля HDMI, вставить карточку с системой Windows 10 IoT и подсоединить USB-шнур. А затем включить Raspberry Pi 2.
Придётся запастись терпением – самый первый запуск Windows 10 IoT Core будет длиться очень долго, поскольку происходит первичная установка параметров. После её завершения система будет автоматически перезагружена в нормальном состоянии.
После перезагрузки на экране, подключенном к Raspberry Pi 2, появится стартовая заставка. Она будет содержать:
- Изображение платы микрокомпьютера и название ОС.
- IP-адрес пользователя, выданный на этот ПК – только в случае, если есть DHCP-сервер.
- Перечень устройств, которые подключены к плате.
- Имя самой системы.
Можно считать, что установка Windows 10 IoT на микрокомпьютер Raspberry Pi 2 успешно завершена. Осталось только научиться пользоваться получившимся девайсом.
Использование микро-ПК
Свежеустановленная операционная система сделана так, что ей можно управлять при помощи веб-интерфейса. Для начала работы с устройством придётся активировать на компьютере-доноре утилиту WindowsIoTCoreWatcher.exe и посмотреть, какой IP-адрес она укажет. После чего полученный адрес вбивается в строку браузера на ПК-доноре.
Чтобы авторизоваться, потребуется ввести стандартные логин и пароль: administrator и p@ssw0rd соответственно. После этого устройством с ОС Windows 10 IoT Core можно управлять непосредственно из браузера.
Опубликовано в Windows 10Компания Microsoft официально анонсировала запуск поддержки модулей Intel Joule для Windows 10 IoT Core Anniversary Edition. Опробовать эту связку в деле можно будет уже в сентябре в рамках программы Windows Insider. Последние новости | В 5 сентября 2016 в 10:47
Платы разработки на базе Intel Joule при весьма скромных размерах выгодно отличаются от аналогов использованием мощного чипсетаВ Intel Atom T5700, вполне пригодного для обработки данных с 3D-камеры Inter RealSense 3D, например. Новые возможности перед создателями самых разных устройств открываются, благодаря доступным им 4 ГБ оперативной памяти, 16-гигабайтного eMMC-накопителя, графического ускорителяВ Intel HD, позволяющего захватыватьВ и демонстрировать видео в форматеВ 4K, модулям беспроводной связиВ Wi-FiВ 802.11ac сВ MIMO иВ Bluetooth 4.1, а также поддержке USB 3.0.
В
В
Чтобы продемонстрировать возможностиВ Intel Joule с Windows 10 Iot Core, специалисты Microsoft создали забавного робота-панду по имениВ Bamboo. Робот связан с облачными сервисами Microsoft Azure иВ Cognitive Services, служит в качестве автономного переводчика на английский язык и умеет следить за настроением владельца.
В
Подробнее ознакомиться с анонсом и получить все необходимые ссылки можно в этой публикацииВ официального блога Windows Developer.
В
Поделиться Читайте также Windows 10 IoT Core получила поддержку DragonBoard 410c Выпущена новая сборка Windows 10 IoT Core Insider Preview Microsoft запустила публичную версию Windows 10 IoT Core Комментарии
Raspberry Pi 3 Model B/B + SBC официально поддерживает Windows 10 IoT, но если вы когда-нибудь захотите запустить полную версию Windows 10, вам не повезет, поскольку Microsoft не предоставляет эту опцию.
Однако, теперь есть неофициальное приложение под названием WoA Installer для Raspberry Pi 3, позволяющее установить Windows 10 Home/Professional Arm64 на вашу плату Raspberry Pi 3 B/B +. WoA расшифровывается как Windows on Arm, а проект размещается на Github.
Все, что вам нужно, это компьютер с Windows 10 с .NET Framework 4.6.1, карта micro SD класса A1/A2, плата RPi 3 и образ Windows 10 ARM64.
Интересно то, что вам, нужно будет сгенерировать образ .wim через веб-браузер, перейдя по адресу https://uup.rg-adguard.net/, где вы сможете выбрать:
- Тип — Windows (финальная версия), Windows (внутренняя версия), накопительное обновление для Windows 10
- Версия — на выбор x86 или arm64 для Windows. Убедитесь, что вы получили сборку arm64
- Язык
- Версия — Windows 10 Home или Windows 10 Professional
- Тип загрузки — Загрузить ISO-компиляцию в OneClick! (рекомендуется), Aria2, UpdateOS в OneClick !, или «ссылки для генерации по умолчанию»
Будет сгенерирован сценарий .cmd, который необходимо запустить в терминале Windows 10 для создания образа ISO, который можно будет смонтировать в Windows, и где вы найдете файл install.vim, который будет записан на карту микро SD через Инструменты установки WoA, упомянутые выше.
У нас нет уверенности, что этот метод не нарушает условия лицензии Microsoft, и запуск Windows 10 Home/ Pro только на 1 ГБ оперативной памяти может быть безумным, но по крайней мере такой вариант существует. Однако, большинство людей, скорее всего, захотят придерживаться Raspbian.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.
2016-04-11 в 8:26, , рубрики: .net, #isvcloudstory, azure iot, azure marketplace, devicehive, internet of things, IoT, Microsoft Azure, Raspberry Pi, visual studio 2015, Win10 IoT Core, Windows 10, Windows 10 iot, Windows Universal, Блог компании Microsoft, Разработка для интернета вещей, разработка под windows
Привет.
Наверное каждый разработчик на определенном этапе задумывался о собственном IoT-проекте. Internet of Things сейчас поистине вездесущ и многим из нас хочется попробовать свои силы. Но не все знают, с чего начать и за что браться в первую очередь. Сегодня давайте посмотрим, как легко и непринужденно запустить свой собственный IoT-проект под Raspberry Pi 2, используя Windows 10 IoT Core и DeviceHive.
Деплоим Windows 10 приложения на Raspberry Pi 2
Для начала давайте установим Windows 10 IoT Core на Raspberry Pi. Для этого нам потребуется Windows 10 IoT Core Dashboard, который можно взять вот здесь. Там же можно при желании скачать отдельно ISO-образ, но особого смысла в этом нет — инструмент сделает это за вас. Затем мы загружаем образ на misroSD-флешку.
Подключаем флешку к Raspberry и включаем. Первую загрузку ОС придется подождать, мгновенной она, конечно, не будет. Когда устройство «оживет» — подключаем Raspberry к локальной сети по Ethernet. Снова открываем Windows 10 IoT Core Dashboard и видим в списке «Мои устройства» заветную строчку. К слову, можно обойтись и без проводного подключения – список WiFi-донглов, поддерживаемых Windows 10 IoT Core, находится тут.
Далее нам понадобится Visual Studio 2015. Если она у вас все еще не установлена (хотя вы бы вряд ли читали эту статью в таком случае), можно скачать Community Edition.
Создаем новый или же открываем существующий Windows Universal проект. Кстати, если в проекте не нужен UI, можно создать Headless Application, выбрав тип проекта Windows IoT Core Background Application.
Выбираем деплой на Remote Machine.
Вводим адрес Raspberry. Посмотреть его можно на стартовом экране Win10 IoT Core или в Windows 10 IoT Core Dashboard.
Собственно, Internet of Things
Раз уж у нас статья о embedded — «моргать светодиодами» придется в любом случае. Хорошо, что мы имеем дело с DeviceHive, у которого заготовлены инструменты на все случаи жизни и все платформы. Поэтому светодиод будет виртуальный и тоже на .NET.
Клонируем master-ветку DeviceHive.NET репозитория с GitHub. На момент написания статьи рабочие примеры для Win10 IoT были именно там.
Открываем solution DeviceHive.Device и в файле Program.cs проекта VirtualLed настраиваем доступ к песочнице DeviceHive.
using (var service = new RestfulDeviceService("http://playground.devicehive.com/api/rest")) { // create a DeviceHive network where our device will reside var network = new Network("Network WPNBEP", "Playground Network", "%NETWORK_KEY%"); //... }
Если вы интересуетесь IoT, но по какой-то немыслимой причине еще не обзавелись DeviceHive Playground – это можно сделать здесь.
А управлять нашим «светодиодом» будет… Нет, пока не Raspberry, а клиент виртуального светодиода. Пример находится в проекте VirtualLedClient солюшена DeviceHive.Client. Его тоже нужно настроить в файле Program.cs:
var connectionInfo = new DeviceHiveConnectionInfo("http://playground.devicehive.com/api/rest", "%ACCESS_KEY%");
Самое интересное
Наше приложение на Raspberry Pi будет не просто кнопочкой включения/выключения светодиода, а практически полноценной админкой всех IoT-устройств нашей DeviceHive-сети. При желании, конечно, можно упростить его до той самой «кнопочки» или наоборот расширить, например, до клиента, управляющего роботом телеприсутствия.
Готовое приложение находится в том же репозитории, в solution DeviceHive.WindowsManager.Universal. Не будем останавливаться на нюансах гайдлайнов Win10 – корни приложения растут еще из Win8. Не будет тут и MVVM – все и так знают, как его применять. Давайте сосредоточимся на главном: нам нужна консоль мониторинга и управления устройствами, подключенными к DeviceHive, под Windows 10 на Raspberry Pi2.
Для DeviceHive реализовано три клиентских библиотеки:
- DeviceHive.Client – для «большого» .NET 4.5 и выше. Использует WebSocket4Net.
- DeviceHive.Client.Portable – для Windows 8.1 и Windows Phone 8.1. Использует нативные WebSockets.
- DeviceHive.Client.Universal – для всех редакций Windows 10, в том числе для Win10 IoT Core. Именно она используется в нашем приложении.
Наследуем ClientService от DeviceHiveClient и инициализируем его сеттингами:
DeviceHiveConnectionInfo connInfo; if (!String.IsNullOrEmpty(Settings.Instance.CloudAccessKey)) { connInfo = new DeviceHiveConnectionInfo(Settings.Instance.CloudServerUrl, Settings.Instance.CloudAccessKey); } else { connInfo = new DeviceHiveConnectionInfo(Settings.Instance.CloudServerUrl, Settings.Instance.CloudUsername, Settings.Instance.CloudPassword); } current = new ClientService(connInfo, new RestClient(connInfo));
А также указываем не использовать LongPolling, а только WebSocket, дабы не упираться в лимит одновременных HTTP-запросов:
SetAvailableChannels(new Channel[] { new WebSocketChannel(connectionInfo, restClient) });
Загружаем список девайсов и группируем их по сетям в MainPage:
var deviceList = await ClientService.Current.GetDevicesAsync(); var networkList = (await ClientService.Current.GetNetworksAsync()).FindAll(n => n.Id != null); foreach (Network network in networkList) { var devices = deviceList.FindAll(d => d.Network?.Id == network.Id); if (devices.Count > 0) { networkWithDevicesList.Add(new NetworkViewModel(network) { Devices = devices }); } }
А вот и наш виртуальный светодиод:
Переходим на DevicePage, подгружаем информацию о нем:
Device = await ClientService.Current.GetDeviceAsync(deviceId);
Переключаемся на вкладку с уведомлениями. Уведомления отправляются от управляемого устройства к управляющему устройству. В нашем случае – от VirtualLedClient к VirtualLed. Инициализируем автоподгружающийся список с «бесконечным» скроллом:
NotificationFilter filter = new NotificationFilter() { End = filterNotificationsEnd, Start = filterNotificationsStart, SortOrder = SortOrder.DESC }; var list = new IncrementalLoadingCollection(async (take, skip) => { filter.Skip = (int)skip; filter.Take = (int)take; return await ClientService.Current.GetNotificationsAsync(deviceId, filter); }, 20);
Если не определена конечная дата фильтрации списка нотификаций, подписываемся на новые уведомления, которые будут приходить через вебсокет:
notificationsSubscription = await ClientService.Current.AddNotificationSubscriptionAsync(new[] { deviceId }, null, async (notificationReceived) => { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { lock (NotificationsObservable) { if (!NotificationsObservable.Any(c => c.Id == notificationReceived.Notification.Id)) { NotificationsObservable.Insert(0, notificationReceived.Notification); } } }); });
Если попробовать переключать наш виртуальный светодиод, то уведомления о его новом состоянии тут же отобразятся в списке.
Если поменять настройки фильтрации, то автоподгружающийся список заново инициализируется с новым фильтром.
Теперь пришла очередь вкладки команд. Команды похожи на нотификации, но направлены от управляющего устройства к управляемому, а также могут иметь статус и результат выполнения.
CommandFilter filter = new CommandFilter() { End = filterCommandsEnd, Start = filterCommandsStart, SortOrder = SortOrder.DESC }; var list = new IncrementalLoadingCollectionlabel="label" />(async (take, skip) => { filter.Skip = (int)skip; filter.Take = (int)take; return await ClientService.Current.GetCommandsAsync(deviceId, filter); }, 20);
Аналогично подписываемся на новые команды:
commandsSubscription = await ClientService.Current.AddCommandSubscriptionAsync(new[] { deviceId }, null, async (commandReceived) => { await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { lock (CommandsObservable) { if (!CommandsObservable.Any(c => c.Id == commandReceived.Command.Id)) { CommandsObservable.Insert(0, commandReceived.Command); } } }); });
Поскольку мы делаем инструмент не только для мониторинга, но и для управления устройствами в DeviceHive сети, нужно реализовать возможность отправки команд:
var parameters = commandParams.Text != "" ? JObject.Parse(commandParams.Text) : null; var command = new Command(commandName.Text, parameters); await ClientService.Current.SendCommandAsync(deviceId, command, CommandResultCallback);
При отправке команды мы подписались на ее обновление методом CommandResultCallback. Обрабатываем результат выполнения команды:
foreach (Command cmd in CommandsObservable) { if (command.Id == command.Id) { // Command class doesn't implement INotifyPropertyChanded to update its result, // so old command is replaced by command with result: var index = commandsObservable.IndexOf(cmd); commandsObservable.RemoveAt(index); commandsObservable.Insert(index, command); break; } }
Чтобы не копировать команды вручную, нужно предусмотреть клонирование команд. Выделяем, клонируем, если нужно – редактируем, отправляем.
Задача выполнена! Как видите, Raspberry Pi 2 c Windows 10 IoT Core и DeviceHive – отличное решение для практически любой задачи в контексте Internet of Things. Прикрутите пару кнопок, dashboard и подключите Raspberry Pi к телевизору в гостиной – мониторинг и управление умным домом готово. Купили лишних Raspberry? Не вопрос, библиотека DeviceHive.Client умеет работать не только в качестве управляющего клиента, но и в качестве управляемого девайса – реализуем Headless Application, подключаем датчики/реле и устанавливаем Raspberry Pi по дому. Ограничивает вас лишь ваша фантазия.
Заключение
Появление Windows 10 IoT Core – это именно то, чего ждали embedded-разработчики. Когда ресурсов даже самого мощного микроконтроллера на .NET Micro Framework (для которого, кстати, тоже есть реализация DeviceHive) не хватает, а ставить полноценный компьютер на Windows – все равно, что стрелять из пушки по воробьям, то Windows 10 IoT Core – настоящее спасение. И пусть пока есть нюансы с аппаратным ускорением графики и недостатком драйверов для некоторых USB-устройств – это всё простительно. Ведь еще недавно мы только мечтали, чтобы Windows-приложения, работающие на настольных ПК и планшетах запускались не только на телефонах, но и на микрокомпьютерах. А теперь – это реальность, добро пожаловать в «сегодня».
Об авторе
Антон Седышев — Senior .NET-разработчик «DataArt »
В IT работает с далекого 2003, к команде DataArt присоединился в 2012. Ранее занимался разработкой веб- и мобильных проектов, автоматизицией логистических процессов на складах крупной международной компании. Сейчас выступает в роли ведущего .NET-разработчика и идеолога Microsoft-сообщества DataArt. Занимается разработкой приложений на Windows Phone и Windows 10, сервисом DeviceHive и embedded-технологиями вообще. В свободное время работает над собственным OpenSource embedded-проектом по интеграции .NET Micro Framework устройства в автомобили BMW.
Автор: Microsoft
Источник
–>
ли со статьей или есть что добавить?