#include "uaprovider_demo_methods_1.h"
#include <opcua_guid.h>
#include <opcua_statuscodes.h>
#include "uaprovider_demo_simulation.h"
#include "uaprovider_demo_identifiers_1.h"
static int g_iDynNodeId = 8001;
static OpcUa_Boolean g_bDynNodeIdExists = OpcUa_False;
static OpcUa_UInt32 iNodeVersion = 0;
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_Property *pNode = OpcUa_Null;
OpcUa_BaseNode *pParentNode = OpcUa_Null;
char szVersion[11];
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
if (g_bDynNodeIdExists) return OpcUa_BadInvalidState;
UaServer_CreateProperty(pAddressSpace, &pNode, pParentNode, g_iDynNodeId, g_UaProviderDemo_uNamespaceIndex1,
"DynamicNode");
pNodeId->Identifier.Numeric = OpcUaId_UInt32;
pValue->
Value.UInt32 = 100;
#if UASERVER_SUPPORT_EVENTS
UaProvider_Demo_SendModelChangeEvent(pParentNode, OpcUa_ModelChangeStructureVerbMask_ReferenceAdded);
#endif
g_bDynNodeIdExists = OpcUa_True;
if (pNode)
{
OpcUa_String_Clear(&pValue->
Value.String);
OpcUa_SnPrintfA(szVersion, 11, "%u", iNodeVersion++);
szVersion[10] = 0;
OpcUa_String_AttachCopy(&pValue->
Value.String, szVersion);
}
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_Property *pNode = OpcUa_Null;
OpcUa_BaseNode *pParentNode = OpcUa_Null;
char szVersion[11];
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
if (!g_bDynNodeIdExists) return OpcUa_BadInvalidState;
#if UASERVER_SUPPORT_EVENTS
UaProvider_Demo_SendModelChangeEvent(pParentNode, OpcUa_ModelChangeStructureVerbMask_ReferenceDeleted);
#endif
g_bDynNodeIdExists = OpcUa_False;
if (pNode)
{
OpcUa_String_Clear(&pValue->
Value.String);
OpcUa_SnPrintfA(szVersion, 11, "%u", iNodeVersion++);
szVersion[10] = 0;
OpcUa_String_AttachCopy(&pValue->
Value.String, szVersion);
}
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
#if HAVE_DATA_LOGGER
ret = UaProvider_Demo_StartLogging();
#endif
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
#if HAVE_DATA_LOGGER
ret = UaProvider_Demo_StopLogging();
#endif
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
OpcUa_Double a ,
OpcUa_Double b ,
OpcUa_Double *result )
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
*result = a * b;
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
Demo_Vector *v1,
Demo_Vector *v2,
Demo_Vector *result)
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
result->x = v1->x + v2->x;
result->y = v1->y + v2->y;
result->z = v1->z + v2->z;
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
OpcUa_UInt32 speed )
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
ret = UaProvider_Demo_SetSimulationSpeed(speed);
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
ret = UaProvider_Demo_StartSimulation();
return ret;
}
UaServer_ProviderCallContext *a_pCallContext ,
{
OpcUa_ReferenceParameter(a_pCallContext);
OpcUa_ReferenceParameter(pObjectId);
ret = UaProvider_Demo_StopSimulation();
return ret;
}