SRXSpeed::SRXSpeed(int id, double Pvalue, double Ivalue, double Dvalue, int a):CANTalon(id) { SetControlMode(CANTalon::kSpeed); SetFeedbackDevice(CANTalon::QuadEncoder); SetP(Pvalue); SetI(Ivalue); SetD(Dvalue); EnableControl(); maxTicks=a; }
SRXPosition::SRXPosition(int id, double p, double i, double d, bool invert):CANTalon(id) { SetControlMode(CANTalon::kPosition); SetP(p); SetI(i); SetD(d); SetFeedbackDevice(CANTalon::QuadEncoder); invertMotor=invert; SetInverted(invert); if (invert) { ConfigFwdLimitSwitchNormallyOpen(false); } else { ConfigRevLimitSwitchNormallyOpen(false); } SetPosition(0); target=0; EnableControl(); }
/* Output command with controlmode */ void OutputCmdType002( char *cmdPtr, long cmdLen, short isSetTime ) { int n; long len; char buf[CMD_BUF_MAX_SIZE]; char *p = buf; n = SetBJLStart(p); p += n; n = SetControlMode(p); p += n; if ( isSetTime ) { n = SetCurrentTime(p); p+=n; } memcpy( p, cmdPtr, cmdLen ); p += cmdLen; n = SetBJLEnd(p); p += n; *p = 0x00; p++; len = (long)(p - buf); PutPrintData( buf, len ); }
/* Output command */ void OutputCmdType001( char *cmdPtr, long cmdLen ) { int n; long len; char buf[CMD_BUF_MAX_SIZE]; char *p = buf; /* Output SetTime */ n = SetBJLStart(p); p += n; n = SetControlMode(p); p += n; n = SetCurrentTime(p); p+=n; n = SetBJLEnd(p); p += n; /* Output Command */ n = SetBJLStart(p); p += n; memcpy( p, cmdPtr, cmdLen ); p += cmdLen; n = SetBJLEnd(p); p += n; *p = 0x00; p++; len = (long)(p - buf); PutPrintData( buf, len ); }
/** * TODO documentation (see CANJaguar.cpp) */ void CANTalon::EnableControl() { SetControlMode(m_controlMode); m_controlEnabled = true; }