open62541 ›Клиентские узлы просмотра и получение атрибутов значений
Я хотел бы знать, если есть метод для получения числовых значений атрибутов узлов, полученных в узлах просмотра
При просмотре узлов примера сервера с клиентом я вижу ссылочные типы, такие как "FolderType"
Просмотр узлов в папке объектов:
Browsing nodes in objects folder:
NAMESPACE NODEID BROWSE NAME DISPLAY NAME
0 61 FolderType FolderType
0 2253 Server Server
1 the.answer the answer the answer
но обязательно я должен написать имя узла в следующем методе, чтобы сделать это
/* Read attribute */
UA_Int32 value = 0;
printf("\nReading the value of node (1, \"the.answer\"):\n");
UA_Variant *val = UA_Variant_new();
retval = UA_Client_readValueAttribute(client, UA_NODEID_STRING(1, "the.answer"), val); // //rewriting the name of the node ...I would like this
parameter to be automatically passed
if(retval == UA_STATUSCODE_GOOD && UA_Variant_isScalar(val) &&
val->type == &UA_TYPES[UA_TYPES_INT32]) {
value = *(UA_Int32*)val->data;
printf("the value is: %i\n", value);
}
UA_Variant_delete(val);
Я хотел бы передать идентификатор узла the.answer, полученного при просмотре, непосредственно в printf () и иметь возможность визуализировать его, не переписывая имя узла в предыдущем методе
С уважением: Фабиан
1 ответ
Я не получил ваш ответ полностью. Можете ли вы попытаться перефразировать это?
Если ваш вопрос связан с тем, как напечатать NodeID в вывод, теперь есть метод с именем UA_NodeId_toString
, См. https://github.com/open62541/open62541/pull/1890