Bölüm 20 — Command: Bir Eylemi Tanımlamak
1 dk okuma
Bir Command, bir Subsystem'e "şunu yap" diyen eylem tanımıdır. Her Command'ın 4 önemli anı vardır:
initialize(): Komut başladığında BİR KEZ çalışır (örn. "hedefi belirle")
execute(): Komut devam ederken TEKRAR TEKRAR çalışır (her 20ms, örn. "motoru sür")
isFinished(): "Bittim mi?" sorusuna true/false döner
end(): Komut bittiğinde BİR KEZ çalışır (örn. "motoru durdur")
public class ArmToPosition extends Command {
private final ArmSubsystem arm;
private final double target;
public ArmToPosition(ArmSubsystem arm, double target) {
this.arm = arm;
this.target = target;
addRequirements(arm); // bu komut ArmSubsystem'i kullanıyor
}
@Override
public void execute() {
arm.setTargetAngle(target);
}
@Override
public boolean isFinished() {
return arm.atTarget();
}
}addRequirements() NE İŞE YARAR?
addRequirements(arm) satırı çok önemlidir: CommandScheduler'a "bu komut ArmSubsystem'i kullanıyor" der. Böylece aynı anda ArmSubsystem'i kullanmaya çalışan iki farklı komut varsa, biri otomatik olarak durdurulur — çakışma engellenir.
#Alfa Robotics 8084#8084#Alfa Robot#Atatürk Mesleki ve Teknik Anadolu Lisesi#FRC El Kitabı#Java Programlama Temelleri#Command: Bir Eylemi Tanımlamak