Читая документацию и примеры OPC-UA Foundation и OPC-UA open62541 sdk, узлы переменных всегда добавляются перед оператором запуска сервера. Можно ли добавить их после запуска сервера? Если я изменю порядок операторов, это не сработает.
Подумайте вместе со мной о следующей ситуации: мне нужно выполнить несколько HTTP-запросов, как только мы начнем асинхронно запускать приложение / программное обеспечение (не сервер). Затем запускается сервер, после того как мой http-запрос выполнен, я добавил узлы переменных на основе информации, возвращаемой из Интернета.
Я добавил несколько комментариев к коду, чтобы пояснить, что я пытаюсь сделать.
int main() {
signal(SIGINT, stopHandler);
signal(SIGTERM, stopHandler);
UA_ServerConfig *config = UA_ServerConfig_new_default();
UA_Server *server = UA_Server_new(config);
// If I put this statement after the other statement:
// UA_StatusCode retval = UA_Server_run(server, &running);
// The variables are not added.
addVariable(server);
// I would like to add some variables nodes after this statement,
// for example, like I said I request some information online
// and I will add the nodes after return from this request asynchronous.
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;
}