From c705953d77ff1a69a0ec4101b9faf8e73c77e2cc Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Sun, 30 Jun 2019 19:44:15 -0700 Subject: [PATCH] Add usage reporting to LinearFilter (#1750) --- wpilibc/src/main/native/cpp/LinearFilter.cpp | 8 +++++++- .../src/main/java/edu/wpi/first/wpilibj/LinearFilter.java | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/wpilibc/src/main/native/cpp/LinearFilter.cpp b/wpilibc/src/main/native/cpp/LinearFilter.cpp index 28cd7c1750..3438ba0196 100644 --- a/wpilibc/src/main/native/cpp/LinearFilter.cpp +++ b/wpilibc/src/main/native/cpp/LinearFilter.cpp @@ -10,6 +10,8 @@ #include #include +#include + using namespace frc; LinearFilter::LinearFilter(wpi::ArrayRef ffGains, @@ -17,7 +19,11 @@ LinearFilter::LinearFilter(wpi::ArrayRef ffGains, : m_inputs(ffGains.size()), m_outputs(fbGains.size()), m_inputGains(ffGains), - m_outputGains(fbGains) {} + m_outputGains(fbGains) { + static int instances = 0; + instances++; + HAL_Report(HALUsageReporting::kResourceType_LinearFilter, instances); +} LinearFilter LinearFilter::SinglePoleIIR(double timeConstant, double period) { double gain = std::exp(-period / timeConstant); diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java index c95baf798b..fbdcd61789 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java @@ -9,6 +9,9 @@ package edu.wpi.first.wpilibj; import java.util.Arrays; +import edu.wpi.first.hal.FRCNetComm.tResourceType; +import edu.wpi.first.hal.HAL; + /** * This class implements a linear, digital filter. All types of FIR and IIR filters are supported. * Static factory methods are provided to create commonly used types of filters. @@ -52,6 +55,8 @@ public class LinearFilter { private final double[] m_inputGains; private final double[] m_outputGains; + private static int instances; + /** * Create a linear FIR or IIR filter. * @@ -63,6 +68,9 @@ public class LinearFilter { m_outputs = new CircularBuffer(fbGains.length); m_inputGains = Arrays.copyOf(ffGains, ffGains.length); m_outputGains = Arrays.copyOf(fbGains, fbGains.length); + + instances++; + HAL.report(tResourceType.kResourceType_LinearFilter, instances); } /**