static void setup(void) { running = true; config = UA_ServerConfig_new_default(); server = UA_Server_new(config); UA_Server_run_startup(server); THREAD_CREATE(server_thread, serverloop); }
static void setup_lds(void) { // start LDS server running_lds = UA_Boolean_new(); *running_lds = true; config_lds = UA_ServerConfig_new_default(); config_lds->applicationDescription.applicationType = UA_APPLICATIONTYPE_DISCOVERYSERVER; UA_String_deleteMembers(&config_lds->applicationDescription.applicationUri); config_lds->applicationDescription.applicationUri = UA_STRING_ALLOC("urn:open62541.test.local_discovery_server"); UA_LocalizedText_deleteMembers(&config_lds->applicationDescription.applicationName); config_lds->applicationDescription.applicationName = UA_LOCALIZEDTEXT_ALLOC("en", "LDS Server"); config_lds->mdnsServerName = UA_String_fromChars("LDS_test"); config_lds->serverCapabilitiesSize = 1; UA_String *caps = UA_String_new(); *caps = UA_String_fromChars("LDS"); config_lds->serverCapabilities = caps; config_lds->discoveryCleanupTimeout = registerTimeout; server_lds = UA_Server_new(config_lds); UA_Server_run_startup(server_lds); pthread_create(&server_thread_lds, NULL, serverloop_lds, NULL); // wait until LDS started UA_sleep(1000); sleep(1); }
static void setup(void) { running = UA_Boolean_new(); *running = true; config = UA_ServerConfig_new_default(); server = UA_Server_new(config); UA_Server_run_startup(server); pthread_create(&server_thread, NULL, serverloop, NULL); }
static void setup(void) { config = UA_ServerConfig_new_default(); UA_GlobalNodeLifecycle lifecycle; lifecycle.constructor = globalInstantiationMethod; lifecycle.destructor = NULL; config->nodeLifecycle = lifecycle; server = UA_Server_new(config); }
static void setup(void) { running = true; config = UA_ServerConfig_new_default(); server = UA_Server_new(config); UA_Server_run_startup(server); THREAD_CREATE(server_thread, serverloop); /* Waiting server is up */ UA_comboSleep(1000); }
static void setup(void) { config = UA_ServerConfig_new_default(); config->pubsubTransportLayers = (UA_PubSubTransportLayer *) UA_malloc(sizeof(UA_PubSubTransportLayer)); if(!config->pubsubTransportLayers) { UA_ServerConfig_delete(config); } config->pubsubTransportLayers[0] = UA_PubSubTransportLayerUDPMP(); config->pubsubTransportLayersSize++; server = UA_Server_new(config); UA_Server_run_startup(server); }
static void setup_server(void) { // start server running_translate_browse = UA_Boolean_new(); *running_translate_browse = true; server_translate_config = UA_ServerConfig_new_default(); UA_String_deleteMembers(&server_translate_config->applicationDescription.applicationUri); server_translate_config->applicationDescription.applicationUri = UA_String_fromChars("urn:open62541.test.server_translate_browse"); server_translate_browse = UA_Server_new(server_translate_config); UA_Server_run_startup(server_translate_browse); pthread_create(&server_thread_translate_browse, NULL, serverloop_register, NULL); }
static void setup(void) { running = true; config = UA_ServerConfig_new_default(); config->pubsubTransportLayers = (UA_PubSubTransportLayer *) UA_malloc(sizeof(UA_PubSubTransportLayer)); if(!config->pubsubTransportLayers) { UA_ServerConfig_delete(config); } config->pubsubTransportLayers[0] = UA_PubSubTransportLayerUDPMP(); config->pubsubTransportLayersSize++; server = UA_Server_new(config); UA_Server_run_startup(server); THREAD_CREATE(server_thread, serverloop); }
int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_Server *server = UA_Server_new(config); /* Add a repeated callback to the server */ UA_Server_addRepeatedCallback(server, testCallback, NULL, 2000, NULL); /* call every 2 sec */ UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); UA_ServerConfig_delete(config); return (int)retval; }
int main (void) { /* default server values */ signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_Server *server = UA_Server_new(config); addNewEventType(server); addGenerateEventMethod(server); UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); UA_ServerConfig_delete(config); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; }
static void setup(void) { running = UA_Boolean_new(); *running = true; config = UA_ServerConfig_new_default(); config->maxPublishReqPerSession = 5; server = UA_Server_new(config); UA_Server_run_startup(server); addNewEventType(); setupSelectClauses(); THREAD_CREATE(server_thread, serverloop); client = UA_Client_new(UA_ClientConfig_default); UA_StatusCode retval = UA_Client_connect(client, "opc.tcp://localhost:4840"); ck_assert_uint_eq(retval, UA_STATUSCODE_GOOD); setupSubscription(); }
int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_Server *server = UA_Server_new(config); addVariableType2DPoint(server); addVariable(server); addVariableFail(server); writeVariable(server); UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); UA_ServerConfig_delete(config); return (int)retval; }
int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_Server *server = UA_Server_new(config); manuallyDefinePump(server); defineObjectTypes(server); addPumpObjectInstance(server, "pump2"); addPumpObjectInstance(server, "pump3"); addPumpTypeConstructor(server); addPumpObjectInstance(server, "pump4"); addPumpObjectInstance(server, "pump5"); UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); UA_ServerConfig_delete(config); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; }
int main(int argc, char** argv) { signal(SIGINT, stopHandler); /* catches ctrl-c */ UA_ServerConfig *config = UA_ServerConfig_new_default(); /* load certificate */ config->serverCertificate = loadFile("server_cert.der"); if(config->serverCertificate.length > 0) UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_SERVER, "Certificate loaded"); UA_Server *server = UA_Server_new(config); UA_StatusCode retval = UA_Server_run(server, &running); /* deallocate certificate's memory */ UA_ByteString_clear(&config->serverCertificate); UA_Server_delete(server); UA_ServerConfig_delete(config); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; }
END_TEST START_TEST(Service_Browse_WithBrowseName) { UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_Server *server = UA_Server_new(config); UA_BrowseDescription bd; UA_BrowseDescription_init(&bd); bd.resultMask = UA_BROWSERESULTMASK_BROWSENAME; bd.nodeId = UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER); bd.referenceTypeId = UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES); bd.browseDirection = UA_BROWSEDIRECTION_FORWARD; UA_BrowseResult br = UA_Server_browse(server, 0, &bd); ck_assert_int_eq(br.statusCode, UA_STATUSCODE_GOOD); ck_assert(br.referencesSize > 0); ck_assert(!UA_String_equal(&br.references[0].browseName.name, &UA_STRING_NULL)); UA_BrowseResult_deleteMembers(&br); UA_Server_delete(server); UA_ServerConfig_delete(config); }
static void setup(void) { config = UA_ServerConfig_new_default(); server = UA_Server_new(config); UA_Server_run_startup(server); }
int main(int argc, char **argv) { signal(SIGINT, stopHandler); /* catches ctrl-c */ signal(SIGTERM, stopHandler); UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_String_deleteMembers(&config->applicationDescription.applicationUri); config->applicationDescription.applicationUri = UA_String_fromChars("urn:open62541.example.server_register"); config->mdnsServerName = UA_String_fromChars("Sample Server"); // See http://www.opcfoundation.org/UA/schemas/1.03/ServerCapabilities.csv //config.serverCapabilitiesSize = 1; //UA_String caps = UA_String_fromChars("LDS"); //config.serverCapabilities = ∩︀ UA_Server *server = UA_Server_new(config); /* add a variable node to the address space */ UA_Int32 myInteger = 42; UA_NodeId myIntegerNodeId = UA_NODEID_STRING(1, "the.answer"); UA_QualifiedName myIntegerName = UA_QUALIFIEDNAME(1, "the answer"); UA_DataSource dateDataSource; dateDataSource.read = readInteger; dateDataSource.write = writeInteger; UA_VariableAttributes attr = UA_VariableAttributes_default; attr.description = UA_LOCALIZEDTEXT("en-US", "the answer"); attr.displayName = UA_LOCALIZEDTEXT("en-US", "the answer"); UA_Server_addDataSourceVariableNode(server, myIntegerNodeId, UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER), UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES), myIntegerName, UA_NODEID_NULL, attr, dateDataSource, &myInteger, NULL); // periodic server register after 10 Minutes, delay first register for 500ms UA_StatusCode retval = UA_Server_addPeriodicServerRegisterCallback(server, DISCOVERY_SERVER_ENDPOINT, 10 * 60 * 1000, 500, NULL); // UA_StatusCode retval = UA_Server_addPeriodicServerRegisterJob(server, // "opc.tcp://localhost:4840", 10*60*1000, 500, NULL); if (retval != UA_STATUSCODE_GOOD) { UA_LOG_ERROR(logger, UA_LOGCATEGORY_SERVER, "Could not create periodic job for server register. StatusCode %s", UA_StatusCode_name(retval)); UA_Server_delete(server); UA_ServerConfig_delete(config); return (int)retval; } retval = UA_Server_run(server, &running); if (retval != UA_STATUSCODE_GOOD) { UA_LOG_ERROR(logger, UA_LOGCATEGORY_SERVER, "Could not start the server. StatusCode %s", UA_StatusCode_name(retval)); UA_Server_delete(server); UA_ServerConfig_delete(config); return (int)retval; } // UNregister the server from the discovery server. retval = UA_Server_unregister_discovery(server, DISCOVERY_SERVER_ENDPOINT); //retval = UA_Server_unregister_discovery(server, "opc.tcp://localhost:4840" ); if(retval != UA_STATUSCODE_GOOD) UA_LOG_ERROR(logger, UA_LOGCATEGORY_SERVER, "Could not unregister server from discovery server. StatusCode %s", UA_StatusCode_name(retval)); UA_Server_delete(server); UA_ServerConfig_delete(config); return (int)retval; }
int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ServerConfig *config = UA_ServerConfig_new_default(); UA_Server *server = UA_Server_new(config); /* Create a rudimentary objectType * * Type: * + MamalType * v- Class = "mamalia" * v- Species * o- Abilities * v- MakeSound * v- Breathe = True * + DogType * v- Species = "Canis" * v- Name * o- Abilities * v- MakeSound = "Wuff" * v- FetchNewPaper */ UA_StatusCode retval; UA_ObjectTypeAttributes otAttr = UA_ObjectTypeAttributes_default; otAttr.description = UA_LOCALIZEDTEXT("en-US", "A mamal"); otAttr.displayName = UA_LOCALIZEDTEXT("en-US", "MamalType"); UA_Server_addObjectTypeNode(server, UA_NODEID_NUMERIC(1, 10000), UA_NODEID_NUMERIC(0, UA_NS0ID_BASEOBJECTTYPE), UA_NODEID_NUMERIC(0, UA_NS0ID_HASSUBTYPE), UA_QUALIFIEDNAME(1, "MamalType"), otAttr, NULL, NULL); UA_VariableAttributes vAttr = UA_VariableAttributes_default; vAttr.description = UA_LOCALIZEDTEXT("en-US", "This mamals class"); vAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Class"); UA_String classVar = UA_STRING("mamalia"); UA_Variant_setScalar(&vAttr.value, &classVar, &UA_TYPES[UA_TYPES_STRING]); UA_Server_addVariableNode(server, UA_NODEID_NUMERIC(1, 10001), UA_NODEID_NUMERIC(1, 10000), UA_NODEID_NUMERIC(0, UA_NS0ID_HASPROPERTY), UA_QUALIFIEDNAME(1, "Class"), UA_NODEID_NULL, vAttr, NULL, NULL); vAttr = UA_VariableAttributes_default; vAttr.description = UA_LOCALIZEDTEXT("en-US", "This mamals species"); vAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Species"); UA_Server_addVariableNode(server, UA_NODEID_NUMERIC(1, 10002), UA_NODEID_NUMERIC(1, 10000), UA_NODEID_NUMERIC(0, UA_NS0ID_HASPROPERTY), UA_QUALIFIEDNAME(1, "Species"), UA_NODEID_NULL, vAttr, NULL, NULL); otAttr = UA_ObjectTypeAttributes_default; otAttr.description = UA_LOCALIZEDTEXT("en-US", "A dog, subtype of mamal"); otAttr.displayName = UA_LOCALIZEDTEXT("en-US", "DogType"); UA_Server_addObjectTypeNode(server, UA_NODEID_NUMERIC(1, 20000), UA_NODEID_NUMERIC(1, 10000), UA_NODEID_NUMERIC(0, UA_NS0ID_HASSUBTYPE), UA_QUALIFIEDNAME(1, "DogType"), otAttr, NULL, NULL); vAttr = UA_VariableAttributes_default; vAttr.description = UA_LOCALIZEDTEXT("en-US", "This dogs species"); vAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Species"); UA_String defaultSpecies = UA_STRING("Canis"); UA_Variant_setScalar(&vAttr.value, &defaultSpecies, &UA_TYPES[UA_TYPES_STRING]); UA_Server_addVariableNode(server, UA_NODEID_NUMERIC(1, 20001), UA_NODEID_NUMERIC(1, 20000), UA_NODEID_NUMERIC(0, UA_NS0ID_HASPROPERTY), UA_QUALIFIEDNAME(1, "Species"), UA_NODEID_NULL, vAttr, NULL, NULL); vAttr = UA_VariableAttributes_default; vAttr.description = UA_LOCALIZEDTEXT("en-US", "This dogs name"); vAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Name"); UA_String defaultName = UA_STRING("unnamed dog"); UA_Variant_setScalar(&vAttr.value, &defaultName, &UA_TYPES[UA_TYPES_STRING]); UA_Server_addVariableNode(server, UA_NODEID_NUMERIC(1, 20002), UA_NODEID_NUMERIC(1, 20000), UA_NODEID_NUMERIC(0, UA_NS0ID_HASPROPERTY), UA_QUALIFIEDNAME(1, "Name"), UA_NODEID_NULL, vAttr, NULL, NULL); /* Instatiate a dog named bello: * (O) Objects * + O Bello <DogType> * + Age * + Name */ UA_ObjectAttributes oAttr = UA_ObjectAttributes_default; oAttr.description = UA_LOCALIZEDTEXT("en-US", "A dog named Bello"); oAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Bello"); UA_Server_addObjectNode(server, UA_NODEID_NUMERIC(1, 0), UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER), UA_NODEID_NUMERIC(0, UA_NS0ID_HASCOMPONENT), UA_QUALIFIEDNAME(1, "Bello"), UA_NODEID_NUMERIC(1, 20000), oAttr, NULL, NULL); oAttr = UA_ObjectAttributes_default; oAttr.description = UA_LOCALIZEDTEXT("en-US", "Another dog"); oAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Dog2"); UA_Server_addObjectNode(server, UA_NODEID_NUMERIC(1, 0), UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER), UA_NODEID_NUMERIC(0, UA_NS0ID_HASCOMPONENT), UA_QUALIFIEDNAME(1, "Dog2"), UA_NODEID_NUMERIC(1, 20000), oAttr, NULL, NULL); oAttr = UA_ObjectAttributes_default; oAttr.description = UA_LOCALIZEDTEXT("en-US", "A mamal"); oAttr.displayName = UA_LOCALIZEDTEXT("en-US", "Mamal1"); UA_Server_addObjectNode(server, UA_NODEID_NUMERIC(1, 0), UA_NODEID_NUMERIC(0, UA_NS0ID_OBJECTSFOLDER), UA_NODEID_NUMERIC(0, UA_NS0ID_HASCOMPONENT), UA_QUALIFIEDNAME(1, "Mamal1"), UA_NODEID_NUMERIC(1, 10000), oAttr, NULL, NULL); /* Run the server */ retval = UA_Server_run(server, &running); UA_Server_delete(server); UA_ServerConfig_delete(config); return (int)retval; }