Add simulation pause/resume/step support

Calling HALSIM_PauseTiming pauses the FPGA clock and notifiers.
Calling HALSIM_ResumeTiming resumes the FPGA clock and notifiers.
Calling HALSIM_StepTiming steps the FPGA clock and runs applicable notifiers.

This will effectively pause TimedRobot and any other notifier-based events,
but of course will not pause user threads that do not use the notifier (e.g.
image processing).
This commit is contained in:
Peter Johnson
2019-11-10 20:54:25 -08:00
parent f5446c7409
commit c5a0497124
8 changed files with 162 additions and 19 deletions

View File

@@ -1,5 +1,5 @@
/*----------------------------------------------------------------------------*/
/* Copyright (c) 2017-2018 FIRST. All Rights Reserved. */
/* Copyright (c) 2017-2019 FIRST. All Rights Reserved. */
/* Open Source Software - may be modified and shared by FRC teams. The code */
/* must be accompanied by the FIRST BSD license file in the root directory of */
/* the project. */
@@ -14,6 +14,14 @@
namespace hal {
void RestartTiming();
void PauseTiming();
void ResumeTiming();
bool IsTimingPaused();
void StepTiming(uint64_t delta);
int64_t GetFPGATime();
double GetFPGATimestamp();