in source/azure_iot_provisioning_client.c [74:137]
static void prvProvClientUpdateState( AzureIoTProvisioningClient_t * pxAzureProvClient,
uint32_t ulActionResult )
{
uint32_t ulState = pxAzureProvClient->_internal.ulWorkflowState;
pxAzureProvClient->_internal.ulLastOperationResult = ulActionResult;
switch( ulState )
{
case azureiotprovisioningWF_STATE_CONNECT:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_SUBSCRIBE :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_SUBSCRIBE:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_SUBSCRIBING :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_SUBSCRIBING:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_REQUEST :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_REQUEST:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_REQUESTING :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_REQUESTING:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_RESPONSE :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_RESPONSE:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTErrorPending ? azureiotprovisioningWF_STATE_WAITING :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_WAITING:
pxAzureProvClient->_internal.ulWorkflowState =
ulActionResult == eAzureIoTSuccess ? azureiotprovisioningWF_STATE_REQUEST :
azureiotprovisioningWF_STATE_COMPLETE;
break;
case azureiotprovisioningWF_STATE_COMPLETE:
AZLogInfo( ( "AzureIoTProvisioning state 'Complete'" ) );
break;
default:
AZLogError( ( "AzureIoTProvisioning unknown state: [%u]", ( uint16_t ) ulState ) );
configASSERT( false );
break;
}
AZLogDebug( ( "AzureIoTProvisioning updated state from [%u] -> [%u]", ( uint16_t ) ulState,
( uint16_t ) pxAzureProvClient->_internal.ulWorkflowState ) );
}