• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..--

azure-sdk-for-c/11-Mar-2024-

docs/11-Mar-2024-3,9262,743

samples/11-Mar-2024-3,0812,212

README.mdD11-Mar-20245.6 KiB7349

nx_azure_iot.cD11-Mar-202428 KiB808577

nx_azure_iot.hD11-Mar-202414.5 KiB321167

nx_azure_iot_adu_agent.cD11-Mar-2024214.3 KiB4,6453,403

nx_azure_iot_adu_agent.hD11-Mar-202436.1 KiB818377

nx_azure_iot_adu_root_key.cD11-Mar-20248.9 KiB11977

nx_azure_iot_hub_client.cD11-Mar-2024138.6 KiB3,4692,653

nx_azure_iot_hub_client.hD11-Mar-202461.6 KiB1,008228

nx_azure_iot_hub_client_properties.cD11-Mar-202417 KiB379291

nx_azure_iot_hub_client_properties.hD11-Mar-202412 KiB26436

nx_azure_iot_json_reader.cD11-Mar-20247.8 KiB278205

nx_azure_iot_json_reader.hD11-Mar-20248.9 KiB21752

nx_azure_iot_json_writer.cD11-Mar-202414.9 KiB433333

nx_azure_iot_json_writer.hD11-Mar-202413 KiB30652

nx_azure_iot_provisioning_client.cD11-Mar-202461.3 KiB1,4341,091

nx_azure_iot_provisioning_client.hD11-Mar-202417.2 KiB29198

README.md

