mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
Add reference constructors/factory methods to LinearDigitalFilter (#810)
Composition is less verbose with references than with smart pointers.
This commit is contained in:
committed by
Peter Johnson
parent
6a00dc7976
commit
65cc85f68d
@@ -18,6 +18,7 @@ namespace frc {
|
||||
*/
|
||||
class Filter : public PIDSource {
|
||||
public:
|
||||
explicit Filter(PIDSource& source);
|
||||
explicit Filter(std::shared_ptr<PIDSource> source);
|
||||
virtual ~Filter() = default;
|
||||
|
||||
|
||||
@@ -69,11 +69,18 @@ namespace frc {
|
||||
*/
|
||||
class LinearDigitalFilter : public Filter {
|
||||
public:
|
||||
LinearDigitalFilter(PIDSource& source, llvm::ArrayRef<double> ffGains,
|
||||
llvm::ArrayRef<double> fbGains);
|
||||
LinearDigitalFilter(std::shared_ptr<PIDSource> source,
|
||||
llvm::ArrayRef<double> ffGains,
|
||||
llvm::ArrayRef<double> fbGains);
|
||||
|
||||
// Static methods to create commonly used filters
|
||||
static LinearDigitalFilter SinglePoleIIR(PIDSource& source,
|
||||
double timeConstant, double period);
|
||||
static LinearDigitalFilter HighPass(PIDSource& source, double timeConstant,
|
||||
double period);
|
||||
static LinearDigitalFilter MovingAverage(PIDSource& source, int taps);
|
||||
static LinearDigitalFilter SinglePoleIIR(std::shared_ptr<PIDSource> source,
|
||||
double timeConstant, double period);
|
||||
static LinearDigitalFilter HighPass(std::shared_ptr<PIDSource> source,
|
||||
|
||||
Reference in New Issue
Block a user