From fcb3584c6b98ca8bf1601b43e37b8dd1c318dc70 Mon Sep 17 00:00:00 2001 From: Mirko Waechter <mirko.waechter@kit.edu> Date: Fri, 5 Oct 2018 16:53:09 +0200 Subject: [PATCH] added convenience function --- .../libraries/ArmarXEtherCAT/DeviceContainer.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.h b/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.h index d6146946e..dad5a4d22 100644 --- a/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.h +++ b/source/RobotAPI/libraries/ArmarXEtherCAT/DeviceContainer.h @@ -35,7 +35,21 @@ namespace armarx { public: size_t load(const MultiNodeRapidXMLReader &rootNodeConfigs, const VirtualRobot::RobotPtr& robot); + template <typename Type> + std::vector<std::shared_ptr<Type>> getDevicesOfType() const + { + std::vector<std::shared_ptr<Type>> results; + for (auto& dev : devices) + { + auto castedDev = std::dynamic_pointer_cast<Type>(dev); + if(castedDev) + { + results.push_back(castedDev); + } + } + return results; + } std::vector<AbstractFunctionalDevicePtr> getAllInitializedFunctionalDevices() const; std::vector<AbstractFunctionalDevicePtr> getAllUninitializedFunctionalDevices() const; virtual std::vector<AbstractFunctionalDevicePtr> getAllFunctionalDevices() const = 0; -- GitLab