diff --git a/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.cpp b/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.cpp index beb75ddf2593ac4162ca9bb2d9244eb414c2f805..9295ae9a40feb4c352b27478abab84cd1cfd6950 100644 --- a/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.cpp +++ b/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.cpp @@ -34,25 +34,25 @@ namespace armarx size_t DeviceContainer::load(const MultiNodeRapidXMLReader& rootNodeConfigs, const VirtualRobot::RobotPtr& robot) { size_t addedDevices = 0; - auto children = robot->getRobotNodes(); - auto getSceneObject = [&](const std::string & name) - { - for (auto& obj : children) - { - if (obj->getName() == name) - { - return VirtualRobot::SceneObjectPtr(obj); - } - } - for (auto& s : robot->getSensors()) - { - if (s->getName() == name) - { - return VirtualRobot::SceneObjectPtr(s); - } - } - return VirtualRobot::SceneObjectPtr(); - }; + // auto children = robot->getRobotNodes(); + // auto getSceneObject = [&](const std::string & name) + // { + // for (auto& obj : children) + // { + // if (obj->getName() == name) + // { + // return VirtualRobot::SceneObjectPtr(obj); + // } + // } + // for (auto& s : robot->getSensors()) + // { + // if (s->getName() == name) + // { + // return VirtualRobot::SceneObjectPtr(s); + // } + // } + // return VirtualRobot::SceneObjectPtr(); + // }; //rootNode = rootNodeConfig; ARMARX_DEBUG << "Device factories: " << VirtualDeviceFactory::getAvailableClasses(); auto defaultNode = DefaultRapidXmlReaderNode(rootNodeConfigs.nodes("DefaultConfiguration")); @@ -64,9 +64,9 @@ namespace armarx } auto name = node.attribute_value("name"); ARMARX_DEBUG << "Handling: " << node.name() << " name: " << name; - auto obj = getSceneObject(name); + // auto obj = getSceneObject(name); // ARMARX_CHECK_EXPRESSION_W_HINT(obj, name); - auto tuple = std::make_tuple(node, defaultNode, obj); + auto tuple = std::make_tuple(node, defaultNode, robot); auto instance = VirtualDeviceFactory::fromName(node.name(), tuple); if (!instance) { diff --git a/source/RobotAPI/libraries/ArmarXEtherCAT/VirtualDeviceFactory.h b/source/RobotAPI/libraries/ArmarXEtherCAT/VirtualDeviceFactory.h index ec7680e36131189ed0ebb7ef2e27bbdd100505df..75557cf935fde120f894522a4de0e8f988e5c253 100644 --- a/source/RobotAPI/libraries/ArmarXEtherCAT/VirtualDeviceFactory.h +++ b/source/RobotAPI/libraries/ArmarXEtherCAT/VirtualDeviceFactory.h @@ -29,12 +29,14 @@ #include <ArmarXCore/core/rapidxml/wrapper/RapidXmlReader.h> #include <ArmarXCore/core/system/AbstractFactoryMethod.h> #include <VirtualRobot/VirtualRobot.h> +#include <VirtualRobot/Robot.h> + namespace armarx { using AbstractFunctionalDevicePtr = std::shared_ptr<class AbstractFunctionalDevice>; - using VirtualDeviceFactoryArgs = std::tuple<RapidXmlReaderNode, armarx::DefaultRapidXmlReaderNode , VirtualRobot::SceneObjectPtr>; + using VirtualDeviceFactoryArgs = std::tuple<RapidXmlReaderNode, armarx::DefaultRapidXmlReaderNode , VirtualRobot::RobotPtr>; class VirtualDeviceFactory : public AbstractFactoryMethod<VirtualDeviceFactory, VirtualDeviceFactoryArgs, AbstractFunctionalDevicePtr>