Azure IoT C SDK
|
APIs that allow a user (usually a device) to communicate with an Azure IoT Hub. More...
#include <stddef.h>
#include <stdint.h>
#include "azure_macro_utils/macro_utils.h"
#include "umock_c/umock_c_prod.h"
#include "iothub_transport_ll.h"
#include "iothub_client_core_ll.h"
Go to the source code of this file.
Typedefs | |
typedef struct IOTHUB_CLIENT_CORE_LL_HANDLE_DATA_TAG * | IOTHUB_DEVICE_CLIENT_LL_HANDLE |
Handle corresponding to a lower layer (LL) device client instance. More... | |
typedef IOTHUB_CLIENT_LL_UPLOADTOBLOB_CONTEXT_HANDLE | IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE |
Handle for Upload-to-Blob API Functions. | |
Functions | |
IOTHUB_DEVICE_CLIENT_LL_HANDLE | IoTHubDeviceClient_LL_CreateFromConnectionString (const char *connectionString, IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol) |
Creates a IoT Hub client for communication with an existing IoT Hub using the specified connection string parameter. More... | |
IOTHUB_DEVICE_CLIENT_LL_HANDLE | IoTHubDeviceClient_LL_Create (const IOTHUB_CLIENT_CONFIG *config) |
Creates a IoT Hub client for communication with an existing IoT Hub using the specified parameters. More... | |
IOTHUB_DEVICE_CLIENT_LL_HANDLE | IoTHubDeviceClient_LL_CreateWithTransport (const IOTHUB_CLIENT_DEVICE_CONFIG *config) |
Creates a IoT Hub client for communication with an existing IoT Hub using an existing transport. More... | |
IOTHUB_DEVICE_CLIENT_LL_HANDLE | IoTHubDeviceClient_LL_CreateFromDeviceAuth (const char *iothub_uri, const char *device_id, IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol) |
Creates a IoT Hub client for communication with an existing IoT Hub using the device auth. More... | |
void | IoTHubDeviceClient_LL_Destroy (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle) |
Disposes of resources allocated by the IoT Hub client. This is a blocking call. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SendEventAsync (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_MESSAGE_HANDLE eventMessageHandle, IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK eventConfirmationCallback, void *userContextCallback) |
Asynchronous call to send the message specified by eventMessageHandle . More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_GetSendStatus (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_STATUS *iotHubClientStatus) |
This function returns the current sending status for IoTHubClient. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SetMessageCallback (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_MESSAGE_CALLBACK_ASYNC messageCallback, void *userContextCallback) |
Sets up the message callback to be invoked when IoT Hub issues a message to the device. This is a blocking call. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SetConnectionStatusCallback (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_CONNECTION_STATUS_CALLBACK connectionStatusCallback, void *userContextCallback) |
Sets up the connection status callback to be invoked representing the status of the connection to IOT Hub. This is a blocking call. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SetRetryPolicy (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_RETRY_POLICY retryPolicy, size_t retryTimeoutLimitInSeconds) |
Sets up the connection status callback to be invoked representing the status of the connection to IOT Hub. This is a blocking call. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_GetRetryPolicy (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_RETRY_POLICY *retryPolicy, size_t *retryTimeoutLimitInSeconds) |
Sets up the connection status callback to be invoked representing the status of the connection to IOT Hub. This is a blocking call. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_GetLastMessageReceiveTime (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, time_t *lastMessageReceiveTime) |
This function returns in the out parameter lastMessageReceiveTime what was the value of the time function when the last message was received at the client. More... | |
void | IoTHubDeviceClient_LL_DoWork (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle) |
This function MUST be called by the user so work (sending/receiving data on the network, computing and enforcing timeout controls, managing the connection to the IoT Hub) can be done by the IoTHubClient. The recommended call frequency is at least once every 100 milliseconds. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SetOption (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const char *optionName, const void *value) |
This API sets a runtime option identified by parameter optionName to a value pointed to by value . optionName and the data type value is pointing to are specific for every option. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SetDeviceTwinCallback (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_DEVICE_TWIN_CALLBACK deviceTwinCallback, void *userContextCallback) |
This API specifies a callback to be used when the device receives a desired state update. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SendReportedState (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const unsigned char *reportedState, size_t size, IOTHUB_CLIENT_REPORTED_STATE_CALLBACK reportedStateCallback, void *userContextCallback) |
This API sends a report of the device's properties and their current values. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_GetTwinAsync (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_DEVICE_TWIN_CALLBACK deviceTwinCallback, void *userContextCallback) |
This API enabled the device to request the full device twin (with all the desired and reported properties) on demand. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SetDeviceMethodCallback (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_DEVICE_METHOD_CALLBACK_ASYNC deviceMethodCallback, void *userContextCallback) |
This API sets the callback for async cloud to device method calls. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_DeviceMethodResponse (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, METHOD_HANDLE methodId, const unsigned char *response, size_t respSize, int statusCode) |
This API responds to an asnyc method callback identified the methodId. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_UploadToBlob (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const char *destinationFileName, const unsigned char *source, size_t size) |
This API uploads to Azure Storage the content pointed to by source having the size size under the blob name devicename/destinationFileName . More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const char *destinationFileName, IOTHUB_CLIENT_FILE_UPLOAD_GET_DATA_CALLBACK_EX getDataCallbackEx, void *context) |
This API uploads to Azure Storage the content provided block by block by getDataCallback under the blob name devicename/destinationFileName . More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_AzureStorageInitializeBlobUpload (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const char *destinationFileName, char **uploadCorrelationId, char **azureBlobSasUri) |
This API creates a new upload within Azure IoT Hub, getting back a correlation-id and a SAS URI for the Blob access to the Azure Storage associated with the Azure IoT Hub. More... | |
IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE | IoTHubDeviceClient_LL_AzureStorageCreateClient (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const char *azureBlobSasUri) |
This API creates a client for a new blob upload to Azure Storage. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_AzureStoragePutBlock (IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE azureStorageClientHandle, uint32_t blockNumber, const uint8_t *dataPtr, size_t dataSize) |
This API uploads a single blob block to Azure Storage (performs a PUT BLOCK operation). More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_AzureStoragePutBlockList (IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE azureStorageClientHandle) |
This API performs an Azure Storage PUT BLOCK LIST operation. More... | |
void | IoTHubDeviceClient_LL_AzureStorageDestroyClient (IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE azureStorageClientHandle) |
This API destroys an instance previously created with IoTHubDeviceClient_LL_AzureStorageCreateClient . More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const char *uploadCorrelationId, bool isSuccess, int responseCode, const char *responseMessage) |
This API notifies Azure IoT Hub of the upload completion. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SendMessageDisposition (IOTHUB_DEVICE_CLIENT_LL_HANDLE device_ll_handle, IOTHUB_MESSAGE_HANDLE message, IOTHUBMESSAGE_DISPOSITION_RESULT disposition) |
This API sends an acknowledgement to Azure IoT Hub that a cloud-to-device message has been received and frees resources associated with the message. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SendTelemetryAsync (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_MESSAGE_HANDLE telemetryMessageHandle, IOTHUB_CLIENT_TELEMETRY_CALLBACK telemetryConfirmationCallback, void *userContextCallback) |
Asynchronous call to send the telemetry message specified by telemetryMessageHandle . More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SubscribeToCommands (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_COMMAND_CALLBACK_ASYNC commandCallback, void *userContextCallback) |
Subscribe to incoming commands from IoT Hub. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_SendPropertiesAsync (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, const unsigned char *properties, size_t propertiesLength, IOTHUB_CLIENT_PROPERTY_ACKNOWLEDGED_CALLBACK propertyAcknowledgedCallback, void *userContextCallback) |
Sends device properties to IoT Hub. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_GetPropertiesAsync (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_PROPERTIES_RECEIVED_CALLBACK propertyCallback, void *userContextCallback) |
Retrieves all device properties from IoT Hub. More... | |
IOTHUB_CLIENT_RESULT | IoTHubDeviceClient_LL_GetPropertiesAndSubscribeToUpdatesAsync (IOTHUB_DEVICE_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_PROPERTIES_RECEIVED_CALLBACK propertyUpdateCallback, void *userContextCallback) |
Retrieves all device properties from IoT Hub and also subscribes for updates to writable properties. More... | |
APIs that allow a user (usually a device) to communicate with an Azure IoT Hub.
IoTHubDeviceClient_LL allows a user (usually a device) to communicate with an Azure IoT Hub. It can send events and receive messages. At any given moment in time there can only be at most 1 message callback function.
This API surface contains a set of APIs that allows the user to interact with the lower layer portion of the IoTHubClient. These APIs contain LL
in their name, but retain the same functionality like the IoTHubDeviceClient_
... APIs, with one difference. If the LL
APIs are used then the user is responsible for scheduling when the actual work done by the IoTHubClient happens (when the data is sent/received on/from the network). This is useful for constrained devices where spinning a separate thread is often not desired.
typedef struct IOTHUB_CLIENT_CORE_LL_HANDLE_DATA_TAG* IOTHUB_DEVICE_CLIENT_LL_HANDLE |
Handle corresponding to a lower layer (LL) device client instance.
IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE IoTHubDeviceClient_LL_AzureStorageCreateClient | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const char * | azureBlobSasUri | ||
) |
This API creates a client for a new blob upload to Azure Storage.
IoTHubDeviceClient_LL_AzureStoragePutBlock
IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion
IoTHubDeviceClient_LL_AzureStorageDestroyClient
For simpler/less-granular control of uploads to Azure blob storage please use either IoTHubDeviceClient_LL_UploadToBlob
or IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob
.iotHubClientHandle | The handle created by a call to the create function. |
azureBlobSasUri | The Azure Storage Blob SAS uri obtained with IoTHubDeviceClient_LL_AzureStorageInitializeBlobUpload . |
IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE
on success or NULL if the function fails. void IoTHubDeviceClient_LL_AzureStorageDestroyClient | ( | IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE | azureStorageClientHandle | ) |
This API destroys an instance previously created with IoTHubDeviceClient_LL_AzureStorageCreateClient
.
IoTHubDeviceClient_LL_AzureStorageCreateClient
IoTHubDeviceClient_LL_AzureStoragePutBlock
IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion
For simpler/less-granular control of uploads to Azure blob storage please use either IoTHubDeviceClient_LL_UploadToBlob
or IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob
.azureStorageClientHandle | The handle created with IoTHubDeviceClient_LL_AzureStorageCreateClient . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_AzureStorageInitializeBlobUpload | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const char * | destinationFileName, | ||
char ** | uploadCorrelationId, | ||
char ** | azureBlobSasUri | ||
) |
This API creates a new upload within Azure IoT Hub, getting back a correlation-id and a SAS URI for the Blob access to the Azure Storage associated with the Azure IoT Hub.
IoTHubDeviceClient_LL_AzureStoragePutBlock
IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion
IoTHubDeviceClient_LL_AzureStorageDestroyClient
For simpler/less-granular control of uploads to Azure blob storage please use either IoTHubDeviceClient_LL_UploadToBlob
or IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob
.iotHubClientHandle | The handle created by a call to the create function. |
destinationFileName | Name of the file in blob storage. |
uploadCorrelationId | Variable where to store the correlation-id of the new upload. |
azureBlobSasUri | Variable where to store the Azure Storage SAS URI for the new upload. |
uploadCorrelationId
and azureBlobSasUri
must be freed by the calling application after the blob upload process is done (e.g., after calling IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion
).IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const char * | uploadCorrelationId, | ||
bool | isSuccess, | ||
int | responseCode, | ||
const char * | responseMessage | ||
) |
This API notifies Azure IoT Hub of the upload completion.
IoTHubDeviceClient_LL_AzureStorageCreateClient
IoTHubDeviceClient_LL_AzureStoragePutBlock
IoTHubDeviceClient_LL_AzureStorageDestroyClient
For simpler/less-granular control of uploads to Azure blob storage please use either IoTHubDeviceClient_LL_UploadToBlob
or IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob
. If this function fails (due to any HTTP error to either Azure Storage or Azure IoT Hub) it can be run again for a discretionary number of times in an attempt to succeed after, for example, an internet connectivity disruption is over. azureStorageClientHandle | The handle created with IoTHubDeviceClient_LL_AzureStorageCreateClient . |
uploadCorrelationId | Upload correlation-id obtained with IoTHubDeviceClient_LL_AzureStorageInitializeBlobUpload . |
isSuccess | A boolean value indicating if the call(s) to IoTHubDeviceClient_LL_AzureStoragePutBlock succeeded. |
responseCode | An user-defined code to signal the status of the upload (e.g., 200 for success, or -1 for abort). |
responseMessage | An user-defined status message to go along with responseCode on the notification to Azure IoT Hub. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_AzureStoragePutBlock | ( | IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE | azureStorageClientHandle, |
uint32_t | blockNumber, | ||
const uint8_t * | dataPtr, | ||
size_t | dataSize | ||
) |
This API uploads a single blob block to Azure Storage (performs a PUT BLOCK operation).
IoTHubDeviceClient_LL_AzureStorageCreateClient
IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion
IoTHubDeviceClient_LL_AzureStorageDestroyClient
For simpler/less-granular control of uploads to Azure blob storage please use either IoTHubDeviceClient_LL_UploadToBlob
or IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob
. For more information about Azure Storage PUT BLOCK, its parameters and behavior, please refer to https://learn.microsoft.com/en-us/rest/api/storageservices/put-blockazureStorageClientHandle | The handle created with IoTHubDeviceClient_LL_AzureStorageCreateClient . |
blockNumber | Number of the block being uploaded. |
dataPtr | Pointer to the block data to be uploaded to Azure Storage blob. |
dataSize | Size of the block data pointed by dataPtr . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_AzureStoragePutBlockList | ( | IOTHUB_CLIENT_LL_AZURE_STORAGE_CLIENT_HANDLE | azureStorageClientHandle | ) |
This API performs an Azure Storage PUT BLOCK LIST operation.
IoTHubDeviceClient_LL_AzureStorageCreateClient
IoTHubDeviceClient_LL_AzureStorageNotifyBlobUploadCompletion
IoTHubDeviceClient_LL_AzureStorageDestroyClient
For simpler/less-granular control of uploads to Azure blob storage please use either IoTHubDeviceClient_LL_UploadToBlob
or IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob
. For more information about Azure Storage PUT BLOCK LIST, please refer to https://learn.microsoft.com/en-us/rest/api/storageservices/put-block-listazureStorageClientHandle | The handle created with IoTHubDeviceClient_LL_AzureStorageCreateClient . |
IOTHUB_DEVICE_CLIENT_LL_HANDLE IoTHubDeviceClient_LL_Create | ( | const IOTHUB_CLIENT_CONFIG * | config | ) |
Creates a IoT Hub client for communication with an existing IoT Hub using the specified parameters.
config | Pointer to an IOTHUB_CLIENT_CONFIG structure The API does not allow sharing of a connection across multiple devices. This is a blocking call. |
NULL
on failure. IOTHUB_DEVICE_CLIENT_LL_HANDLE IoTHubDeviceClient_LL_CreateFromConnectionString | ( | const char * | connectionString, |
IOTHUB_CLIENT_TRANSPORT_PROVIDER | protocol | ||
) |
Creates a IoT Hub client for communication with an existing IoT Hub using the specified connection string parameter.
connectionString | Pointer to a character string |
protocol | Function pointer for protocol implementation Sample connection string: <blockquote> <pre>HostName=[IoT Hub name goes here].[IoT Hub suffix goes here, e.g., private.azure-devices-int.net];DeviceId=[Device ID goes here];SharedAccessKey=[Device key goes here];</pre> </blockquote> |
NULL
on failure. IOTHUB_DEVICE_CLIENT_LL_HANDLE IoTHubDeviceClient_LL_CreateFromDeviceAuth | ( | const char * | iothub_uri, |
const char * | device_id, | ||
IOTHUB_CLIENT_TRANSPORT_PROVIDER | protocol | ||
) |
Creates a IoT Hub client for communication with an existing IoT Hub using the device auth.
iothub_uri | Pointer to an IoT Hub hostname received in the registration process |
device_id | Pointer to the device Id of the device |
protocol | Function pointer for protocol implementation |
NULL
on failure. IOTHUB_DEVICE_CLIENT_LL_HANDLE IoTHubDeviceClient_LL_CreateWithTransport | ( | const IOTHUB_CLIENT_DEVICE_CONFIG * | config | ) |
Creates a IoT Hub client for communication with an existing IoT Hub using an existing transport.
config | Pointer to an IOTHUB_CLIENT_DEVICE_CONFIG structure The API *allows* sharing of a connection across multiple devices. This is a blocking call. |
NULL
on failure. void IoTHubDeviceClient_LL_Destroy | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle | ) |
Disposes of resources allocated by the IoT Hub client. This is a blocking call.
iotHubClientHandle | The handle created by a call to the create function. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_DeviceMethodResponse | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
METHOD_HANDLE | methodId, | ||
const unsigned char * | response, | ||
size_t | respSize, | ||
int | statusCode | ||
) |
This API responds to an asnyc method callback identified the methodId.
iotHubClientHandle | The handle created by a call to the create function. |
methodId | The methodId of the Device Method callback. |
response | The response data for the method callback. |
respSize | The size of the response data buffer. |
statusCode | The status response of the method callback. |
void IoTHubDeviceClient_LL_DoWork | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle | ) |
This function MUST be called by the user so work (sending/receiving data on the network, computing and enforcing timeout controls, managing the connection to the IoT Hub) can be done by the IoTHubClient. The recommended call frequency is at least once every 100 milliseconds.
iotHubClientHandle | The handle created by a call to the create function. All IoTHubClient interactions (in regards to network traffic and/or user level callbacks) are the effect of calling this function and they take place synchronously inside _DoWork. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_GetLastMessageReceiveTime | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
time_t * | lastMessageReceiveTime | ||
) |
This function returns in the out parameter lastMessageReceiveTime
what was the value of the time
function when the last message was received at the client.
iotHubClientHandle | The handle created by a call to the create function. |
lastMessageReceiveTime | Out parameter containing the value of time function when the last message was received. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_GetPropertiesAndSubscribeToUpdatesAsync | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_PROPERTIES_RECEIVED_CALLBACK | propertyUpdateCallback, | ||
void * | userContextCallback | ||
) |
Retrieves all device properties from IoT Hub and also subscribes for updates to writable properties.
[in] | iotHubClientHandle | The handle created by a call to the create function. |
[in] | propertyUpdateCallback | Callback both on initial retrieval of properties stored on IoT Hub and subsequent service-initiated modifications of writable properties. The API IoTHubClient_Deserialize_Properties() can help deserialize the raw payload stream. |
[in] | userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_GetPropertiesAsync | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_PROPERTIES_RECEIVED_CALLBACK | propertyCallback, | ||
void * | userContextCallback | ||
) |
Retrieves all device properties from IoT Hub.
[in] | iotHubClientHandle | The handle created by a call to the create function. |
[in] | propertyCallback | Callback invoked when properties are retrieved. The API IoTHubClient_Deserialize_Properties() can help deserialize the raw payload stream. |
[in] | userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_GetRetryPolicy | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_RETRY_POLICY * | retryPolicy, | ||
size_t * | retryTimeoutLimitInSeconds | ||
) |
Sets up the connection status callback to be invoked representing the status of the connection to IOT Hub. This is a blocking call.
iotHubClientHandle | The handle created by a call to the create function. |
retryPolicy | Out parameter containing the policy to use to reconnect to IoT Hub. |
retryTimeoutLimitInSeconds | Out parameter containing maximum amount of time in seconds to attempt reconnection to IOT Hub. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_GetSendStatus | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_STATUS * | iotHubClientStatus | ||
) |
This function returns the current sending status for IoTHubClient.
iotHubClientHandle | The handle created by a call to the create function. |
iotHubClientStatus | The sending state is populated at the address pointed at by this parameter. The value will be set to IOTHUB_CLIENT_SEND_STATUS_IDLE if there is currently no item to be sent and IOTHUB_CLIENT_SEND_STATUS_BUSY if there are. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_GetTwinAsync | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_DEVICE_TWIN_CALLBACK | deviceTwinCallback, | ||
void * | userContextCallback | ||
) |
This API enabled the device to request the full device twin (with all the desired and reported properties) on demand.
iotHubClientHandle | The handle created by a call to the create function. |
deviceTwinCallback | The callback specified by the device client to receive the Twin document. |
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SendEventAsync | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_MESSAGE_HANDLE | eventMessageHandle, | ||
IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK | eventConfirmationCallback, | ||
void * | userContextCallback | ||
) |
Asynchronous call to send the message specified by eventMessageHandle
.
iotHubClientHandle | The handle created by a call to the create function. |
eventMessageHandle | The handle to an IoT Hub message. |
eventConfirmationCallback | The callback specified by the device for receiving confirmation of the delivery of the IoT Hub message. This callback can be expected to invoke the IoTHubDeviceClient_LL_SendEventAsync function for the same message in an attempt to retry sending a failing message. The user can specify a NULL value here to indicate that no callback is required. |
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
eventMessageHandle
is later destroyed by the iothub client when the message is effectively sent, if a failure sending it occurs, or if the client is destroyed. IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SendMessageDisposition | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | device_ll_handle, |
IOTHUB_MESSAGE_HANDLE | message, | ||
IOTHUBMESSAGE_DISPOSITION_RESULT | disposition | ||
) |
This API sends an acknowledgement to Azure IoT Hub that a cloud-to-device message has been received and frees resources associated with the message.
device_ll_handle | The handle created by a call to a create function. |
message | The cloud-to-device message received through the callback provided to IoTHubDeviceClient_LL_SetMessageCallback. |
disposition | Acknowledgement option for the message. |
disposition
option provided. MQTT: A PUBACK is sent if disposition
is IOTHUBMESSAGE_ACCEPTED
. Passing any other option results in no PUBACK sent for the message. HTTP: A HTTP request is sent using the disposition
option provided. IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SendPropertiesAsync | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const unsigned char * | properties, | ||
size_t | propertiesLength, | ||
IOTHUB_CLIENT_PROPERTY_ACKNOWLEDGED_CALLBACK | propertyAcknowledgedCallback, | ||
void * | userContextCallback | ||
) |
Sends device properties to IoT Hub.
[in] | iotHubClientHandle | The handle created by a call to the create function. |
[in] | properties | Serialized property data to be sent to IoT Hub. This buffer can either be manually serialized created with IoTHubClient_Properties_Serializer_CreateReported() or IoTHubClient_Properties_Serializer_CreateWritableResponse(). |
[in] | propertiesLength | Number of bytes in the properties buffer. |
[in] | propertyAcknowledgedCallback | Optional callback specified by the application to be called with the result of the transaction. |
[in] | userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SendReportedState | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const unsigned char * | reportedState, | ||
size_t | size, | ||
IOTHUB_CLIENT_REPORTED_STATE_CALLBACK | reportedStateCallback, | ||
void * | userContextCallback | ||
) |
This API sends a report of the device's properties and their current values.
iotHubClientHandle | The handle created by a call to the create function. |
reportedState | The current device property values to be 'reported' to the IoT Hub. |
size | Number of bytes in reportedState . |
reportedStateCallback | The callback specified by the device client to be called with the result of the transaction. |
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SendTelemetryAsync | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_MESSAGE_HANDLE | telemetryMessageHandle, | ||
IOTHUB_CLIENT_TELEMETRY_CALLBACK | telemetryConfirmationCallback, | ||
void * | userContextCallback | ||
) |
Asynchronous call to send the telemetry message specified by telemetryMessageHandle
.
[in] | iotHubClientHandle | The handle created by a call to the create function. |
[in] | telemetryMessageHandle | The handle to an IoT Hub message. |
[in] | telemetryConfirmationCallback | Optional callback specified by the device for receiving confirmation of the delivery of the telemetry. |
[in] | userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
The IOTHUB_MESSAGE_HANDLE instance provided as an argument is copied by the function, so this argument can be destroyed by the calling application right after IoTHubDeviceClient_LL_SendTelemetryAsync returns. The copy of telemetryMessageHandle
is later destroyed by the iothub client when the message is successfully sent, if a failure sending it occurs, or if the client is destroyed.
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SetConnectionStatusCallback | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_CONNECTION_STATUS_CALLBACK | connectionStatusCallback, | ||
void * | userContextCallback | ||
) |
Sets up the connection status callback to be invoked representing the status of the connection to IOT Hub. This is a blocking call.
iotHubClientHandle | The handle created by a call to the create function. |
connectionStatusCallback | The callback specified by the device for receiving updates about the status of the connection to IoT Hub. |
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SetDeviceMethodCallback | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_DEVICE_METHOD_CALLBACK_ASYNC | deviceMethodCallback, | ||
void * | userContextCallback | ||
) |
This API sets the callback for async cloud to device method calls.
iotHubClientHandle | The handle created by a call to the create function. |
deviceMethodCallback | The callback which will be called by IoT Hub. |
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SetDeviceTwinCallback | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_DEVICE_TWIN_CALLBACK | deviceTwinCallback, | ||
void * | userContextCallback | ||
) |
This API specifies a callback to be used when the device receives a desired state update.
iotHubClientHandle | The handle created by a call to the create function. |
deviceTwinCallback | The callback specified by the device client to be used for updating the desired state. The callback will be called in response to patch request send by the IoT Hub services. The payload will be passed to the callback, along with two version numbers:
|
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SetMessageCallback | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_MESSAGE_CALLBACK_ASYNC | messageCallback, | ||
void * | userContextCallback | ||
) |
Sets up the message callback to be invoked when IoT Hub issues a message to the device. This is a blocking call.
iotHubClientHandle | The handle created by a call to the create function. |
messageCallback | The callback specified by the device for receiving messages from IoT Hub. |
userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SetOption | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const char * | optionName, | ||
const void * | value | ||
) |
This API sets a runtime option identified by parameter optionName
to a value pointed to by value
. optionName
and the data type value
is pointing to are specific for every option.
iotHubClientHandle | The handle created by a call to the create function. |
optionName | Name of the option. |
value | The value. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SetRetryPolicy | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_RETRY_POLICY | retryPolicy, | ||
size_t | retryTimeoutLimitInSeconds | ||
) |
Sets up the connection status callback to be invoked representing the status of the connection to IOT Hub. This is a blocking call.
iotHubClientHandle | The handle created by a call to the create function. |
retryPolicy | The policy to use to reconnect to IoT Hub when a connection drops. |
retryTimeoutLimitInSeconds | Maximum amount of time(seconds) to attempt reconnection when a connection drops to IOT Hub. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_SubscribeToCommands | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
IOTHUB_CLIENT_COMMAND_CALLBACK_ASYNC | commandCallback, | ||
void * | userContextCallback | ||
) |
Subscribe to incoming commands from IoT Hub.
[in] | iotHubClientHandle | The handle created by a call to the create function. |
[in] | commandCallback | The callback which will be called when a command request arrives. |
[in] | userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_UploadMultipleBlocksToBlob | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const char * | destinationFileName, | ||
IOTHUB_CLIENT_FILE_UPLOAD_GET_DATA_CALLBACK_EX | getDataCallbackEx, | ||
void * | context | ||
) |
This API uploads to Azure Storage the content provided block by block by getDataCallback
under the blob name devicename/destinationFileName
.
iotHubClientHandle | The handle created by a call to the create function. |
destinationFileName | name of the file. |
getDataCallbackEx | A callback to be invoked to acquire the file chunks to be uploaded, as well as to indicate the status of the upload of the previous block. |
context | Any data provided by the user to serve as context on getDataCallback. |
IOTHUB_CLIENT_RESULT IoTHubDeviceClient_LL_UploadToBlob | ( | IOTHUB_DEVICE_CLIENT_LL_HANDLE | iotHubClientHandle, |
const char * | destinationFileName, | ||
const unsigned char * | source, | ||
size_t | size | ||
) |
This API uploads to Azure Storage the content pointed to by source
having the size size
under the blob name devicename/destinationFileName
.
iotHubClientHandle | The handle created by a call to the create function. |
destinationFileName | name of the file. |
source | pointer to the source for file content (can be NULL) |
size | the size of the source in memory (if source is NULL then size needs to be 0). |