Skip to content

Commit d743430

Browse files
authored
Merge pull request #31 from bcmi-labs/cleanup-motor-wrapper
Refactor/Cleanup `MotorsWrapper`
2 parents f8c34be + c87a0f7 commit d743430

File tree

2 files changed

+30
-52
lines changed

2 files changed

+30
-52
lines changed

src/Braccio++.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,13 @@ bool BraccioClass::connected(int const id)
188188
return _is_motor_connected[SmartServoClass::idToArrayIndex(id)];
189189
}
190190

191-
MotorsWrapper BraccioClass::move(int const id)
191+
Servo BraccioClass::move(int const id)
192192
{
193-
MotorsWrapper wrapper(servos, id);
193+
Servo wrapper(servos, id);
194194
return wrapper;
195195
}
196196

197-
MotorsWrapper BraccioClass::get(int const id)
197+
Servo BraccioClass::get(int const id)
198198
{
199199
return move(id);
200200
}

src/Braccio++.h

Lines changed: 27 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ enum speed_grade_t {
3636
#include <chrono>
3737
using namespace std::chrono;
3838

39-
class MotorsWrapper;
39+
class Servo;
4040

4141
class BraccioClass
4242
{
@@ -53,25 +53,16 @@ class BraccioClass
5353
bool connected(int const id);
5454

5555

56-
MotorsWrapper move(int const id);
57-
MotorsWrapper get (int const id);
56+
Servo move(int const id);
57+
Servo get (int const id);
5858

5959
void moveTo(float const a1, float const a2, float const a3, float const a4, float const a5, float const a6);
6060
void positions(float * buffer);
6161
void positions(float & a1, float & a2, float & a3, float & a4, float & a5, float & a6);
6262

63-
64-
void speed(speed_grade_t speed_grade) {
65-
runTime = speed_grade;
66-
}
67-
68-
void disengage(int id = SmartServoClass::BROADCAST) {
69-
servos.disengage(id);
70-
}
71-
72-
void engage(int id = SmartServoClass::BROADCAST) {
73-
servos.engage(id);
74-
}
63+
inline void speed (speed_grade_t const speed_grade) { runTime = speed_grade; }
64+
inline void disengage(int const id = SmartServoClass::BROADCAST) { servos.disengage(id); }
65+
inline void engage (int const id = SmartServoClass::BROADCAST) { servos.engage(id); }
7566

7667
int getKey();
7768
void connectJoystickTo(lv_obj_t* obj);
@@ -173,46 +164,33 @@ class BraccioClass
173164

174165
#define Braccio BraccioClass::get_default_instance()
175166

176-
class MotorsWrapper {
167+
class Servo
168+
{
177169
public:
178-
MotorsWrapper(SmartServoClass & servos, int idx) : _servos(servos), _idx(idx) {}
179-
MotorsWrapper& to(float angle) {
180-
_servos.setPosition(_idx, angle, _speed);
181-
return *this;
182-
}
183-
MotorsWrapper& in(std::chrono::milliseconds len) {
184-
_servos.setTime(_idx, len.count());
185-
return *this;
186-
}
187-
MotorsWrapper& move() {
188-
return *this;
189-
}
190-
float position() {
191-
return _servos.getPosition(_idx);
192-
}
193170

194-
inline bool connected() { return Braccio.connected(_idx); }
171+
Servo(SmartServoClass & servos, int const id) : _servos(servos), _id(id) { }
172+
173+
inline void disengage() { _servos.disengage(_id); }
174+
inline void engage() { _servos.engage(_id); }
175+
inline bool engaged() { return _servos.isEngaged(_id); }
176+
177+
inline Servo & move() { return *this; }
178+
inline Servo & to (float const angle) { _servos.setPosition(_id, angle, _speed); return *this; }
179+
inline Servo & in (std::chrono::milliseconds const len) { _servos.setTime(_id, len.count()); return *this; }
180+
181+
inline float position() { return _servos.getPosition(_id); }
182+
inline bool connected() { return Braccio.connected(_id); }
183+
inline void info(Stream & stream) { _servos.getInfo(stream, _id); }
184+
185+
operator bool() { return connected(); }
195186

196-
operator bool() {
197-
return connected();
198-
}
199-
void info(Stream& stream) {
200-
_servos.getInfo(stream, _idx);
201-
}
202-
void disengage() {
203-
_servos.disengage(_idx);
204-
}
205-
void engage() {
206-
_servos.engage(_idx);
207-
}
208-
bool engaged() {
209-
return _servos.isEngaged(_idx);
210-
}
211187

212188
private:
189+
213190
SmartServoClass & _servos;
214-
int _idx;
215-
int _speed = 100;
191+
int const _id;
192+
int const _speed = 100;
193+
216194
};
217195

218196
struct __callback__container__ {

0 commit comments

Comments
 (0)