diff --git a/Hindsight/WPILib-License.md b/Hindsight/WPILib-License.md new file mode 100644 index 0000000..ba35a02 --- /dev/null +++ b/Hindsight/WPILib-License.md @@ -0,0 +1,24 @@ +Copyright (c) 2009-2021 FIRST and other WPILib contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of FIRST, WPILib, nor the names of other WPILib + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY FIRST AND OTHER WPILIB CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FIRST OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/Hindsight/build.gradle b/Hindsight/build.gradle new file mode 100644 index 0000000..acd35fb --- /dev/null +++ b/Hindsight/build.gradle @@ -0,0 +1,99 @@ +plugins { + id "cpp" + id "google-test-test-suite" + id "edu.wpi.first.GradleRIO" version "2022.4.1" +} + +// Define my targets (RoboRIO) and artifacts (deployable files) +// This is added by GradleRIO's backing project DeployUtils. +deploy { + targets { + roborio(getTargetTypeClass('RoboRIO')) { + // Team number is loaded either from the .wpilib/wpilib_preferences.json + // or from command line. If not found an exception will be thrown. + // You can use getTeamOrDefault(team) instead of getTeamNumber if you + // want to store a team number in this file. + team = project.frc.getTeamNumber() + debug = project.frc.getDebugOrDefault(false) + + artifacts { + // First part is artifact name, 2nd is artifact type + // getTargetTypeClass is a shortcut to get the class type using a string + + frcCpp(getArtifactTypeClass('FRCNativeArtifact')) { + } + + // Static files artifact + frcStaticFileDeploy(getArtifactTypeClass('FileTreeArtifact')) { + files = project.fileTree('src/main/deploy') + directory = '/home/lvuser/deploy' + } + } + } + } +} + +def deployArtifact = deploy.targets.roborio.artifacts.frcCpp + +// Set this to true to enable desktop support. +def includeDesktopSupport = false + +// Set to true to run simulation in debug mode +wpi.cpp.debugSimulation = false + +// Default enable simgui +wpi.sim.addGui().defaultEnabled = true +// Enable DS but not by default +wpi.sim.addDriverstation() + +model { + components { + frcUserProgram(NativeExecutableSpec) { + targetPlatform wpi.platforms.roborio + if (includeDesktopSupport) { + targetPlatform wpi.platforms.desktop + } + + sources.cpp { + source { + srcDir 'src/main/cpp' + include '**/*.cpp', '**/*.cc' + } + exportedHeaders { + srcDir 'src/main/include' + } + } + + // Set deploy task to deploy this component + deployArtifact.component = it + + // Enable run tasks for this component + wpi.cpp.enableExternalTasks(it) + + // Enable simulation for this component + wpi.sim.enable(it) + // Defining my dependencies. In this case, WPILib (+ friends), and vendor libraries. + wpi.cpp.vendor.cpp(it) + wpi.cpp.deps.wpilib(it) + } + } + testSuites { + frcUserProgramTest(GoogleTestTestSuiteSpec) { + testing $.components.frcUserProgram + + sources.cpp { + source { + srcDir 'src/test/cpp' + include '**/*.cpp' + } + } + + // Enable run tasks for this component + wpi.cpp.enableExternalTasks(it) + + wpi.cpp.vendor.cpp(it) + wpi.cpp.deps.wpilib(it) + wpi.cpp.deps.googleTest(it) + } + } +} diff --git a/Hindsight/build/exe/frcUserProgram/debug/frcUserProgram b/Hindsight/build/exe/frcUserProgram/debug/frcUserProgram new file mode 100644 index 0000000..f6284b1 Binary files /dev/null and b/Hindsight/build/exe/frcUserProgram/debug/frcUserProgram differ diff --git a/Hindsight/build/exe/frcUserProgram/debug/frcUserProgram.debug b/Hindsight/build/exe/frcUserProgram/debug/frcUserProgram.debug new file mode 100644 index 0000000..e51044f Binary files /dev/null and b/Hindsight/build/exe/frcUserProgram/debug/frcUserProgram.debug differ diff --git a/Hindsight/build/exe/frcUserProgram/release/frcUserProgram b/Hindsight/build/exe/frcUserProgram/release/frcUserProgram new file mode 100644 index 0000000..561b088 Binary files /dev/null and b/Hindsight/build/exe/frcUserProgram/release/frcUserProgram differ diff --git a/Hindsight/build/exe/frcUserProgram/release/frcUserProgram.debug b/Hindsight/build/exe/frcUserProgram/release/frcUserProgram.debug new file mode 100644 index 0000000..0a1f691 Binary files /dev/null and b/Hindsight/build/exe/frcUserProgram/release/frcUserProgram.debug differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1g3eugptxy1gctrknso39q7c4/UDPReceiver.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1g3eugptxy1gctrknso39q7c4/UDPReceiver.o new file mode 100644 index 0000000..cf36f8a Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1g3eugptxy1gctrknso39q7c4/UDPReceiver.o differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1q3nmz23eyq7mv8szac7tikov/Intake.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1q3nmz23eyq7mv8szac7tikov/Intake.o new file mode 100644 index 0000000..5c92550 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1q3nmz23eyq7mv8szac7tikov/Intake.o differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1t6w95zfw02hopzpza37pqapf/Utility.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1t6w95zfw02hopzpza37pqapf/Utility.o new file mode 100644 index 0000000..abfe644 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/1t6w95zfw02hopzpza37pqapf/Utility.o differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/2j8c7ksxu2yzswcvp2bkatkix/FlightStick.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/2j8c7ksxu2yzswcvp2bkatkix/FlightStick.o new file mode 100644 index 0000000..a9e1bc1 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/2j8c7ksxu2yzswcvp2bkatkix/FlightStick.o differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/3bg5a77l7vd4edmrxq5jco6ri/Robot.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/3bg5a77l7vd4edmrxq5jco6ri/Robot.o new file mode 100644 index 0000000..3ca59b2 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/3bg5a77l7vd4edmrxq5jco6ri/Robot.o differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/4ipmwnvld91t21754bsvxe4fw/DriveBase.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/4ipmwnvld91t21754bsvxe4fw/DriveBase.o new file mode 100644 index 0000000..9113b52 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/4ipmwnvld91t21754bsvxe4fw/DriveBase.o differ diff --git a/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/9inwptvhlqwch3x6exfxgqlg3/Xbox.o b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/9inwptvhlqwch3x6exfxgqlg3/Xbox.o new file mode 100644 index 0000000..348b9e7 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/debug/frcUserProgramCpp/9inwptvhlqwch3x6exfxgqlg3/Xbox.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1g3eugptxy1gctrknso39q7c4/UDPReceiver.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1g3eugptxy1gctrknso39q7c4/UDPReceiver.o new file mode 100644 index 0000000..8977e66 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1g3eugptxy1gctrknso39q7c4/UDPReceiver.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1q3nmz23eyq7mv8szac7tikov/Intake.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1q3nmz23eyq7mv8szac7tikov/Intake.o new file mode 100644 index 0000000..1118775 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1q3nmz23eyq7mv8szac7tikov/Intake.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1t6w95zfw02hopzpza37pqapf/Utility.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1t6w95zfw02hopzpza37pqapf/Utility.o new file mode 100644 index 0000000..bb0d94c Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/1t6w95zfw02hopzpza37pqapf/Utility.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/2j8c7ksxu2yzswcvp2bkatkix/FlightStick.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/2j8c7ksxu2yzswcvp2bkatkix/FlightStick.o new file mode 100644 index 0000000..73a15b8 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/2j8c7ksxu2yzswcvp2bkatkix/FlightStick.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/3bg5a77l7vd4edmrxq5jco6ri/Robot.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/3bg5a77l7vd4edmrxq5jco6ri/Robot.o new file mode 100644 index 0000000..aea0f32 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/3bg5a77l7vd4edmrxq5jco6ri/Robot.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/4ipmwnvld91t21754bsvxe4fw/DriveBase.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/4ipmwnvld91t21754bsvxe4fw/DriveBase.o new file mode 100644 index 0000000..2c560e4 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/4ipmwnvld91t21754bsvxe4fw/DriveBase.o differ diff --git a/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/9inwptvhlqwch3x6exfxgqlg3/Xbox.o b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/9inwptvhlqwch3x6exfxgqlg3/Xbox.o new file mode 100644 index 0000000..e420691 Binary files /dev/null and b/Hindsight/build/objs/frcUserProgram/release/frcUserProgramCpp/9inwptvhlqwch3x6exfxgqlg3/Xbox.o differ diff --git a/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/options.txt b/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/options.txt new file mode 100644 index 0000000..5d99d29 --- /dev/null +++ b/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/options.txt @@ -0,0 +1,55 @@ +-x +c++ +-c +-Wall +-Wextra +-std=c++17 +-Wformat=2 +-pedantic +-Wno-psabi +-Wno-unused-parameter +-Wno-error=deprecated-declarations +-fPIC +-rdynamic +-pthread +-Og +-g +-nostdinc +-I +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers" +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\lib\\gcc\\arm-frc2022-linux-gnueabi\\7.3.0\\include +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\lib\\gcc\\arm-frc2022-linux-gnueabi\\7.3.0\\include-fixed +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include\\c++\\7.3.0 +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include\\c++\\7.3.0\\arm-frc2022-linux-gnueabi +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include\\c++\\7.3.0\\backward +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include diff --git a/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/output.txt b/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/output.txt new file mode 100644 index 0000000..fa9d108 --- /dev/null +++ b/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/output.txt @@ -0,0 +1,16 @@ +See file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/output.txt for all output for compileFrcUserProgramDebugExecutableFrcUserProgramCpp. +compiling FlightStick.cpp successful. + +compiling Utility.cpp successful. + +compiling Intake.cpp successful. + +compiling DriveBase.cpp successful. + +compiling Xbox.cpp successful. + +compiling UDPReceiver.cpp successful. + +compiling Robot.cpp successful. + +Finished compileFrcUserProgramDebugExecutableFrcUserProgramCpp, see full log file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/compileFrcUserProgramDebugExecutableFrcUserProgramCpp/output.txt. diff --git a/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/options.txt b/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/options.txt new file mode 100644 index 0000000..2c70367 --- /dev/null +++ b/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/options.txt @@ -0,0 +1,54 @@ +-x +c++ +-c +-Wall +-Wextra +-std=c++17 +-Wformat=2 +-pedantic +-Wno-psabi +-Wno-unused-parameter +-Wno-error=deprecated-declarations +-fPIC +-rdynamic +-pthread +-O2 +-nostdinc +-I +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers" +-I +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers" +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\lib\\gcc\\arm-frc2022-linux-gnueabi\\7.3.0\\include +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\lib\\gcc\\arm-frc2022-linux-gnueabi\\7.3.0\\include-fixed +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include\\c++\\7.3.0 +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include\\c++\\7.3.0\\arm-frc2022-linux-gnueabi +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include\\c++\\7.3.0\\backward +-isystem +C:\\Users\\Public\\wpilib\\2022\\roborio\\arm-frc2022-linux-gnueabi\\usr\\include diff --git a/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/output.txt b/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/output.txt new file mode 100644 index 0000000..a98518a --- /dev/null +++ b/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/output.txt @@ -0,0 +1,16 @@ +See file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/output.txt for all output for compileFrcUserProgramReleaseExecutableFrcUserProgramCpp. +compiling DriveBase.cpp successful. + +compiling FlightStick.cpp successful. + +compiling Utility.cpp successful. + +compiling Xbox.cpp successful. + +compiling UDPReceiver.cpp successful. + +compiling Intake.cpp successful. + +compiling Robot.cpp successful. + +Finished compileFrcUserProgramReleaseExecutableFrcUserProgramCpp, see full log file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/compileFrcUserProgramReleaseExecutableFrcUserProgramCpp/output.txt. diff --git a/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/options.txt b/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/options.txt new file mode 100644 index 0000000..3d7e4a4 --- /dev/null +++ b/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/options.txt @@ -0,0 +1,40 @@ +-o +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\exe\\frcUserProgram\\debug\\frcUserProgram" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\1g3eugptxy1gctrknso39q7c4\\UDPReceiver.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\1q3nmz23eyq7mv8szac7tikov\\Intake.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\1t6w95zfw02hopzpza37pqapf\\Utility.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\2j8c7ksxu2yzswcvp2bkatkix\\FlightStick.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\3bg5a77l7vd4edmrxq5jco6ri\\Robot.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\4ipmwnvld91t21754bsvxe4fw\\DriveBase.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\debug\\frcUserProgramCpp\\9inwptvhlqwch3x6exfxgqlg3\\Xbox.o" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ac2e7bf30a0b53188256d1070f19d85c\\transformed\\wpilibOldCommands-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libwpilibOldCommandsd.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\56bde7927725a0e5a79f3a073c12e185\\transformed\\wpilibc-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libwpilibcd.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0b749d8909f32793b0635d4882036c76\\transformed\\ntcore-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libntcored.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\cf40ff2abc9774ee6cc4f403097cd86f\\transformed\\hal-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libwpiHald.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\6dfbe83a7d8c4316c483372bd946e90a\\transformed\\wpimath-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libwpimathd.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ec8521e30887aebaeb3f4acc28af6c00\\transformed\\wpiutil-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libwpiutild.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\8ab9c0fc2f927a46a68f9288a38b64bd\\transformed\\netcomm-2022.4.0-linuxathenadebug\\linux\\athena\\shared\\libFRC_NetworkCommunication.so.22.0.0" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\06a365e47ccbf08d46743276e337faa4\\transformed\\chipobject-2022.4.0-linuxathenadebug\\linux\\athena\\shared\\libRoboRIO_FRC_ChipObject.so.22.0.0" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\8c8066cdbcf2b87e105baf0e37302283\\transformed\\visa-2022.4.0-linuxathenadebug\\linux\\athena\\shared\\libvisa.so.21.0.0" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\21bd9106dd8bead370756b8ce6f7577b\\transformed\\runtime-2022.4.0-linuxathenadebug\\linux\\athena\\shared\\libembcanshim.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\21bd9106dd8bead370756b8ce6f7577b\\transformed\\runtime-2022.4.0-linuxathenadebug\\linux\\athena\\shared\\libfpgalvshim.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\2bf5c292c4823822611e498d453e2155\\transformed\\cameraserver-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libcameraserverd.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\a9e9a52b6add6c284d79f1c026192d99\\transformed\\cscore-cpp-2022.4.1-linuxathenadebug\\linux\\athena\\shared\\libcscored.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_calib3dd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_cored.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_features2dd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_flannd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_gapid.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_highguid.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_imgcodecsd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_imgprocd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_mld.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_objdetectd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_photod.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_stitchingd.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_videod.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\28f39ef0ad9e83f1acb29939051ea74a\\transformed\\opencv-cpp-4.5.2-1-linuxathenadebug\\linux\\athena\\shared\\libopencv_videoiod.so.4.5" +-rdynamic +-pthread +-ldl +-latomic diff --git a/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/output.txt b/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/output.txt new file mode 100644 index 0000000..8df6d65 --- /dev/null +++ b/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/output.txt @@ -0,0 +1,4 @@ +See file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/output.txt for all output for linkFrcUserProgramDebugExecutable. +linking frcUserProgram successful. + +Finished linkFrcUserProgramDebugExecutable, see full log file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/linkFrcUserProgramDebugExecutable/output.txt. diff --git a/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/options.txt b/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/options.txt new file mode 100644 index 0000000..93f8ecd --- /dev/null +++ b/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/options.txt @@ -0,0 +1,40 @@ +-o +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\exe\\frcUserProgram\\release\\frcUserProgram" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\1g3eugptxy1gctrknso39q7c4\\UDPReceiver.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\1q3nmz23eyq7mv8szac7tikov\\Intake.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\1t6w95zfw02hopzpza37pqapf\\Utility.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\2j8c7ksxu2yzswcvp2bkatkix\\FlightStick.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\3bg5a77l7vd4edmrxq5jco6ri\\Robot.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\4ipmwnvld91t21754bsvxe4fw\\DriveBase.o" +"C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\build\\objs\\frcUserProgram\\release\\frcUserProgramCpp\\9inwptvhlqwch3x6exfxgqlg3\\Xbox.o" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\bc408722324a0384675446a30ac86d92\\transformed\\wpilibOldCommands-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libwpilibOldCommands.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\01fb369ff4086d6d345b782485588cdb\\transformed\\wpilibc-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libwpilibc.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\782dc55fd261f6f84728869f820d2fb4\\transformed\\ntcore-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libntcore.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\50bb216906e2c980afb3e17293376ea5\\transformed\\hal-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libwpiHal.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\f30d031a3d06b22236427b9e82646539\\transformed\\wpimath-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libwpimath.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\772b9cf2798458acf229eb1e21e9fe9e\\transformed\\wpiutil-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libwpiutil.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\b002fdbf77d32b0302ec8ae41ed5c5b7\\transformed\\netcomm-2022.4.0-linuxathena\\linux\\athena\\shared\\libFRC_NetworkCommunication.so.22.0.0" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\12be7779b1c300637b16f496f8a82a35\\transformed\\chipobject-2022.4.0-linuxathena\\linux\\athena\\shared\\libRoboRIO_FRC_ChipObject.so.22.0.0" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\515a51b87e193da53b7af2d47d5b2c1b\\transformed\\visa-2022.4.0-linuxathena\\linux\\athena\\shared\\libvisa.so.21.0.0" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\2f979a760e96769203a463a7899c5ab4\\transformed\\runtime-2022.4.0-linuxathena\\linux\\athena\\shared\\libembcanshim.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\2f979a760e96769203a463a7899c5ab4\\transformed\\runtime-2022.4.0-linuxathena\\linux\\athena\\shared\\libfpgalvshim.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\6833799879b85118e8ba7d39ea3db0d6\\transformed\\cameraserver-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libcameraserver.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04d27ce3163586a3db92e1f5743d8966\\transformed\\cscore-cpp-2022.4.1-linuxathena\\linux\\athena\\shared\\libcscore.so" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_calib3d.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_core.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_features2d.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_flann.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_gapi.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_highgui.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_imgcodecs.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_imgproc.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_ml.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_objdetect.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_photo.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_stitching.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_video.so.4.5" +"C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\04bd70795cb7c5cbef0e0b4038577dc3\\transformed\\opencv-cpp-4.5.2-1-linuxathena\\linux\\athena\\shared\\libopencv_videoio.so.4.5" +-rdynamic +-pthread +-ldl +-latomic diff --git a/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/output.txt b/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/output.txt new file mode 100644 index 0000000..d60ce1d --- /dev/null +++ b/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/output.txt @@ -0,0 +1,4 @@ +See file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/output.txt for all output for linkFrcUserProgramReleaseExecutable. +linking frcUserProgram successful. + +Finished linkFrcUserProgramReleaseExecutable, see full log file:///C:/Users/Team%202550/Desktop/Robot-Code-develop/Hindsight/build/tmp/linkFrcUserProgramReleaseExecutable/output.txt. diff --git a/Hindsight/build/vscodeconfig.json b/Hindsight/build/vscodeconfig.json new file mode 100644 index 0000000..abd8817 --- /dev/null +++ b/Hindsight/build/vscodeconfig.json @@ -0,0 +1,381 @@ +[ + { + "name": "linuxathena", + "architecture": "arm-v7", + "operatingSystem": "linux", + "flavor": "default", + "buildType": "debug", + "cppPath": "C:\\Users\\Public\\wpilib\\2022\\roborio\\bin\\arm-frc2022-linux-gnueabi-g++.exe", + "cPath": "C:\\Users\\Public\\wpilib\\2022\\roborio\\bin\\arm-frc2022-linux-gnueabi-gcc.exe", + "msvc": false, + "gcc": true, + "systemCppMacros": [], + "systemCppArgs": [], + "systemCMacros": [], + "systemCArgs": [], + "allLibFiles": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers\\", + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\dc95e2181b54b4bf13e54232effb931b\\transformed\\wpilibOldCommands-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\bace3f014002850edd343c7a290124ca\\transformed\\wpilibc-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\89a5ddbec0f491219a12bf1b6c42b2d0\\transformed\\ntcore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\268ec3de7757d66cfa75b3a52822ab61\\transformed\\hal-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\e6dd4be99839771c98f2214dde1cbd29\\transformed\\wpimath-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\1774e1db753f8e35f17f74321faba768\\transformed\\wpiutil-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ed0bf7a241866665121cacd5ea4e7db0\\transformed\\cameraserver-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\05dcb83f4e2904a8b86589a293a09b8f\\transformed\\cscore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\79aac71c8d50718f8b9bc13bcdcf9b4f\\transformed\\opencv-cpp-4.5.2-1-sources\\" + ], + "allLibSources": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\dc95e2181b54b4bf13e54232effb931b\\transformed\\wpilibOldCommands-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\bace3f014002850edd343c7a290124ca\\transformed\\wpilibc-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\89a5ddbec0f491219a12bf1b6c42b2d0\\transformed\\ntcore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\268ec3de7757d66cfa75b3a52822ab61\\transformed\\hal-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\e6dd4be99839771c98f2214dde1cbd29\\transformed\\wpimath-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\1774e1db753f8e35f17f74321faba768\\transformed\\wpiutil-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ed0bf7a241866665121cacd5ea4e7db0\\transformed\\cameraserver-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\05dcb83f4e2904a8b86589a293a09b8f\\transformed\\cscore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\79aac71c8d50718f8b9bc13bcdcf9b4f\\transformed\\opencv-cpp-4.5.2-1-sources\\" + ], + "allLibHeaders": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers\\", + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "binaries": [ + { + "componentName": "frcUserProgram", + "sourceSets": [ + { + "source": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\cpp\\" + ], + "includes": [ + "**/*.cpp", + "**/*.cc" + ], + "excludes": [] + }, + "exportedHeaders": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "includes": [], + "excludes": [] + }, + "cpp": true, + "args": [ + "-Wall", + "-Wextra", + "-std=c++17", + "-Wformat=2", + "-pedantic", + "-Wno-psabi", + "-Wno-unused-parameter", + "-Wno-error=deprecated-declarations", + "-fPIC", + "-rdynamic", + "-pthread", + "-Og", + "-g" + ], + "macros": [] + } + ], + "libHeaders": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers\\", + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "sharedLibrary": false, + "executable": true + } + ], + "sourceBinaries": [ + { + "source": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\cpp\\" + ], + "includes": [ + "**/*.cpp", + "**/*.cc" + ], + "excludes": [] + }, + "componentName": "frcUserProgram", + "cpp": true, + "args": [ + "-Wall", + "-Wextra", + "-std=c++17", + "-Wformat=2", + "-pedantic", + "-Wno-psabi", + "-Wno-unused-parameter", + "-Wno-error=deprecated-declarations", + "-fPIC", + "-rdynamic", + "-pthread", + "-Og", + "-g" + ], + "macros": [], + "sharedLibrary": false, + "executable": true + }, + { + "source": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "includes": [], + "excludes": [] + }, + "componentName": "frcUserProgram", + "cpp": true, + "args": [ + "-Wall", + "-Wextra", + "-std=c++17", + "-Wformat=2", + "-pedantic", + "-Wno-psabi", + "-Wno-unused-parameter", + "-Wno-error=deprecated-declarations", + "-fPIC", + "-rdynamic", + "-pthread", + "-Og", + "-g" + ], + "macros": [], + "sharedLibrary": false, + "executable": true + } + ], + "nameBinaryMap": { + "frcUserProgram": 0 + } + }, + { + "name": "linuxathena", + "architecture": "arm-v7", + "operatingSystem": "linux", + "flavor": "default", + "buildType": "release", + "cppPath": "C:\\Users\\Public\\wpilib\\2022\\roborio\\bin\\arm-frc2022-linux-gnueabi-g++.exe", + "cPath": "C:\\Users\\Public\\wpilib\\2022\\roborio\\bin\\arm-frc2022-linux-gnueabi-gcc.exe", + "msvc": false, + "gcc": true, + "systemCppMacros": [], + "systemCppArgs": [], + "systemCMacros": [], + "systemCArgs": [], + "allLibFiles": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers\\", + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\dc95e2181b54b4bf13e54232effb931b\\transformed\\wpilibOldCommands-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\bace3f014002850edd343c7a290124ca\\transformed\\wpilibc-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\89a5ddbec0f491219a12bf1b6c42b2d0\\transformed\\ntcore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\268ec3de7757d66cfa75b3a52822ab61\\transformed\\hal-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\e6dd4be99839771c98f2214dde1cbd29\\transformed\\wpimath-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\1774e1db753f8e35f17f74321faba768\\transformed\\wpiutil-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ed0bf7a241866665121cacd5ea4e7db0\\transformed\\cameraserver-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\05dcb83f4e2904a8b86589a293a09b8f\\transformed\\cscore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\79aac71c8d50718f8b9bc13bcdcf9b4f\\transformed\\opencv-cpp-4.5.2-1-sources\\" + ], + "allLibSources": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\dc95e2181b54b4bf13e54232effb931b\\transformed\\wpilibOldCommands-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\bace3f014002850edd343c7a290124ca\\transformed\\wpilibc-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\89a5ddbec0f491219a12bf1b6c42b2d0\\transformed\\ntcore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\268ec3de7757d66cfa75b3a52822ab61\\transformed\\hal-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\e6dd4be99839771c98f2214dde1cbd29\\transformed\\wpimath-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\1774e1db753f8e35f17f74321faba768\\transformed\\wpiutil-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ed0bf7a241866665121cacd5ea4e7db0\\transformed\\cameraserver-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\05dcb83f4e2904a8b86589a293a09b8f\\transformed\\cscore-cpp-2022.4.1-sources\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\79aac71c8d50718f8b9bc13bcdcf9b4f\\transformed\\opencv-cpp-4.5.2-1-sources\\" + ], + "allLibHeaders": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers\\", + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "binaries": [ + { + "componentName": "frcUserProgram", + "sourceSets": [ + { + "source": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\cpp\\" + ], + "includes": [ + "**/*.cpp", + "**/*.cc" + ], + "excludes": [] + }, + "exportedHeaders": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "includes": [], + "excludes": [] + }, + "cpp": true, + "args": [ + "-Wall", + "-Wextra", + "-std=c++17", + "-Wformat=2", + "-pedantic", + "-Wno-psabi", + "-Wno-unused-parameter", + "-Wno-error=deprecated-declarations", + "-fPIC", + "-rdynamic", + "-pthread", + "-O2" + ], + "macros": [] + } + ], + "libHeaders": [ + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7262c45c5a56fc4d51e1516577775a63\\transformed\\wpilibOldCommands-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\83a53c18c19df5f914abde33ca4309b0\\transformed\\wpilibc-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\0633eddf9cc29c97c240246ad007ab86\\transformed\\ntcore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\013c4d97f722563b8a8f300b5d6fcf5c\\transformed\\hal-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\07ed64aa1074398a5cd82f3b682532eb\\transformed\\wpimath-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\ccada9075d3b8dcc0d173eb790a55986\\transformed\\wpiutil-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\d20970ca6067656e8d18591c65c1c758\\transformed\\netcomm-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\beb5aec5694b7daa19e896d7e4d40300\\transformed\\chipobject-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\011dbd21fb3a73c85c9085af8a9b8327\\transformed\\visa-2022.4.0-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\4b2c15168f64d35a1b579495a5014e1e\\transformed\\cameraserver-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\7b53244be03bb0b4044131ce076c8f9c\\transformed\\cscore-cpp-2022.4.1-headers\\", + "C:\\Users\\Team 2550\\.gradle\\caches\\transforms-3\\30bea9114bf75f91d18347a8be921f2a\\transformed\\opencv-cpp-4.5.2-1-headers\\", + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "sharedLibrary": false, + "executable": true + } + ], + "sourceBinaries": [ + { + "source": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\cpp\\" + ], + "includes": [ + "**/*.cpp", + "**/*.cc" + ], + "excludes": [] + }, + "componentName": "frcUserProgram", + "cpp": true, + "args": [ + "-Wall", + "-Wextra", + "-std=c++17", + "-Wformat=2", + "-pedantic", + "-Wno-psabi", + "-Wno-unused-parameter", + "-Wno-error=deprecated-declarations", + "-fPIC", + "-rdynamic", + "-pthread", + "-O2" + ], + "macros": [], + "sharedLibrary": false, + "executable": true + }, + { + "source": { + "srcDirs": [ + "C:\\Users\\Team 2550\\Desktop\\Robot-Code-develop\\Hindsight\\src\\main\\include\\" + ], + "includes": [], + "excludes": [] + }, + "componentName": "frcUserProgram", + "cpp": true, + "args": [ + "-Wall", + "-Wextra", + "-std=c++17", + "-Wformat=2", + "-pedantic", + "-Wno-psabi", + "-Wno-unused-parameter", + "-Wno-error=deprecated-declarations", + "-fPIC", + "-rdynamic", + "-pthread", + "-O2" + ], + "macros": [], + "sharedLibrary": false, + "executable": true + } + ], + "nameBinaryMap": { + "frcUserProgram": 0 + } + } +] \ No newline at end of file diff --git a/Hindsight/gradle/wrapper/gradle-wrapper.jar b/Hindsight/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..7454180 Binary files /dev/null and b/Hindsight/gradle/wrapper/gradle-wrapper.jar differ diff --git a/Hindsight/gradle/wrapper/gradle-wrapper.properties b/Hindsight/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a71c7a7 --- /dev/null +++ b/Hindsight/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=permwrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=permwrapper/dists diff --git a/Hindsight/gradlew b/Hindsight/gradlew new file mode 100644 index 0000000..c53aefa --- /dev/null +++ b/Hindsight/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/Hindsight/gradlew.bat b/Hindsight/gradlew.bat new file mode 100644 index 0000000..ac1b06f --- /dev/null +++ b/Hindsight/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/Hindsight/settings.gradle b/Hindsight/settings.gradle new file mode 100644 index 0000000..aa06df7 --- /dev/null +++ b/Hindsight/settings.gradle @@ -0,0 +1,27 @@ +import org.gradle.internal.os.OperatingSystem + +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + String frcYear = '2022' + File frcHome + if (OperatingSystem.current().isWindows()) { + String publicFolder = System.getenv('PUBLIC') + if (publicFolder == null) { + publicFolder = "C:\\Users\\Public" + } + def homeRoot = new File(publicFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } else { + def userFolder = System.getProperty("user.home") + def homeRoot = new File(userFolder, "wpilib") + frcHome = new File(homeRoot, frcYear) + } + def frcHomeMaven = new File(frcHome, 'maven') + maven { + name 'frcHome' + url frcHomeMaven + } + } +} diff --git a/Hindsight/src/main/cpp/DriveBase.cpp b/Hindsight/src/main/cpp/DriveBase.cpp new file mode 100644 index 0000000..dbad0da --- /dev/null +++ b/Hindsight/src/main/cpp/DriveBase.cpp @@ -0,0 +1,13 @@ +#include "DriveBase.h" + +DriveBase::DriveBase(int leftFrontPort, int rightFrontPort, + int leftRearPort, int rightRearPort) + : leftFrontMotor(leftFrontPort) /*Spark*/, rightFrontMotor(rightFrontPort) /*VictorSP*/, + leftRearMotor(leftRearPort) /*VictorSP*/, rightRearMotor(rightRearPort){ /*Spark*/ + + leftFrontMotorValue = leftFrontPort; + rightFrontMotorValue = rightFrontPort; + leftRearMotorValue = leftRearPort; + rightRearMotorValue = rightRearPort; + +} diff --git a/Hindsight/src/main/cpp/DriveBase.h b/Hindsight/src/main/cpp/DriveBase.h new file mode 100644 index 0000000..0a41481 --- /dev/null +++ b/Hindsight/src/main/cpp/DriveBase.h @@ -0,0 +1,34 @@ +#ifndef DRIVEBASE_H +#define DRIVEBASE_H + +#include "Utility.h" +#include +#include +#include +#include +#include +#include + +#include +#include +#include + + +class DriveBase { + public: + DriveBase::DriveBase(int leftFrontPort, int rightFrontPort, + int leftRearPort, int rightRearPort); + + private: + Spark leftFrontMotor; + VictorSP leftRearMotor; + VictorSP rightFrontMotor; + Spark rightRearMotor; + + int leftFrontMotorValue; + int leftRearMotorValue; + int rightFrontMotorValue; + int rightRearMotorValue; +}; + +#endif diff --git a/Hindsight/src/main/cpp/FlightStick.cpp b/Hindsight/src/main/cpp/FlightStick.cpp new file mode 100644 index 0000000..5f8cf57 --- /dev/null +++ b/Hindsight/src/main/cpp/FlightStick.cpp @@ -0,0 +1,13 @@ +#include "FlightStick.h" + +FlightStick::FlightStick() : leftFlightStick(0), rightFlightStick(1) {} + +bool FlightStick::boost() { return leftFlightStick.GetRawButton(1); } + +bool FlightStick::turtle() { return rightFlightStick.GetRawButton(1); } + +bool FlightStick::intake() { return rightFlightStick.GetRawButtonPressed(3); } + +double FlightStick::leftTankAxis() { return leftFlightStick.GetRawAxis(Y); } + +double FlightStick::rightTankAxis() { return rightFlightStick.GetRawAxis(Y); } \ No newline at end of file diff --git a/Hindsight/src/main/cpp/FlightStick.h b/Hindsight/src/main/cpp/FlightStick.h new file mode 100644 index 0000000..49d8522 --- /dev/null +++ b/Hindsight/src/main/cpp/FlightStick.h @@ -0,0 +1,27 @@ +#ifndef FLIGHTSTICK_H +#define FLIGHTSTICK_H + +#include "Input.h" +#include + +class FlightStick : public Input { + public: + FlightStick(); + bool boost(); + bool turtle(); + bool intake(); + double leftTankAxis(); + double rightTankAxis(); + + private: + frc::Joystick leftFlightStick; + frc::Joystick rightFlightStick; + + // Axes (not the slashy kind) + + const uint32_t X = 0; + const uint32_t Y = 1; + const uint32_t Z = 2; +}; + +#endif diff --git a/Hindsight/src/main/cpp/Input.h b/Hindsight/src/main/cpp/Input.h new file mode 100644 index 0000000..44cb369 --- /dev/null +++ b/Hindsight/src/main/cpp/Input.h @@ -0,0 +1,12 @@ +#ifndef INPUT_H +#define INPUT_H + +class Input { + public: + virtual bool boost() = 0; + virtual bool turtle() = 0; + virtual bool intake() = 0; + virtual double leftTankAxis() = 0; + virtual double rightTankAxis() = 0; +}; +#endif \ No newline at end of file diff --git a/Hindsight/src/main/cpp/Intake.cpp b/Hindsight/src/main/cpp/Intake.cpp new file mode 100644 index 0000000..05a609b --- /dev/null +++ b/Hindsight/src/main/cpp/Intake.cpp @@ -0,0 +1,17 @@ +#include "Intake.h" + +Intake::Intake(int intakeMotorPort) : intakeMotor(intakeMotorPort) { + intakeMotor.SetInverted(true); +} + +void Intake::Start() { intakeMotor.Set(0.42); } + +void Intake::Stop() { intakeMotor.Set(0); } + +bool Intake::IsActive() { + if (intakeMotor.Get() == 0) { + return false; + } else { + return true; + } +} diff --git a/Hindsight/src/main/cpp/Intake.h b/Hindsight/src/main/cpp/Intake.h new file mode 100644 index 0000000..eb4a797 --- /dev/null +++ b/Hindsight/src/main/cpp/Intake.h @@ -0,0 +1,22 @@ +#ifndef INTAKE_H +#define INTAKE_H + +#include "Utility.h" +#include +#include +#include +#include + +class Intake { + public: + Intake(int intakeMotorPort); + void Start(); + void Stop(); + bool IsActive(); + + private: + Spark intakeMotor; + bool isActive; +}; + +#endif \ No newline at end of file diff --git a/Hindsight/src/main/cpp/Robot.cpp b/Hindsight/src/main/cpp/Robot.cpp new file mode 100644 index 0000000..d1869fc --- /dev/null +++ b/Hindsight/src/main/cpp/Robot.cpp @@ -0,0 +1,105 @@ +// +// © 2022 Skynet 2550 +// +// Programming Team: Garin Hamburg +// +#include "Robot.h" + +// +// driveBase: (int) Left Front port, (int) Right Front port, +// (int) Left Rear port, (int) Right Rear port +// + + + +// These are for the intake toggle later. +bool intakeToggleOn = false; +bool intakeTogglePressed = false; + +Robot::Robot() + : inputController(), udpReceiver(), gyroscope(frc::SPI::Port::kOnboardCS0), //Need gyro for DriveCartesian + intake(2), + // + driveBase(0, 1, 2, 3) +{ + boostPressTime = -999; + UpdatePreferences(); +} + +Robot::~Robot() {} + +void Robot::RobotInit() { + gyroscope.Calibrate(); + + + // Start Video Stream + // URL is "http://10.25.50.94:8080/" + CameraServer::StartAutomaticCapture(); +} + +void Robot::AutonomousInit() { + // TODO: Auto +} + +void Robot::AutonomousPeriodic() { + // TODO: Auto +} + +void Robot::TeleopInit() { + // TODO: TeleopInit +} + +void Robot::TeleopPeriodic() { + + // Input changes will happen here + udpReceiver.getTeleopUDPData(); + + std::cout << "Left: " << std::setw(5) << driveBase.GetLeftDistance() << ' ' + << "Right: " << std::setw(5) << driveBase.GetRightDistance() + << ' ' << "Angle: " << std::setw(5) << gyroscope.GetAngle() + << std::endl; + + float leftSpeed = Utility::Deadzone(-inputController.leftTankAxis()); + float rightSpeed = Utility::Deadzone(-inputController.rightTankAxis()); + float baseSpeed = speedNormal; + + if (inputController.intake()) { + if (intake.IsActive()) { + intake.Stop(); + } else { + intake.Start(); + } + } + + if (inputController.turtle()) { + baseSpeed = speedTurtle; + } else if (inputController.boost()) { + baseSpeed = speedBoost; + boostPressTime = float(timer.Get()); + } else if (float(timer.Get()) < boostPressTime + boostDecelerationTime) { + baseSpeed = speedBoost + (speedNormal - speedBoost) * + ((float(timer.Get()) - boostPressTime) / + boostDecelerationTime); + } + driveBase.Drive(leftSpeed * baseSpeed, rightSpeed * baseSpeed); +} + +void Robot::UpdatePreferences() { + + // Soon to be replaced + + driveBase.SetTrim(Preferences::GetDouble("LeftForwardTrim", 0.82), + Preferences::GetDouble("RightForwardTrim", 1.0), + Preferences::GetDouble("LeftReverseTrim", 1.0), + Preferences::GetDouble("RightReverseTrim", 1.0)); + + speedNormal = Preferences::GetFloat("SpeedNormal", 0.6f); + speedTurtle = Preferences::GetFloat("SpeedTurtle", 0.35f); + speedBoost = Preferences::GetFloat("SpeedBoost", 1.0f); + boostDecelerationTime = Preferences::GetFloat("BoostDecelTime", 0.5f); + // Get specified delay for autonomous + frc::SmartDashboard::SetDefaultNumber("Auto Delay", 0); + autoDelay = frc::SmartDashboard::GetNumber("Auto Delay", 0); +} + +int main() { return frc::StartRobot(); } diff --git a/Hindsight/src/main/cpp/Robot.h b/Hindsight/src/main/cpp/Robot.h new file mode 100644 index 0000000..5f619a0 --- /dev/null +++ b/Hindsight/src/main/cpp/Robot.h @@ -0,0 +1,84 @@ +#ifndef ROBOT_H +#define ROBOT_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// Not all inputs are in use, but makes for very fast adaptations. +#include "FlightStick.h" +#include "Input.h" +#include "Xbox.h" + +#include "DriveBase.h" +#include "Intake.h" +#include "UDPReceiver.h" + +class Robot : public TimedRobot { + public: + enum Position { LEFT, RIGHT }; + + Robot(); + ~Robot(); + void RobotInit(); + void AutonomousInit(); + void AutonomousPeriodic(); + void TeleopInit(); + void TeleopPeriodic(); + void UpdatePreferences(); + float speedNormal; + float speedTurtle; + float speedBoost; + float boostDecelerationTime; + + int axisTankLeft; + int axisTankRight; + int buttonBoost; + int buttonTurtle; + int buttonAutoAim; + int buttonWinchForwards; + int buttonWinchBackwards; + int buttonHandGrab; + int buttonArmGrab; + int buttonFeedHatchToggle; + int buttonClimbGrabToggle; + + int climbGrabToggleCount; + int feedHatchToggleCount; + + float boostPressTime; + + Preferences *prefs; + float autoDelay; + + bool autoStrategyCompleted; + bool autoStartedBackup; + bool autoAimOn = true; + bool autoAimOff = false; + + frc::SendableChooser autoAimChooser; + bool *autoAimToggle; + + PowerDistribution pdp; + + FlightStick inputController; + Timer timer; + UDPReceiver udpReceiver; + + ADXRS450_Gyro gyroscope; + + Intake intake; + DriveBase driveBase; +}; + +#endif diff --git a/Hindsight/src/main/cpp/UDPReceiver.cpp b/Hindsight/src/main/cpp/UDPReceiver.cpp new file mode 100644 index 0000000..c516b76 --- /dev/null +++ b/Hindsight/src/main/cpp/UDPReceiver.cpp @@ -0,0 +1,168 @@ +#include "UDPReceiver.h" + +UDPReceiver::UDPReceiver() { + createUDPSocket(); + + UDPAgeTimer.Start(); +} + +/*================================================ +Name: getUDPData +Desc: Returns the most recent UDP data +Arguments: + none +Return: + Array of ints from UDP +================================================*/ +void UDPReceiver::getUDPData(float data[]) { + memcpy(data, newestUDPData, sizeof(newestUDPData)); +} + +/*================================================ +Name: getUDPDataAge +Desc: Returns the age of the UDP data +Arguments: + none +Return: + Seconds since data was last received +================================================*/ +// NOTE: this should probably return the proper units. +double UDPReceiver::getUDPDataAge() { return double(UDPAgeTimer.Get()); } + +/*================================================ +Name: getUDPDataIsReal +Desc: Returns whether or not the current data is real or a placeholder +Arguments: + none +Return: + True if real, false if placeholder +================================================*/ +bool UDPReceiver::getUDPDataIsReal() { return isRealData; } + +/*================================================ +Name: createUDPSocket +Desc: Creates UDP socket +Arguments: + none +Return: + 0 if success, 1 if failed +================================================*/ +int UDPReceiver::createUDPSocket() { + if ((ourSocket = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { + perror("Cannot create socket\n"); + return 1; + } + + /* bind the socket to any valid IP address and a specific port */ + memset((char *)&myAddress, 0, sizeof(myAddress)); + myAddress.sin_family = AF_INET; + myAddress.sin_addr.s_addr = htonl(INADDR_ANY); + myAddress.sin_port = htons(SERVICE_PORT); + + if (bind(ourSocket, (struct sockaddr *)&myAddress, sizeof(myAddress)) < 0) { + perror("bind failed"); + return 1; + } + + return 0; +} + +/*================================================ +Name: checkUDP +Desc: Checks UDP socket for new data +Arguments: + none +Return: + none +================================================*/ +bool UDPReceiver::checkUDP() { + int bytesRecievedCount = 0; + + try { + bytesRecievedCount = + recvfrom(ourSocket, buffer, BUFSIZE, MSG_DONTWAIT, + (struct sockaddr *)&remoteAddress, &addressLength); + } catch (const int e) { + bytesRecievedCount = 0; + } + + if (bytesRecievedCount > 0) { + buffer[bytesRecievedCount] = '\0'; + std::string bufferString = buffer; + + std::vector dataPointsStrings = + Utility::SplitString(bufferString, ','); + + std::vector> dataPoints; + + std::vector currentDataPoint; + + // Convert to float and sort data points by size from smallest to + // greatest distance + for (unsigned int i = 0; i < dataPointsStrings.size(); i++) { + currentDataPoint = Utility::StrVectorToFloatVector( + Utility::SplitString(dataPointsStrings[i], ' ')); + + // If data point is the right length, add it to the right position + // in the dataPoints vector (sorted by percent match) + if (currentDataPoint.size() == UDP::DataCount) + for (unsigned int j = 0; j <= dataPoints.size(); j++) + if (j >= dataPoints.size() || + currentDataPoint[UDP::Index::PercentMatch] > + dataPoints[j][UDP::Index::PercentMatch]) { + dataPoints.insert(dataPoints.begin() + j, + currentDataPoint); + j = dataPoints.size() + 1; + } + } + + if (dataPoints.size() > 1) { + // If one target is a much worse match than the other, ignore the + // data + if (dataPoints[1][UDP::Index::PercentMatch] / + dataPoints[0][UDP::Index::PercentMatch] > + 0.75) { + // Average two best matches + for (unsigned int i = 0; i < UDP::DataCount; i++) + newestUDPData[i] = + (dataPoints[0][i] + dataPoints[1][i]) / 2; + UDPAgeTimer.Reset(); + isRealData = true; + + return true; + } + } + } + + return false; +} + +void UDPReceiver::clearUDPSocket() { + int packetsCleared = 0; + int bytesRecievedCount = 1; + + while (bytesRecievedCount > 0 && packetsCleared < UDP::MaxPacketsFlush) { + try { + bytesRecievedCount = + recvfrom(ourSocket, buffer, BUFSIZE, MSG_DONTWAIT, + (struct sockaddr *)&remoteAddress, &addressLength); + } catch (const int e) { + bytesRecievedCount = 0; + } + + packetsCleared++; + } +} +/* + This is used during TeleopPeriodic +*/ +void UDPReceiver::getTeleopUDPData() { + UDPReceiver udpReceiver; + + /* ========== udpReceiver ========== */ + udpReceiver.checkUDP(); + udpReceiver.clearUDPSocket(); + + float data[UDP::DataCount]; + udpReceiver.getUDPData(data); +} \ No newline at end of file diff --git a/Hindsight/src/main/cpp/UDPReceiver.h b/Hindsight/src/main/cpp/UDPReceiver.h new file mode 100644 index 0000000..a56ebf1 --- /dev/null +++ b/Hindsight/src/main/cpp/UDPReceiver.h @@ -0,0 +1,56 @@ +#ifndef UDP_R_H +#define UDP_R_H + +#include "Utility.h" +#include +#include +#include +#include +#include +#include +#include + +// these should be changed to constants instead of #defines +#define BUFSIZE 2048 +#define SERVICE_PORT 8890 /* hard-coded port number */ + +namespace UDP { + const int MaxPacketsFlush = 20; + + const int DataCount = 6; + + namespace Index { + const int PercentMatch = 0; + const int Distance = 1; + const int XOffset = 2; + const int YOffset = 3; + const int HorizAngle = 4; + const int VertAngle = 5; + } // namespace Index +} // namespace UDP + +class UDPReceiver { + + private: + int ourSocket; + struct sockaddr_in myAddress; + struct sockaddr_in remoteAddress; + socklen_t addressLength = sizeof(remoteAddress); + char buffer[BUFSIZE]; + float newestUDPData[UDP::DataCount] = {-1, -1, -1, -1, -1, -1}; + bool isRealData = false; + Timer UDPAgeTimer; + int createUDPSocket(); + + public: + UDPReceiver(); + + bool checkUDP(); + void getUDPData(float data[]); + double getUDPDataAge(); + bool getUDPDataIsReal(); + void clearUDPSocket(); + void getTeleopUDPData(); +}; + +#endif diff --git a/Hindsight/src/main/cpp/Utility.cpp b/Hindsight/src/main/cpp/Utility.cpp new file mode 100644 index 0000000..c6da5c6 --- /dev/null +++ b/Hindsight/src/main/cpp/Utility.cpp @@ -0,0 +1,85 @@ +#include "Utility.h" + +/*! + * \brief Applies the specified deadzone to value + * + * \param[in] value The value to apply the deadzone to + * \param[in] tolerance The deadzone to use + * \return 0 if the absolute value of the given value is smaller than or + * equal to tolerance; otherwise, the original value + */ +float Utility::Deadzone(float value, float tolerance) { + return fabs(value) <= tolerance ? 0 : value; +} + +/*! + * \brief Splits the given string where the delimiter is found + * + * \param[in] str The string to split + * \param[in] delimiter The delimiter to use + * \return A vector containing the resulting strings + */ +std::vector Utility::SplitString(std::string str, char delimiter) { + std::vector substrings; + std::string substr; + + for (unsigned int i = 0; i < str.length(); i++) { + substr = ""; + + while (str[i] != delimiter && i < str.length()) { + substr += str[i++]; + } + + substrings.push_back(substr); + } + + return substrings; +} + +/*! + * \brief Converts a vector of strings to a vector of floats + * + * This works by calling stof() on every string in the vector. If for some + * reason the string cannot be converted to a float, it is silently skipped. + * \param[in] strs The strings to convert + * \return A vector containing the resulting floats + */ +std::vector +Utility::StrVectorToFloatVector(std::vector strs) { + std::vector nums; + float num; + + for (unsigned int i = 0; i < strs.size(); i++) + try { + num = stof(strs[i]); + nums.push_back(num); + } catch (...) { + } + + return nums; +} + +/*! + * \brief Sets the the rumble of the given controller + * + * This allows setting a specific rumble value to a specific side + * of a specific controller + * \param[out] controller The controller to set the rumble of + * \param[in] rumbleSide Which side of the controller to rumble + * \param[in] rumbleAmount The intensity of the rumble, from 0 to 1 + */ +void Utility::SetRumble(Joystick &controller, Utility::RumbleSide rumbleSide, + float rumbleAmount) { + switch (rumbleSide) { + case LEFT: + controller.SetRumble(Joystick::kLeftRumble, rumbleAmount); + break; + case RIGHT: + controller.SetRumble(Joystick::kRightRumble, rumbleAmount); + break; + case BOTH: + controller.SetRumble(Joystick::kLeftRumble, rumbleAmount); + controller.SetRumble(Joystick::kRightRumble, rumbleAmount); + break; + } +} diff --git a/Hindsight/src/main/cpp/Utility.h b/Hindsight/src/main/cpp/Utility.h new file mode 100644 index 0000000..1437405 --- /dev/null +++ b/Hindsight/src/main/cpp/Utility.h @@ -0,0 +1,62 @@ +#ifndef UTILITY_H +#define UTILITY_H + +#include "Xbox.h" +#include +#include +#include +#include + +using namespace frc; + +namespace Utility { + enum RumbleSide { LEFT, RIGHT, BOTH }; + + /*================================================= + Name: deadzone + Desc: Zeroes out values within a certain "deadzone" + Arguments: + value (IO): value to deadzone + tolerance (I): deadzone + Return: + none + =================================================*/ + float Deadzone(float value, float tolerance = 0.2); + + /*================================================= + Name: splitString + Desc: Splits a string at delimiters + Arguments: + str (I): String to split + delimiter (I): Delimiter to split at + Return: + Vector containing substrings of original string + =================================================*/ + std::vector SplitString(std::string str, char delimiter); + + /*================================================= + Name: strVectorToFloatVector + Desc: Converts a vector of strings to a vector of floats + Arguments: + strs (I): Vector of strings + Return: + Vector of floats + =================================================*/ + std::vector StrVectorToFloatVector(std::vector strs); + + /*================================================= + Name: setRumble + Desc: Rumbles an xbox controller + Arguments: + controller (I): controller to rumble + rumbleSide (I): side to rumble + rumbleAmount (I): rumble force [0, 1] + Return: + none + =================================================*/ + void SetRumble(Joystick &controller, RumbleSide rumbleSide, + float rumbleAmount); + +} // namespace Utility + +#endif diff --git a/Hindsight/src/main/cpp/Xbox.cpp b/Hindsight/src/main/cpp/Xbox.cpp new file mode 100644 index 0000000..ec1be7d --- /dev/null +++ b/Hindsight/src/main/cpp/Xbox.cpp @@ -0,0 +1,13 @@ +#include "Xbox.h" + +Xbox::Xbox() : controller(0) {} + +bool Xbox::boost() { return controller.GetRawButton(lb); } + +bool Xbox::turtle() { return controller.GetRawButton(rb); } + +bool Xbox::intake() { return controller.GetRawButtonPressed(a); } + +double Xbox::leftTankAxis() { return controller.GetRawAxis(leftY); } + +double Xbox::rightTankAxis() { return controller.GetRawAxis(rightY); } \ No newline at end of file diff --git a/Hindsight/src/main/cpp/Xbox.h b/Hindsight/src/main/cpp/Xbox.h new file mode 100644 index 0000000..dda1cd7 --- /dev/null +++ b/Hindsight/src/main/cpp/Xbox.h @@ -0,0 +1,45 @@ +#ifndef XBOX_H +#define XBOX_H + +#include "Input.h" +#include + +class Xbox : public Input { + public: + Xbox(); + bool boost(); + bool turtle(); + bool intake(); + double leftTankAxis(); + double rightTankAxis(); + + private: + frc::Joystick controller; + const uint32_t a = 1; + const uint32_t b = 2; + const uint32_t x = 3; + const uint32_t y = 4; + + const uint32_t lb = 5; + const uint32_t rb = 6; + + const uint32_t back = 7; + const uint32_t start = 8; + + const uint32_t leftPush = 9; + const uint32_t rightPush = 10; + + // Axes (not the slashy kind) + + const uint32_t leftX = 0; + const uint32_t leftY = 1; + + const uint32_t rightX = 4; + const uint32_t rightY = 5; + + const uint32_t LT = 2; + const uint32_t RT = 3; + const uint32_t dpadX = 6; +}; + +#endif diff --git a/Hindsight/src/main/deploy/example.txt b/Hindsight/src/main/deploy/example.txt new file mode 100644 index 0000000..6dadf47 --- /dev/null +++ b/Hindsight/src/main/deploy/example.txt @@ -0,0 +1,4 @@ +Files placed in this directory will be deployed to the RoboRIO into the +'deploy' directory in the home folder. Use the 'frc::filesystem::GetDeployDirectory' +function from the 'frc/Filesystem.h' header to get a proper path relative to the deploy +directory. \ No newline at end of file diff --git a/Hindsight/src/test/cpp/main.cpp b/Hindsight/src/test/cpp/main.cpp new file mode 100644 index 0000000..0a4a94d --- /dev/null +++ b/Hindsight/src/test/cpp/main.cpp @@ -0,0 +1,10 @@ +#include + +#include "gtest/gtest.h" + +int main(int argc, char **argv) { + HAL_Initialize(500, 0); + ::testing::InitGoogleTest(&argc, argv); + int ret = RUN_ALL_TESTS(); + return ret; +} diff --git a/Hindsight/vendordeps/WPILibOldCommands.json b/Hindsight/vendordeps/WPILibOldCommands.json new file mode 100644 index 0000000..f9fbc4d --- /dev/null +++ b/Hindsight/vendordeps/WPILibOldCommands.json @@ -0,0 +1,37 @@ +{ + "fileName": "WPILibOldCommands.json", + "name": "WPILib-Old-Commands", + "version": "2020.0.0", + "uuid": "b066afc2-5c18-43c4-b758-43381fcb275e", + "mavenUrls": [], + "jsonUrl": "", + "javaDependencies": [ + { + "groupId": "edu.wpi.first.wpilibOldCommands", + "artifactId": "wpilibOldCommands-java", + "version": "wpilib" + } + ], + "jniDependencies": [], + "cppDependencies": [ + { + "groupId": "edu.wpi.first.wpilibOldCommands", + "artifactId": "wpilibOldCommands-cpp", + "version": "wpilib", + "libName": "wpilibOldCommands", + "headerClassifier": "headers", + "sourcesClassifier": "sources", + "sharedLibrary": true, + "skipInvalidPlatforms": true, + "binaryPlatforms": [ + "linuxathena", + "linuxraspbian", + "linuxaarch64bionic", + "windowsx86-64", + "windowsx86", + "linuxx86-64", + "osxx86-64" + ] + } + ] +} diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..32e8103 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,31 @@ +#!/usr/bin/env groovy +// Declarative // +pipeline { + agent any + + stages { + stage ('Build') { + steps { + sh 'cd Hindsight && ./gradlew build' + archiveArtifacts artifacts: 'Hindsight/build/exe/frcUserProgram/debug/frcUserProgram' + } + } + + stage('Test') { + steps { + echo 'Make some tests, please!' + + /* + script { + try { + // do tests + } + catch (ex) { + currentBuild.result = 'UNSTABLE' + } + } + */ + } + } + } +} diff --git a/README.md b/README.md index 24fac75..e9b585a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ +[Travis CI Project](https://travis-ci.com/Team2550/Robot-Code/branches): ![Build Status](https://travis-ci.com/Team2550/Robot-Code.svg?branch=testbed) + +[Jenkins Project](https://computerthings.net/jenkins/job/Robot-Code/) (master: [![Build Status](https://computerthings.net/jenkins/buildStatus/icon?job=Robot-Code/master)](https://computerthings.net/jenkins/job/Robot-Code/job/master/)) + # Robot-Code -This is the code for the 2019 season and on. +This is the code for the 2020 season. +