12#include "units/time.h"
41 fmt::format_args args) = 0;
45 template <
typename S,
typename... Args>
47 ReportErrorV(
format, fmt::make_format_args(args...));
50 template <
typename S,
typename... Args>
52 ReportWarningV(
format, fmt::make_format_args(args...));
63 GetMathShared().ReportErrorV(
format, args);
66 template <
typename S,
typename... Args>
68 ReportErrorV(
format, fmt::make_format_args(args...));
72 GetMathShared().ReportWarningV(
format, args);
75 template <
typename S,
typename... Args>
77 ReportWarningV(
format, fmt::make_format_args(args...));
81 GetMathShared().ReportUsage(
id, count);
85 return GetMathShared().GetTimestamp();
#define WPILIB_DLLEXPORT
Definition SymbolExports.h:36
Definition MathShared.h:36
virtual void ReportWarningV(fmt::string_view format, fmt::format_args args)=0
virtual void ReportUsage(MathUsageId id, int count)=0
void ReportError(const S &format, Args &&... args)
Definition MathShared.h:46
virtual void ReportErrorV(fmt::string_view format, fmt::format_args args)=0
virtual units::second_t GetTimestamp()=0
void ReportWarning(const S &format, Args &&... args)
Definition MathShared.h:51
virtual ~MathShared()=default
Definition MathShared.h:56
static void SetMathShared(std::unique_ptr< MathShared > shared)
static void ReportErrorV(fmt::string_view format, fmt::format_args args)
Definition MathShared.h:62
static MathShared & GetMathShared()
static void ReportError(const S &format, Args &&... args)
Definition MathShared.h:67
static units::second_t GetTimestamp()
Definition MathShared.h:84
static void ReportUsage(MathUsageId id, int count)
Definition MathShared.h:80
static void ReportWarning(const S &format, Args &&... args)
Definition MathShared.h:76
static void ReportWarningV(fmt::string_view format, fmt::format_args args)
Definition MathShared.h:71
Definition MathShared.h:14
MathUsageId
Definition MathShared.h:16
@ kKinematics_MecanumDrive
@ kEstimator_PoseEstimator
@ kController_ProfiledPIDController
@ kController_LinearQuadraticRegulator
@ kController_PIDController2
@ kController_BangBangController
@ kOdometry_DifferentialDrive
@ kEstimator_KalmanFilter
@ kTrajectory_TrapezoidProfile
@ kSystem_LinearSystemLoop
@ kEstimator_PoseEstimator3d
@ kKinematics_SwerveDrive
@ kKinematics_DifferentialDrive
#define S(label, offset, message)
Definition Errors.h:113