I'm trying to use freeopcua c++ GetChild method to get standard dynamic variable node from the root node of freeopcua-modeler using the following code :
Note: using the freeopcua server_example.cpp as OPC UA server works fine with my client ! but it does not work with this python opcua-modeler interface !
this is my complete freeopcua client code (based on freeopcua example_client.cpp):
`
include <opc/ua/client/client.h>
include <opc/ua/node.h>
include <opc/ua/subscription.h>
include <opc/common/logger.h>
include
include
include
using namespace OpcUa;
class SubClient : public SubscriptionHandler
{
void DataChange(uint32_t handle, const Node & node, const Variant & val, AttributeId attr) override
{
std::cout << "Received DataChange event, value of Node " << node << " is now: " << val.ToString() << std::endl;
}
};
Hello Gents,
I'm trying to use freeopcua c++ GetChild method to get standard dynamic variable node from the root node of freeopcua-modeler using the following code :
but the i got the requested operation has no match to return. (0x806f0000) error
have you any idea how to fix this ?
below the opcua-modeler server interface :
Note: using the freeopcua server_example.cpp as OPC UA server works fine with my client ! but it does not work with this python opcua-modeler interface !
this is my complete freeopcua client code (based on freeopcua example_client.cpp): `
include <opc/ua/client/client.h>
include <opc/ua/node.h>
include <opc/ua/subscription.h>
include <opc/common/logger.h>
include
include
include
using namespace OpcUa;
class SubClient : public SubscriptionHandler { void DataChange(uint32_t handle, const Node & node, const Variant & val, AttributeId attr) override { std::cout << "Received DataChange event, value of Node " << node << " is now: " << val.ToString() << std::endl; } };
int main(int argc, char ** argv) { auto logger = spdlog::stderr_color_mt("client"); try { //std::string endpoint = "opc.tcp://127.0.0.1:4840/freeopcua/server/"; std::string endpoint = "opc.tcp://127.0.0.1:48400/freeopcua/uamodeler/";
catch (const std::exception & exc) { logger->error("Error: {}", exc.what()); } catch (...) { logger->error("Unknown error."); } return -1; }
`