Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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
00329 friend class CanOpenController;
00330
00331 };
00332
00333 }}
00334
00335
00336 #include "DS402Group.hpp"
00337
00338 #endif // DS402GROUP_H