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