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

Другие вопросы по тегам