The function library of serial servo controller

Dependents:   DR-ArmServoTest ros_button_2021 DR-ArmServoTest

Committer:
howanglam3
Date:
Tue May 25 09:18:49 2021 +0000
Revision:
1:1398d9ddd4ef
Parent:
0:3b51e0118f2b
Child:
2:acaaf1126d76
complete recv

Who changed what in which revision?

UserRevisionLine numberNew 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 1:1398d9ddd4ef 17 public:
howanglam3 0:3b51e0118f2b 18 BufferedSerial serial;
howanglam3 1:1398d9ddd4ef 19 void receive_buffer(char* destination, int length);
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