From e3d86fee46cd2b9ee22c76af678c320ad1abdeaa Mon Sep 17 00:00:00 2001 From: Tyler Veness Date: Sat, 24 Aug 2019 21:35:19 -0700 Subject: [PATCH] Move circular buffer class from wpilib to wpiutil (#1840) --- .../src/main/native/include/frc/LinearFilter.h | 7 +++---- .../include/frc/filters/LinearDigitalFilter.h | 6 +++--- .../java/edu/wpi/first/wpilibj/LinearFilter.java | 1 + .../wpilibj/filters/LinearDigitalFilter.java | 2 +- .../edu/wpi/first/wpiutil}/CircularBuffer.java | 4 ++-- .../main/native/include/wpi}/circular_buffer.h | 8 ++++---- .../main/native/include/wpi}/circular_buffer.inc | 6 +++--- .../wpi/first/wpiutil}/CircularBufferTest.java | 4 ++-- .../src/test/native/cpp/CircularBufferTest.cpp | 16 +++++++--------- 9 files changed, 26 insertions(+), 28 deletions(-) rename {wpilibj/src/main/java/edu/wpi/first/wpilibj => wpiutil/src/main/java/edu/wpi/first/wpiutil}/CircularBuffer.java (97%) rename {wpilibc/src/main/native/include/frc => wpiutil/src/main/native/include/wpi}/circular_buffer.h (91%) rename {wpilibc/src/main/native/include/frc => wpiutil/src/main/native/include/wpi}/circular_buffer.inc (98%) rename {wpilibj/src/test/java/edu/wpi/first/wpilibj => wpiutil/src/test/java/edu/wpi/first/wpiutil}/CircularBufferTest.java (98%) rename {wpilibc => wpiutil}/src/test/native/cpp/CircularBufferTest.cpp (93%) diff --git a/wpilibc/src/main/native/include/frc/LinearFilter.h b/wpilibc/src/main/native/include/frc/LinearFilter.h index 609c128083..de5200346c 100644 --- a/wpilibc/src/main/native/include/frc/LinearFilter.h +++ b/wpilibc/src/main/native/include/frc/LinearFilter.h @@ -12,8 +12,7 @@ #include #include - -#include "frc/circular_buffer.h" +#include namespace frc { @@ -142,8 +141,8 @@ class LinearFilter { double Calculate(double input); private: - circular_buffer m_inputs{0}; - circular_buffer m_outputs{0}; + wpi::circular_buffer m_inputs{0}; + wpi::circular_buffer m_outputs{0}; std::vector m_inputGains; std::vector m_outputGains; }; diff --git a/wpilibc/src/main/native/include/frc/filters/LinearDigitalFilter.h b/wpilibc/src/main/native/include/frc/filters/LinearDigitalFilter.h index dc365a1b74..0a2afd2843 100644 --- a/wpilibc/src/main/native/include/frc/filters/LinearDigitalFilter.h +++ b/wpilibc/src/main/native/include/frc/filters/LinearDigitalFilter.h @@ -12,9 +12,9 @@ #include #include +#include #include -#include "frc/circular_buffer.h" #include "frc/filters/Filter.h" namespace frc { @@ -215,8 +215,8 @@ class LinearDigitalFilter : public Filter { double PIDGet() override; private: - circular_buffer m_inputs; - circular_buffer m_outputs; + wpi::circular_buffer m_inputs; + wpi::circular_buffer m_outputs; std::vector m_inputGains; std::vector m_outputGains; }; 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 fbdcd61789..94bcb3127f 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/LinearFilter.java @@ -11,6 +11,7 @@ import java.util.Arrays; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; +import edu.wpi.first.wpiutil.CircularBuffer; /** * This class implements a linear, digital filter. All types of FIR and IIR filters are supported. diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/filters/LinearDigitalFilter.java b/wpilibj/src/main/java/edu/wpi/first/wpilibj/filters/LinearDigitalFilter.java index 3cfc2a131b..cbeb4aadc5 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/filters/LinearDigitalFilter.java +++ b/wpilibj/src/main/java/edu/wpi/first/wpilibj/filters/LinearDigitalFilter.java @@ -11,8 +11,8 @@ import java.util.Arrays; import edu.wpi.first.hal.FRCNetComm.tResourceType; import edu.wpi.first.hal.HAL; -import edu.wpi.first.wpilibj.CircularBuffer; import edu.wpi.first.wpilibj.PIDSource; +import edu.wpi.first.wpiutil.CircularBuffer; /** * This class implements a linear, digital filter. All types of FIR and IIR filters are supported. diff --git a/wpilibj/src/main/java/edu/wpi/first/wpilibj/CircularBuffer.java b/wpiutil/src/main/java/edu/wpi/first/wpiutil/CircularBuffer.java similarity index 97% rename from wpilibj/src/main/java/edu/wpi/first/wpilibj/CircularBuffer.java rename to wpiutil/src/main/java/edu/wpi/first/wpiutil/CircularBuffer.java index 7e8ecc4d74..5325b26510 100644 --- a/wpilibj/src/main/java/edu/wpi/first/wpilibj/CircularBuffer.java +++ b/wpiutil/src/main/java/edu/wpi/first/wpiutil/CircularBuffer.java @@ -1,11 +1,11 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2018 FIRST. All Rights Reserved. */ +/* Copyright (c) 2015-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. */ /*----------------------------------------------------------------------------*/ -package edu.wpi.first.wpilibj; +package edu.wpi.first.wpiutil; /** * This is a simple circular buffer so we don't need to "bucket brigade" copy old values. diff --git a/wpilibc/src/main/native/include/frc/circular_buffer.h b/wpiutil/src/main/native/include/wpi/circular_buffer.h similarity index 91% rename from wpilibc/src/main/native/include/frc/circular_buffer.h rename to wpiutil/src/main/native/include/wpi/circular_buffer.h index b5ebd16bd9..097d5f65aa 100644 --- a/wpilibc/src/main/native/include/frc/circular_buffer.h +++ b/wpiutil/src/main/native/include/wpi/circular_buffer.h @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2018 FIRST. All Rights Reserved. */ +/* Copyright (c) 2015-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. */ @@ -10,7 +10,7 @@ #include #include -namespace frc { +namespace wpi { /** * This is a simple circular buffer so we don't need to "bucket brigade" copy @@ -57,6 +57,6 @@ class circular_buffer { size_t ModuloDec(size_t index); }; -} // namespace frc +} // namespace wpi -#include "frc/circular_buffer.inc" +#include "wpi/circular_buffer.inc" diff --git a/wpilibc/src/main/native/include/frc/circular_buffer.inc b/wpiutil/src/main/native/include/wpi/circular_buffer.inc similarity index 98% rename from wpilibc/src/main/native/include/frc/circular_buffer.inc rename to wpiutil/src/main/native/include/wpi/circular_buffer.inc index 4af5040d6f..7f029e49b9 100644 --- a/wpilibc/src/main/native/include/frc/circular_buffer.inc +++ b/wpiutil/src/main/native/include/wpi/circular_buffer.inc @@ -1,5 +1,5 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2018 FIRST. All Rights Reserved. */ +/* Copyright (c) 2015-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. */ @@ -9,7 +9,7 @@ #include -namespace frc { +namespace wpi { template circular_buffer::circular_buffer(size_t size) : m_data(size, 0) {} @@ -236,4 +236,4 @@ size_t circular_buffer::ModuloDec(size_t index) { } } -} // namespace frc +} // namespace wpi diff --git a/wpilibj/src/test/java/edu/wpi/first/wpilibj/CircularBufferTest.java b/wpiutil/src/test/java/edu/wpi/first/wpiutil/CircularBufferTest.java similarity index 98% rename from wpilibj/src/test/java/edu/wpi/first/wpilibj/CircularBufferTest.java rename to wpiutil/src/test/java/edu/wpi/first/wpiutil/CircularBufferTest.java index 608361a8c1..f995098f59 100644 --- a/wpilibj/src/test/java/edu/wpi/first/wpilibj/CircularBufferTest.java +++ b/wpiutil/src/test/java/edu/wpi/first/wpiutil/CircularBufferTest.java @@ -1,11 +1,11 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2018 FIRST. All Rights Reserved. */ +/* Copyright (c) 2015-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. */ /*----------------------------------------------------------------------------*/ -package edu.wpi.first.wpilibj; +package edu.wpi.first.wpiutil; import org.junit.jupiter.api.Test; diff --git a/wpilibc/src/test/native/cpp/CircularBufferTest.cpp b/wpiutil/src/test/native/cpp/CircularBufferTest.cpp similarity index 93% rename from wpilibc/src/test/native/cpp/CircularBufferTest.cpp rename to wpiutil/src/test/native/cpp/CircularBufferTest.cpp index ada4f9a24f..7fe9e03346 100644 --- a/wpilibc/src/test/native/cpp/CircularBufferTest.cpp +++ b/wpiutil/src/test/native/cpp/CircularBufferTest.cpp @@ -1,18 +1,16 @@ /*----------------------------------------------------------------------------*/ -/* Copyright (c) 2015-2018 FIRST. All Rights Reserved. */ +/* Copyright (c) 2015-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. */ /*----------------------------------------------------------------------------*/ -#include "frc/circular_buffer.h" // NOLINT(build/include_order) +#include "wpi/circular_buffer.h" // NOLINT(build/include_order) #include #include "gtest/gtest.h" -using namespace frc; - static const std::array values = { {751.848, 766.366, 342.657, 234.252, 716.126, 132.344, 445.697, 22.727, 421.125, 799.913}}; @@ -24,7 +22,7 @@ static const std::array pushBackOut = { {342.657, 234.252, 716.126, 132.344, 445.697, 22.727, 421.125, 799.913}}; TEST(CircularBufferTest, PushFrontTest) { - circular_buffer queue(8); + wpi::circular_buffer queue(8); for (auto& value : values) { queue.push_front(value); @@ -36,7 +34,7 @@ TEST(CircularBufferTest, PushFrontTest) { } TEST(CircularBufferTest, PushBackTest) { - circular_buffer queue(8); + wpi::circular_buffer queue(8); for (auto& value : values) { queue.push_back(value); @@ -48,7 +46,7 @@ TEST(CircularBufferTest, PushBackTest) { } TEST(CircularBufferTest, PushPopTest) { - circular_buffer queue(3); + wpi::circular_buffer queue(3); // Insert three elements into the buffer queue.push_back(1.0); @@ -91,7 +89,7 @@ TEST(CircularBufferTest, PushPopTest) { } TEST(CircularBufferTest, ResetTest) { - circular_buffer queue(5); + wpi::circular_buffer queue(5); for (size_t i = 1; i < 6; i++) { queue.push_back(i); @@ -105,7 +103,7 @@ TEST(CircularBufferTest, ResetTest) { } TEST(CircularBufferTest, ResizeTest) { - circular_buffer queue(5); + wpi::circular_buffer queue(5); /* Buffer contains {1, 2, 3, _, _} * ^ front