blob: c91bc13c1f9986afcb79a74623208621e424ee7c [file] [log] [blame]
Brian Silverman41cdd3e2019-01-19 19:48:58 -08001/*----------------------------------------------------------------------------*/
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -08002/* Copyright (c) 2008-2019 FIRST. All Rights Reserved. */
Brian Silverman41cdd3e2019-01-19 19:48:58 -08003/* Open Source Software - may be modified and shared by FRC teams. The code */
4/* must be accompanied by the FIRST BSD license file in the root directory of */
5/* the project. */
6/*----------------------------------------------------------------------------*/
7
8#include "frc/Timer.h"
9
10#include <chrono>
11#include <thread>
12
James Kuszmaul4b81d302019-12-14 20:53:14 -080013#include <hal/FRCUsageReporting.h>
Brian Silverman41cdd3e2019-01-19 19:48:58 -080014
15#include "frc/DriverStation.h"
16#include "frc/RobotController.h"
17
18namespace frc {
19
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080020void Wait(double seconds) { frc2::Wait(units::second_t(seconds)); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080021
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080022double GetTime() { return frc2::GetTime().to<double>(); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080023
24} // namespace frc
25
26using namespace frc;
27
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080028const double Timer::kRolloverTime = frc2::Timer::kRolloverTime.to<double>();
Brian Silverman41cdd3e2019-01-19 19:48:58 -080029
30Timer::Timer() { Reset(); }
31
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080032double Timer::Get() const { return m_timer.Get().to<double>(); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080033
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080034void Timer::Reset() { m_timer.Reset(); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080035
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080036void Timer::Start() { m_timer.Start(); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080037
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080038void Timer::Stop() { m_timer.Stop(); }
Brian Silverman41cdd3e2019-01-19 19:48:58 -080039
40bool Timer::HasPeriodPassed(double period) {
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080041 return m_timer.HasPeriodPassed(units::second_t(period));
Brian Silverman41cdd3e2019-01-19 19:48:58 -080042}
43
44double Timer::GetFPGATimestamp() {
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080045 return frc2::Timer::GetFPGATimestamp().to<double>();
Brian Silverman41cdd3e2019-01-19 19:48:58 -080046}
47
48double Timer::GetMatchTime() {
James Kuszmaul4f3ad3c2019-12-01 16:35:21 -080049 return frc2::Timer::GetMatchTime().to<double>();
Brian Silverman41cdd3e2019-01-19 19:48:58 -080050}