Class NotifierCommand

  • All Implemented Interfaces:
    Sendable, Command

    public class NotifierCommand
    extends CommandBase
    A command that starts a notifier to run the given runnable periodically in a separate thread. Has no end condition as-is; either subclass it or use Command.withTimeout(double) or Command.withInterrupt(BooleanSupplier) to give it one.

    WARNING: Do not use this class unless you are confident in your ability to make the executed code thread-safe. If you do not know what "thread-safe" means, that is a good sign that you should not use this class.

    • Field Detail

      • m_notifier

        protected final Notifier m_notifier
      • m_period

        protected final double m_period
    • Constructor Detail

      • NotifierCommand

        public NotifierCommand​(Runnable toRun,
                               double period,
                               Subsystem... requirements)
        Creates a new NotifierCommand.
        Parameters:
        toRun - the runnable for the notifier to run
        period - the period at which the notifier should run, in seconds
        requirements - the subsystems required by this command
    • Method Detail

      • initialize

        public void initialize()
        Description copied from interface: Command
        The initial subroutine of a command. Called once when the command is initially scheduled.
      • end

        public void end​(boolean interrupted)
        Description copied from interface: Command
        The action to take when the command ends. Called when either the command finishes normally, or when it interrupted/canceled.

        Do not schedule commands here that share requirements with this command. Use Command.andThen(Command...) instead.

        Parameters:
        interrupted - whether the command was interrupted/canceled