изображение показывает значение uint32, но мне также нужны подробности NodeId, который является "Counter1", как в NodeId в readAsync Я использую набор инструментов Softing OPC UA для разработки клиента. С помощью session-> readAsync () я пытаюсь прочитать значение с сервера OPC UA, вызывается метод обратного вызова onReadComplete с запрошенным вектором DataValue, я могу получить значение из DataValue, но не могу получить NodeId с namespaceIndex, indentifierType, идентификатор. В отладчике Visual Studio эти значения невозможно прочитать в памяти.
читать асинхронно:
std::vector<ReadValueId> readValueId1s;
ReadValueId ReadValueId1;
ReadValueId1.setNodeId(NodeId(2, _T("Counter1")));
ReadValueId1.setAttributeId(EnumAttributeId_Value);
readValueId1s.push_back(ReadValueId1);
// read the variable asynchronously
result = session->readAsync(pRdReq, EnumTimestampsToReturn_Both,
readValueId1s, 0, pRdReq->getTransId());
метод обратного вызова:
void TestSession::onReadComplete(void* requestHandle, EnumStatusCode
serviceResult, std::vector<DataValue>& values)
{
for (unsigned int i = 0; i < values.size(); i++) {
std::wcout << values[i].getValue()->getNodeId().toString() << std::endl;
}
}