void ArmClass::HandleTarget(float centerX,float centerY,float calX,float calY) { if(fabs (centerX) >= 1 || fabs(centerY) >= 1) { LastMoveByDegreesX = LastMoveByDegreesY = 360.0f; if (CurrentEnableTracking) { SetTurret(GetTurretEncoder()); SetArm(GetLifterEncoder()); } return; } else { float moveByX_Degrees = 0; float moveByY_Degrees = 0; float moveByX_Ticks = 0; float moveByY_Ticks = 0; float xFOV = 76.00f; float yFOV = 61.2f; float ticksPerDegreeX = 1280/90.0f; float ticksPerDegreeY = 5000/90.0f; moveByX_Degrees = (calX - centerX) * (xFOV*.5f); moveByY_Degrees = (calY - centerY) * (yFOV*.5f); LastMoveByDegreesX = moveByX_Degrees; LastMoveByDegreesY = moveByY_Degrees; moveByX_Ticks = moveByX_Degrees * ticksPerDegreeX; moveByY_Ticks = moveByY_Degrees * ticksPerDegreeY; if(GetLifterEncoder() >= 0) { moveByX_Ticks *=-1.0f; moveByY_Ticks *=-1.0f; } if (CurrentEnableTracking) { SetTurret(GetTurretEncoder()-(moveByX_Ticks* 1.0f)); //.85 SetArm(GetLifterEncoder()-(moveByY_Ticks* 1.0f)); } } }
void ArmClass::Auto_Start() { CurrentEnableTracking = false; PreviousEnableTracking = false; LastMoveByDegreesX = 360.0f; LastMoveByDegreesY = 360.0f; ResetEncoderLifter(); ResetEncoderTurret(); ArmPIDController->Disable(); ArmPIDController->Reset(); TurretPIDController->Disable(); TurretPIDController->Reset(); SetTurret(GetTurretEncoder()); SetArm(GetLifterEncoder()); isShooting = false; ShotStage = 0; ShotTimer->Reset(); ArmLockonTimer->Reset(); ArmLockonTimer->Start(); LastShotTimer->Reset(); LastShotTimer->Start(); }
void ArmResetStateMachine() { // switch(armResetState) { // case STOP_PID: StopIntegratedMotorEncoderPID(armR); StopIntegratedMotorEncoderPID(armL); // armResetState = LOWER_ARM; // break; // case LOWER_ARM: while(GetDigitalInput(armResetSwitch) && GetJoystickDigital (1, 7, 2)){ SetArm(-75); } WaitInMsec(150); // armResetState = START_PID; // break; // case START_PID: PresetIntegratedMotorEncoder(armR, 0); PresetIntegratedMotorEncoder(armL, 0); StartIntegratedMotorEncoderPID(armR, 0); StartIntegratedMotorEncoderPID(armL, 0); SetArmState(GROUND); // armResetState = DONE; // break; // case DONE: // break; // } }
void ResetArmEncoders() { //asdfadsf SetArm(-75); while(GetDigitalInput(armResetSwitch)){ } PresetIntegratedMotorEncoder(armR, 0); PresetIntegratedMotorEncoder(armL, 0); }
int main() { set_each_analog_state(0,0,0,1,0,0,0,0); WhichSide(); SetArm(); Start(); Cubes(); }
HRESULT CMixParam::ToggleArm() { bool bArm; HRESULT hr = GetArm(&bArm); if (FAILED(hr)) return hr; return SetArm(!bArm); }
void ArmClass::GoToArm() { SetArm(Preset_Arm_Intake); }
void ArmClass::GotoShooting() { SetArm(Preset_Arm_Far_Shot); }
void ArmClass::GotoTowerShot() { SetArm(Preset_Arm_Tower_Shot); }
void ArmClass::ResetArm() { SetArm(Preset_Arm_Floor); }