Squashed 'third_party/allwpilib_2017/' content from commit 35ac87d
Change-Id: I7bb6f5556c30d3f5a092e68de0be9c710c60c9f4
git-subtree-dir: third_party/allwpilib_2017
git-subtree-split: 35ac87d6ff8b7f061c4f18c9ea316e5dccd4888a
diff --git a/wpilibcIntegrationTests/include/TestBench.h b/wpilibcIntegrationTests/include/TestBench.h
new file mode 100644
index 0000000..c760ebc
--- /dev/null
+++ b/wpilibcIntegrationTests/include/TestBench.h
@@ -0,0 +1,69 @@
+/*----------------------------------------------------------------------------*/
+/* Copyright (c) FIRST 2014-2017. 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. */
+/*----------------------------------------------------------------------------*/
+
+#pragma once
+
+#include <stdint.h>
+
+class TestBench {
+ public:
+ /* Analog input channels */
+ static const uint32_t kCameraGyroChannel = 0;
+ static const uint32_t kFakeCompressorChannel = 1;
+ static const uint32_t kFakeAnalogOutputChannel = 2;
+
+ /* Analog output channels */
+ static const uint32_t kAnalogOutputChannel = 0;
+
+ /* DIO channels */
+ static const uint32_t kTalonEncoderChannelA = 0;
+ static const uint32_t kTalonEncoderChannelB = 1;
+ static const uint32_t kVictorEncoderChannelA = 2;
+ static const uint32_t kVictorEncoderChannelB = 3;
+ static const uint32_t kJaguarEncoderChannelA = 4;
+ static const uint32_t kJaguarEncoderChannelB = 5;
+ static const uint32_t kLoop1OutputChannel = 6;
+ static const uint32_t kLoop1InputChannel = 7;
+ static const uint32_t kLoop2OutputChannel = 8;
+ static const uint32_t kLoop2InputChannel = 9;
+
+ /* PWM channels */
+ static const uint32_t kVictorChannel = 1;
+ static const uint32_t kJaguarChannel = 2;
+ static const uint32_t kCameraPanChannel = 8;
+ static const uint32_t kCameraTiltChannel = 9;
+
+ /* MXP digital channels */
+ static const uint32_t kTalonChannel = 10;
+ static const uint32_t kFakePressureSwitchChannel = 11;
+ static const uint32_t kFakeSolenoid1Channel = 12;
+ static const uint32_t kFakeSolenoid2Channel = 13;
+ static const uint32_t kFakeRelayForward = 18;
+ static const uint32_t kFakeRelayReverse = 19;
+
+ /* Relay channels */
+ static const uint32_t kRelayChannel = 0;
+
+ /* PDP channels */
+ static const uint32_t kJaguarPDPChannel = 6;
+ static const uint32_t kVictorPDPChannel = 8;
+ static const uint32_t kTalonPDPChannel = 10;
+
+ /* PCM channels */
+ static const int32_t kSolenoidChannel1 = 0;
+ static const int32_t kSolenoidChannel2 = 1;
+
+ /* Filter constants */
+ static constexpr double kFilterStep = 0.005;
+ static constexpr double kFilterTime = 2.0;
+ static constexpr double kSinglePoleIIRTimeConstant = 0.015915;
+ static constexpr double kSinglePoleIIRExpectedOutput = -3.2172003;
+ static constexpr double kHighPassTimeConstant = 0.006631;
+ static constexpr double kHighPassExpectedOutput = 10.074717;
+ static constexpr int32_t kMovAvgTaps = 6;
+ static constexpr double kMovAvgExpectedOutput = -10.191644;
+};
diff --git a/wpilibcIntegrationTests/include/command/MockCommand.h b/wpilibcIntegrationTests/include/command/MockCommand.h
new file mode 100644
index 0000000..0efdfae
--- /dev/null
+++ b/wpilibcIntegrationTests/include/command/MockCommand.h
@@ -0,0 +1,46 @@
+/*----------------------------------------------------------------------------*/
+/* Copyright (c) FIRST 2016-2017. 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. */
+/*----------------------------------------------------------------------------*/
+
+#pragma once
+
+#include <Commands/Command.h>
+
+namespace frc {
+
+class MockCommand : public Command {
+ public:
+ MockCommand();
+ int32_t GetInitializeCount() { return m_initializeCount; }
+ bool HasInitialized();
+
+ int32_t GetExecuteCount() { return m_executeCount; }
+ int32_t GetIsFinishedCount() { return m_isFinishedCount; }
+ bool IsHasFinished() { return m_hasFinished; }
+ void SetHasFinished(bool hasFinished) { m_hasFinished = hasFinished; }
+ int32_t GetEndCount() { return m_endCount; }
+ bool HasEnd();
+
+ int32_t GetInterruptedCount() { return m_interruptedCount; }
+ bool HasInterrupted();
+
+ protected:
+ void Initialize() override;
+ void Execute() override;
+ bool IsFinished() override;
+ void End() override;
+ void Interrupted() override;
+
+ private:
+ int32_t m_initializeCount;
+ int32_t m_executeCount;
+ int32_t m_isFinishedCount;
+ bool m_hasFinished;
+ int32_t m_endCount;
+ int32_t m_interruptedCount;
+};
+
+} // namespace frc
diff --git a/wpilibcIntegrationTests/include/command/MockConditionalCommand.h b/wpilibcIntegrationTests/include/command/MockConditionalCommand.h
new file mode 100644
index 0000000..b00911e
--- /dev/null
+++ b/wpilibcIntegrationTests/include/command/MockConditionalCommand.h
@@ -0,0 +1,28 @@
+/*----------------------------------------------------------------------------*/
+/* Copyright (c) FIRST 2017. 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. */
+/*----------------------------------------------------------------------------*/
+
+#pragma once
+
+#include <Commands/ConditionalCommand.h>
+
+#include "command/MockCommand.h"
+
+namespace frc {
+
+class MockConditionalCommand : public ConditionalCommand {
+ public:
+ MockConditionalCommand(MockCommand* onTrue, MockCommand* onFalse);
+ void SetCondition(bool condition);
+
+ protected:
+ bool Condition() override;
+
+ private:
+ bool m_condition = false;
+};
+
+} // namespace frc