DS402Group.h
Go to the documentation of this file.
00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
00002 
00003 // -- BEGIN LICENSE BLOCK ----------------------------------------------
00004 // This file is part of the SCHUNK Canopen Driver suite.
00005 //
00006 // This program is free software licensed under the LGPL
00007 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3).
00008 // You can find a copy of this license in LICENSE folder in the top
00009 // directory of the source code.
00010 //
00011 // © Copyright 2016 SCHUNK GmbH, Lauffen/Neckar Germany
00012 // © Copyright 2016 FZI Forschungszentrum Informatik, Karlsruhe, Germany
00013 // -- END LICENSE BLOCK ------------------------------------------------
00014 
00015 //----------------------------------------------------------------------
00023 //----------------------------------------------------------------------
00024 
00025 #ifndef DS402GROUP_H
00026 #define DS402GROUP_H
00027 
00028 #include "DS301Group.h"
00029 #include "DS402Node.h"
00030 
00031 
00032 namespace icl_hardware {
00033 namespace canopen_schunk {
00034 
00045 class DS402Group : public DS301Group
00046 {
00047 public:
00049   typedef boost::shared_ptr<DS402Group> Ptr;
00051   typedef boost::shared_ptr<const DS402Group> ConstPtr;
00052 
00053   DS402Group(const std::string& name = "");
00054 
00061   virtual void initNodes(const int16_t node_id = -1);
00062 
00069   virtual void printStatus(const int16_t node_id = -1);
00070 
00084   virtual bool setTarget ( const std::vector<float>& targets );
00085 
00094   virtual void startPPMovement (const int16_t node_id = -1);
00095 
00103   virtual void acceptPPTargets (const int16_t node_id = -1);
00104 
00117   virtual bool setTarget ( const float target, const uint8_t node_id );
00118 
00128   virtual void getTargetFeedback(std::vector<double>& feedback);
00129 
00138   virtual void setDefaultPDOMapping (const DS402Node::eDefaultPDOMapping mapping, const int16_t node_id = -1);
00139 
00146   virtual void home(const int16_t node_id = -1);
00147 
00154   virtual void getModeOfOperation (std::vector<ds402::eModeOfOperation>& modes);
00155 
00167   virtual bool setModeOfOperation (const ds402::eModeOfOperation op_mode, const int16_t node_id = -1);
00168 
00179   virtual bool isModeSupported (const ds402::eModeOfOperation op_mode, const int16_t node_id = -1);
00180 
00187   virtual void quickStop (const int16_t node_id = -1);
00188 
00189 
00197   virtual void setupProfilePositionMode (const ds402::ProfilePositionModeConfiguration& config, const int16_t node_id = -1);
00198 
00206   virtual void setupHomingMode (const ds402::HomingModeConfiguration& config, const int16_t node_id = -1);
00207 
00215   virtual void setupProfileVelocityMode (const ds402::ProfileVelocityModeConfiguration& config, const int16_t node_id = -1);
00216 
00224   virtual void setupProfileTorqueMode (const ds402::ProfileTorqueModeConfiguration& config, const int16_t node_id = -1);
00225 
00234   virtual bool resetFault (const int16_t node_id = -1);
00235 
00243   virtual void configureInterpolationCycleTime (const int16_t node_id = -1, const uint8_t interpolation_cycle_time_ms = 20);
00244 
00252   virtual void configureHomingMethod ( const int8_t homing_method, const int16_t node_id = -1);
00253 
00262   virtual void configureHomingSpeeds (const uint32_t low_speed, const uint32_t high_speed = 0, const int16_t node_id = -1);
00263 
00274   virtual void enableNodes (const ds402::eModeOfOperation operation_mode = ds402::MOO_RESERVED_0,
00275                             const int16_t node_id = -1);
00276 
00284   virtual void disableNodes (const int16_t node_id = -1);
00285 
00292   virtual void openBrakes (const int16_t node_id = -1);
00293 
00300   virtual void closeBrakes (const int16_t node_id = -1);
00301 
00310   virtual bool isTargetReached (std::vector<bool>& reached_single);
00311 
00312 protected:
00323   template <typename NodeT>
00324   DS301Node::Ptr addNode(const uint8_t node_id, const CanDevPtr can_device, HeartBeatMonitor::Ptr heartbeat_monitor);
00325 
00326   std::vector<DS402Node::Ptr> m_ds402_nodes;
00327 
00328   // the add-node method should be callable from the controller
00329   friend class CanOpenController;
00330 
00331 };
00332 
00333 }}// end of NS
00334 
00335 // include template implementations
00336 #include "DS402Group.hpp"
00337 
00338 #endif // DS402GROUP_H


schunk_canopen_driver
Author(s): Felix Mauch , Georg Heppner
autogenerated on Sun May 22 2016 03:30:56