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 15 21:57:26 2015 -0700
Revision:
0:1f9b2707ec7d
Child:
10:c2aee3965a83
New release

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>
AzureIoTClient 0:1f9b2707ec7d 8 #include "macro_utils.h"
AzureIoTClient 0:1f9b2707ec7d 9 #include "schema.h"
AzureIoTClient 0:1f9b2707ec7d 10 #include "datapublisher.h"
AzureIoTClient 0:1f9b2707ec7d 11 #include "commanddecoder.h"
AzureIoTClient 0:1f9b2707ec7d 12
AzureIoTClient 0:1f9b2707ec7d 13 #ifdef __cplusplus
AzureIoTClient 0:1f9b2707ec7d 14 #include <cstddef>
AzureIoTClient 0:1f9b2707ec7d 15 extern "C" {
AzureIoTClient 0:1f9b2707ec7d 16 #else
AzureIoTClient 0:1f9b2707ec7d 17 #include <stddef.h>
AzureIoTClient 0:1f9b2707ec7d 18 #endif
AzureIoTClient 0:1f9b2707ec7d 19
AzureIoTClient 0:1f9b2707ec7d 20 #define DEVICE_RESULT_VALUES \
AzureIoTClient 0:1f9b2707ec7d 21 DEVICE_OK, \
AzureIoTClient 0:1f9b2707ec7d 22 DEVICE_INVALID_ARG, \
AzureIoTClient 0:1f9b2707ec7d 23 DEVICE_DATA_PUBLISHER_FAILED, \
AzureIoTClient 0:1f9b2707ec7d 24 DEVICE_COMMAND_DECODER_FAILED, \
AzureIoTClient 0:1f9b2707ec7d 25 DEVICE_ERROR
AzureIoTClient 0:1f9b2707ec7d 26
AzureIoTClient 0:1f9b2707ec7d 27 DEFINE_ENUM(DEVICE_RESULT, DEVICE_RESULT_VALUES)
AzureIoTClient 0:1f9b2707ec7d 28
AzureIoTClient 0:1f9b2707ec7d 29 typedef void* DEVICE_HANDLE;
AzureIoTClient 0:1f9b2707ec7d 30 typedef EXECUTE_COMMAND_RESULT (*pPfDeviceActionCallback)(DEVICE_HANDLE deviceHandle, void* callbackUserContext, const char* relativeActionPath, const char* actionName, size_t argCount, const AGENT_DATA_TYPE* args);
AzureIoTClient 0:1f9b2707ec7d 31
AzureIoTClient 0:1f9b2707ec7d 32 extern DEVICE_RESULT Device_Create(SCHEMA_MODEL_TYPE_HANDLE modelHandle, pPfDeviceActionCallback deviceActionCallback, void* callbackUserContext, bool includePropertyPath, DEVICE_HANDLE* deviceHandle);
AzureIoTClient 0:1f9b2707ec7d 33 extern void Device_Destroy(DEVICE_HANDLE deviceHandle);
AzureIoTClient 0:1f9b2707ec7d 34
AzureIoTClient 0:1f9b2707ec7d 35 extern TRANSACTION_HANDLE Device_StartTransaction(DEVICE_HANDLE deviceHandle);
AzureIoTClient 0:1f9b2707ec7d 36 extern DEVICE_RESULT Device_PublishTransacted(TRANSACTION_HANDLE transactionHandle, const char* propertyPath, const AGENT_DATA_TYPE* data);
AzureIoTClient 0:1f9b2707ec7d 37 extern DEVICE_RESULT Device_EndTransaction(TRANSACTION_HANDLE transactionHandle, unsigned char** destination, size_t* destinationSize);
AzureIoTClient 0:1f9b2707ec7d 38 extern DEVICE_RESULT Device_CancelTransaction(TRANSACTION_HANDLE transactionHandle);
AzureIoTClient 0:1f9b2707ec7d 39
AzureIoTClient 0:1f9b2707ec7d 40 extern EXECUTE_COMMAND_RESULT Device_ExecuteCommand(DEVICE_HANDLE deviceHandle, const char* command);
AzureIoTClient 0:1f9b2707ec7d 41 #ifdef __cplusplus
AzureIoTClient 0:1f9b2707ec7d 42 }
AzureIoTClient 0:1f9b2707ec7d 43 #endif
AzureIoTClient 0:1f9b2707ec7d 44
AzureIoTClient 0:1f9b2707ec7d 45 #endif /* IOTDEVICE_H */
AzureIoTClient 0:1f9b2707ec7d 46