Skip to content
Dave Glover edited this page Sep 10, 2021 · 4 revisions

Welcome to the Azure Sphere DevX Library wiki

The AzureSphereDevX library and the AzureSphere.Examples are community maintained repositories.

Cloning and set up

  1. Clone the examples.

    git clone --recurse-submodules https://github.com/Azure-Sphere-DevX/AzureSphereDevX.Examples.git
  2. Follow the build tools notes to update and test build all examples.

Purpose

The DevX library accelerates your development and will help to improve your developer experience building Azure Sphere applications. The DevX library addresses many common Azure Sphere scenarios, it will help reduce the amount of code you write and improve readability and long-term application maintenance.

The focus of the Azure Sphere DevX library is the communications and simplification of common scenarios when building Azure Sphere applications.

The DevX library focuses on:

  1. Azure IoT Messaging: Implements connection management, and simplifies sending messages along with application and content properties metadata.
  2. Azure IoT Hub Device Twins: Handles Device Twin JSON serialization and deserialisation along with a type system to validate data types received and sent. The type system supports int, float, double, bool, and strings and can easily be extended.
  3. Direct methods: Simplifies in-bound direct methods message processing and passes direct method payload to the associated direct method handler.
  4. Intercore messaging: Provides a context model to simplify the passing of messages between the high-level and real-time cores.
  5. Event times: Simplified API for all common Event Timer scenarios.
  6. GPIO: Simplifies access to GPIO.

Click to play youtube introduction to Azure Sphere DevX

To learn more about Azure Sphere and Azure RTOS check out Combining Azure Sphere IoT security with Azure RTOS real-time capabilities article.

There are two Microsoft Learn modules which include hands-on labs you can download to start your Azure Sphere and Azure RTOS journey.

The DevX library is built from the Azure Sphere samples, it's well tested, and aims to facilitate Azure Sphere best practices. The DevX library is lightweight, addresses common scenarios, and will sit alongside your existing code base.

devx architecture

The DevX library design is context-based, you declare a context and implement a context handler (or callback). See the Encapsulate Pattern, it's a fair description of how this library works.

There are examples of each context in the examples folder of this repo.

The library prefixes all file names, functions, structures, and enums with DX_ or dx_ to avoid clashes with existing code and file names.

Navigate the Wiki sidebar to learn more about the DevX library.