阅读 OPC-UA 基础和 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;
}