Dynamixel  2.9.5
RoadNarrows Robotics Dynamixel Package
DynaServoMX64.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // Package: Dynamixel
4 //
5 // Library: librnr_dynamixel
6 //
7 // File: DynaServoMX64.h
8 //
9 /*! \file
10  *
11  * $LastChangedDate: 2015-01-12 10:56:06 -0700 (Mon, 12 Jan 2015) $
12  * $Rev: 3845 $
13  *
14  * \ingroup dyna_lib_hdrs
15  *
16  * \brief RoadNarrows MX-64 Dynamixel Servo Class Interface.
17  *
18  * \author Robin Knight (robin.knight@roadnarrows.com)
19  *
20  * \copyright
21  * \h_copy 2014-2017. RoadNarrows LLC.\n
22  * http://www.roadnarrows.com\n
23  * All Rights Reserved
24  */
25 /*
26  * @EulaBegin@
27  *
28  * Unless otherwise stated explicitly, all materials contained are copyrighted
29  * and may not be used without RoadNarrows LLC's written consent,
30  * except as provided in these terms and conditions or in the copyright
31  * notice (documents and software) or other proprietary notice provided with
32  * the relevant materials.
33  *
34  * IN NO EVENT SHALL THE AUTHOR, ROADNARROWS LLC, OR ANY
35  * MEMBERS/EMPLOYEES/CONTRACTORS OF ROADNARROWS OR DISTRIBUTORS OF THIS SOFTWARE
36  * BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
37  * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
38  * DOCUMENTATION, EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN
39  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * THE AUTHORS AND ROADNARROWS LLC SPECIFICALLY DISCLAIM ANY WARRANTIES,
42  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
43  * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN
44  * "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO
45  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
46  *
47  * @EulaEnd@
48  */
49 ////////////////////////////////////////////////////////////////////////////////
50 
51 #ifndef _DYNA_SERVO_MX64_H
52 #define _DYNA_SERVO_MX64_H
53 
54 #include "rnr/rnrconfig.h"
55 #include "rnr/log.h"
56 
57 #include "Dynamixel/Dynamixel.h"
58 #include "Dynamixel/MX.h"
59 #include "Dynamixel/DynaError.h"
60 #include "Dynamixel/DynaComm.h"
61 #include "Dynamixel/DynaServo.h"
63 
64 
65 // ---------------------------------------------------------------------------
66 // MX-64 Dynamixel Servo Base Class
67 // ---------------------------------------------------------------------------
68 
69 /*!
70  * \ingroup dyna_lib_classes
71  *
72  * \brief MX-64 Dynamixel Servo Class.
73  *
74  * The DynaServoMX64 class provides the specific interface to the MX-64
75  * Dynamixel servos.
76  */
78 {
79 public:
80  /*! Model number */
81  static const int DYNA_MODEL_NUM = DYNA_MODEL_NUM_MX64;
82 
83  /*!
84  * \brief Bare-bones initialization constructor.
85  *
86  * May be used be derived classes to avoid undue communication and
87  * initializaton overhead.
88  *
89  * \param comm Dynamixel bus communication instance.
90  *
91  */
93  {
94  }
95 
96  /*!
97  * \brief Initialization constructor.
98  *
99  * \param comm Dynamixel bus communication instance.
100  * \param nServoId Servo Id.
101  * \param uModelNum Servo model number.
102  * \param uFwVer Servo firmware version.
103  */
104  DynaServoMX64(DynaComm &comm,
105  int nServoId,
106  uint_t uModelNum = DYNA_MODEL_NUM,
107  uint_t uFwVer = DYNA_FWVER_NA);
108 
109  /*!
110  * \brief Destructor.
111  */
112  virtual ~DynaServoMX64();
113 
114 
115  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
116  // Attribute Functions
117  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
118 
119  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
120  // Servo Move Functions
121  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
122 
123  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
124  // Servo Read/Write Functions
125  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
126 
127  /*!
128  * \brief Dump contents of the servo EEPROM and RAM control tables.
129  */
130  virtual void Dump();
131 
132 protected:
133  /*!
134  * \brief Initialize servo class instance.
135  *
136  * \param nServoId Servo Id.
137  * \param uFwVer Servo firmware version.
138  */
139  void Init(int nServoid, uint_t uFwVer);
140 
141  /*!
142  * \brief Initialize servo fixed specification data.
143  */
144  void InitSpec();
145 
146  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
147  // Linking Fuctions
148  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
149 
150  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
151  // Field Packing Functions
152  // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
153 };
154 
155 
156 #endif // _DYNA_SERVO_MX64_H
RoadNarrows Dynamixel Bus Communications Abstract Base Class Interface.
#define DYNA_MODEL_NUM_MX64
MX-64T, MX-64R.
Definition: MX.h:75
RoadNarrows MX Series Dynamixel Declarations.
#define DYNA_FWVER_NA
firmware version not available
Definition: Dynamixel.h:136
Generic Dynamixel Servo Base Class Interface.
static const int DYNA_MODEL_NUM
Definition: DynaServoMX64.h:81
void Init()
Initialize servo class instance.
Generic Dynamixel Servo Base Class.
virtual ~DynaServoMX64()
Destructor.
DynaServoMX64(DynaComm &comm)
Bare-bones initialization constructor.
Definition: DynaServoMX64.h:92
MX-64 Dynamixel Servo Class.
Definition: DynaServoMX64.h:77
RoadNarrows Dynamixel Archetype Servo Abstract Base Class.
RoadNarrows Dynamixel Top-Level Package Header File.
void InitSpec()
Initialize servo fixed specification data.
virtual void Dump()
Dump contents of the servo EEPROM and RAM control tables.
RoadNarrows Dynamixel Library Error and Logging Routines.
Dynamixel Bus Communications Abstract Base Class.
Definition: DynaComm.h:80