#include <uaserver_config.h>
#include <opcua_statuscodes.h>
#include <uaserver_call.h>
#include <uaserver_basenode.h>
#include <uaserver_utilities.h>
#include <uabase_p_atomic.h>
#include "custom_provider_helper.h"
OPCUA_BEGIN_EXTERN_C
IFMETHODIMP(CustomProvider_CallAsync)(UaServer_ProviderCallContext *a_pCallContext)
{
OpcUa_Int32 i;
OpcUa_BaseNode *pNode;
OpcUa_InitializeStatus(OpcUa_Module_Server, "CustomProvider_CallAsync");
OpcUa_ReturnErrorIfArgumentNull(a_pCallContext);
pRequest = a_pCallContext->pRequest;
pResponse = a_pCallContext->pResponse;
for (i = 0; i < pRequest->NoOfMethodsToCall; i++)
{
{
if (pNode != OpcUa_Null)
{
if (pUserData != OpcUa_Null)
{
switch (pUserData->Type)
{
case UserDataMachine:
{
Machine *pMachine = (Machine*)pUserData;
{
break;
}
{
pResult->NoOfInputArgumentResults = 1;
if (pInArg->
ArrayType == OpcUa_VariantArrayType_Scalar &&
{
*pMachine->pHeaterSwitch->pValue = pInArg->
Value.Boolean;
}
else
{
}
pResult->NoOfOutputArguments = 1;
}
else
{
}
break;
}
default:
{
break;
}
}
}
}
}
}
OpcUa_ReturnStatusCode;
OpcUa_BeginErrorHandling;
OpcUa_FinishErrorHandling;
}
OPCUA_END_EXTERN_C