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