A modelling and serializer library for Microsoft Azure IoTHub client applications

Dependents:   sht15_remote_monitoring f767zi_mqtt remote_monitoring simplesample_amqp ... more

This library implements a serializer library to be used in projects involving Microsoft Azure IoT Hub connectivity. The code is replicated from https://github.com/Azure/azure-iot-sdks

Committer:
AzureIoTClient
Date:
Tue Sep 11 11:14:37 2018 -0700
Revision:
36:7d12a5386197
Parent:
26:7c0e6f86d034
1.2.9

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AzureIoTClient 0:1f9b2707ec7d 1 // Copyright (c) Microsoft. All rights reserved.
AzureIoTClient 0:1f9b2707ec7d 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
AzureIoTClient 0:1f9b2707ec7d 3
AzureIoTClient 0:1f9b2707ec7d 4 #ifndef IOTDEVICE_H
AzureIoTClient 0:1f9b2707ec7d 5 #define IOTDEVICE_H
AzureIoTClient 0:1f9b2707ec7d 6
AzureIoTClient 0:1f9b2707ec7d 7 #include <stdbool.h>
Azure.IoT Build 10:c2aee3965a83 8 #include "azure_c_shared_utility/macro_utils.h"
AzureIoTClient 0:1f9b2707ec7d 9 #include "schema.h"
AzureIoTClient 0:1f9b2707ec7d 10 #include "datapublisher.h"
AzureIoTClient 0:1f9b2707ec7d 11 #include "commanddecoder.h"
Azure.IoT.Build 18:58b667752399 12 #include "methodreturn.h"
AzureIoTClient 0:1f9b2707ec7d 13
AzureIoTClient 0:1f9b2707ec7d 14 #ifdef __cplusplus
AzureIoTClient 0:1f9b2707ec7d 15 #include <cstddef>
AzureIoTClient 0:1f9b2707ec7d 16 extern "C" {
AzureIoTClient 0:1f9b2707ec7d 17 #else
AzureIoTClient 0:1f9b2707ec7d 18 #include <stddef.h>
AzureIoTClient 0:1f9b2707ec7d 19 #endif
AzureIoTClient 0:1f9b2707ec7d 20
AzureIoTClient 36:7d12a5386197 21 #define DEVICE_RESULT_VALUES \
AzureIoTClient 36:7d12a5386197 22 DEVICE_OK, \
AzureIoTClient 36:7d12a5386197 23 DEVICE_INVALID_ARG, \
AzureIoTClient 36:7d12a5386197 24 DEVICE_DATA_PUBLISHER_FAILED, \
AzureIoTClient 36:7d12a5386197 25 DEVICE_COMMAND_DECODER_FAILED, \
AzureIoTClient 0:1f9b2707ec7d 26 DEVICE_ERROR
AzureIoTClient 0:1f9b2707ec7d 27
AzureIoTClient 0:1f9b2707ec7d 28 DEFINE_ENUM(DEVICE_RESULT, DEVICE_RESULT_VALUES)
AzureIoTClient 0:1f9b2707ec7d 29
AzureIoTClient 17:fa1bba4c6053 30 #include "azure_c_shared_utility/umock_c_prod.h"
AzureIoTClient 0:1f9b2707ec7d 31
AzureIoTClient 17:fa1bba4c6053 32 typedef struct DEVICE_HANDLE_DATA_TAG* DEVICE_HANDLE;
AzureIoTClient 17:fa1bba4c6053 33 typedef EXECUTE_COMMAND_RESULT (*pfDeviceActionCallback)(DEVICE_HANDLE deviceHandle, void* callbackUserContext, const char* relativeActionPath, const char* actionName, size_t argCount, const AGENT_DATA_TYPE* args);
Azure.IoT.Build 18:58b667752399 34 typedef METHODRETURN_HANDLE (*pfDeviceMethodCallback)(DEVICE_HANDLE deviceHandle, void* callbackUserContext, const char* relativeMethodPath, const char* methodName, size_t argCount, const AGENT_DATA_TYPE* args);
AzureIoTClient 17:fa1bba4c6053 35
Azure.IoT.Build 18:58b667752399 36 MOCKABLE_FUNCTION(,DEVICE_RESULT, Device_Create, SCHEMA_MODEL_TYPE_HANDLE, modelHandle, pfDeviceActionCallback, deviceActionCallback, void*, callbackUserContext, pfDeviceMethodCallback, methodCallback, void*, methodCallbackContext, bool, includePropertyPath, DEVICE_HANDLE*, deviceHandle);
AzureIoTClient 17:fa1bba4c6053 37 MOCKABLE_FUNCTION(, void, Device_Destroy, DEVICE_HANDLE, deviceHandle);
AzureIoTClient 0:1f9b2707ec7d 38
AzureIoTClient 17:fa1bba4c6053 39 MOCKABLE_FUNCTION(,TRANSACTION_HANDLE, Device_StartTransaction, DEVICE_HANDLE, deviceHandle);
AzureIoTClient 17:fa1bba4c6053 40 MOCKABLE_FUNCTION(,DEVICE_RESULT, Device_PublishTransacted, TRANSACTION_HANDLE, transactionHandle, const char*, propertyPath, const AGENT_DATA_TYPE*, data);
AzureIoTClient 17:fa1bba4c6053 41 MOCKABLE_FUNCTION(,DEVICE_RESULT, Device_EndTransaction, TRANSACTION_HANDLE, transactionHandle, unsigned char**, destination, size_t*, destinationSize);
AzureIoTClient 17:fa1bba4c6053 42 MOCKABLE_FUNCTION(,DEVICE_RESULT, Device_CancelTransaction, TRANSACTION_HANDLE, transactionHandle);
AzureIoTClient 0:1f9b2707ec7d 43
AzureIoTClient 17:fa1bba4c6053 44 MOCKABLE_FUNCTION(, REPORTED_PROPERTIES_TRANSACTION_HANDLE, Device_CreateTransaction_ReportedProperties, DEVICE_HANDLE, deviceHandle);
AzureIoTClient 17:fa1bba4c6053 45 MOCKABLE_FUNCTION(, DEVICE_RESULT, Device_PublishTransacted_ReportedProperty, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle, const char*, reportedPropertyPath, const AGENT_DATA_TYPE*, data);
AzureIoTClient 17:fa1bba4c6053 46 MOCKABLE_FUNCTION(, DEVICE_RESULT, Device_CommitTransaction_ReportedProperties, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle, unsigned char**, destination, size_t*, destinationSize);
AzureIoTClient 17:fa1bba4c6053 47 MOCKABLE_FUNCTION(, void, Device_DestroyTransaction_ReportedProperties, REPORTED_PROPERTIES_TRANSACTION_HANDLE, transactionHandle);
AzureIoTClient 17:fa1bba4c6053 48
AzureIoTClient 17:fa1bba4c6053 49 MOCKABLE_FUNCTION(, EXECUTE_COMMAND_RESULT, Device_ExecuteCommand, DEVICE_HANDLE, deviceHandle, const char*, command);
Azure.IoT.Build 18:58b667752399 50 MOCKABLE_FUNCTION(, METHODRETURN_HANDLE, Device_ExecuteMethod, DEVICE_HANDLE, deviceHandle, const char*, methodName, const char*, methodPayload);
AzureIoTClient 17:fa1bba4c6053 51
AzureIoTClient 26:7c0e6f86d034 52 MOCKABLE_FUNCTION(, DEVICE_RESULT, Device_IngestDesiredProperties, void*, startAddress, DEVICE_HANDLE, deviceHandle, const char*, jsonPayload, bool, parseDesiredNode);
AzureIoTClient 0:1f9b2707ec7d 53 #ifdef __cplusplus
AzureIoTClient 0:1f9b2707ec7d 54 }
AzureIoTClient 0:1f9b2707ec7d 55 #endif
AzureIoTClient 0:1f9b2707ec7d 56
AzureIoTClient 0:1f9b2707ec7d 57 #endif /* IOTDEVICE_H */
AzureIoTClient 0:1f9b2707ec7d 58