From 9dad93f8aec9a21d30b592c6e807a343f15a7504 Mon Sep 17 00:00:00 2001 From: Matthewacon Date: Mon, 15 Feb 2016 22:31:42 -0500 Subject: [PATCH 1/3] Intermediary commit... Lots O' Changes - Intemediary commit for version 1.0 of the OI class as a universal library - Fixing various repository issues --- .gitignore | 8 +- Raider/.classpath | 2 +- Raider/.settings/org.eclipse.jdt.core.prefs | 13 +- .../org/usfirst/frc/team4716/robot/OI.java | 644 +++++++++++++++++- 4 files changed, 638 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index f744fec..640d7be 100644 --- a/.gitignore +++ b/.gitignore @@ -25,15 +25,17 @@ gradle-app.setting # Eclipse *.pydevproject .metadata -bin/ tmp/ *.tmp *.bak *.swp *~.nib local.properties -.settings/ -.loadpath +//For now, since the two repos are improperly jammed into one, use regex matching to get rid of the excess Eclipse folders in the repo. Once the repos have been seperated, remove the "*" regex matcher. +*.settings/ +*.loadpath +*target/ +*bin/ # Eclipse Core .project diff --git a/Raider/.classpath b/Raider/.classpath index e985479..a4dfbf8 100644 --- a/Raider/.classpath +++ b/Raider/.classpath @@ -12,7 +12,7 @@ - + diff --git a/Raider/.settings/org.eclipse.jdt.core.prefs b/Raider/.settings/org.eclipse.jdt.core.prefs index 8626026..df46a9a 100644 --- a/Raider/.settings/org.eclipse.jdt.core.prefs +++ b/Raider/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,12 @@ eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Raider/src/org/usfirst/frc/team4716/robot/OI.java b/Raider/src/org/usfirst/frc/team4716/robot/OI.java index 18039bc..5453eec 100644 --- a/Raider/src/org/usfirst/frc/team4716/robot/OI.java +++ b/Raider/src/org/usfirst/frc/team4716/robot/OI.java @@ -1,40 +1,640 @@ package org.usfirst.frc.team4716.robot; +import java.io.PrintWriter; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.BiConsumer; +import org.junit.runners.model.InitializationError; + +import edu.wpi.first.wpilibj.DriverStation; import edu.wpi.first.wpilibj.Joystick; import edu.wpi.first.wpilibj.buttons.JoystickButton; /** * This class is the glue that binds the controls on the physical operator - * interface to the commands and command groups that allow control of the robot. + * interface to the commands and command groups that allow control of the robot. -- Alessio + * ###EVERYTHING PAST THIS POINT IS CURTSY OF MATTHEW### + * TODO: + * - Replace the joysticks with a LinkedHashMap of the joystick and it's respective controller + * enum. + * + * - Add methods for assigning functions to buttons + * + * - Add methods for getting and overriding the type of controller. + * + * - Add methods for automatic checking if controller states: + * - Make sure that, at most, one controller is mapped to JoystickAuthority.DRIVE_STICK + * or JoystickAuthority.OPERATOR_STICK or both. + * + * - Add compatibility for Xbox and possibly PS3/4 controllers. + * + * - Implement the use of the ControllerTypes enum. + * + * - ADD A SECURITY MANAGER: (Might be a custom class / set of classes) + * - Monitor the thread and make sure that no class illegally invokes feild or object + * reflection on this class or it's subclasses. + * + * Because the number of joysticks is set to a maximum limit of six in the DriverStation class, + * and the entire api for interacting with and detecting the joysticks and their onboard buttons + * is written in C++ with a JNI, there is no possible way to detect the true number of joysticks + * available to the host system at any given point, at least in Java. We can, however, automatically + * initialize all of the buttons on all of the possible joysticks instead allowing us for greater + * control over each individual joystick's functions and authorities (Ie. JoystickType, + * ButtonFunction) while consuming little to no extra memory, considering that the DriverStation + * class, inefficiently mind you, already automatically initializes six joystick threads as well + * as all of their hardcoded maximum twelve buttons at the robot's initialization. Eventually, the + * goal of this class will be to scope each port and search for a joystick and upon finding any + * joysticks, search their configurations for buttons and automatically map those as well, thereby + * eliminating hardcoded constants for the maximum number of joysticks as well as buttons. Oh and + * by the way, this entire class only globally uses 3 variables for extrapolation... 2 for security + * and 1 for functionality. + * + * @author Matthewacon + * @see {@linkplain edu.wpi.first.wpilibj.DriverStation}, {@linkplain edu.wpi.first.wpilibj.Joystick}, {@linkplain edu.wpi.first.wpilibj.communication.FRCNetworkCommunicationsLibrary} */ -public class OI { +@SuppressWarnings({ "serial", "unchecked", "unused", "rawtypes"}) +public abstract class OI { - Joystick driveStick = new Joystick(0); - Joystick operatorStick = new Joystick(1); - Joystick testStick = new Joystick(5); - - public OI() { - List driveButtons = new ArrayList(); - List operatorButtons = new ArrayList(); - List testButtons = new ArrayList(); - for (int x = 1; x < 9; x++) { - driveButtons.add(new JoystickButton(driveStick, x)); - operatorButtons.add(new JoystickButton(operatorStick, x)); - testButtons.add(new JoystickButton(testStick, x)); + /**Currently unused.*/ + private Boolean isConstructed = false; + + /**The security variable used to assure that operations on the global instance variable, from which + * this entire class is built around, will be able to execute safely. + */ + private Boolean isInitialized = false; + + /**The LinkedHashMap containing the HasMap of a Joystick and it's type, and an ArrayList of the buttons on the joystick.*/ + private LinkedHashMap, ArrayList> controllerMap; + + /**The enum containing the different types of acceptable controllers.*/ + static enum ControllerTypes { + Joystick, Xbox; + } + + /**The enum containing the controller states.*/ + static enum JoystickAuthority { + DRIVE_STICK(0), OPERATOR_STICK(1), TEST_STICK(2); + + /**The enum's enumeration count. This is set at the static initialization when + * the enum is defined. + */ + int enumeration; + + /**Default constructor for each enum. + */ + JoystickAuthority(int i) { + enumeration = i; + } + + /**Returns the enumeration value for the given enum of this type. + * + * @return enumeration - The enumeration count for inclass / subclass arithmetic. + */ + public Integer getEnumeration() { + return enumeration; + } + + /**There is no setter method for the enumeration variable because the + * default constructor, which sets the value of enumeration, is invoked + * both when setting and declaring the enum of this type. This method + * only exists as a place holder for a future JSON construction model + * from which the controller constants will be parsed and set. + */ + private void setEnumeration(Integer i) { + enumeration = i; + } + + /**A dynamic greedy integer comparator (Hence the "contectual"). Returns the + * value of the enumeration that is equal to the value of "i" if i is lesser + * than or equal to the value of the total number of enumerations minus one + * in this enum. If "i" is greater than the total number of enumerations, + * then it returns the closest value to "i" being the highest value in the + * enumeration array. + * + * @param i - The integer to be compared. + * @return JoystickType - The value equal to or closest to the value of "i". + * @see {@linkplain JoystickAuthority} + */ + static protected JoystickAuthority contextualStateCompatator(int i) { + for (JoystickAuthority jt : values()) { + if (jt.equals(values()[values().length-1])) { + break; + } + if (i > values().length-1 && i == jt.getEnumeration()) { + return jt; + } else if (i > values().length-1) { + break; + } + } + return values()[values().length-1]; } - - // driveButtons.get(1).whenPressed(new ExampleCommand()); } - - public double getJoyX() { - return driveStick.getX(); + + public enum JoystickAxis { + X,Y,Z; } - - public double getJoyY() { - return driveStick.getY(); + + /**The custom Exception thrown when a corrupt map has been detected. + * + * @author Matthew + * + */ + public final class CorruptMapException extends Exception { + public CorruptMapException() { + super(); + } + + public CorruptMapException(String s) { + super(s); + } + } + + /**The very first model of the automated joystick initialization, I am fairly cetrian that, because of + * Java's restrictions on anonymous classes and their scoped variables, this will not work, at all... + * TODO Test this... + */ + @Deprecated + protected void initialize_ver1() { + controllerMap = new LinkedHashMap, ArrayList>() { + /**The iterative Integer for the "for" loops that set joystick port, its enum state, + * and the buttons it has. + */ + final int i; + + /**This function removes the Final bit modifier from an input object, sets the value + * to the new given value, and replaces the Final bit modifier on the original + * Field. + * + * @param inputFinal - The final field to be modified. + * @param newValue - The new value to be set. + * + * @see {@linkplain java.util.reflect.Field} + */ + void modFinal(Field inputFinal, Object newValue) { + //Debug Loop + for (Field f : this.getClass().getDeclaredFields()) { + System.out.println("Field name:\t" + f.getName()); + System.out.println("Field modifiers:\t" + f.getModifiers()); + System.out.println("Field type:\t" + f.getType()); + } + inputFinal.setAccessible(true); + try { + Field modifiersField = Field.class.getDeclaredField("i"); + modifiersField.setAccessible(true); + modifiersField.setInt(inputFinal, inputFinal.getModifiers() & ~Modifier.FINAL); + inputFinal.set(null, newValue); + modifiersField.setInt(inputFinal, inputFinal.getModifiers() & Modifier.FINAL); + modifiersField.setAccessible(false); + inputFinal.setAccessible(false); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + /**Anonymous initializer*/ + { + /**Populating the outer LinkedHashMap with a new anonymous instantiation of a HashMap containing + * a Joystick as the key and a JoystickType as the value, and a new ArrayList of JoystickButtons + * pertaining to the Joystick being added at the iteration. + */ + try { + for (i = 0; i <= DriverStation.kJoystickPorts-1; modFinal(this.getClass().getField("i"), i+1)) { + put(new HashMap(1) { + /**Anonymous initializer*/ + { + put(new Joystick(i), JoystickAuthority.contextualStateCompatator(i)); + } + }, new ArrayList() { + /**Anonymous initializer*/ + { + HashMap joystickMap = ((HashMap)(keySet().toArray()[i])); + Joystick joystickAti = joystickMap.keySet().toArray(new Joystick[0])[joystickMap.keySet().size()-1]; + for (int k = 0; k < 12; k++) { + add(new JoystickButton(joystickAti, k)); + } + } + }); + } + } catch(Exception e) { + throw new RuntimeException(e); + } + } + }; + } + + /**The second Joystick initialization model. When called, this will create the maximum number of + * Joysticks available to the host controller, assign them a JoystickType state, and map the + * maximum number of buttons for each Joystick. All of these values will be configurable via + * public methods in the superclass of this method. This method can only be run once, at the + * construction of its superclass, OI. + * + * @see {@linkplain OI}, {@linkplain Joystick}, {@linkplain JoystickAuthority}, {@linkplain JoystickButton}, {@linkplain java.util.Map}, {@linkplain ArrayList} + */ + protected void initialize_ver2() throws InitializationError { + /**I can't remember where I saw the constant for the maximum number of Joystick buttons, but + * I know that it was 12... So until I find it, this will be used as the constant. + */ + final Integer maxJoystickButtons = 12; + + /**The HashMap containing the maximum number of Joystick instances allowed by the DriverStation + * as well as each Joystick's controller state. Defined as final to allow for use in anonymous + * extensions of other types. + */ + final HashMap joystickMap = new HashMap() { + { + for (int i = 0; i < DriverStation.kJoystickPorts; i++) { + put(new Joystick(i), JoystickAuthority.contextualStateCompatator(i)); + } + } + }; + + final ArrayList joystickButtonMap = new ArrayList() { + { + for (Joystick js : joystickMap.keySet().toArray(new Joystick[0])) { + for (int j = 0; j < maxJoystickButtons; j++) { + add(new JoystickButton(js, j)); + } + } + } + }; + + controllerMap = new LinkedHashMap, ArrayList>() { + /**The number of times that 12 positions, in the joystickButtonMap ArrayList, have + * been iterated over. + */ + Integer joystickButtonSet = 0; + { + if ((joystickButtonMap.size())%12 != 0) { + throw new InitializationError("The LinkedHashMap containing the Joystick, it's controller state, and it's buttons" + + " has become corrupt. Initialization cannot continue."); + } + for (int k = 0; k < joystickMap.keySet().size()-1; k++) { + for (final Joystick js : joystickMap.keySet()) { + put(new HashMap() { + { + put(js, joystickMap.get(js)); + } + }, new ArrayList() { + { + for (int l = 0; l < 12; l++) { + add(joystickButtonMap.get(l+(12*new ArrayList(joystickMap.keySet()).indexOf(js)))); + } + } + }); + } + } + } + }; + } + + /**Default constructor. Because this OI class is an abstract class, this constructor will be invoked + * when the subclass extending or implementing it is constructed. + * + * @throws InstantiationException - Throws an InstantiationException if the Joystick initialization fails, with the cause specified by the initializer method. + * @see {@linkplain OI#initialize_ver2()} + */ + public OI() throws Throwable { //InstantiationException + try { + initialize_ver2(); + } catch(InitializationError ie) { + throw new InstantiationException().initCause(ie); + } + isInitialized = true; + } + + protected void stabilityChecker() throws InitializationError, CorruptMapException { + /**The StackTraceElement[] containing the stack trace for the current thread. + * Used for error detection during initialization or OI method invocation. + */ + final StackTraceElement[] stea = Thread.currentThread().getStackTrace(); + + /**Initialization check.*/ + if (!isInitialized()) { + LinkedList unInitialized = new LinkedList() { + { + /**The NPE thrown if the pointer, containing the instance of OI that + * a method was improperly invoked on, has changed to a null pointer + * or malformed instance of OI. + */ + add(new NullPointerException("The LinkedHashMap 'controllerMap' has not yet been initialized.: " + controllerMap.toString())); + add(new Throwable("The method '" + (stea[stea.length-3]).getMethodName() + "' in '" + (stea[stea.length-3]).getClassName() + "' tried to invoke the " + + OI.class + " " + (stea[stea.length-2]).getMethodName() + " on an uninitialized instance of " + OI.class + ".")); + } + }; + throw new InitializationError(unInitialized); + } + + /**Checking the keySet hashmap in the controllerMap*/ + //TODO Replace labeled for breaks and conditional throw with descriptive exceptions thrown if the broken condition is met in the inner for loops. + Boolean mapCorrupt = null; + controllerMapkeySet: + for (HashMap hjjt : controllerMap.keySet()) { + /**Checking the keySet of the hashmap*/ + joystickkeySet: + for (Joystick j : hjjt.keySet()) { + if (!(j instanceof Joystick) || (j.equals(null))) { + mapCorrupt = true; + break controllerMapkeySet; + } else if (j.equals(hjjt.keySet().toArray(new Joystick[0])[hjjt.keySet().size()-1])) { + mapCorrupt = false; + break joystickkeySet; + } + } + /**Checking the value set of the hashmap*/ + joystickTypekeySet: + for (JoystickAuthority jt : hjjt.values()) { + if (!(jt instanceof JoystickAuthority) || jt.equals(null)) { + mapCorrupt = true; + break controllerMapkeySet; + } else if (jt.equals(hjjt.values().toArray(new JoystickAuthority[0])[hjjt.values().size()-1])) { + mapCorrupt = false; + break joystickTypekeySet; + } + } + } + + /**Checking the value set ArrayList in teh controllerMap*/ + controllerMapValueSet: + for (ArrayList aljb : controllerMap.values()) { + joystickButtonArrayList: + for (JoystickButton jb : aljb) { + if (!(jb instanceof JoystickButton) || jb.equals(null)) { + mapCorrupt = true; + break controllerMapValueSet; + } else if (jb.equals(aljb.get(aljb.size()-1))) { + mapCorrupt = false; + break controllerMapValueSet; + } + } + } + + /**Condition to throw an exception if the map is corrupt.*/ + if (mapCorrupt) { + throw new CorruptMapException("The controllerMap in " + OI.class + " is corrupt, and therefore the safe operation of the " + OI.class + " cannot continue."); + } + } + + /** + * + * @return + */ + public Boolean isInitialized() { + return isInitialized; + } + + /** + * + * @param oi + * @return + */ + public static Boolean isInitialized(OI oi) { + return oi.isInitialized(); + } + /** + * + * @param j + * @param a + * @return + */ + public Double getJoyPos(Joystick j, JoystickAxis a) { + for (Joystick jstks : getJoysticks()) { + if (getJoysticks().indexOf(jstks) == getJoysticks().size()-1 && !j.equals(jstks)) { + /**Non fatal IllegalArgumentException printed to console. + */ + new IllegalArgumentException("The given Joystick '" + j.getName() + "' is not initialized on the current controller system.").printStackTrace(); + return null; + } else if (j.equals(jstks)) { + break; + } + } + return (a.equals(JoystickAxis.X)) ? (j.getX()) : ((a.equals(JoystickAxis.Y)) ? (j.getY()) : (j.getZ())); + } + + /** + * + * @param jst + * @param a + * @return + */ + public List getJoyPos(final JoystickAuthority jst, final JoystickAxis a) { + LinkedList axisList = new LinkedList() { + { + getJoysticksAndAuthorities().forEach((Joystick k, JoystickAuthority v) -> { + if (jst.equals(v)) { + add(getJoyPos(k,a)); + } + }); + } + }; + return axisList; + } + + /**Returns the X coordinate for a given Joystick. + * + * @param j - A Joystick initialized and mapped in the instance of OI that this method was invoked on. + * @return A Double representing the X coordinate of the given Joystick. + */ + public Double getJoyX(Joystick j) { + return getJoyPos(j, JoystickAxis.X); + } + + /**Returns the X coordinate for the Joystick paired with the given JoystickAuthority. If more than one + * Joystick matches that authority, then a list of Joystick X coordinates will be returned in the order + * that the Joystick pairs set in the HashMap Map. + * + * @param jst - The JoystickAuthority corresponding to the Joystick X coordinate to be returned. + * @return A List of Doubles containing the X coordinates of the Joysticks matching the given JoystickAuthority. + * + * @see {@linkplain OI#getJoysticksAndAuthorities()}, {@linkplain Joystick}, {@linkplain JoystickAuthority} + */ + public List getJoyX(JoystickAuthority jst) { + return getJoyPos(jst, JoystickAxis.X); + } + + /**Returns the Y coordinate for a given Joystick. + * + * @param j - A Joystick initialized and mapped in the instance of OI that this method was invoked on. + * @return A Double representing the Y coordinate of the given Joystick. + */ + public Double getJoyY(Joystick j) { + return getJoyPos(j, JoystickAxis.Y); + } + + /**Returns the Y coordinate for the Joystick paired with the given JoystickAuthority. If more than one + * Joystick matches that authority, then a list of Joystick Y coordinates will be returned in the order + * that the Joystick pairs set in the HashMap Map. + * + * @param jst - The JoystickAuthority corresponding to the Joystick Y coordinate to be returned. + * @return A List of Doubles containing the Y coordinates of the Joysticks matching the given JoystickAuthority. + * + * @see {@linkplain OI#getJoysticksAndAuthorities()}, {@linkplain Joystick}, {@linkplain JoystickAuthority} + */ + public List getJoyY(JoystickAuthority jst) { + return getJoyPos(jst, JoystickAxis.Y); + } + + /**Returns the Z coordinate for a given Joystick. + * + * @param j - A Joystick initialized and mapped in the instance of OI that this method was invoked on. + * @return A Double representing the Z coordinate of the given Joystick. + */ + public Double getJoyZ(Joystick j) { + return getJoyPos(j, JoystickAxis.Z); + } + + /**Returns the Z coordinate for the Joystick paired with the given JoystickAuthority. If more than one + * Joystick matches that authority, then a list of Joystick Z coordinates will be returned in the order + * that the Joystick pairs set in the HashMap Map. + * + * @param jst - The JoystickAuthority corresponding to the Joystick Z coordinate to be returned. + * @return A List of Doubles containing the Y coordinates of the Joysticks matching the given JoystickAuthority. + * + * @see {@linkplain OI#getJoysticksAndAuthorities()}, {@linkplain Joystick}, {@linkplain JoystickAuthority} + */ + public List getJoyZ(JoystickAuthority jst) { + return getJoyPos(jst, JoystickAxis.Z); + } + + /**Returns a Double[] (double array) of the coordinate positions of each linear grid for a given joystick. + * + * @param j - A Joystick initialized and mapped in the instance of OI that this method was invoked on. + * @return A Double[] containing the coordinate positions of the controller's roller joints, in order of the axis types in the JoystickAxis enum. + */ + public Double[] getAllJoyAxis(Joystick j) { + Double[] joystickAxisValues = new Double[JoystickAxis.values().length-1]; + for (int i = 0; i < joystickAxisValues.length; i++) { + joystickAxisValues[i] = getJoyPos(j, JoystickAxis.values()[i]); + } + return joystickAxisValues; + } + + + public List getAllJoystickAxis(JoystickAuthority jst) { + return new LinkedList() { + { + getJoysticksAndAuthorities().forEach((Joystick j, JoystickAuthority jsa) -> { + if (jst.equals(jsa)) { + add(getAllJoyAxis(j)); + } + }); + } + }; + } + + /** + * + * @param j + * @param js + */ + public void reassignJoystick(Joystick j, JoystickAuthority js) { + + } + + public void autoReassignJoystick(Joystick j, JoystickAuthority js) { + + } + + public void swapJoystickAuthorities(Joystick joya, Joystick joyb) { + + } + + public void swapJoystickAuthorities(JoystickAuthority jaa, JoystickAuthority jab) { + + } + + + + /**Returns an iterable list of Joysticks for this instance of OI. + * + * @return {@linkplain ArrayList} + * @see {@linkplain OI#getJoysticks(OI)} + */ + public ArrayList getJoysticks() { + return getJoysticks(this); + } + + /**Returns the an iterable ArrayList of Joysticks given an instance of the + * OI class. + * + * @param oi - An initialized instance of the OI class to retrieve the information from. + * @return + */ + public static ArrayList getJoysticks(final OI oi) { + return new ArrayList() { + { + for (HashMap hjjt : oi.getAllJoystickInfo().keySet()) { + add(hjjt.keySet().toArray(new Joystick[0])[0]); + } + } + }; + } + + /**Returns a LinkedHashMap of the Joystick and it's JoystickType identical to the key set + * in the controllerMap LinkedHashMap. + * + * @return A LinkedHashMap where K = Joystick and V = JoystickType + * @see {@linkplain LinekdHashMap}, {@linkplain Joystick}, {@linkplain JoystickAuthority}, {@linkplain Set} + */ + public LinkedHashMap getJoysticksAndAuthorities() { + return new LinkedHashMap() { + { + for (HashMap hjjt : controllerMap.keySet()) { + put(hjjt.keySet().toArray(new Joystick[0])[0], hjjt.values().toArray(new JoystickAuthority[0])[0]); + } + } + }; + } + + /**Returns an ArrayList containing the mapped buttons for the given Joystick. Returns null if + * the Joystick is non existent or not available to the current instance of OI. + * + * @param j - The Joystick for which the buttons should be returned. This Joystick must be an existing instance within the controllerMap in the OI class or else the method will throw a non-fatal IllegalArgumentException, and return null. + * @return An ArrayList containing the mapped buttons for a given Joystick. + * @see {@linkplain Joystick}, {@linkplain JoystickButton}, {@linkplain ArrayList} + */ + public ArrayList getJoystickButtons(Joystick j) { + return new ArrayList() { + { + for (Joystick joy : getJoysticks()) { + if (joy.equals(j)) { + getAllJoystickInfo().forEach((HashMap hm, ArrayList al) -> { + if (j.equals(hm.keySet().toArray(new Joystick[0])[0])) { + al.forEach((JoystickButton jb) -> { + add(jb); + }); + } + }); + } + } + } + }; + } + + public LinkedHashMap> getAllJoysticksAndButtons() { + return new LinkedHashMap>() { + { + getAllJoystickInfo().forEach((HashMap joyMap, ArrayList buttonList) -> { + joyMap.forEach((Joystick joy, JoystickAuthority joyAuth) -> { + + }); + }); + } + }; + } + + /** + * + * @return {@linkplain LinkedHashMap} + */ + public LinkedHashMap, ArrayList> getAllJoystickInfo() { + return controllerMap; } } From 7e60aba432b213cabb883fb09fc7afebdb6ebf94 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 16 Feb 2016 16:03:58 -0500 Subject: [PATCH 2/3] Pushed up SRC to base DIR --- Raider/README.md => INFO.md | 0 Raider/.classpath | 27 -------- Raider/.gitignore | 2 - Raider/.project | 24 ------- Raider/.settings/org.eclipse.jdt.core.prefs | 12 ---- Raider/.settings/org.eclipse.m2e.core.prefs | 4 -- Raider_Server/.classpath | 21 ------ Raider_Server/.project | 23 ------- .../.settings/org.eclipse.jdt.core.prefs | 12 ---- .../.settings/org.eclipse.m2e.core.prefs | 4 -- Raider_Server/bin/lib/json-20151123.jar | Bin 48224 -> 0 bytes Raider_Server/bin/server/FileServer.class | Bin 1467 -> 0 bytes Raider_Server/config.json | 63 ------------------ Raider_Server/pom.xml | 27 -------- Raider_Server/src/lib/json-20151123.jar | Bin 48224 -> 0 bytes Raider_Server/src/server/FileServer.class | Bin 1840 -> 0 bytes Raider_Server/src/server/FileServer.java | 55 --------------- Raider_Server/target/classes/.gitignore | 3 - .../target/classes/lib/json-20151123.jar | Bin 48224 -> 0 bytes .../target/classes/server/FileServer.class | Bin 2320 -> 0 bytes Raider_Server/test.json | 3 - Raider/build.properties => build.properties | 0 Raider/build.xml => build.xml | 0 Raider/pom.xml => pom.xml | 0 .../org/usfirst/frc/team4716/robot/OI.java | 0 .../org/usfirst/frc/team4716/robot/Robot.java | 0 .../usfirst/frc/team4716/robot/RobotMap.java | 0 .../robot/commands/Auto/DoNothing.java | 0 .../robot/commands/Bucket/FoldBucket.java | 0 .../commands/Bucket/ToggleBucketPistion.java | 0 .../commands/Bucket/TogglePistonPosition.java | 0 .../robot/commands/Bucket/UnfoldBucket.java | 0 .../team4716/robot/commands/Climber/face.java | 0 .../team4716/robot/commands/DetectObject.java | 0 .../DriveTrain/DriveForwardInches.java | 0 .../commands/DriveTrain/DriveForwardTime.java | 0 .../DriveTrain/DriveSpeedModifier.java | 0 .../commands/DriveTrain/DriveTurnDegrees.java | 0 .../commands/DriveTrain/JoystickDrive.java | 0 .../frc/team4716/robot/subsystems/Bucket.java | 0 .../team4716/robot/subsystems/Climber.java | 0 .../team4716/robot/subsystems/DriveTrain.java | 0 .../team4716/robot/utils/ConfigClient.java | 0 43 files changed, 280 deletions(-) rename Raider/README.md => INFO.md (100%) delete mode 100644 Raider/.classpath delete mode 100644 Raider/.gitignore delete mode 100644 Raider/.project delete mode 100644 Raider/.settings/org.eclipse.jdt.core.prefs delete mode 100644 Raider/.settings/org.eclipse.m2e.core.prefs delete mode 100755 Raider_Server/.classpath delete mode 100755 Raider_Server/.project delete mode 100755 Raider_Server/.settings/org.eclipse.jdt.core.prefs delete mode 100755 Raider_Server/.settings/org.eclipse.m2e.core.prefs delete mode 100755 Raider_Server/bin/lib/json-20151123.jar delete mode 100755 Raider_Server/bin/server/FileServer.class delete mode 100755 Raider_Server/config.json delete mode 100755 Raider_Server/pom.xml delete mode 100755 Raider_Server/src/lib/json-20151123.jar delete mode 100755 Raider_Server/src/server/FileServer.class delete mode 100755 Raider_Server/src/server/FileServer.java delete mode 100644 Raider_Server/target/classes/.gitignore delete mode 100644 Raider_Server/target/classes/lib/json-20151123.jar delete mode 100644 Raider_Server/target/classes/server/FileServer.class delete mode 100755 Raider_Server/test.json rename Raider/build.properties => build.properties (100%) rename Raider/build.xml => build.xml (100%) rename Raider/pom.xml => pom.xml (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/OI.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/Robot.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/RobotMap.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/Auto/DoNothing.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/Bucket/FoldBucket.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/Bucket/ToggleBucketPistion.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/Bucket/TogglePistonPosition.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/Bucket/UnfoldBucket.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/Climber/face.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/DetectObject.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardInches.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardTime.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveSpeedModifier.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveTurnDegrees.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/commands/DriveTrain/JoystickDrive.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/subsystems/Bucket.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/subsystems/Climber.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/subsystems/DriveTrain.java (100%) rename {Raider/src => src}/org/usfirst/frc/team4716/robot/utils/ConfigClient.java (100%) diff --git a/Raider/README.md b/INFO.md similarity index 100% rename from Raider/README.md rename to INFO.md diff --git a/Raider/.classpath b/Raider/.classpath deleted file mode 100644 index a4dfbf8..0000000 --- a/Raider/.classpath +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Raider/.gitignore b/Raider/.gitignore deleted file mode 100644 index 09e3bc9..0000000 --- a/Raider/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/bin/ -/target/ diff --git a/Raider/.project b/Raider/.project deleted file mode 100644 index 0daab6c..0000000 --- a/Raider/.project +++ /dev/null @@ -1,24 +0,0 @@ - - - Raider - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - org.eclipse.jdt.core.javanature - edu.wpi.first.wpilib.plugins.core.nature.FRCProjectNature - - diff --git a/Raider/.settings/org.eclipse.jdt.core.prefs b/Raider/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index df46a9a..0000000 --- a/Raider/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Raider/.settings/org.eclipse.m2e.core.prefs b/Raider/.settings/org.eclipse.m2e.core.prefs deleted file mode 100644 index 14b697b..0000000 --- a/Raider/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/Raider_Server/.classpath b/Raider_Server/.classpath deleted file mode 100755 index d95912d..0000000 --- a/Raider_Server/.classpath +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/Raider_Server/.project b/Raider_Server/.project deleted file mode 100755 index daceb11..0000000 --- a/Raider_Server/.project +++ /dev/null @@ -1,23 +0,0 @@ - - - Raider_Server - - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.m2e.core.maven2Nature - org.eclipse.jdt.core.javanature - - diff --git a/Raider_Server/.settings/org.eclipse.jdt.core.prefs b/Raider_Server/.settings/org.eclipse.jdt.core.prefs deleted file mode 100755 index df46a9a..0000000 --- a/Raider_Server/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,12 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.8 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.8 diff --git a/Raider_Server/.settings/org.eclipse.m2e.core.prefs b/Raider_Server/.settings/org.eclipse.m2e.core.prefs deleted file mode 100755 index 14b697b..0000000 --- a/Raider_Server/.settings/org.eclipse.m2e.core.prefs +++ /dev/null @@ -1,4 +0,0 @@ -activeProfiles= -eclipse.preferences.version=1 -resolveWorkspaceProjects=true -version=1 diff --git a/Raider_Server/bin/lib/json-20151123.jar b/Raider_Server/bin/lib/json-20151123.jar deleted file mode 100755 index 472b253051df5ee5c3aac9c34a575aaf40fc70c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48224 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 diff --git a/Raider_Server/bin/server/FileServer.class b/Raider_Server/bin/server/FileServer.class deleted file mode 100755 index d947bd8dce4171a768a9bc3d4e750aea179150fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1467 zcmZ`(T~`xV6x}xjZZZrNqWHzv*!mF^h+5jxhH49njRt~7<6`-A2{$-6naP@&xai;L zd!K!6`v6^Kt^R=i9Djhi?<8t8^yQxWab}-=_Bm(%d-Kn~02Wb`NC}KZI((_a!kX*p zYO<9`3ykimm#W|?f45NC-qZD1U})L(-T0QkKz_C+kX{XTw1oj=Z46>a;6&N=^+vn7 zt;5G^+tUKMa!^-ZO@*#GcQ4cNb2kz=S?&v5BxqB)zQF1Hv+_p*)i`wh-QsL5gE4{O zdf+$Q-G#j<@GTI?#wm>R(@?7&fy?=0zU;rEzY2E^k7FVUNQ2I}CWk&E8B7R3VoKo5 z=Z`CG*W1ydg-K*39D#|%!wm{6?M6d~dZ*;K+A*QEYD#?h9)b?00zHowF5se(_L9K( zaY@xI%;1Xg$P1k9dJv}vgPIwqt45-0N#RO{*}RPf6j)K!YH6RMP3Bi;`||9jQZxuR zY}_;mS$2i%nQ9uGMH}DXTY*d*bZR7UD&G&3AS~JV-gL=e-3ua}MG-$rEPv8y)nB7n zH*MU)ZE_9T?78s{D`vIH9_Y$e%;0B%$`jx4aN@ve>97%mO{Y|G0`67p27Y91dRj%= zX{s06iP|AOpKHf8>N^ce?f9z6bL7;6Fl2*USjAn5J8X&fCF_Z4W6cyowhRr=m-wZ} zuT;6aU)L=YmSPz24Pvv!V!h8KQqi`+x&PIdnk1|QraokQOtWx0QhL8vlAf@99I3{t z{$gFVk~x#8eyVLULjqPcXoq!edW{onOlRm9OwQ~$3eTSdxRMrzxJsT1v}}0{UOhzS zPi|7MxSD6P4s*3T4zwdYW$^`0@Wy<6n>Ix&bEAKAoIZYTCD+*mz(AbtxY3^B$$+25 zIj)u&@GjVEvP$!HEqA_rgvqT#Os^kdX6pzSwn*-)LtNf?g^{`W1I+$*fVrpKT>t&; z>$wAbUFQC~SFqRr!VkHh4zP0V526lWiOqPA)}(Zk34r7WFv_%YIFB(*;3THWAx~Q% zyG8O_BDZC-yTdUs+!x7 - 4.0.0 - Raider_Server - Raider_Server - 0.0.1-SNAPSHOT - - src - - - src - - **/*.java - - - - - - maven-compiler-plugin - 3.3 - - 1.8 - 1.8 - - - - - \ No newline at end of file diff --git a/Raider_Server/src/lib/json-20151123.jar b/Raider_Server/src/lib/json-20151123.jar deleted file mode 100755 index 472b253051df5ee5c3aac9c34a575aaf40fc70c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48224 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 diff --git a/Raider_Server/src/server/FileServer.class b/Raider_Server/src/server/FileServer.class deleted file mode 100755 index 3f015be2ceeabc5606e39043611f20fc225c89b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1840 zcmZuy>sA|O6x{=X3B$CIaKE)ftr%{hMQdAuYJsBBK&Vh?tcpYOB@84p>CA+-`VRi^ z0sPC~7F|$fEg!&NzKJj3D(-J4lxVxM)^|DAefD?GXqOr0}_vd?6+2D3(>MXvknyLp$!v<;y76rp&Vv7wMtwpgi_w}rcIZkH&DlugT4 z(4BbnW)$goVa+#ld&_1euxI@Wbk8?kf6Ei@zHk{Kks93~Aqup6PjjN;TaN8f>|O>S#JvZO3j$0)`Ww6gw!RZQ-Bj;-ScKGg9Z z5<0G9T0zG-Bd;;($V>pk}WPz@Knb$d|!t)m3hsUg3JS3wus?7Mn$*<$1NMFjN$NX22ZT5mW1gEqipU8 z!>hWq+!2N)0T~4XFl@8TyJzGa*A+Q7YK_$ZUP!)z_VZdZ+q;2TohU4yJy4N62Cca6 znmKkwz0otz7c9S#B=UX3<~rj(%(=NZg8!x;?o>o>wrBTeO) z@f6{igUEH9w;}HAT{MjyLwOMxPH=4wgc@2fiDb?6A@>IAdg2W)(fA7@vDV*SqUiw9 z^!O3f7gR@a5ivS9KnCgO32371J;6YhOb#AnXoWZ~{fzbr?w5Z$g0XpU`ZsY6rzyB{0G+jH z@vE}1=ZxBjTbLn&5N{H#%$uNejHhw_$4nAolGv^h(RJG1p!GCniExpqB%KB#uP~tE arixoCZg-s0vmv 0){ - sb.append((char)input.read()); - } - text = sb.toString(); - input.close(); - } catch (IOException ex){ - System.out.println("Unable to perform IO operations\n" - + "Please make sure the input file name is correct"); - } - return text; - } -} \ No newline at end of file diff --git a/Raider_Server/target/classes/.gitignore b/Raider_Server/target/classes/.gitignore deleted file mode 100644 index df06425..0000000 --- a/Raider_Server/target/classes/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/lib/ -/server/ -/META-INF/ diff --git a/Raider_Server/target/classes/lib/json-20151123.jar b/Raider_Server/target/classes/lib/json-20151123.jar deleted file mode 100644 index 472b253051df5ee5c3aac9c34a575aaf40fc70c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48224 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 diff --git a/Raider_Server/target/classes/server/FileServer.class b/Raider_Server/target/classes/server/FileServer.class deleted file mode 100644 index 2e2e2aad85b78bd13627b54eb8b445f4ef44ca56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2320 zcmZuyTUQfT6#gazCK<*HQ9!(Pv{eHFQHrfL)GBysYyfKnOKoe1zp!{;vTcg_R|;$o3=+k2mHf8RcP{(1WNF93u1RYy!iTOj;9 z!p~fC%A%mAI^r63&f9nFOxbp4Gvm|qq8Mt>i=G<_m$OuUPIy*B zQ@VRnLwv+52?I@NHK8M+VMpF^#aOK}E&S{DbXmwSUePX3+P)*#_04!V=L8yd<+tGC z9r23oxEearH@70_o-{x|6T8u_!3;v%4{t?5=$OvQ^G*h8xg{1+FCq8d7$Yhtg0 zS!F(9A+(DN*L}N4m~q>mm55$&rv{A%?G0eo!x8N^6=l?})>AXq4+9;C>8DV*BFsd@ z7rf$v2n`&eGu3g1tFymXF~9oCWMi`z93gw~wxmdY%m1m4t;47t@mA9${m^DPtSaGn}4 zrILoDFG8~wV3M9ACYsTr${wKN)J)uw z5t3|cPFeOF8E4VNJ$#}e5qgn}hTUr_Hw01-{m z*+c^4YFXHUuqyU~u!5RT%Q;~=k{WA;X1I2p6|1*>iDvuKy%~kErOt={TR)u ze<&8Ie=MLfU0dqCE)6wrRu^eFu+HTR#GzeGEH>6a!?jr*KW*+es=sS63SP}G3aKR@ zha94&)i29{?SSI&t3uTB*>M)+aJ zQ20AkE^X*S2R}v!iT5ax4sdpcSkDvM6*4`B!?=b$Dzlyl9NxneVs~ z_>k!g(5o9C@gA8i_4p5MI-?k}vC>i!{DhjxBrm0IZ=btXYBo#+epGjW+VALj@MiyUe%I+9f-Dt&e=GMd9 zdYM-r(i}7V8^j6voFwi6cEM9ByFub2Dtx6XstF_bT9r&I{l3As%x)j~`3~PR@(^?T n0Y7q2=4m1R6bE(O*J0}@C7-c2VrqFGnvO4IUH(kF7=HO5t%o3v diff --git a/Raider_Server/test.json b/Raider_Server/test.json deleted file mode 100755 index 720bf72..0000000 --- a/Raider_Server/test.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "speed": 0.7 -} \ No newline at end of file diff --git a/Raider/build.properties b/build.properties similarity index 100% rename from Raider/build.properties rename to build.properties diff --git a/Raider/build.xml b/build.xml similarity index 100% rename from Raider/build.xml rename to build.xml diff --git a/Raider/pom.xml b/pom.xml similarity index 100% rename from Raider/pom.xml rename to pom.xml diff --git a/Raider/src/org/usfirst/frc/team4716/robot/OI.java b/src/org/usfirst/frc/team4716/robot/OI.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/OI.java rename to src/org/usfirst/frc/team4716/robot/OI.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/Robot.java b/src/org/usfirst/frc/team4716/robot/Robot.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/Robot.java rename to src/org/usfirst/frc/team4716/robot/Robot.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/RobotMap.java b/src/org/usfirst/frc/team4716/robot/RobotMap.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/RobotMap.java rename to src/org/usfirst/frc/team4716/robot/RobotMap.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/Auto/DoNothing.java b/src/org/usfirst/frc/team4716/robot/commands/Auto/DoNothing.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/Auto/DoNothing.java rename to src/org/usfirst/frc/team4716/robot/commands/Auto/DoNothing.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/FoldBucket.java b/src/org/usfirst/frc/team4716/robot/commands/Bucket/FoldBucket.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/FoldBucket.java rename to src/org/usfirst/frc/team4716/robot/commands/Bucket/FoldBucket.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/ToggleBucketPistion.java b/src/org/usfirst/frc/team4716/robot/commands/Bucket/ToggleBucketPistion.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/ToggleBucketPistion.java rename to src/org/usfirst/frc/team4716/robot/commands/Bucket/ToggleBucketPistion.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/TogglePistonPosition.java b/src/org/usfirst/frc/team4716/robot/commands/Bucket/TogglePistonPosition.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/TogglePistonPosition.java rename to src/org/usfirst/frc/team4716/robot/commands/Bucket/TogglePistonPosition.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/UnfoldBucket.java b/src/org/usfirst/frc/team4716/robot/commands/Bucket/UnfoldBucket.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/Bucket/UnfoldBucket.java rename to src/org/usfirst/frc/team4716/robot/commands/Bucket/UnfoldBucket.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/Climber/face.java b/src/org/usfirst/frc/team4716/robot/commands/Climber/face.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/Climber/face.java rename to src/org/usfirst/frc/team4716/robot/commands/Climber/face.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/DetectObject.java b/src/org/usfirst/frc/team4716/robot/commands/DetectObject.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/DetectObject.java rename to src/org/usfirst/frc/team4716/robot/commands/DetectObject.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardInches.java b/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardInches.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardInches.java rename to src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardInches.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardTime.java b/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardTime.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardTime.java rename to src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveForwardTime.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveSpeedModifier.java b/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveSpeedModifier.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveSpeedModifier.java rename to src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveSpeedModifier.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveTurnDegrees.java b/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveTurnDegrees.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveTurnDegrees.java rename to src/org/usfirst/frc/team4716/robot/commands/DriveTrain/DriveTurnDegrees.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/JoystickDrive.java b/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/JoystickDrive.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/commands/DriveTrain/JoystickDrive.java rename to src/org/usfirst/frc/team4716/robot/commands/DriveTrain/JoystickDrive.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/subsystems/Bucket.java b/src/org/usfirst/frc/team4716/robot/subsystems/Bucket.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/subsystems/Bucket.java rename to src/org/usfirst/frc/team4716/robot/subsystems/Bucket.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/subsystems/Climber.java b/src/org/usfirst/frc/team4716/robot/subsystems/Climber.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/subsystems/Climber.java rename to src/org/usfirst/frc/team4716/robot/subsystems/Climber.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team4716/robot/subsystems/DriveTrain.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/subsystems/DriveTrain.java rename to src/org/usfirst/frc/team4716/robot/subsystems/DriveTrain.java diff --git a/Raider/src/org/usfirst/frc/team4716/robot/utils/ConfigClient.java b/src/org/usfirst/frc/team4716/robot/utils/ConfigClient.java similarity index 100% rename from Raider/src/org/usfirst/frc/team4716/robot/utils/ConfigClient.java rename to src/org/usfirst/frc/team4716/robot/utils/ConfigClient.java From f0eb3425e0eb792107054cd9e0afa40e1f55de8e Mon Sep 17 00:00:00 2001 From: Matthewacon Date: Tue, 16 Feb 2016 22:47:05 -0500 Subject: [PATCH 3/3] Continued work on documentation --- src/org/usfirst/frc/team4716/robot/OI.java | 27 ++++++++++++++++------ 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/org/usfirst/frc/team4716/robot/OI.java b/src/org/usfirst/frc/team4716/robot/OI.java index 5453eec..8dd9f6a 100644 --- a/src/org/usfirst/frc/team4716/robot/OI.java +++ b/src/org/usfirst/frc/team4716/robot/OI.java @@ -309,6 +309,12 @@ public OI() throws Throwable { //InstantiationException isInitialized = true; } + /**This method checks the stability and reliability of the controllerMap. It is invoked whenever a method involving + * variable reads, modifications or deletions from this class is invoked. + * + * @throws InitializationError - Thrown when the stabilityChecker has detected that either the class is unitialized, or not properly constructed. + * @throws CorruptMapException - Thrown when the stabilityChecker has concluded that the map is corrupt due to misplaces / misconfigured values. + */ protected void stabilityChecker() throws InitializationError, CorruptMapException { /**The StackTraceElement[] containing the stack trace for the current thread. * Used for error detection during initialization or OI method invocation. @@ -381,23 +387,25 @@ protected void stabilityChecker() throws InitializationError, CorruptMapExceptio } } - /** + /**The getter method for the {@link OI#isInitialized} Boolean. * - * @return + * @return - The boolean value that the {@link OI#isInitialized} variable currently holds. + * @see {@linkplain Boolean}, {@linkplain OI#isInitialized} */ public Boolean isInitialized() { return isInitialized; } - /** + /**The static getter method for the {@link OI#isInitialized} Boolean. * - * @param oi - * @return + * @return - The boolean value that the {@link OI#isInitialized} variable holds for a given instance of {@linkplain OI}. + * @see {@linkplain Boolean}, {@linkplain OI#isInitialized()}, {@linkplain OI#isInitialized} */ public static Boolean isInitialized(OI oi) { return oi.isInitialized(); } - /** + + /**Returns the Double representing the value of a * * @param j * @param a @@ -622,7 +630,12 @@ public LinkedHashMap> getAllJoysticksAndButt { getAllJoystickInfo().forEach((HashMap joyMap, ArrayList buttonList) -> { joyMap.forEach((Joystick joy, JoystickAuthority joyAuth) -> { - + /**So the buttonList and joyAuth variables in this case are redundant as there is already a method implemented for returning the value + * of the ArrayList of JoystickButtons mapped to a Joystick... However, for stack efficiency, in the future, this method should be + * redone to only use the available variables within this scope to retrieve the joystick buttons. + * + */ + put(joy, getJoystickButtons(joy)); }); }); }