diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..a6b0d8b
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+Robot Soccer
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..96cc43e
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
new file mode 100644
index 0000000..e7bedf3
--- /dev/null
+++ b/.idea/copyright/profiles_settings.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/gradle_wrapper.xml b/.idea/libraries/gradle_wrapper.xml
new file mode 100644
index 0000000..0796d76
--- /dev/null
+++ b/.idea/libraries/gradle_wrapper.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/libs.xml b/.idea/libraries/libs.xml
new file mode 100644
index 0000000..a4b6672
--- /dev/null
+++ b/.idea/libraries/libs.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..c6d8fb7
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..f52f71f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..331b74e
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,546 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1446741872010
+
+ 1446741872010
+
+
+ 1446742302470
+
+
+ 1446742302470
+
+
+ 1446742330088
+
+
+ 1446742330088
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ file://$PROJECT_DIR$/src/org/sharp/frc/team3260/RobotSoccer/Robot.java
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+ WPILIB
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+ Robot Soccer
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Robot Soccer.iml b/Robot Soccer.iml
new file mode 100644
index 0000000..39edfec
--- /dev/null
+++ b/Robot Soccer.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RobotSoccer.iml b/RobotSoccer.iml
new file mode 100644
index 0000000..04f1964
--- /dev/null
+++ b/RobotSoccer.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RobotSoccer.ipr b/RobotSoccer.ipr
new file mode 100644
index 0000000..2ceedc8
--- /dev/null
+++ b/RobotSoccer.ipr
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.6
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/RobotSoccer.iws b/RobotSoccer.iws
new file mode 100644
index 0000000..d0a6c7e
--- /dev/null
+++ b/RobotSoccer.iws
@@ -0,0 +1,1421 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ localhost
+ 5050
+
+
+
+
+
+
+
+
+
+ 1423701405445
+
+ 1423701405445
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1425511896347
+
+
+ 1425511896347
+
+
+ 1425557105692
+
+
+ 1425557105692
+
+
+ 1425557282477
+
+
+ 1425557282477
+
+
+ 1425750790395
+
+
+ 1425750790395
+
+
+ 1426805531600
+
+
+ 1426805531600
+
+
+ 1426808970995
+
+
+ 1426808970995
+
+
+ 1426815377470
+
+
+ 1426815377470
+
+
+ 1426895410457
+
+
+ 1426895410457
+
+
+ 1426953365790
+
+
+ 1426953365790
+
+
+ 1426959066335
+
+
+ 1426959066335
+
+
+ 1427038451016
+
+
+ 1427038451016
+
+
+ 1427046993338
+
+
+ 1427046993338
+
+
+ 1427047349314
+
+
+ 1427047349314
+
+
+ 1427047373275
+
+
+ 1427047373275
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+ RecycleRush
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..8710dad
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,50 @@
+buildscript {
+ repositories {
+ flatDir name: 'libs', dirs: 'gradle/libs'
+ }
+
+ dependencies {
+ classpath group: 'jaci.openrio.gradle', name: 'GradleRIO', version: '1.1.6'
+ }
+}
+
+repositories {
+ mavenCentral()
+}
+
+apply plugin: "GradleRIO" //Apply the GradleRIO plugin
+apply plugin: 'java'
+apply plugin: 'idea'
+apply plugin: 'eclipse'
+
+dependencies {
+ compile files('gradle/libs/commons-csv-1.1.jar')
+ compile files('gradle/libs/json-simple-1.1.1.jar')
+}
+
+sourceSets.main.java.srcDirs = ["src"]
+
+gradlerio.robotClass = "org.sharp.frc.team3260.RobotSoccer.Robot" //The class for the main Robot Class. Used in manifest
+gradlerio.team = "3260" //Your FRC team number (e.g. 5333 for team 'Can't C#', or 47 for Chief Delphi)
+gradlerio.rioIP = "10.32.60.22" //Uncomment to specify the IP address of the RIO
+
+def robotManifest = {
+ attributes 'Main-Class': 'edu.wpi.first.wpilibj.RobotBase'
+ attributes 'Robot-Class': gradlerio.robotClass
+}
+
+jar {
+ from files(sourceSets.main.output.classesDir)
+
+ from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
+ manifest robotManifest
+}
+
+task genJavadoc(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from javadoc.destinationDir
+}
+
+artifacts {
+ archives genJavadoc
+}
diff --git a/gradle/libs/GradleRIO-1.1.6-Toast.jar b/gradle/libs/GradleRIO-1.1.6-Toast.jar
new file mode 100644
index 0000000..e464ba3
Binary files /dev/null and b/gradle/libs/GradleRIO-1.1.6-Toast.jar differ
diff --git a/gradle/libs/GradleRIO-1.1.6.jar b/gradle/libs/GradleRIO-1.1.6.jar
new file mode 100644
index 0000000..dfaf9db
Binary files /dev/null and b/gradle/libs/GradleRIO-1.1.6.jar differ
diff --git a/gradle/libs/commons-csv-1.1.jar b/gradle/libs/commons-csv-1.1.jar
new file mode 100644
index 0000000..89bd547
Binary files /dev/null and b/gradle/libs/commons-csv-1.1.jar differ
diff --git a/gradle/libs/json-simple-1.1.1.jar b/gradle/libs/json-simple-1.1.1.jar
new file mode 100644
index 0000000..66347a6
Binary files /dev/null and b/gradle/libs/json-simple-1.1.1.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..c97a8bd
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..bf11ba7
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Sat Feb 28 12:16:33 EST 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..91a7e26
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+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" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..8a0b282
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@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
+
+@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=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@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 init
+
+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 init
+
+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
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+: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 %CMD_LINE_ARGS%
+
+: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/src/org/sharp/frc/team3260/RobotSoccer/OI.java b/src/org/sharp/frc/team3260/RobotSoccer/OI.java
new file mode 100644
index 0000000..cbd42e5
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/OI.java
@@ -0,0 +1,24 @@
+package org.sharp.frc.team3260.RobotSoccer;
+
+public class OI
+{
+ private static OI oi;
+
+ public OI()
+ {
+ oi = this;
+ }
+
+ public static OI getInstance()
+ {
+ if (oi == null)
+ {
+ return new OI();
+ }
+ else
+ {
+ return oi;
+ }
+ }
+
+}
diff --git a/src/org/sharp/frc/team3260/RobotSoccer/Robot.java b/src/org/sharp/frc/team3260/RobotSoccer/Robot.java
new file mode 100644
index 0000000..9c982c2
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/Robot.java
@@ -0,0 +1,63 @@
+package org.sharp.frc.team3260.RobotSoccer;
+
+
+/*For preseason soccer training!!*/
+
+import edu.wpi.first.wpilibj.DriverStation;
+import edu.wpi.first.wpilibj.IterativeRobot;
+
+public class Robot extends IterativeRobot
+{
+
+
+ private static Robot instance;
+
+ public Robot()
+ {
+ if(instance != null)
+ {
+ DriverStation.reportError("Error: Attempted to create a second instance of Robot class.", true);
+ }
+
+ instance = this;
+ }
+
+ public void robotInit()
+ {
+
+ }
+
+ public void autonomousInit()
+ {
+
+ }
+
+ public void autonomousPeriodic()
+ {
+
+ }
+
+ public void teleopInit()
+ {
+ }
+
+ public void teleopPeriodic()
+ {
+
+ }
+
+ public void disabledInit()
+ {
+
+ }
+
+ public void disabledPeriodic()
+ {
+
+ }
+
+ public static Robot getInstance()
+ {
+ return instance;
+ }
+}
diff --git a/src/org/sharp/frc/team3260/RobotSoccer/joystick/SHARPGamepad.java b/src/org/sharp/frc/team3260/RobotSoccer/joystick/SHARPGamepad.java
new file mode 100644
index 0000000..c7a35e8
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/joystick/SHARPGamepad.java
@@ -0,0 +1,23 @@
+package org.sharp.frc.team3260.RobotSoccer.joystick;
+
+import edu.wpi.first.wpilibj.Joystick;
+
+public class SHARPGamepad extends Joystick
+{
+ public static final int JOYSTICK_LEFT_X = 0, JOYSTICK_LEFT_Y = 1, JOYSTICK_RIGHT_X = 4, JOYSTICK_RIGHT_Y = 5;
+
+ public static final int TRIGGER_LEFT_AXIS = 2, TRIGGER_RIGHT_AXS = 3;
+
+ public static final int BUTTON_A = 1, BUTTON_B = 2, BUTTON_X = 3, BUTTON_Y = 4;
+
+ public static final int BUTTON_LEFT_BUMPER = 5, BUTTON_RIGHT_BUMPER = 6;
+
+ public static final int BUTTON_SELECT = 7, BUTTON_START = 8;
+
+ public static final int BUTTON_LEFT_JOYSTICK = 9, BUTTON_RIGHT_JOYSTICK = 10;
+
+ public SHARPGamepad(int port)
+ {
+ super(port);
+ }
+}
diff --git a/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/AxisButton.java b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/AxisButton.java
new file mode 100644
index 0000000..50777fa
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/AxisButton.java
@@ -0,0 +1,28 @@
+package org.sharp.frc.team3260.RobotSoccer.joystick.triggers;
+
+import edu.wpi.first.wpilibj.Joystick;
+import edu.wpi.first.wpilibj.buttons.Button;
+
+public class AxisButton extends Button
+{
+ Joystick joy;
+
+ int axis;
+
+ double threshold;
+
+ public AxisButton(Joystick joy, int axis, double threshold)
+ {
+ this.joy = joy;
+
+ this.axis = axis;
+
+ this.threshold = threshold;
+ }
+
+ @Override
+ public boolean get()
+ {
+ return threshold >= Math.abs(joy.getRawAxis(axis));
+ }
+}
diff --git a/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/DoubleButton.java b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/DoubleButton.java
new file mode 100644
index 0000000..a4473cd
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/DoubleButton.java
@@ -0,0 +1,26 @@
+package org.sharp.frc.team3260.RobotSoccer.joystick.triggers;
+
+import edu.wpi.first.wpilibj.Joystick;
+import edu.wpi.first.wpilibj.buttons.Button;
+
+/**
+ * A custom button that is triggered when two buttons on a Joystick are
+ * simultaneously pressed.
+ */
+public class DoubleButton extends Button
+{
+ private Joystick joy;
+ private int button1, button2;
+
+ public DoubleButton(Joystick joy, int button1, int button2)
+ {
+ this.joy = joy;
+ this.button1 = button1;
+ this.button2 = button2;
+ }
+
+ public boolean get()
+ {
+ return joy.getRawButton(button1) && joy.getRawButton(button2);
+ }
+}
\ No newline at end of file
diff --git a/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/HatButton.java b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/HatButton.java
new file mode 100644
index 0000000..677f9b1
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/HatButton.java
@@ -0,0 +1,24 @@
+package org.sharp.frc.team3260.RobotSoccer.joystick.triggers;
+
+import edu.wpi.first.wpilibj.Joystick;
+import edu.wpi.first.wpilibj.buttons.Button;
+
+public class HatButton extends Button
+{
+ private Joystick joystick;
+
+ private int targetPos;
+
+ public HatButton(Joystick joystick, int targetPos)
+ {
+ this.joystick = joystick;
+
+ this.targetPos = targetPos;
+ }
+
+ @Override
+ public boolean get()
+ {
+ return joystick.getPOV() == targetPos;
+ }
+}
\ No newline at end of file
diff --git a/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/TalonLimitSwitchButton.java b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/TalonLimitSwitchButton.java
new file mode 100644
index 0000000..cabfc7f
--- /dev/null
+++ b/src/org/sharp/frc/team3260/RobotSoccer/joystick/triggers/TalonLimitSwitchButton.java
@@ -0,0 +1,24 @@
+package org.sharp.frc.team3260.RobotSoccer.joystick.triggers;
+
+import edu.wpi.first.wpilibj.CANTalon;
+import edu.wpi.first.wpilibj.buttons.Button;
+
+public class TalonLimitSwitchButton extends Button
+{
+ private CANTalon talon;
+
+ private boolean isForward;
+
+ public TalonLimitSwitchButton(CANTalon talon, boolean isForward)
+ {
+ this.talon = talon;
+
+ this.isForward = isForward;
+ }
+
+ @Override
+ public boolean get()
+ {
+ return isForward ? talon.isFwdLimitSwitchClosed() : talon.isRevLimitSwitchClosed();
+ }
+}