The function library of serial servo controller
Dependents: DR-ArmServoTest ros_button_2021 DR-ArmServoTest
LSCServo.h@0:3b51e0118f2b, 2021-05-19 (annotated)
- Committer:
- howanglam3
- Date:
- Wed May 19 09:51:20 2021 +0000
- Revision:
- 0:3b51e0118f2b
- Child:
- 1:1398d9ddd4ef
Library function for the LSC serial servo controller
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
howanglam3 | 0:3b51e0118f2b | 1 | #ifndef LSC_SERVO |
howanglam3 | 0:3b51e0118f2b | 2 | #define LSC_SERVO |
howanglam3 | 0:3b51e0118f2b | 3 | //from mbed |
howanglam3 | 0:3b51e0118f2b | 4 | #include "mbed.h" |
howanglam3 | 0:3b51e0118f2b | 5 | //from ros |
howanglam3 | 0:3b51e0118f2b | 6 | #include "BufferedSerial.h" |
howanglam3 | 0:3b51e0118f2b | 7 | |
howanglam3 | 0:3b51e0118f2b | 8 | #include <vector> |
howanglam3 | 0:3b51e0118f2b | 9 | |
howanglam3 | 0:3b51e0118f2b | 10 | #define LOBOT_SERVO_FRAME_HEADER 0x55 |
howanglam3 | 0:3b51e0118f2b | 11 | #define LOBOT_SERVO_MOVE_TIME_WRITE 1 |
howanglam3 | 0:3b51e0118f2b | 12 | |
howanglam3 | 0:3b51e0118f2b | 13 | using namespace std; |
howanglam3 | 0:3b51e0118f2b | 14 | |
howanglam3 | 0:3b51e0118f2b | 15 | |
howanglam3 | 0:3b51e0118f2b | 16 | class LSCServo { |
howanglam3 | 0:3b51e0118f2b | 17 | private: |
howanglam3 | 0:3b51e0118f2b | 18 | BufferedSerial serial; |
howanglam3 | 0:3b51e0118f2b | 19 | public: |
howanglam3 | 0:3b51e0118f2b | 20 | LSCServo(PinName tx, PinName rx, uint32_t buf_size = 256, uint32_t tx_multiple = 4,const char* name=NULL); |
howanglam3 | 0:3b51e0118f2b | 21 | virtual ~LSCServo(); |
howanglam3 | 0:3b51e0118f2b | 22 | void LobotSerialoneServoMove(uint16_t id, int16_t position, uint16_t time); //control one serial servo move dedicated position |
howanglam3 | 0:3b51e0118f2b | 23 | void LobotSerialServoMove(vector<uint16_t> id, vector<int16_t> position, uint16_t time); //control list of serial servo move dedicated position |
howanglam3 | 0:3b51e0118f2b | 24 | void LobotSerialActionGroupRun(uint16_t id, uint16_t count);//Run Action Group in multiple time, 0 == infinity |
howanglam3 | 0:3b51e0118f2b | 25 | void LobotSerialActionGroupSpeed(uint16_t id, uint16_t speed);//Set Run speed Action Group in XXX%, 0xFF for all |
howanglam3 | 0:3b51e0118f2b | 26 | int LobotSerialGetBatteryVoltage();//get voltage of board in terms of mV |
howanglam3 | 0:3b51e0118f2b | 27 | void LobotSerialActionGroupStop();//Stop current action group |
howanglam3 | 0:3b51e0118f2b | 28 | }; |
howanglam3 | 0:3b51e0118f2b | 29 | #endif |