Dynamixel  2.9.5
RoadNarrows Robotics Dynamixel Package
DynaServoMX28.h
Go to the documentation of this file.
1 ////////////////////////////////////////////////////////////////////////////////
2 //
3 // Package: Dynamixel
4 //
5 // Library: librnr_dynamixel
6 //
7 // File: DynaServoMX28.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-28 Dynamixel Servo Class Interface.
17  *
18  * \author Robin Knight (robin.knight@roadnarrows.com)
19  *
20  * \copyright
21  * \h_copy 2011-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_MX28_H
52 #define _DYNA_SERVO_MX28_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-28 Dynamixel Servo Base Class
67 // ---------------------------------------------------------------------------
68 
69 /*!
70  * \ingroup dyna_lib_classes
71  *
72  * \brief MX-28 Dynamixel Servo Class.
73  *
74  * The DynaServoMX28 class provides the specific interface to the MX-28
75  * Dynamixel servos.
76  */
78 {
79 public:
80  /*! Model number */
81  static const int DYNA_MODEL_NUM = DYNA_MODEL_NUM_MX28;
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  DynaServoMX28(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 ~DynaServoMX28();
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_MX28_H
RoadNarrows Dynamixel Bus Communications Abstract Base Class Interface.
MX-28 Dynamixel Servo Class.
Definition: DynaServoMX28.h:77
RoadNarrows MX Series Dynamixel Declarations.
#define DYNA_MODEL_NUM_MX28
MX-28.
Definition: MX.h:74
#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: DynaServoMX28.h:81
void Init()
Initialize servo class instance.
virtual ~DynaServoMX28()
Destructor.
virtual void Dump()
Dump contents of the servo EEPROM and RAM control tables.
Generic Dynamixel Servo Base Class.
RoadNarrows Dynamixel Archetype Servo Abstract Base Class.
RoadNarrows Dynamixel Top-Level Package Header File.
void InitSpec()
Initialize servo fixed specification data.
DynaServoMX28(DynaComm &comm)
Bare-bones initialization constructor.
Definition: DynaServoMX28.h:92
RoadNarrows Dynamixel Library Error and Logging Routines.
Dynamixel Bus Communications Abstract Base Class.
Definition: DynaComm.h:80