From bd99719208137ad345bc42b32c0453d6d591a03c Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Thu, 20 Jan 2022 06:38:01 +0100 Subject: [PATCH 1/4] Renaming MotorsWrapper to Servo since this feels more to the point. It is also more consistent with the servo controller class being namned 'SmartServoClass'. --- src/Braccio++.cpp | 6 +++--- src/Braccio++.h | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Braccio++.cpp b/src/Braccio++.cpp index 8902cd3..b53c074 100644 --- a/src/Braccio++.cpp +++ b/src/Braccio++.cpp @@ -188,13 +188,13 @@ bool BraccioClass::connected(int const id) return _is_motor_connected[SmartServoClass::idToArrayIndex(id)]; } -MotorsWrapper BraccioClass::move(int const id) +Servo BraccioClass::move(int const id) { - MotorsWrapper wrapper(servos, id); + Servo wrapper(servos, id); return wrapper; } -MotorsWrapper BraccioClass::get(int const id) +Servo BraccioClass::get(int const id) { return move(id); } diff --git a/src/Braccio++.h b/src/Braccio++.h index 23a276a..e3b4bd7 100644 --- a/src/Braccio++.h +++ b/src/Braccio++.h @@ -36,7 +36,7 @@ enum speed_grade_t { #include using namespace std::chrono; -class MotorsWrapper; +class Servo; class BraccioClass { @@ -53,8 +53,8 @@ class BraccioClass bool connected(int const id); - MotorsWrapper move(int const id); - MotorsWrapper get (int const id); + Servo move(int const id); + Servo get (int const id); void moveTo(float const a1, float const a2, float const a3, float const a4, float const a5, float const a6); void positions(float * buffer); @@ -173,18 +173,18 @@ class BraccioClass #define Braccio BraccioClass::get_default_instance() -class MotorsWrapper { +class Servo { public: - MotorsWrapper(SmartServoClass & servos, int idx) : _servos(servos), _idx(idx) {} - MotorsWrapper& to(float angle) { + Servo(SmartServoClass & servos, int idx) : _servos(servos), _idx(idx) {} + Servo& to(float angle) { _servos.setPosition(_idx, angle, _speed); return *this; } - MotorsWrapper& in(std::chrono::milliseconds len) { + Servo& in(std::chrono::milliseconds len) { _servos.setTime(_idx, len.count()); return *this; } - MotorsWrapper& move() { + Servo& move() { return *this; } float position() { From e3a6f4294a44e0120fd40fc393f98b45ba4ab8a6 Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Thu, 20 Jan 2022 06:42:46 +0100 Subject: [PATCH 2/4] Cleaning up Servo class for better visibility in how it functions. --- src/Braccio++.h | 55 +++++++++++++++++++------------------------------ 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/src/Braccio++.h b/src/Braccio++.h index e3b4bd7..ca8ad00 100644 --- a/src/Braccio++.h +++ b/src/Braccio++.h @@ -173,46 +173,33 @@ class BraccioClass #define Braccio BraccioClass::get_default_instance() -class Servo { +class Servo +{ public: - Servo(SmartServoClass & servos, int idx) : _servos(servos), _idx(idx) {} - Servo& to(float angle) { - _servos.setPosition(_idx, angle, _speed); - return *this; - } - Servo& in(std::chrono::milliseconds len) { - _servos.setTime(_idx, len.count()); - return *this; - } - Servo& move() { - return *this; - } - float position() { - return _servos.getPosition(_idx); - } - inline bool connected() { return Braccio.connected(_idx); } + Servo(SmartServoClass & servos, int const idx) : _servos(servos), _idx(idx) { } + + inline void disengage() { _servos.disengage(_idx); } + inline void engage() { _servos.engage(_idx); } + inline bool engaged() { return _servos.isEngaged(_idx); } + + inline Servo & move() { return *this; } + inline Servo & to (float const angle) { _servos.setPosition(_idx, angle, _speed); return *this; } + inline Servo & in (std::chrono::milliseconds const len) { _servos.setTime(_idx, len.count()); return *this; } + + inline float position() { return _servos.getPosition(_idx); } + inline bool connected() { return Braccio.connected(_idx); } + inline void info(Stream & stream) { _servos.getInfo(stream, _idx); } + + operator bool() { return connected(); } - operator bool() { - return connected(); - } - void info(Stream& stream) { - _servos.getInfo(stream, _idx); - } - void disengage() { - _servos.disengage(_idx); - } - void engage() { - _servos.engage(_idx); - } - bool engaged() { - return _servos.isEngaged(_idx); - } private: + SmartServoClass & _servos; - int _idx; - int _speed = 100; + int const _idx; + int const _speed = 100; + }; struct __callback__container__ { From 5b8aa22b9ecc87e2c8da633e299580e113f5c64b Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Thu, 20 Jan 2022 06:48:54 +0100 Subject: [PATCH 3/4] Inlining a couple of functions for better readability. --- src/Braccio++.h | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/Braccio++.h b/src/Braccio++.h index ca8ad00..e699f8d 100644 --- a/src/Braccio++.h +++ b/src/Braccio++.h @@ -60,18 +60,9 @@ class BraccioClass void positions(float * buffer); void positions(float & a1, float & a2, float & a3, float & a4, float & a5, float & a6); - - void speed(speed_grade_t speed_grade) { - runTime = speed_grade; - } - - void disengage(int id = SmartServoClass::BROADCAST) { - servos.disengage(id); - } - - void engage(int id = SmartServoClass::BROADCAST) { - servos.engage(id); - } + inline void speed (speed_grade_t const speed_grade) { runTime = speed_grade; } + inline void disengage(int const id = SmartServoClass::BROADCAST) { servos.disengage(id); } + inline void engage (int const id = SmartServoClass::BROADCAST) { servos.engage(id); } int getKey(); void connectJoystickTo(lv_obj_t* obj); From c87a0f75dd43f313f4a251e5c41e4154a41b4f28 Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Thu, 20 Jan 2022 06:50:00 +0100 Subject: [PATCH 4/4] Rename '*idx' to 'id' for better compatibility within the whole codebase. --- src/Braccio++.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Braccio++.h b/src/Braccio++.h index e699f8d..77ae893 100644 --- a/src/Braccio++.h +++ b/src/Braccio++.h @@ -168,19 +168,19 @@ class Servo { public: - Servo(SmartServoClass & servos, int const idx) : _servos(servos), _idx(idx) { } + Servo(SmartServoClass & servos, int const id) : _servos(servos), _id(id) { } - inline void disengage() { _servos.disengage(_idx); } - inline void engage() { _servos.engage(_idx); } - inline bool engaged() { return _servos.isEngaged(_idx); } + inline void disengage() { _servos.disengage(_id); } + inline void engage() { _servos.engage(_id); } + inline bool engaged() { return _servos.isEngaged(_id); } inline Servo & move() { return *this; } - inline Servo & to (float const angle) { _servos.setPosition(_idx, angle, _speed); return *this; } - inline Servo & in (std::chrono::milliseconds const len) { _servos.setTime(_idx, len.count()); return *this; } + inline Servo & to (float const angle) { _servos.setPosition(_id, angle, _speed); return *this; } + inline Servo & in (std::chrono::milliseconds const len) { _servos.setTime(_id, len.count()); return *this; } - inline float position() { return _servos.getPosition(_idx); } - inline bool connected() { return Braccio.connected(_idx); } - inline void info(Stream & stream) { _servos.getInfo(stream, _idx); } + inline float position() { return _servos.getPosition(_id); } + inline bool connected() { return Braccio.connected(_id); } + inline void info(Stream & stream) { _servos.getInfo(stream, _id); } operator bool() { return connected(); } @@ -188,7 +188,7 @@ class Servo private: SmartServoClass & _servos; - int const _idx; + int const _id; int const _speed = 100; };