00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00003 // This file is part of the SCHUNK Canopen Driver suite. 00004 // 00005 // This program is free software licensed under the LGPL 00006 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3). 00007 // You can find a copy of this license in LICENSE folder in the top 00008 // directory of the source code. 00009 // 00010 // © Copyright 2016 SCHUNK GmbH, Lauffen/Neckar Germany 00011 // © Copyright 2016 FZI Forschungszentrum Informatik, Karlsruhe, Germany 00012 // -- END LICENSE BLOCK ------------------------------------------------ 00013 //---------------------------------------------------------------------- 00020 //---------------------------------------------------------------------- 00021 00022 #ifndef SCHUNKPOWERBALLNODE_H 00023 #define SCHUNKPOWERBALLNODE_H 00024 00025 #include "DS402Node.h" 00026 00027 namespace icl_hardware { 00028 namespace canopen_schunk { 00029 00046 class SchunkPowerBallNode : public DS402Node 00047 { 00048 public: 00050 typedef boost::shared_ptr<SchunkPowerBallNode> Ptr; 00052 typedef boost::shared_ptr<const SchunkPowerBallNode> ConstPtr; 00053 00057 static const double RAD_TO_STEPS_FACTOR = 57295.7795131; 00058 00059 SchunkPowerBallNode(const uint8_t node_id, const icl_hardware::canopen_schunk::CanDevPtr& can_device, HeartBeatMonitor::Ptr heartbeat_monitor); 00060 00070 void commutationSearch(); 00071 00082 virtual void configureHomingMethod (const uint8_t homing_method); 00083 00093 virtual void configureHomingSpeeds (const uint32_t low_speed, const uint32_t high_speed = 0); 00094 00098 virtual void initNode (); 00099 00100 virtual void setDefaultPDOMapping (const DS402Node::eDefaultPDOMapping mapping); 00101 00102 protected: 00109 virtual void configureInterpolationData (const uint8_t buffer_organization = 0, 00110 const int16_t interpolation_type = 0, 00111 const uint8_t size_of_data_record = 4); 00112 00113 private: 00120 bool CommutationCalibrated (); 00121 }; 00122 00123 }} // end of NS 00124 #endif // SCHUNKPOWERBALLNODE_H