1# Azure IoT Middleware for Azure RTOS
2
3Azure IoT Middleware for Azure RTOS is a platform specific library that acts as a binding layer between the Azure RTOS and the [Azure SDK for Embedded C](https://github.com/Azure/azure-sdk-for-c). Goals of this layer are following:
4
5* Expose smart client interfaces (IoTHub_Client, DeviceProvisioning_Client) for the customers, to be consumed in their application.
6* Orchestrate the interaction between Embedded C SDK and platform.
7* Provide Azure RTOS platform initialization.
8* [IoT Plug and Play](https://learn.microsoft.com/azure/iot-develop/overview-iot-plug-and-play) support.
9* Security capabilities.
10* Resource limitation aware.
11* Protocol support.
12
13## Getting Started
14
15See the following samples on how to get started on development boards with Azure IoT Middleware for Azure RTOS:
16
17Manufacturer | Device | Samples |
18| --- | --- | --- |
19| STMicroelectronics | [STM32F746GDISCOVERY](https://www.st.com/en/evaluation-tools/32f746gdiscovery.html) | [IAR](https://aka.ms/azrtos-sample/f746g-iar) • [STM32Cube](https://aka.ms/azrtos-sample/f746g-cubeide)
20| STMicroelectronics | [B-L4S5I-IOT01](https://www.st.com/en/evaluation-tools/b-l4s5i-iot01a.html) / [B-L475E-IOT01](https://www.st.com/en/evaluation-tools/b-l475e-iot01a.html) | [GCC/CMake](https://github.com/eclipse-threadx/getting-started/tree/master/STMicroelectronics/STM32L4_L4%2B) • [IAR](https://aka.ms/azrtos-sample/l4s5-iar) • [STM32Cube](https://aka.ms/azrtos-sample/l4s5-cubeide)
21| NXP | [MIMXRT1060-EVK](https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/mimxrt1060-evk-i-mx-rt1060-evaluation-kit:MIMXRT1060-EVK) | [GCC/CMake](https://github.com/eclipse-threadx/getting-started/tree/master/NXP/MIMXRT1060-EVK) • [IAR](https://aka.ms/azrtos-sample/rt1060-iar) • [MCUXpresso](https://aka.ms/azrtos-sample/rt1060-mcuxpresso)
22| Renesas | [RX65N-RSK-2MB](https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx65n-2mb-starter-kit-plus-renesas-starter-kit-rx65n-2mb) | [GCC/CMake](https://github.com/eclipse-threadx/getting-started/tree/master/Renesas/RSK_RX65N_2MB) • [IAR](https://aka.ms/azrtos-samples/rx65n-rsk-2mb-iar) • [E2Studio CCRX](https://aka.ms/azrtos-samples/rx65n-rsk-2mb-ccrx) • [E2Studio GNURX](https://aka.ms/azrtos-samples/rx65n-rsk-2mb-gnurx)
23| Renesas | [RX65N-Cloud-Kit](https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx65n-cloud-kit-renesas-rx65n-cloud-kit) | [E2Studio CCRX](https://aka.ms/azrtos-samples/rx65n-ck-ccrx) • [E2Studio GNURX](https://aka.ms/azrtos-samples/rx65n-ck-gnurx)
24| Microchip | [ATSAME54-XPRO](https://www.microchip.com/developmenttools/productdetails/atsame54-xpro) | [GCC/CMake](https://github.com/eclipse-threadx/getting-started/tree/master/Microchip/ATSAME54-XPRO) • [IAR](https://aka.ms/azrtos-sample/e54-iar) • [MPLAB](https://aka.ms/azrtos-sample/e54-mplab)
25| MXCHIP | [AZ3166](https://aka.ms/iot-devkit) | [GCC/CMake](https://github.com/eclipse-threadx/getting-started/tree/master/MXChip/AZ3166)
26
27## Building
28
29The Azure IoT Middleware for Azure RTOS is built as part of the NetX Duo. Make sure you have defined the following macros in the `CMakeLists.txt` or `nx_user.h` when building it:
30
31Module | Macros |
32| --- | --- |
33| Azure IoT Middleware for Azure RTOS | `NX_ENABLE_EXTENDED_NOTIFY_SUPPORT`<br> `NX_SECURE_ENABLE`<br> `NXD_MQTT_CLOUD_ENABLE`
34
35Follow [`nx_user_sample.h`](https://github.com/eclipse-threadx/netxduo/blob/master/common/inc/nx_user_sample.h) to see how to define these macros in the NetX user header file.
36
37## Features
38
39Azure IoT Middleware for Azure RTOS stays as an addon module for the Azure RTOS NetX Duo. It facilitates the MQTT and TLS stacks that are also as part of NetX Duo addons.
40
41![diagram](./docs/img/diagram.png)
42
43### Basic features
44
45* Connect to Azure IoT Hub via MQTT.
46* Support of IoT Hub primitive data format: [device to cloud (D2C) message](https://learn.microsoft.com/azure/iot-hub/iot-hub-devguide-d2c-guidance), [Device Twins](https://learn.microsoft.com/azure/iot-hub/iot-hub-devguide-device-twins) and [Direct methods](https://learn.microsoft.com/azure/iot-hub/iot-hub-devguide-direct-methods).
47* Support of IoT Plug and Play data format: Telemetry, Properties and Commands.
48* Authentication: SAS Token and X.509 client certificate.
49* JSON parsers.
50
51### Device Update for IoT Hub
52
53[Device Update for IoT Hub](https://learn.microsoft.com/azure/iot-hub-device-update/understand-device-update) is an Azure service that enables you to deploy over-the-air updates (OTA) for your IoT devices. The [Device Update for IoT Hub agent](https://learn.microsoft.com/azure/iot-hub-device-update/device-update-azure-real-time-operating-system) in the IoT Middleware provides simple APIs for device builders to integrate the OTA capability easily.
54
55See the [samples](https://github.com/eclipse-threadx/samples) of semiconductor's hero development boards with detailed guides to learn configure, build and deploy the over-the-air (OTA) updates to the devices.
56
57## APIs
58
59* [nx_azure_iot](./docs/azure_rtos_iot.md)
60* [nx_azure_iot_hub_client](./docs/azure_rtos_iot_hub_client.md)
61* [nx_azure_iot_hub_client_properties](./docs/azure_rtos_iot_hub_client_properties.md)
62* [nx_azure_iot_provisioning_client](./docs/azure_rtos_iot_provisioning_client.md)
63* [nx_azure_iot_json](./docs/azure_rtos_iot_json.md)
64* [nx_azure_iot_adu_agent](./docs/azure_rtos_iot_adu_agent.md)
65
66## Need Help?
67
68Find support channels in the [Resources](https://github.com/eclipse-threadx/netxduo#resources) list.
69
70## Licensing
71
72View [Licensing](https://github.com/eclipse-threadx/netxduo#licensing) of Azure RTOS NetX Duo.
73