iot-core-azure-dm-client
iot-core-azure-dm-client copied to clipboard
Device Management Client for Windows IoT Core
Managing Windows IoT Devices through Azure IoT Hub
Announcement - April 4th, 2021
This repository is being marked as Archived. Please refer to the new Windows Azure DM Client https://github.com/ms-iot/azure-client-tools.
Announcement - January 10th, 2019
We have released a new version of the Windows Azure DM Client at https://github.com/ms-iot/azure-client-tools. It will eventually replace the code in this repo. Check-out the new version, and let us know what you think!
Overview
Device Management (DM) allows operators to remotely configure and monitor very high volumes of IoT devices simultaneously.
Configuration for the devices can be pushed to devices, whether the target devices are online or offline. If the device is offline it will pick up the new configuration when it reconnects. Device operators can also retrieve the status of each device, including whether device configuration updates have been successfully applied or not.
Enabling these features for IoT devices requires a central, robust, and reliable mechanism to store and to deploy the configuration data to the target devices, and monitor device status - at scale.
A complete solution requires the following:
-
A Robust/Scalable Cloud Service to store the desired and reported states of the various devices.
- Azure IoT Hub and Azure Device Management offer a highly scalable and efficient cloud service for managing millions of devices.
-
A Client that runs on the device and can apply the desired configuration and report the state of the device.
- The Windows IoT Azure DM Client (an open source SDK + runtime), in conjunction with Azure IoT Hub, can apply and report on a large set of common, sometimes critical, Windows configurations.
-
A Portal or an Application that will be used by the operator to configure and query the devices remotely.
- This must be customized for devices by the device OEM or operator. As part of this solution, we also provide an open source data model and implementation for easier interaction with the IoT Hub storage and the Windows IoT client.
This repo holds the Windows IoT Azure DM Client open source SDK + runtime components necessary to achieve the described scenario.
Windows IoT Azure DM Client
Release Notes
October 2017 - Full Feature List
June 2018 - Full Feature List
Overview
The Windows IoT Azure DM Client integrates tightly with the user's application on the device. This integration allows some interaction scenarios between the remote configuration and the application business logic.
The DM client consists of:
- A UWP library (Windows IoT Azure DM Client Library) that is to be linked to the user's application. The application can be a foreground application or a background application.
- An NT service (SystemConfigurator) that is running with System privilege and can listen to Azure IoT Hub notifications relayed by the UWP library and carry out the necessary device management actions.
Getting Started...
- IoT Core Azure Device Management Overview
- Azure IoT Hub
- Sample Applications
- DM Application Creation Walk-through
- Exposing New Configuration Walk-through
System Requirements
Developer's Box
- Visual Studio 2017 (download).
- Make sure the following is selected:
- VC++ 2017 v141 toolset (x86, x64)
- Visual C++ compilers and libraries for ARM.
- Visual C++ 2017 redistributable update.
- Visual C++ runtime for UWP.
- Visual Studio C++ Core Features
- Visual C++ ATL support
- Windows 10 SDK (10.0.15063.0) for Desktop
- Windows 10 SDK (10.0.15063.0) for UWP
- Windows 10 SDK (10.0.16299.0) for UWP (For DMController)
- Make sure the following is selected:
Device
- Windows IoT Core build 15063 (March 2017) or later.
Reference
- Architecture
- Building the Device Management Binaries
- OEM Device Setup
- Library Reference
- Device Provisioning Service(DPS) Client
- Azure Device Management Certification