server.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * This work is licensed under a Creative Commons CCZero 1.0 Universal License.
  3. * See http://creativecommons.org/publicdomain/zero/1.0/ for more information.
  4. */
  5. #include <iostream>
  6. #ifdef NOT_AMALGATED
  7. # include "ua_server.h"
  8. # include "logger_stdout.h"
  9. # include "networklayer_tcp.h"
  10. #else
  11. # include "open62541.h"
  12. #endif
  13. /**
  14. * Build Instructions (Linux)
  15. * - gcc -std=c99 -c open62541.c
  16. * - g++ server.cpp open62541.o -o server
  17. */
  18. using namespace std;
  19. int main()
  20. {
  21. UA_Server *server = UA_Server_new(UA_ServerConfig_standard);
  22. UA_Server_addNetworkLayer(server, ServerNetworkLayerTCP_new(UA_ConnectionConfig_standard, 16664));
  23. // add a variable node to the adresspace
  24. UA_Variant *myIntegerVariant = UA_Variant_new();
  25. UA_Int32 myInteger = 42;
  26. UA_Variant_setScalarCopy(myIntegerVariant, &myInteger, &UA_TYPES[UA_TYPES_INT32]);
  27. UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME(1, "the answer");
  28. UA_NodeId myIntegerNodeId = UA_NODEID_NULL; /* assign a random free nodeid */
  29. UA_NodeId parentNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER);
  30. UA_NodeId parentReferenceNodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES);
  31. UA_Server_addVariableNode(server, myIntegerVariant, myIntegerName,
  32. myIntegerNodeId, parentNodeId, parentReferenceNodeId);
  33. UA_Boolean running = UA_TRUE;
  34. UA_StatusCode retval = UA_Server_run(server, 1, &running);
  35. UA_Server_delete(server);
  36. return retval;
  37. }