/* * HLSCL.cpp * 飞特HTS/HLS系列串行舵机应用层程序 * 日期: 2024.11.21 * 作者: txl */ #include "HLSCL.h" HLSCL::HLSCL() { End = 0; } HLSCL::HLSCL(u8 End):SCSerial(End) { } HLSCL::HLSCL(u8 End, u8 Level):SCSerial(End, Level) { } int HLSCL::WritePosEx(u8 ID, s16 Position, u16 Speed, u8 ACC, u16 Torque) { if(Position<0){ Position = -Position; Position |= (1<<15); } u8 bBuf[7]; bBuf[0] = ACC; Host2SCS(bBuf+1, bBuf+2, Position); Host2SCS(bBuf+3, bBuf+4, Torque); Host2SCS(bBuf+5, bBuf+6, Speed); return genWrite(ID, HLSCL_ACC, bBuf, 7); } int HLSCL::RegWritePosEx(u8 ID, s16 Position, u16 Speed, u8 ACC, u16 Torque) { if(Position<0){ Position = -Position; Position |= (1<<15); } u8 bBuf[7]; bBuf[0] = ACC; Host2SCS(bBuf+1, bBuf+2, Position); Host2SCS(bBuf+3, bBuf+4, Torque); Host2SCS(bBuf+5, bBuf+6, Speed); return regWrite(ID, HLSCL_ACC, bBuf, 7); } void HLSCL::SyncWritePosEx(u8 ID[], u8 IDN, s16 Position[], u16 Speed[], u8 ACC[], u16 Torque[]) { u8 offbuf[7*IDN]; for(u8 i = 0; i