IoTConnect C SDK
C Language SDK
Version 1.0
Updated on 02 January 2023
This package outlines in detail how to install and run an IoTConnect generic C SDK.
| Date | Name | Download | 
|---|---|---|
| 02 January 2023 | iotc-generic-c-sdk-2.1 | Download  | 
| 01 February 2024 | V3.1 | Getting started | 
Introduction
- IoTConnect generic C SDK package is flexible to integrate with Azure IoT C SDK or Paho MQTT C Client.
 - It works for both – Azure as well as AWS brokers. Azure IoT C SDK lib does not work for AWS configuration.
 - At the same time, the Paho MQTT implementation does not support TPM authentication.
 
CMake Build Options
Note: Our SDK is configured with Azure IoT C SDK by default. You can toggle it with CMake flags for
using it eather PAHO/AWS mqtt lib:
- IOTC_USE_PAHO=ON – Builds with PAHO/AWS MQTT Client instead of Azure IoT C SDK by default.
 - IOTC_TPM_SUPPORT=ON – Adds TPM Support for Azure IoT C SDK. Requires IOTC_USE_PAHO=OFF.
 
Getting started
Prerequisites
- The IoTConnect generic C SDK depends on curl OpenSSL libraries and UUID library. (UUID required for Azure C SDK flavor only).
 - To build the source, ensure that the shared libraries and the C source headers are on the build host.
 - This SDK depends on Curl and OpenSSL libraries while running on the device. To run this SDK,
 
use the following git submodules:
- cJSON v1.7.13
 - iotc-c-lib v2.0.2
 - azure-iot-sdkl ts_01_2021
 - paho.mqtt.c v1.3.9
 
Installation
This project has git submodules that need to be pulled before building. You can either:
- Download “iotc-generic-c-sdk-2.1.zip” and extract.
 - Edit samples/basic-sample/config/app_config.h to reflect your account and device’s configuration.
 - If using CA Certificate-based authentication, follow the instructions in the iotc-c-lib/tools/ecc-certs. Place the device certificate and private key into certs/client-crt.pem and certs/client-key.pem in the basic-sample project.
 
Note: Build or re-build the IoTConnect generic C SDK after editing the app_config.h file.
- Follow the instructions for your OS: