YAMS
Yet Another Mechanism System
Loading...
Searching...
No Matches
DerivativeTimeFilter.hpp
Go to the documentation of this file.
1// Copyright (c) 2026 Yet Another Software Suite
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#pragma once
5
6#include <cstdint>
7#include <wpi/system/Timer.hpp>
8#include <wpi/units/time.hpp>
9
10namespace yams::math {
11
19 public:
28 DerivativeTimeFilter(double initial, wpi::units::second_t debouncerPeriod);
29
35 explicit DerivativeTimeFilter(wpi::units::second_t debouncerPeriod);
36
46 double Derivative(double current, wpi::units::second_t dt);
47
56 double Derivative(double current);
57
58 private:
59 double m_last{0.0};
60 uint64_t m_lastFpgaTime_us{0};
61 double m_value{0.0};
62 wpi::Timer m_debouncer;
63 wpi::units::second_t m_debouncePeriod{0.02};
64};
65
66} // namespace yams::math
Definition DerivativeTimeFilter.hpp:18
double Derivative(double current)
DerivativeTimeFilter(double initial, wpi::units::second_t debouncerPeriod)
double Derivative(double current, wpi::units::second_t dt)
DerivativeTimeFilter(wpi::units::second_t debouncerPeriod)
Definition DerivativeTimeFilter.hpp:10