#include <uaserver/addressspace/addressspace.h>
#include <memory/memory.h>
#include <uaserver/provider/provider.h>
#include <uaserver/valuestore/valuestore.h>
#include <trace/trace.h>
#include <uaserver/server_config.h>
#ifdef UA_AUTHORIZATION_SUPPORT
# include <uaserver/session/authorization/authorization.h>
#endif
#ifdef ENABLE_SERVICE_READ
# include "custom_provider_read.h"
#endif
#ifdef ENABLE_SERVICE_WRITE
# include "custom_provider_write.h"
#endif
#ifdef ENABLE_SERVICE_SUBSCRIPTION
# include "custom_provider_subscription.h"
#endif
#include "custom_provider_nodes.h"
#include "custom_provider.h"
uint16_t g_custom_provider_nsidx;
uint32_t g_custom_provider_values[3];
static void custom_provider_cleanup(
struct uaprovider *ctx)
{
UA_UNUSED(ctx);
return;
}
{
int ret;
config.nsidx = UA_NSIDX_INVALID;
config.max_variables = 10;
config.max_references = 20;
config.max_strings = 10;
"http://www.unifiedautomation.com/CustomServer/",
&config,
if (ret < 0) return ret;
g_custom_provider_nsidx = (uint16_t) ret;
if (ret != 0) return ret;
ret =
ua_memorystore_init(&g_memorystore, 0, g_memorystore_values, countof(g_memorystore_values));
if (ret != 0) return ret;
ret = custom_provider_create_nodes();
if (ret != 0) return ret;
#ifdef ENABLE_SERVICE_READ
ctx->
read = custom_provider_read;
#endif
#ifdef ENABLE_SERVICE_WRITE
ctx->
write = custom_provider_write;
#endif
#ifdef ENABLE_SERVICE_SUBSCRIPTION
ctx->
add_item = custom_provider_add_item;
#endif
#ifdef ENABLE_SERVICE_READ
ctx->
read = custom_provider_read;
#endif
#ifdef ENABLE_SERVICE_WRITE
ctx->
write = custom_provider_write;
#endif
#ifdef ENABLE_SERVICE_SUBSCRIPTION
ctx->
add_item = custom_provider_add_item;
#endif
ctx->
cleanup = custom_provider_cleanup;
return ret;
}