opcuaServer.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "networklayer.h"
  4. #include "ua_application.h"
  5. #include <sys/mman.h>
  6. #include <sys/types.h>
  7. #include <sys/wait.h>
  8. #include <unistd.h>
  9. #include <time.h>
  10. #include <fcntl.h>
  11. #include "ua_stack_channel_manager.h"
  12. #include "ua_stack_session_manager.h"
  13. UA_Int32 serverCallback(void * arg) {
  14. char *name = (char *) arg;
  15. printf("%s does whatever servers do\n",name);
  16. Namespace* ns0 = (Namespace*)UA_indexedList_find(appMockup.namespaces, 0)->payload;
  17. UA_Int32 retval;
  18. UA_Node const * node;
  19. UA_ExpandedNodeId serverStatusNodeId = NS0EXPANDEDNODEID(2256);
  20. retval = Namespace_get(ns0, &(serverStatusNodeId.nodeId),&node, UA_NULL);
  21. if(retval == UA_SUCCESS){
  22. ((UA_ServerStatusDataType*)(((UA_VariableNode*)node)->value.data))->currentTime = UA_DateTime_now();
  23. }
  24. return UA_SUCCESS;
  25. }
  26. int main(int argc, char** argv) {
  27. appMockup_init();
  28. NL_data* nl = NL_init(&NL_Description_TcpBinary,16664);
  29. struct timeval tv = {1, 0}; // 1 second
  30. SL_ChannelManager_init(2,3600000, 873, 23, &nl->endpointUrl);
  31. UA_SessionManager_init(2,30000,5);
  32. //UA_TL_ConnectionManager_init(10);
  33. NL_msgLoop(nl, &tv, serverCallback, argv[0]);
  34. }