Skip to content

Commit d009196

Browse files
committed
Move implementation BraccioClass::moveTo/positions(1/2) from header to source file.
1 parent 4cef773 commit d009196

File tree

3 files changed

+38
-31
lines changed

3 files changed

+38
-31
lines changed

src/Braccio++.cpp

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,42 @@ bool BraccioClass::begin(voidFuncPtr customMenu) {
164164
return true;
165165
}
166166

167-
inline MotorsWrapper BraccioClass::move(int const id)
167+
MotorsWrapper BraccioClass::move(int const id)
168168
{
169169
MotorsWrapper wrapper(servos, id);
170170
return wrapper;
171171
}
172172

173+
void BraccioClass::moveTo(float const a1, float const a2, float const a3, float const a4, float const a5, float const a6)
174+
{
175+
servos.setPositionMode(PositionMode::SYNC);
176+
servos.setPosition(1, a1, runTime);
177+
servos.setPosition(2, a2, runTime);
178+
servos.setPosition(3, a3, runTime);
179+
servos.setPosition(4, a4, runTime);
180+
servos.setPosition(5, a5, runTime);
181+
servos.setPosition(6, a6, runTime);
182+
servos.synchronize();
183+
servos.setPositionMode(PositionMode::IMMEDIATE);
184+
}
185+
186+
void BraccioClass::positions(float * buffer)
187+
{
188+
for (int id = SmartServoClass::MIN_MOTOR_ID; id <= SmartServoClass::MAX_MOTOR_ID; id++)
189+
*buffer++ = servos.getPosition(id);
190+
}
191+
192+
void BraccioClass::positions(float & a1, float & a2, float & a3, float & a4, float & a5, float & a6)
193+
{
194+
// TODO: add check if motors are actually connected
195+
a1 = servos.getPosition(1);
196+
a2 = servos.getPosition(2);
197+
a3 = servos.getPosition(3);
198+
a4 = servos.getPosition(4);
199+
a5 = servos.getPosition(5);
200+
a6 = servos.getPosition(6);
201+
}
202+
173203
void BraccioClass::connectJoystickTo(lv_obj_t* obj) {
174204
lv_group_add_obj(p_objGroup, obj);
175205
lv_indev_set_group(kb_indev, p_objGroup);

src/Braccio++.h

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -91,32 +91,10 @@ class BraccioClass
9191
MotorsWrapper move(int const id);
9292
inline MotorsWrapper get(int const id) { return move(id); }
9393

94-
void moveTo(float a1, float a2, float a3, float a4, float a5, float a6) {
95-
servos.setPositionMode(PositionMode::SYNC);
96-
servos.setPosition(1, a1, runTime);
97-
servos.setPosition(2, a2, runTime);
98-
servos.setPosition(3, a3, runTime);
99-
servos.setPosition(4, a4, runTime);
100-
servos.setPosition(5, a5, runTime);
101-
servos.setPosition(6, a6, runTime);
102-
servos.synchronize();
103-
servos.setPositionMode(PositionMode::IMMEDIATE);
104-
}
105-
// getters
106-
void positions(float* buffer) {
107-
for (int i = 1; i < 7; i++) {
108-
*buffer++ = servos.getPosition(i);
109-
}
110-
}
111-
void positions(float& a1, float& a2, float& a3, float& a4, float& a5, float& a6) {
112-
// TODO: add check if motors are actually connected
113-
a1 = servos.getPosition(1);
114-
a2 = servos.getPosition(2);
115-
a3 = servos.getPosition(3);
116-
a4 = servos.getPosition(4);
117-
a5 = servos.getPosition(5);
118-
a6 = servos.getPosition(6);
119-
}
94+
void moveTo(float const a1, float const a2, float const a3, float const a4, float const a5, float const a6);
95+
void positions(float * buffer);
96+
void positions(float & a1, float & a2, float & a3, float & a4, float & a5, float & a6);
97+
12098
float position(int joint_index);
12199
bool connected(int joint_index) {
122100
return _connected[joint_index];

src/lib/motors/SmartServo.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ class SmartServoClass
7171

7272
inline int getErrors() const { return _errors; }
7373

74-
static const int BROADCAST = 0xFE;
74+
static int constexpr BROADCAST = 0xFE;
75+
static int constexpr MIN_MOTOR_ID = 1;
76+
static int constexpr MAX_MOTOR_ID = 6;
7577
static float constexpr MAX_ANGLE = 315.0f;
7678

7779
private:
@@ -81,9 +83,6 @@ class SmartServoClass
8183
static int constexpr MAX_RX_PAYLOAD_LEN = 10;
8284
static int constexpr MAX_POSITION = 4000;
8385

84-
static int constexpr MIN_MOTOR_ID = 1;
85-
static int constexpr MAX_MOTOR_ID = 6;
86-
8786
inline bool isValidAngle(float const angle) { return ((angle >= 0.0f) && (angle <= MAX_ANGLE)); }
8887
inline bool isValidId(int const id) const { return ((id >= MIN_MOTOR_ID) && (id <= MAX_MOTOR_ID)); }
8988
inline int idToArrayIndex(int const id) const { return (id - 1); }

0 commit comments

Comments
 (0)