Package edu.wpi.first.wpilibj
Class Timer
java.lang.Object
edu.wpi.first.wpilibj.Timer
public class Timer
extends java.lang.Object
-
Constructor Summary
Constructors Constructor Description Timer()
-
Method Summary
Modifier and Type Method Description static void
delay(double seconds)
Pause the thread for a specified time.double
get()
Get the current time from the timer.static double
getFPGATimestamp()
Return the system clock time in seconds.boolean
hasPeriodPassed(double period)
Check if the period specified has passed and if it has, advance the start time by that period.void
reset()
Reset the timer by setting the time to 0.void
start()
Start the timer running.void
stop()
Stop the timer.
-
Constructor Details
-
Timer
public Timer()
-
-
Method Details
-
getFPGATimestamp
public static double getFPGATimestamp()Return the system clock time in seconds. Return the time from the FPGA hardware clock in seconds since the FPGA started.- Returns:
- Robot running time in seconds.
-
delay
public static void delay(double seconds)Pause the thread for a specified time. Pause the execution of the thread for a specified period of time given in seconds. Motors will continue to run at their last assigned values, and sensors will continue to update. Only the task containing the wait will pause until the wait time is expired.- Parameters:
seconds
- Length of time to pause
-
get
public double get()Get the current time from the timer. If the clock is running it is derived from the current system clock the start time stored in the timer class. If the clock is not running, then return the time when it was last stopped.- Returns:
- Current time value for this timer in seconds
-
reset
public void reset()Reset the timer by setting the time to 0. Make the timer startTime the current time so new requests will be relative now -
start
public void start()Start the timer running. Just set the running flag to true indicating that all time requests should be relative to the system clock. -
stop
public void stop()Stop the timer. This computes the time as of now and clears the running flag, causing all subsequent time requests to be read from the accumulated time rather than looking at the system clock. -
hasPeriodPassed
public boolean hasPeriodPassed(double period)Check if the period specified has passed and if it has, advance the start time by that period. This is useful to decide if it's time to do periodic work without drifting later by the time it took to get around to checking.- Parameters:
period
- The period to check for (in seconds).- Returns:
- If the period has passed.
-