82  void AddPeriodic(std::function<
void()> callback, units::second_t period,
 
   83                   units::second_t offset = 0_s);
 
   88    std::function<void()> func;
 
   89    std::chrono::microseconds period;
 
   90    std::chrono::microseconds expirationTime;
 
  100    Callback(std::function<
void()> func, std::chrono::microseconds startTime,
 
  101             std::chrono::microseconds period, std::chrono::microseconds offset)
 
  102        : func{
std::move(func)},
 
  105              startTime + offset + period +
 
  110    bool operator>(
const Callback& rhs)
 const {
 
  111      return expirationTime > rhs.expirationTime;
 
  116  std::chrono::microseconds m_startTime;
 
  117  uint64_t m_loopStartTimeUs = 0;
 
 
IterativeRobotBase implements a specific type of robot program framework, extending the RobotBase cla...
Definition IterativeRobotBase.h:57
Definition RobotController.h:33
TimedRobot implements the IterativeRobotBase robot program framework.
Definition TimedRobot.h:32
void AddPeriodic(std::function< void()> callback, units::second_t period, units::second_t offset=0_s)
Add a callback to run at a specific period with a starting time offset.
uint64_t GetLoopStartTime()
Return the system clock time in micrseconds for the start of the current periodic loop.
TimedRobot(units::second_t period=kDefaultPeriod)
Constructor for TimedRobot.
TimedRobot(TimedRobot &&)=default
void EndCompetition() override
Ends the main loop in StartCompetition().
TimedRobot & operator=(TimedRobot &&)=default
static constexpr auto kDefaultPeriod
Default loop period.
Definition TimedRobot.h:35
void StartCompetition() override
Provide an alternate "main loop" via StartCompetition().
A move-only C++ wrapper around a HAL handle.
Definition Types.h:96
This class is the same as std::priority_queue with two changes:
Definition priority_queue.h:27
Implement std::hash so that hash_code can be used in STL containers.
Definition PointerIntPair.h:280