diff --git a/docs/allclasses-index.html b/docs/allclasses-index.html index 28143c16..d27a2881 100644 --- a/docs/allclasses-index.html +++ b/docs/allclasses-index.html @@ -27,7 +27,7 @@ catch(err) { } //--> -var data = {"i0":1,"i1":2,"i2":2,"i3":8,"i4":2,"i5":2,"i6":2,"i7":2,"i8":2,"i9":2,"i10":4,"i11":2,"i12":2,"i13":2,"i14":1,"i15":2,"i16":2,"i17":2,"i18":1,"i19":1,"i20":2,"i21":2,"i22":4,"i23":4,"i24":4,"i25":4,"i26":2,"i27":2,"i28":2,"i29":2,"i30":2,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":2,"i38":2,"i39":2,"i40":2,"i41":2,"i42":2,"i43":2,"i44":2,"i45":2,"i46":2,"i47":2,"i48":2,"i49":2,"i50":2,"i51":2,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2}; +var data = {"i0":1,"i1":2,"i2":2,"i3":8,"i4":2,"i5":2,"i6":2,"i7":2,"i8":2,"i9":2,"i10":4,"i11":2,"i12":2,"i13":2,"i14":1,"i15":2,"i16":2,"i17":2,"i18":1,"i19":1,"i20":2,"i21":2,"i22":4,"i23":4,"i24":4,"i25":4,"i26":2,"i27":2,"i28":2,"i29":2,"i30":2,"i31":2,"i32":2,"i33":2,"i34":2,"i35":2,"i36":2,"i37":2,"i38":2,"i39":2,"i40":2,"i41":2,"i42":2,"i43":2,"i44":2,"i45":2,"i46":2,"i47":2,"i48":2,"i49":2,"i50":2,"i51":2,"i52":2,"i53":2,"i54":2,"i55":2,"i56":2,"i57":2,"i58":2}; var tabs = {65535:["t0","All Classes"],1:["t1","Interface Summary"],2:["t2","Class Summary"],4:["t3","Enum Summary"],8:["t4","Exception Summary"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -128,8 +128,8 @@

All Classes

ButtonWrapper -
This class helps us bridge the gap between new and old code - by allowing one button class to provide a new and old button.
+
This class helps us bridge the gap between new and old code by allowing one + button class to provide a new and old button.
@@ -157,7 +157,7 @@

All Classes

Class Writer allows you to read input from an IStream into a CSV file Class Reader is an IStream that reads from CSV file - + They extend from IStream, so they also work with the existing IStream classes
@@ -171,8 +171,8 @@

All Classes

CSVIStream.Writer -
This CSVIStream writer let an IStream pass through while recording the values - of the IStream into a CSV file.
+
This CSVIStream writer let an IStream pass through while recording the + values of the IStream into a CSV file.
@@ -197,7 +197,7 @@

All Classes

FilteredIStream
Takes a Stream and a StreamFilter and makes a FilteredStream - + This could be used to automatically filter controller inputs
@@ -210,9 +210,9 @@

All Classes

FRCLogger.Loggable -
The Loggable interface should be implemented by a class that can - return a useful piece of data that can be called on demand to be written - into the log.
+
The Loggable interface should be implemented by a class that can return a + useful piece of data that can be called on demand to be written into the + log.
@@ -283,15 +283,15 @@

All Classes

Logitech.DMode -
There is a switch on the back of the controller this is for when the switch - is in the D position
+
There is a switch on the back of the controller this is for when the + switch is in the D position
Logitech.XMode -
There is a switch on the back of the controller this is for when the switch - is in the X position
+
There is a switch on the back of the controller this is for when the + switch is in the X position
@@ -302,7 +302,7 @@

All Classes

MovingAverage
Simple implementation of an Simple Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
@@ -311,7 +311,7 @@

All Classes

NetKeyboard
This class lets you send and receive keyboard information over network tables - + Every other class will interact with the network keyboards through this class
@@ -326,9 +326,9 @@

All Classes

A KeyListener that uploads all of the key strokes to a network table where they can then be received and put into the robot - + This would not be used on the robot, but should be used on the users computer - + Make an AWT window to use this listener
@@ -342,15 +342,13 @@

All Classes

NewButton -
This class will let us use the new button by - providing a lambda for it to use
+
This class will let us use the new button by providing a lambda for it to use
OldButton -
This class will let us use the old button by - providing a lambda for it to use
+
This class will let us use the old button by providing a lambda for it to use
@@ -364,7 +362,7 @@

All Classes

OrderedLowPassFilter
Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
@@ -373,7 +371,7 @@

All Classes

OrderedRollingAverage
Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
@@ -395,7 +393,7 @@

All Classes

PollingIStream
Takes an IStream and an IStreamFilter and makes a PollingIStream - + A PollingIStream calls .get() every x milliseconds instead of when the user calls get
@@ -410,10 +408,10 @@

All Classes

RateLimit
This class lets you rate limit a stream of inputs - + That means that the value can not change more than a specified amount in one update - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
@@ -422,7 +420,7 @@

All Classes

RollingAverage
Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
@@ -479,24 +477,39 @@

All Classes

+TimedRateLimit + +
This class lets you rate limit a stream of inputs + + Instead of being based on the rate that update is called, the value you give + it is based on how much it should be able to change in one second.
+ + + Vector2D
Simple coordinate class that defines many helpful functions like
- + WeightedMovingAverage
Implementation of Weighted Moving Average.
- + WPIGamepad
WPI Gamepad extends Gamepad and adds functions that makes interacting with the underlying Joystick class easy.
+ +Xbox + +
A wrapper for the XboxController class to work with the gamepad interface.
+ + diff --git a/docs/allclasses.html b/docs/allclasses.html index 07b07127..0c9d9c00 100644 --- a/docs/allclasses.html +++ b/docs/allclasses.html @@ -75,9 +75,11 @@

All Classes

  • Solve3DResult
  • StopWatch
  • TankDriveEncoder
  • +
  • TimedRateLimit
  • Vector2D
  • WeightedMovingAverage
  • WPIGamepad
  • +
  • Xbox
  • diff --git a/docs/com/stuypulse/stuylib/control/Controller.html b/docs/com/stuypulse/stuylib/control/Controller.html index 0312ea6e..f04e96d2 100644 --- a/docs/com/stuypulse/stuylib/control/Controller.html +++ b/docs/com/stuypulse/stuylib/control/Controller.html @@ -142,7 +142,7 @@

    Class Controller

    error), and then the user would use the update() functions, which work as a sort of wrapper for the controllers. No matter what controller is used, these functions will always work. - + These functions in the controller are useful for an error based system, and are automatically managed, making implementations of PID easy. @@ -222,16 +222,16 @@

    Method Summary

    double getRawVelocity() -
    Gets the velocity, which is represented as the change in error since the last - time that .update() was called
    +
    Gets the velocity, which is represented as the change in error since the + last time that .update() was called
    double getVelocity() -
    Gets the velocity from the last time that .update() was called adjusted to - velocity per second
    +
    Gets the velocity from the last time that .update() was called adjusted + to velocity per second
    @@ -253,31 +253,32 @@

    Method Summary

    Controller setErrorFilter​(IStreamFilter filter) -
    Lets you specify a filter that will be applied to all measurements that are - given to the controller.
    +
    Lets you specify a filter that will be applied to all measurements that + are given to the controller.
    Controller setOutputFilter​(IStreamFilter filter) -
    Lets you specify a filter that will be applied to all of the outputs of the - controller.
    +
    Lets you specify a filter that will be applied to all of the outputs of + the controller.
    Controller setVelocityFilter​(IStreamFilter filter) -
    Lets you specify a filter that will be applied to the velocity measurements.
    +
    Lets you specify a filter that will be applied to the velocity + measurements.
    double update​(double error) -
    Update the controller with the error from the destination that you want to - reach
    +
    Update the controller with the error from the destination that you want + to reach
    @@ -287,7 +288,7 @@

    Method Summary

    Update the controller with the measurement that was just made and the set point you would like it to approach - + This function just subtracts the two at this moment.
    @@ -342,23 +343,24 @@

    Method Detail

  • setErrorFilter

    public final Controller setErrorFilter​(IStreamFilter filter)
    -
    Lets you specify a filter that will be applied to all measurements that are - given to the controller. - - A highly recommended option is the LowPassFilter due to its ability to remove - noise, and its ability to not lag behind when there has been a gap in calls. - This will slightly degrade the performance of the controller, but it may be - necessary sometimes in order to get consistent results. - +
    Lets you specify a filter that will be applied to all measurements that + are given to the controller. + + A highly recommended option is the LowPassFilter due to its ability to + remove noise, and its ability to not lag behind when there has been a gap + in calls. This will slightly degrade the performance of the controller, + but it may be necessary sometimes in order to get consistent results. + This will change the way the controller interacts with the robot and may require more tuning to be done. - + Passing in null will disable the filter.
    Parameters:
    filter - filter to be applied to error measurements
    Returns:
    -
    reference to the controller (so you can chain the commands together)
    +
    reference to the controller (so you can chain the commands + together)
  • @@ -369,17 +371,19 @@

    setErrorFilter

  • setVelocityFilter

    public final Controller setVelocityFilter​(IStreamFilter filter)
    -
    Lets you specify a filter that will be applied to the velocity measurements. - +
    Lets you specify a filter that will be applied to the velocity + measurements. + This can be used to smooth out the otherwise noisy velocity values. - - This can negatively affect things like the D in PID if set too high and it is - recommended that you just filter the error instead.
    + + This can negatively affect things like the D in PID if set too high and + it is recommended that you just filter the error instead.
    Parameters:
    filter - filter to be applied to velocity measurements
    Returns:
    -
    reference to the controller (so you can chain the commands together)
    +
    reference to the controller (so you can chain the commands + together)
  • @@ -390,24 +394,25 @@

    setVelocityFilter

  • setOutputFilter

    public final Controller setOutputFilter​(IStreamFilter filter)
    -
    Lets you specify a filter that will be applied to all of the outputs of the - controller. - - If the robot has a tendency to jerk, or motions of the robot are too violent, - a filter like the LowPassFilter can reduce jerk while still letting the robot - get to max speed. This will slightly degrade the performance of the - controller, but it may be necessary sometimes in order to get consistent - results. - +
    Lets you specify a filter that will be applied to all of the outputs of + the controller. + + If the robot has a tendency to jerk, or motions of the robot are too + violent, a filter like the LowPassFilter can reduce jerk while still + letting the robot get to max speed. This will slightly degrade the + performance of the controller, but it may be necessary sometimes in order + to get consistent results. + This will change the way the controller interacts with the robot and may require more tuning to be done. - + Passing in null will disable the filter.
    Parameters:
    filter - filter to be applied to the outputs of the controller
    Returns:
    -
    reference to the controller (so you can chain the commands together)
    +
    reference to the controller (so you can chain the commands + together)
  • @@ -432,8 +437,8 @@

    getError

  • getRawVelocity

    public final double getRawVelocity()
    -
    Gets the velocity, which is represented as the change in error since the last - time that .update() was called
    +
    Gets the velocity, which is represented as the change in error since the + last time that .update() was called
    Returns:
    velocity from the last time that .update() was called
    @@ -447,8 +452,8 @@

    getRawVelocity

  • getVelocity

    public final double getVelocity()
    -
    Gets the velocity from the last time that .update() was called adjusted to - velocity per second
    +
    Gets the velocity from the last time that .update() was called adjusted + to velocity per second
    Returns:
    velocity from the last time that .update() was called
    @@ -476,12 +481,13 @@

    getOutput

  • getRate

    public double getRate()
    -
    Gets the rate of the controller during the last .update() command. This will - only return the interval between the last .update() command and the one - before it. Thus, the rate may be slightly inconsistent if the update command - is not called regularly. - - This function may be overridden if a special controller needs a custom rate.
    +
    Gets the rate of the controller during the last .update() command. This + will only return the interval between the last .update() command and the + one before it. Thus, the rate may be slightly inconsistent if the update + command is not called regularly. + + This function may be overridden if a special controller needs a custom + rate.
    Returns:
    the rate of the controller during the last .update() command
    @@ -533,7 +539,7 @@

    update

    double setpoint)
    Update the controller with the measurement that was just made and the set point you would like it to approach - + This function just subtracts the two at this moment.
    Parameters:
    @@ -551,8 +557,8 @@

    update

  • update

    public final double update​(double error)
    -
    Update the controller with the error from the destination that you want to - reach
    +
    Update the controller with the error from the destination that you want + to reach
    Parameters:
    error - the amount of error from the destination
    diff --git a/docs/com/stuypulse/stuylib/control/PIDCalculator.html b/docs/com/stuypulse/stuylib/control/PIDCalculator.html index a093f50f..07a93018 100644 --- a/docs/com/stuypulse/stuylib/control/PIDCalculator.html +++ b/docs/com/stuypulse/stuylib/control/PIDCalculator.html @@ -187,8 +187,8 @@

    Method Summary

    protected double calculate​(double error) -
    Calculate the value that the controller wants to move at while calculating - the values for the PIDController
    +
    Calculate the value that the controller wants to move at while + calculating the values for the PIDController
    @@ -318,8 +318,8 @@

    setControlSpeed

  • calculate

    protected double calculate​(double error)
    -
    Calculate the value that the controller wants to move at while calculating - the values for the PIDController
    +
    Calculate the value that the controller wants to move at while + calculating the values for the PIDController
    Specified by:
    calculate in class Controller
    diff --git a/docs/com/stuypulse/stuylib/control/PIDController.html b/docs/com/stuypulse/stuylib/control/PIDController.html index a6f69c72..0c2f60d4 100644 --- a/docs/com/stuypulse/stuylib/control/PIDController.html +++ b/docs/com/stuypulse/stuylib/control/PIDController.html @@ -142,7 +142,7 @@

    Class PIDController

    dynamic rate, so it can detect how much time has passed between each update. It is made to be easy to use and simple to understand while still being accurate. - + This PID controller resets the integral every time the error crosses 0 to prevent integral windup / lag. This means that it may not be suitable for setups involving rate instead of position @@ -334,8 +334,8 @@

    Method Detail

  • reset

    public void reset()
    -
    Resets the integrator in the PIDController. This automatically gets called if - the gap between update() commands is too large
    +
    Resets the integrator in the PIDController. This automatically gets + called if the gap between update() commands is too large
  • @@ -406,7 +406,8 @@

    setP

    Parameters:
    p - new p value used by the PID controller.
    Returns:
    -
    reference to PIDController (so you can chain the commands together)
    +
    reference to PIDController (so you can chain the commands + together)
  • @@ -421,7 +422,8 @@

    setI

    Parameters:
    i - new i value used by the PID controller.
    Returns:
    -
    reference to PIDController (so you can chain the commands together)
    +
    reference to PIDController (so you can chain the commands + together)
  • @@ -436,7 +438,8 @@

    setD

    Parameters:
    d - new d value used by the PID controller.
    Returns:
    -
    reference to PIDController (so you can chain the commands together)
    +
    reference to PIDController (so you can chain the commands + together)
  • @@ -455,7 +458,8 @@

    setPID

    i - new i value used by the PID controller.
    d - new d value used by the PID controller.
    Returns:
    -
    reference to PIDController (so you can chain the commands together)
    +
    reference to PIDController (so you can chain the commands + together)
  • @@ -468,13 +472,14 @@

    setIntegratorFilter

    public PIDController setIntegratorFilter​(IStreamFilter filter)
    It is common for a limit filter to be put on the I component to prevent Integral Windup. You can use SLMath.limit(x) to do this. - + Passing null will disable the filter
    Parameters:
    filter - filter put on the I component of the PID Controller
    Returns:
    -
    reference to PIDController (so you can chain the commands together)
    +
    reference to PIDController (so you can chain the commands + together)
  • diff --git a/docs/com/stuypulse/stuylib/exception/ConstructionError.html b/docs/com/stuypulse/stuylib/exception/ConstructionError.html index 2618bbff..a46557d0 100644 --- a/docs/com/stuypulse/stuylib/exception/ConstructionError.html +++ b/docs/com/stuypulse/stuylib/exception/ConstructionError.html @@ -181,8 +181,8 @@

    Constructor Summary

    ConstructionError​(java.lang.String constructor, java.lang.String error) -
    Create exception with formatted error message if construction is incorrectly - given constructor name and the error to be thrown
    +
    Create exception with formatted error message if construction is + incorrectly given constructor name and the error to be thrown
    @@ -249,12 +249,12 @@

    Constructor Detail

    ConstructionError

    public ConstructionError​(java.lang.String constructor,
                              java.lang.String error)
    -
    Create exception with formatted error message if construction is incorrectly - given constructor name and the error to be thrown
    +
    Create exception with formatted error message if construction is + incorrectly given constructor name and the error to be thrown
    Parameters:
    -
    constructor - constructor name formatted like - "ClassName(Type Variable)"
    +
    constructor - constructor name formatted like "ClassName(Type + Variable)"
    error - reason why the variable is invalid
    diff --git a/docs/com/stuypulse/stuylib/file/FRCLogger.Loggable.html b/docs/com/stuypulse/stuylib/file/FRCLogger.Loggable.html index 47cda720..c2a04b9f 100644 --- a/docs/com/stuypulse/stuylib/file/FRCLogger.Loggable.html +++ b/docs/com/stuypulse/stuylib/file/FRCLogger.Loggable.html @@ -128,9 +128,9 @@

    Interface FRCLogger.Logga
    public static interface FRCLogger.Loggable
    -
    The Loggable interface should be implemented by a class that can - return a useful piece of data that can be called on demand to be written - into the log.
    +
    The Loggable interface should be implemented by a class that can return a + useful piece of data that can be called on demand to be written into the + log.
    @@ -155,27 +155,24 @@

    Method Summary

    java.lang.String getLogData() -
    Implement this method with something that - reports the message or data that should be fed - into the logger as a string.
    +
    Implement this method with something that reports the message or data + that should be fed into the logger as a string.
    default java.util.logging.Level getLogLevel() -
    Implement this method with something that - reports the level of severity the data should be - logged at.
    +
    Implement this method with something that reports the level of + severity the data should be logged at.
    default boolean logThisIteration() -
    Implement this method with something that reports - if any data from the class should be fed to the logger - this iteration.
    +
    Implement this method with something that reports if any data from + the class should be fed to the logger this iteration.
    @@ -202,9 +199,8 @@

    Method Detail

  • logThisIteration

    default boolean logThisIteration()
    -
    Implement this method with something that reports - if any data from the class should be fed to the logger - this iteration.
    +
    Implement this method with something that reports if any data from + the class should be fed to the logger this iteration.
    Returns:
    if any data from the class will be fed to the logger.
    @@ -218,9 +214,8 @@

    logThisIteration

  • getLogLevel

    default java.util.logging.Level getLogLevel()
    -
    Implement this method with something that - reports the level of severity the data should be - logged at.
    +
    Implement this method with something that reports the level of + severity the data should be logged at.
    Returns:
    the level of the data that will be fed.
    @@ -234,9 +229,8 @@

    getLogLevel

  • getLogData

    java.lang.String getLogData()
    -
    Implement this method with something that - reports the message or data that should be fed - into the logger as a string.
    +
    Implement this method with something that reports the message or data + that should be fed into the logger as a string.
    Returns:
    the data to be fed into the logger.
    diff --git a/docs/com/stuypulse/stuylib/file/FRCLogger.html b/docs/com/stuypulse/stuylib/file/FRCLogger.html index c7324511..e56fd481 100644 --- a/docs/com/stuypulse/stuylib/file/FRCLogger.html +++ b/docs/com/stuypulse/stuylib/file/FRCLogger.html @@ -158,9 +158,9 @@

    Nested Class Summary

    static interface  FRCLogger.Loggable -
    The Loggable interface should be implemented by a class that can - return a useful piece of data that can be called on demand to be written - into the log.
    +
    The Loggable interface should be implemented by a class that can return a + useful piece of data that can be called on demand to be written into the + log.
    @@ -223,8 +223,8 @@

    Method Summary

    void logAllRegisteredLoggables() -
    Iterates through all the registered Loggables and logs them with level and data, - if logThisIteration() is true.
    +
    Iterates through all the registered Loggables and logs them with level + and data, if logThisIteration() is true.
    @@ -255,9 +255,8 @@

    Method Summary

    void registerLoggable​(FRCLogger.Loggable loggable) -
    Registers a new Loggable that upon call will put the next - getLogData() at level getLogLevel() to the log if it will - logThisIteration().
    +
    Registers a new Loggable that upon call will put the next getLogData() at + level getLogLevel() to the log if it will logThisIteration().
    @@ -338,9 +337,8 @@

    getLoggables

  • registerLoggable

    public void registerLoggable​(FRCLogger.Loggable loggable)
    -
    Registers a new Loggable that upon call will put the next - getLogData() at level getLogLevel() to the log if it will - logThisIteration().
    +
    Registers a new Loggable that upon call will put the next getLogData() at + level getLogLevel() to the log if it will logThisIteration().
    Parameters:
    loggable - Class implementing Loggable
    @@ -378,8 +376,8 @@

    clearLoggables

  • logAllRegisteredLoggables

    public void logAllRegisteredLoggables()
    -
    Iterates through all the registered Loggables and logs them with level and data, - if logThisIteration() is true.
    +
    Iterates through all the registered Loggables and logs them with level + and data, if logThisIteration() is true.
  • @@ -426,7 +424,7 @@

    logMisc

    logError

    public <T> void logError​(T obj,
                              java.lang.Exception e)
    -
    Log an error. Should be used in conjunction with try/catch.
    +
    Log an error. Should be used in conjunction with try/catch.
    Parameters:
    obj - Object that is the source of the error.
    diff --git a/docs/com/stuypulse/stuylib/file/csv/CSVElement.html b/docs/com/stuypulse/stuylib/file/csv/CSVElement.html index 97c7714b..0af0cdb3 100644 --- a/docs/com/stuypulse/stuylib/file/csv/CSVElement.html +++ b/docs/com/stuypulse/stuylib/file/csv/CSVElement.html @@ -136,7 +136,7 @@

    Class CSVElement

    Stores the data for each element in a custom class. This is to prevent the need to parse doubles over and over again, when we can just store it as a double. - + Call .toString() or .toDouble() to get data
  • diff --git a/docs/com/stuypulse/stuylib/file/csv/CSVReader.html b/docs/com/stuypulse/stuylib/file/csv/CSVReader.html index b7fd624b..610b909f 100644 --- a/docs/com/stuypulse/stuylib/file/csv/CSVReader.html +++ b/docs/com/stuypulse/stuylib/file/csv/CSVReader.html @@ -140,7 +140,7 @@

    Class CSVReader

    implements java.lang.Iterable<
    CSVElement>
    Read CSV Files with a bunch of epic features. After file is opened you can read the data like it was an array. - + Each of the elements is stored as a custom type called Element. Which prevents the need to constantly parse the data over and over again if it is a number.
    @@ -404,7 +404,8 @@

    clearData

    read

    public void read()
               throws java.io.IOException
    -
    Read data from opened file. You can call multiple times if file is updated
    +
    Read data from opened file. You can call multiple times if file is + updated
    Throws:
    java.io.IOException
    @@ -482,8 +483,8 @@

    get

    Returns:
    element as custom CSVElement type
    Throws:
    -
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount of - elements
    +
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount + of elements
  • @@ -502,8 +503,8 @@

    getString

    Returns:
    string of the element
    Throws:
    -
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount of - elements
    +
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount + of elements
  • @@ -522,8 +523,8 @@

    getDouble

    Returns:
    double representation of the element
    Throws:
    -
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount of - elements
    +
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount + of elements
  • @@ -542,8 +543,8 @@

    getNumber

    Returns:
    number representation of the element
    Throws:
    -
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount of - elements
    +
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount + of elements
    @@ -562,8 +563,8 @@

    isNumber

    Returns:
    if element is of type double
    Throws:
    -
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount of - elements
    +
    java.lang.IndexOutOfBoundsException - if the index is higher than the amount + of elements
    diff --git a/docs/com/stuypulse/stuylib/file/csv/CSVType.html b/docs/com/stuypulse/stuylib/file/csv/CSVType.html index a9153d8d..62e9d5a5 100644 --- a/docs/com/stuypulse/stuylib/file/csv/CSVType.html +++ b/docs/com/stuypulse/stuylib/file/csv/CSVType.html @@ -143,7 +143,7 @@

    Enum CSVType

    public enum CSVType
     extends java.lang.Enum<CSVType>
    Contains all the information needed for each of the csv files to work. - + Mainly contains the delimiter for each class
    diff --git a/docs/com/stuypulse/stuylib/file/csv/CSVWriter.html b/docs/com/stuypulse/stuylib/file/csv/CSVWriter.html index a2259819..abbc498b 100644 --- a/docs/com/stuypulse/stuylib/file/csv/CSVWriter.html +++ b/docs/com/stuypulse/stuylib/file/csv/CSVWriter.html @@ -140,7 +140,7 @@

    Class CSVWriter

    implements java.io.Flushable, java.lang.AutoCloseable
    CSVWriter class that allows you to write to a file in the format of a CSV. It automatically adds commas and calls toString on objects. - + Every function will throw an IOException if it arises.
    diff --git a/docs/com/stuypulse/stuylib/file/package-summary.html b/docs/com/stuypulse/stuylib/file/package-summary.html index d97be0bf..ddb5d78e 100644 --- a/docs/com/stuypulse/stuylib/file/package-summary.html +++ b/docs/com/stuypulse/stuylib/file/package-summary.html @@ -108,9 +108,9 @@

    Package com.stuypulse.stuylib.file

    FRCLogger.Loggable -
    The Loggable interface should be implemented by a class that can - return a useful piece of data that can be called on demand to be written - into the log.
    +
    The Loggable interface should be implemented by a class that can return a + useful piece of data that can be called on demand to be written into the + log.
    diff --git a/docs/com/stuypulse/stuylib/input/Gamepad.html b/docs/com/stuypulse/stuylib/input/Gamepad.html index c4484087..ce08321e 100644 --- a/docs/com/stuypulse/stuylib/input/Gamepad.html +++ b/docs/com/stuypulse/stuylib/input/Gamepad.html @@ -27,7 +27,7 @@ catch(err) { } //--> -var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10}; +var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -132,22 +132,21 @@

    Class Gamepad

  • Direct Known Subclasses:
    -
    NetKeyGamepad, WPIGamepad
    +
    NetKeyGamepad, WPIGamepad, Xbox

    public class Gamepad
     extends java.lang.Object
    -
    An class for using gamepads with different interfaces. You can - implement this class in another file, and then use it with a standard - interface. - +
    An class for using gamepads with different interfaces. You can implement this + class in another file, and then use it with a standard interface. + Any unimplemented buttons will never be triggered, so if a certain controller is missing one, dont worry about it. - + The button type that is used in OI.java is automatically generated by this class, as long as you implement the getRaw...() function, the get...() function will work. - + This class does not come with a constructor because by itself, the class does not do anything. You need to extend this class in order to use it.
  • @@ -220,241 +219,231 @@

    Method Summary

      -double -getDPadAngle() -  - - ButtonWrapper getDPadDown()   - + ButtonWrapper getDPadLeft()   - -double -getDPadMag() -  - - + ButtonWrapper getDPadRight()   - + ButtonWrapper getDPadUp()   - + double getDPadX()   - + double getDPadY()   - + ButtonWrapper getLeftAnalogButton()   - + double getLeftAngle()   - + ButtonWrapper getLeftBumper()   - + ButtonWrapper getLeftButton()   - + double getLeftMag()   - + ButtonWrapper getLeftTrigger()   - + double getLeftX()   - + double getLeftY()   - + ButtonWrapper getOptionButton()   - + boolean getRawBottomButton()   - + boolean getRawDPadDown()   - + boolean getRawDPadLeft()   - + boolean getRawDPadRight()   - + boolean getRawDPadUp()   - + boolean getRawLeftAnalogButton()   - + boolean getRawLeftBumper()   - + boolean getRawLeftButton()   - + boolean getRawLeftTrigger()   - + double getRawLeftTriggerAxis()   - + boolean getRawOptionButton()   - + boolean getRawRightAnalogButton()   - + boolean getRawRightBumper()   - + boolean getRawRightButton()   - + boolean getRawRightTrigger()   - + double getRawRightTriggerAxis()   - + boolean getRawSelectButton()   - + boolean getRawStartButton()   - + boolean getRawTopButton()   - + ButtonWrapper getRightAnalogButton()   - + double getRightAngle()   - + ButtonWrapper getRightBumper()   - + ButtonWrapper getRightButton()   - + double getRightMag()   - + ButtonWrapper getRightTrigger()   - + double getRightX()   - + double getRightY()   - + ButtonWrapper getSelectButton()   - + ButtonWrapper getStartButton()   - + ButtonWrapper getTopButton()   - + void setRumble​(double intensity)   @@ -777,24 +766,6 @@

    getDPadY

    public final double getDPadY()
    - - - - - - - - diff --git a/docs/com/stuypulse/stuylib/input/WPIGamepad.html b/docs/com/stuypulse/stuylib/input/WPIGamepad.html index 98790c3c..f6d970c9 100644 --- a/docs/com/stuypulse/stuylib/input/WPIGamepad.html +++ b/docs/com/stuypulse/stuylib/input/WPIGamepad.html @@ -145,18 +145,18 @@

    Class WPIGamepad

    WPI Gamepad extends Gamepad and adds functions that makes interacting with the underlying Joystick class easy. The WPI joystick class is kept in a separate class to make it easy to update if WPI updates. - + If you would like to get a button id that is not defined, or an axis id that is not defined, use getRawButton(int id) or getRawAxis(int id). If you want it to return a button for an unimplemented button, type getButton(int id). - - To initialize this class, pass in a Joystick or an int set to the port number. - This will be the Joystick that the Gamepad class will interact with. - + + To initialize this class, pass in a Joystick or an int set to the port + number. This will be the Joystick that the Gamepad class will interact with. + If you do not initialize with a Joystick, everything will still work except for - getRawButton(int id) - getButton(int id) - getRawAxis(int id) which will return either false or 0.0 - + The difference between the implementations of the Gamepad class is how it interacts with the underlying Joystick class.
    @@ -269,7 +269,7 @@

    Method Summary

    Methods inherited from class com.stuypulse.stuylib.input.Gamepad

    -getBottomButton, getDPadAngle, getDPadDown, getDPadLeft, getDPadMag, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getLeftX, getLeftY, getOptionButton, getRawBottomButton, getRawDPadDown, getRawDPadLeft, getRawDPadRight, getRawDPadUp, getRawLeftAnalogButton, getRawLeftBumper, getRawLeftButton, getRawLeftTrigger, getRawLeftTriggerAxis, getRawOptionButton, getRawRightAnalogButton, getRawRightBumper, getRawRightButton, getRawRightTrigger, getRawRightTriggerAxis, getRawSelectButton, getRawStartButton, getRawTopButton, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getRightX, getRightY, getSelectButton, getStartButton, getTopButton +getBottomButton, getDPadDown, getDPadLeft, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getLeftX, getLeftY, getOptionButton, getRawBottomButton, getRawDPadDown, getRawDPadLeft, getRawDPadRight, getRawDPadUp, getRawLeftAnalogButton, getRawLeftBumper, getRawLeftButton, getRawLeftTrigger, getRawLeftTriggerAxis, getRawOptionButton, getRawRightAnalogButton, getRawRightBumper, getRawRightButton, getRawRightTrigger, getRawRightTriggerAxis, getRawSelectButton, getRawStartButton, getRawTopButton, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getRightX, getRightY, getSelectButton, getStartButton, getTopButton @@ -183,7 +183,8 @@

    Constructor Summary

    ButtonWrapper​(BooleanProvider lambda) -
    Initializes ButtonWrapper with a lambda that will be used when calling .get()
    +
    Initializes ButtonWrapper with a lambda that will be used when calling + .get()
    @@ -263,7 +264,8 @@

    Constructor Detail

  • ButtonWrapper

    public ButtonWrapper​(BooleanProvider lambda)
    -
    Initializes ButtonWrapper with a lambda that will be used when calling .get()
    +
    Initializes ButtonWrapper with a lambda that will be used when calling + .get()
    Parameters:
    lambda - lambda that provides the boolean the button will use
    diff --git a/docs/com/stuypulse/stuylib/input/buttons/NewButton.html b/docs/com/stuypulse/stuylib/input/buttons/NewButton.html index 1e9632ba..8e06f208 100644 --- a/docs/com/stuypulse/stuylib/input/buttons/NewButton.html +++ b/docs/com/stuypulse/stuylib/input/buttons/NewButton.html @@ -147,8 +147,7 @@

    Class NewButton


    public class NewButton
     extends edu.wpi.first.wpilibj2.command.button.Button
    -
    This class will let us use the new button by - providing a lambda for it to use
    +
    This class will let us use the new button by providing a lambda for it to use
  • diff --git a/docs/com/stuypulse/stuylib/input/buttons/OldButton.html b/docs/com/stuypulse/stuylib/input/buttons/OldButton.html index ba6d633a..ba5135b7 100644 --- a/docs/com/stuypulse/stuylib/input/buttons/OldButton.html +++ b/docs/com/stuypulse/stuylib/input/buttons/OldButton.html @@ -147,8 +147,7 @@

    Class OldButton


    public class OldButton
     extends edu.wpi.first.wpilibj.buttons.Button
    -
    This class will let us use the old button by - providing a lambda for it to use
    +
    This class will let us use the old button by providing a lambda for it to use
    diff --git a/docs/com/stuypulse/stuylib/input/buttons/package-summary.html b/docs/com/stuypulse/stuylib/input/buttons/package-summary.html index 49bdf1c2..7a8ff9fc 100644 --- a/docs/com/stuypulse/stuylib/input/buttons/package-summary.html +++ b/docs/com/stuypulse/stuylib/input/buttons/package-summary.html @@ -125,22 +125,20 @@

    Package com.stuypulse.stuylib.input.butto ButtonWrapper -
    This class helps us bridge the gap between new and old code - by allowing one button class to provide a new and old button.
    +
    This class helps us bridge the gap between new and old code by allowing one + button class to provide a new and old button.
    NewButton -
    This class will let us use the new button by - providing a lambda for it to use
    +
    This class will let us use the new button by providing a lambda for it to use
    OldButton -
    This class will let us use the old button by - providing a lambda for it to use
    +
    This class will let us use the old button by providing a lambda for it to use
    diff --git a/docs/com/stuypulse/stuylib/input/gamepads/Logitech.DMode.html b/docs/com/stuypulse/stuylib/input/gamepads/Logitech.DMode.html index 55939b2c..8fbe4bb3 100644 --- a/docs/com/stuypulse/stuylib/input/gamepads/Logitech.DMode.html +++ b/docs/com/stuypulse/stuylib/input/gamepads/Logitech.DMode.html @@ -152,8 +152,8 @@

    Class Logitech.DMode


    public static class Logitech.DMode
     extends Logitech
    -
    There is a switch on the back of the controller this is for when the switch - is in the D position
    +
    There is a switch on the back of the controller this is for when the + switch is in the D position
    @@ -334,7 +334,7 @@

    Methods inherited from class com.stuypulse.stuylib.input.Gamepad

    -getBottomButton, getDPadAngle, getDPadDown, getDPadLeft, getDPadMag, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getOptionButton, getRawLeftTrigger, getRawRightTrigger, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getSelectButton, getStartButton, getTopButton +getBottomButton, getDPadDown, getDPadLeft, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getOptionButton, getRawLeftTrigger, getRawRightTrigger, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getSelectButton, getStartButton, getTopButton - + - + - + diff --git a/docs/com/stuypulse/stuylib/input/gamepads/Logitech.XMode.html b/docs/com/stuypulse/stuylib/input/gamepads/Logitech.XMode.html index b62bae32..6feba65d 100644 --- a/docs/com/stuypulse/stuylib/input/gamepads/Logitech.XMode.html +++ b/docs/com/stuypulse/stuylib/input/gamepads/Logitech.XMode.html @@ -152,8 +152,8 @@

    Class Logitech.XMode


    public static class Logitech.XMode
     extends Logitech
    -
    There is a switch on the back of the controller this is for when the switch - is in the X position
    +
    There is a switch on the back of the controller this is for when the + switch is in the X position
    @@ -334,7 +334,7 @@

    Methods inherited from class com.stuypulse.stuylib.input.Gamepad

    -getBottomButton, getDPadAngle, getDPadDown, getDPadLeft, getDPadMag, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getOptionButton, getRawLeftTrigger, getRawRightTrigger, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getSelectButton, getStartButton, getTopButton +getBottomButton, getDPadDown, getDPadLeft, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getOptionButton, getRawLeftTrigger, getRawRightTrigger, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getSelectButton, getStartButton, getTopButton - + - + - + diff --git a/docs/com/stuypulse/stuylib/input/gamepads/Logitech.html b/docs/com/stuypulse/stuylib/input/gamepads/Logitech.html index c6fd6235..7cd9da5b 100644 --- a/docs/com/stuypulse/stuylib/input/gamepads/Logitech.html +++ b/docs/com/stuypulse/stuylib/input/gamepads/Logitech.html @@ -172,16 +172,16 @@

    Nested Class Summary

    static class  Logitech.DMode -
    There is a switch on the back of the controller this is for when the switch - is in the D position
    +
    There is a switch on the back of the controller this is for when the + switch is in the D position
    static class  Logitech.XMode -
    There is a switch on the back of the controller this is for when the switch - is in the X position
    +
    There is a switch on the back of the controller this is for when the + switch is in the X position
    @@ -275,7 +275,7 @@

    Methods inherited from class com.stuypulse.stuylib.input.Gamepad

    -getBottomButton, getDPadAngle, getDPadDown, getDPadLeft, getDPadMag, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getLeftX, getLeftY, getOptionButton, getRawBottomButton, getRawLeftAnalogButton, getRawLeftBumper, getRawLeftButton, getRawLeftTrigger, getRawLeftTriggerAxis, getRawOptionButton, getRawRightAnalogButton, getRawRightBumper, getRawRightButton, getRawRightTrigger, getRawRightTriggerAxis, getRawSelectButton, getRawStartButton, getRawTopButton, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getRightX, getRightY, getSelectButton, getStartButton, getTopButton +getBottomButton, getDPadDown, getDPadLeft, getDPadRight, getDPadUp, getDPadX, getDPadY, getLeftAnalogButton, getLeftAngle, getLeftBumper, getLeftButton, getLeftMag, getLeftTrigger, getLeftX, getLeftY, getOptionButton, getRawBottomButton, getRawLeftAnalogButton, getRawLeftBumper, getRawLeftButton, getRawLeftTrigger, getRawLeftTriggerAxis, getRawOptionButton, getRawRightAnalogButton, getRawRightBumper, getRawRightButton, getRawRightTrigger, getRawRightTriggerAxis, getRawSelectButton, getRawStartButton, getRawTopButton, getRightAnalogButton, getRightAngle, getRightBumper, getRightButton, getRightMag, getRightTrigger, getRightX, getRightY, getSelectButton, getStartButton, getTopButton - + - + - + diff --git a/docs/com/stuypulse/stuylib/input/gamepads/Xbox.html b/docs/com/stuypulse/stuylib/input/gamepads/Xbox.html new file mode 100644 index 00000000..8879a78f --- /dev/null +++ b/docs/com/stuypulse/stuylib/input/gamepads/Xbox.html @@ -0,0 +1,725 @@ + + + + + +Xbox (StuyLib 1.0.0 API) + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class Xbox

    +
    +
    + +
    +
      +
    • +
      +
      public class Xbox
      +extends Gamepad
      +
      A wrapper for the XboxController class to work with the gamepad interface.
      +
    • +
    +
    +
    + +
    +
    + +
    +
    +
    + + + + diff --git a/docs/com/stuypulse/stuylib/input/gamepads/package-summary.html b/docs/com/stuypulse/stuylib/input/gamepads/package-summary.html index b76ecc9b..2cf890d9 100644 --- a/docs/com/stuypulse/stuylib/input/gamepads/package-summary.html +++ b/docs/com/stuypulse/stuylib/input/gamepads/package-summary.html @@ -114,15 +114,15 @@

    Package com.stuypulse.stuylib.input.gamep Logitech.DMode -
    There is a switch on the back of the controller this is for when the switch - is in the D position
    +
    There is a switch on the back of the controller this is for when the + switch is in the D position
    Logitech.XMode -
    There is a switch on the back of the controller this is for when the switch - is in the X position
    +
    There is a switch on the back of the controller this is for when the + switch is in the X position
    @@ -137,6 +137,12 @@

    Package com.stuypulse.stuylib.input.gamep
    Implementation of the PS4 for the Gamepad Class
    + +Xbox + +
    A wrapper for the XboxController class to work with the gamepad interface.
    + + diff --git a/docs/com/stuypulse/stuylib/input/gamepads/package-tree.html b/docs/com/stuypulse/stuylib/input/gamepads/package-tree.html index d67d86fa..b007c7d4 100644 --- a/docs/com/stuypulse/stuylib/input/gamepads/package-tree.html +++ b/docs/com/stuypulse/stuylib/input/gamepads/package-tree.html @@ -119,6 +119,7 @@

    Class Hierarchy

  • com.stuypulse.stuylib.input.gamepads.PS4
  • +
  • com.stuypulse.stuylib.input.gamepads.Xbox
  • diff --git a/docs/com/stuypulse/stuylib/input/keyboard/NetKeyboard.html b/docs/com/stuypulse/stuylib/input/keyboard/NetKeyboard.html index d5e5c3f1..352d5529 100644 --- a/docs/com/stuypulse/stuylib/input/keyboard/NetKeyboard.html +++ b/docs/com/stuypulse/stuylib/input/keyboard/NetKeyboard.html @@ -134,7 +134,7 @@

    Class NetKeyboard

    public class NetKeyboard
     extends java.lang.Object
    This class lets you send and receive keyboard information over network tables - + Every other class will interact with the network keyboards through this class
    diff --git a/docs/com/stuypulse/stuylib/input/keyboard/computer/NetKeyListener.html b/docs/com/stuypulse/stuylib/input/keyboard/computer/NetKeyListener.html index d3f4ca93..d4ba95d9 100644 --- a/docs/com/stuypulse/stuylib/input/keyboard/computer/NetKeyListener.html +++ b/docs/com/stuypulse/stuylib/input/keyboard/computer/NetKeyListener.html @@ -144,9 +144,9 @@

    Class NetKeyListener

    extends java.awt.event.KeyAdapter
    A KeyListener that uploads all of the key strokes to a network table where they can then be received and put into the robot - + This would not be used on the robot, but should be used on the users computer - + Make an AWT window to use this listener
    diff --git a/docs/com/stuypulse/stuylib/input/keyboard/computer/package-summary.html b/docs/com/stuypulse/stuylib/input/keyboard/computer/package-summary.html index 8ebfdd74..33f580b8 100644 --- a/docs/com/stuypulse/stuylib/input/keyboard/computer/package-summary.html +++ b/docs/com/stuypulse/stuylib/input/keyboard/computer/package-summary.html @@ -110,9 +110,9 @@

    Package com.stuypulse.stuylib.input.keybo
    A KeyListener that uploads all of the key strokes to a network table where they can then be received and put into the robot - + This would not be used on the robot, but should be used on the users computer - + Make an AWT window to use this listener
    diff --git a/docs/com/stuypulse/stuylib/input/keyboard/package-summary.html b/docs/com/stuypulse/stuylib/input/keyboard/package-summary.html index a904fc5d..df747fa2 100644 --- a/docs/com/stuypulse/stuylib/input/keyboard/package-summary.html +++ b/docs/com/stuypulse/stuylib/input/keyboard/package-summary.html @@ -109,7 +109,7 @@

    Package com.stuypulse.stuylib.input.keybo NetKeyboard
    This class lets you send and receive keyboard information over network tables - + Every other class will interact with the network keyboards through this class
    diff --git a/docs/com/stuypulse/stuylib/math/SLMath.html b/docs/com/stuypulse/stuylib/math/SLMath.html index 7a133178..57dde089 100644 --- a/docs/com/stuypulse/stuylib/math/SLMath.html +++ b/docs/com/stuypulse/stuylib/math/SLMath.html @@ -212,7 +212,8 @@

    Method Summary

    fpow​(double base, int exp) -
    fpow (fast pow), is a pow function that takes in an integer for the exponent.
    +
    fpow (fast pow), is a pow function that takes in an integer for the + exponent.
    @@ -252,16 +253,16 @@

    Method Summary

    spow​(double x, double power) -
    spow (signless pow), raises a number to a power without affecting the sign of - the number
    +
    spow (signless pow), raises a number to a power without affecting the + sign of the number
    static double square​(double x) -
    [WARNING! THIS WILL KEEP THE SIGN OF THE INPUT NUMBER] Square number and keep - sign
    +
    [WARNING! THIS WILL KEEP THE SIGN OF THE INPUT NUMBER] Square number and + keep sign
    @@ -369,8 +370,8 @@

    limit

    deadband

    public static double deadband​(double x,
                                   double window)
    -
    Dead bands x value with window being the dead band. - all values for this are [-1.0...1.0]
    +
    Dead bands x value with window being the dead band. all values for this + are [-1.0...1.0]
    Parameters:
    x - value
    @@ -387,8 +388,8 @@

    deadband

  • square

    public static double square​(double x)
    -
    [WARNING! THIS WILL KEEP THE SIGN OF THE INPUT NUMBER] Square number and keep - sign
    +
    [WARNING! THIS WILL KEEP THE SIGN OF THE INPUT NUMBER] Square number and + keep sign
    Parameters:
    x - input
    @@ -421,8 +422,8 @@

    cube

    spow

    public static double spow​(double x,
                               double power)
    -
    spow (signless pow), raises a number to a power without affecting the sign of - the number
    +
    spow (signless pow), raises a number to a power without affecting the + sign of the number
    Parameters:
    x - input
    @@ -474,9 +475,9 @@

    circular

    fpow

    public static double fpow​(double base,
                               int exp)
    -
    fpow (fast pow), is a pow function that takes in an integer for the exponent. - This allows it to be much faster on repeated calls due to the fact that it - does not need to deal with fractional exponents.
    +
    fpow (fast pow), is a pow function that takes in an integer for the + exponent. This allows it to be much faster on repeated calls due to the + fact that it does not need to deal with fractional exponents.
    Parameters:
    base - base of the power
    diff --git a/docs/com/stuypulse/stuylib/network/SLNetworkTable.html b/docs/com/stuypulse/stuylib/network/SLNetworkTable.html index 3c2a3b1f..7a7b029d 100644 --- a/docs/com/stuypulse/stuylib/network/SLNetworkTable.html +++ b/docs/com/stuypulse/stuylib/network/SLNetworkTable.html @@ -135,7 +135,7 @@

    Class SLNetworkTable

    extends java.lang.Object
    The SLNetworkTable is a very fast way to easily interface with a network table. - + If a function you want is not implemented, use getTable(), getRawEntry(), or getInstance() to call the function yourself
  • @@ -454,8 +454,8 @@

    open

    open

    public static SLNetworkTable open​(int team,
                                       java.lang.String table)
    -
    Opens network table that is connected to a robot. IE a program connecting to - a robot.
    +
    Opens network table that is connected to a robot. IE a program connecting + to a robot.
    Parameters:
    team - team number
    diff --git a/docs/com/stuypulse/stuylib/network/SmartBoolean.html b/docs/com/stuypulse/stuylib/network/SmartBoolean.html index bfc2e475..20d6b56e 100644 --- a/docs/com/stuypulse/stuylib/network/SmartBoolean.html +++ b/docs/com/stuypulse/stuylib/network/SmartBoolean.html @@ -253,8 +253,9 @@

    Constructor Detail

    SmartBoolean

    public SmartBoolean​(java.lang.String id,
                         boolean value)
    -
    Creates a SmartBoolean with the element name and a default value. The value on - SmartDashboard will be reset to the default value on initialization.
    +
    Creates a SmartBoolean with the element name and a default value. The + value on SmartDashboard will be reset to the default value on + initialization.
    Parameters:
    id - the name of the boolean on SmartDashboard
    diff --git a/docs/com/stuypulse/stuylib/network/SmartNumber.html b/docs/com/stuypulse/stuylib/network/SmartNumber.html index 133be210..9c57828d 100644 --- a/docs/com/stuypulse/stuylib/network/SmartNumber.html +++ b/docs/com/stuypulse/stuylib/network/SmartNumber.html @@ -301,8 +301,9 @@

    Constructor Detail

    SmartNumber

    public SmartNumber​(java.lang.String id,
                        double value)
    -
    Creates a SmartNumber with the element name and a default value. The value on - SmartDashboard will be reset to the default value on initialization.
    +
    Creates a SmartNumber with the element name and a default value. The + value on SmartDashboard will be reset to the default value on + initialization.
    Parameters:
    id - the name of the number on SmartDashboard
    diff --git a/docs/com/stuypulse/stuylib/network/SmartString.html b/docs/com/stuypulse/stuylib/network/SmartString.html index ed84d5f5..31ada3a5 100644 --- a/docs/com/stuypulse/stuylib/network/SmartString.html +++ b/docs/com/stuypulse/stuylib/network/SmartString.html @@ -253,8 +253,9 @@

    Constructor Detail

    SmartString

    public SmartString​(java.lang.String id,
                        java.lang.String value)
    -
    Creates a SmartString with the element name and a default value. The value on - SmartDashboard will be reset to the default value on initialization.
    +
    Creates a SmartString with the element name and a default value. The + value on SmartDashboard will be reset to the default value on + initialization.
    Parameters:
    id - the name of the String on SmartDashboard
    diff --git a/docs/com/stuypulse/stuylib/network/limelight/Limelight.html b/docs/com/stuypulse/stuylib/network/limelight/Limelight.html index b7622a7d..19fd2c82 100644 --- a/docs/com/stuypulse/stuylib/network/limelight/Limelight.html +++ b/docs/com/stuypulse/stuylib/network/limelight/Limelight.html @@ -931,8 +931,9 @@

    getCoords

    public static double[] getCoords()
    Returns:
    -
    Array of Vertices, in the form (x0,y0,x1,y1, ... xN,yN). coordinates - are in pixels, relative to top left corner of limelight feed
    +
    Array of Vertices, in the form (x0,y0,x1,y1, ... xN,yN). + coordinates are in pixels, relative to top left corner of + limelight feed
    @@ -945,8 +946,8 @@

    getVertices

    public static double[][] getVertices()
    Returns:
    -
    Formatted 2D array of coordinates, consisting of an array of X values - and an array of Y values.
    +
    Formatted 2D array of coordinates, consisting of an array of X + values and an array of Y values.
    @@ -1047,8 +1048,8 @@

    getRawTargetArea

    Parameters:
    target - Target to read Area from
    Returns:
    -
    Percent of the screen the corresponding target takes up on a scale of - 0 to 1
    +
    Percent of the screen the corresponding target takes up on a + scale of 0 to 1
    diff --git a/docs/com/stuypulse/stuylib/streams/CSVIStream.Writer.html b/docs/com/stuypulse/stuylib/streams/CSVIStream.Writer.html index 632cf1a3..d0588f8d 100644 --- a/docs/com/stuypulse/stuylib/streams/CSVIStream.Writer.html +++ b/docs/com/stuypulse/stuylib/streams/CSVIStream.Writer.html @@ -142,8 +142,8 @@

    Class CSVIStream.Writer

    public static class CSVIStream.Writer
     extends java.lang.Object
     implements IStream
    -
    This CSVIStream writer let an IStream pass through while recording the values - of the IStream into a CSV file.
    +
    This CSVIStream writer let an IStream pass through while recording the + values of the IStream into a CSV file.
    @@ -167,8 +167,8 @@

    Constructor Summary

    Writer​(java.lang.String filepath, IStream stream) -
    Makes a new IStream that, while getting values, will record them in a CSV - file
    +
    Makes a new IStream that, while getting values, will record them in a + CSV file
    @@ -176,8 +176,8 @@

    Constructor Summary

    IStream stream, int flushRate) -
    Makes a new IStream that, while getting values, will record them in a CSV - file
    +
    Makes a new IStream that, while getting values, will record them in a + CSV file
    @@ -238,13 +238,14 @@

    Writer

    public Writer​(java.lang.String filepath,
                   IStream stream,
                   int flushRate)
    -
    Makes a new IStream that, while getting values, will record them in a CSV - file
    +
    Makes a new IStream that, while getting values, will record them in a + CSV file
    Parameters:
    filepath - path of the CSV file to write to
    stream - IStream to read in from
    -
    flushRate - how many times .get should be called before it flushes
    +
    flushRate - how many times .get should be called before it + flushes
    @@ -256,8 +257,8 @@

    Writer

    Writer

    public Writer​(java.lang.String filepath,
                   IStream stream)
    -
    Makes a new IStream that, while getting values, will record them in a CSV - file
    +
    Makes a new IStream that, while getting values, will record them in a + CSV file
    Parameters:
    filepath - path of the CSV file to write to
    diff --git a/docs/com/stuypulse/stuylib/streams/CSVIStream.html b/docs/com/stuypulse/stuylib/streams/CSVIStream.html index d7ec903a..ca1ce592 100644 --- a/docs/com/stuypulse/stuylib/streams/CSVIStream.html +++ b/docs/com/stuypulse/stuylib/streams/CSVIStream.html @@ -129,7 +129,7 @@

    Class CSVIStream

    extends java.lang.Object
    Class Writer allows you to read input from an IStream into a CSV file Class Reader is an IStream that reads from CSV file - + They extend from IStream, so they also work with the existing IStream classes
    @@ -163,8 +163,8 @@

    Nested Class Summary

    static class  CSVIStream.Writer -
    This CSVIStream writer let an IStream pass through while recording the values - of the IStream into a CSV file.
    +
    This CSVIStream writer let an IStream pass through while recording the + values of the IStream into a CSV file.
    diff --git a/docs/com/stuypulse/stuylib/streams/FilteredIStream.html b/docs/com/stuypulse/stuylib/streams/FilteredIStream.html index e32b97f3..83f352d5 100644 --- a/docs/com/stuypulse/stuylib/streams/FilteredIStream.html +++ b/docs/com/stuypulse/stuylib/streams/FilteredIStream.html @@ -139,7 +139,7 @@

    Class FilteredIStream

    extends java.lang.Object implements IStream
    Takes a Stream and a StreamFilter and makes a FilteredStream - + This could be used to automatically filter controller inputs
    diff --git a/docs/com/stuypulse/stuylib/streams/PollingIStream.html b/docs/com/stuypulse/stuylib/streams/PollingIStream.html index 40335684..2c95733d 100644 --- a/docs/com/stuypulse/stuylib/streams/PollingIStream.html +++ b/docs/com/stuypulse/stuylib/streams/PollingIStream.html @@ -139,7 +139,7 @@

    Class PollingIStream

    extends java.lang.Object implements IStream
    Takes an IStream and an IStreamFilter and makes a PollingIStream - + A PollingIStream calls .get() every x milliseconds instead of when the user calls get
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/HullMovingAverage.html b/docs/com/stuypulse/stuylib/streams/filters/HullMovingAverage.html index 6eccdd0a..8f354127 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/HullMovingAverage.html +++ b/docs/com/stuypulse/stuylib/streams/filters/HullMovingAverage.html @@ -139,7 +139,7 @@

    Class HullMovingAverage

    extends java.lang.Object implements IStreamFilter
    Implementation of Hull Moving Average. - + Hull Moving Average can smooth out inputs, but has a tendency to overshoot. It is really good if lag is unacceptable, but not if overshooting based on quick changes is bad.
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/IStreamFilter.html b/docs/com/stuypulse/stuylib/streams/filters/IStreamFilter.html index 628f92fd..a3879b79 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/IStreamFilter.html +++ b/docs/com/stuypulse/stuylib/streams/filters/IStreamFilter.html @@ -124,7 +124,7 @@

    Interface IStreamFilter

  • All Known Implementing Classes:
    -
    HullMovingAverage, InvertedHullMovingAverage, IStreamFilterGroup, LowPassFilter, MovingAverage, OnDerivative, OrderedLowPassFilter, OrderedRollingAverage, RateLimit, RollingAverage, WeightedMovingAverage
    +
    HullMovingAverage, InvertedHullMovingAverage, IStreamFilterGroup, LowPassFilter, MovingAverage, OnDerivative, OrderedLowPassFilter, OrderedRollingAverage, RateLimit, RollingAverage, TimedRateLimit, WeightedMovingAverage

    public interface IStreamFilter
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/InvertedHullMovingAverage.html b/docs/com/stuypulse/stuylib/streams/filters/InvertedHullMovingAverage.html index 7e64c160..b14c4c70 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/InvertedHullMovingAverage.html +++ b/docs/com/stuypulse/stuylib/streams/filters/InvertedHullMovingAverage.html @@ -139,7 +139,7 @@

    Class InvertedHullMovi extends java.lang.Object implements IStreamFilter
    Implementation of Inverted Hull Moving Average. - + Hull Moving Average can overshoot, but when the order of the filters is switched around, it can create an interesting S-Curve.

  • diff --git a/docs/com/stuypulse/stuylib/streams/filters/LowPassFilter.html b/docs/com/stuypulse/stuylib/streams/filters/LowPassFilter.html index 1c2d2a86..844f49d6 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/LowPassFilter.html +++ b/docs/com/stuypulse/stuylib/streams/filters/LowPassFilter.html @@ -219,9 +219,9 @@

    LowPassFilter

    public LowPassFilter​(double rc)
    Parameters:
    -
    rc - Time Constant. The time constant is the amount of time in seconds - that it takes to get 63.2% of the way to the target value. 63.2% is - (1 - (1 / e)).
    +
    rc - Time Constant. The time constant is the amount of time in + seconds that it takes to get 63.2% of the way to the target + value. 63.2% is (1 - (1 / e)).
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/MovingAverage.html b/docs/com/stuypulse/stuylib/streams/filters/MovingAverage.html index 3b7ab578..15703f74 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/MovingAverage.html +++ b/docs/com/stuypulse/stuylib/streams/filters/MovingAverage.html @@ -139,7 +139,7 @@

    Class MovingAverage

    extends java.lang.Object implements IStreamFilter
    Simple implementation of an Simple Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/OnDerivative.html b/docs/com/stuypulse/stuylib/streams/filters/OnDerivative.html index 6ef3a80b..710c29be 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/OnDerivative.html +++ b/docs/com/stuypulse/stuylib/streams/filters/OnDerivative.html @@ -167,16 +167,16 @@

    Constructor Summary

    OnDerivative​(IStreamFilter filter) -
    This will take the filter and make it apply to the derivative of stream givin - too it
    +
    This will take the filter and make it apply to the derivative of stream + givin too it
    OnDerivative​(IStreamFilter filter, boolean correctSign) -
    This will take the filter and make it apply to the derivative of stream givin - too it
    +
    This will take the filter and make it apply to the derivative of stream + givin too it
    @@ -236,13 +236,14 @@

    Constructor Detail

    OnDerivative

    public OnDerivative​(IStreamFilter filter,
                         boolean correctSign)
    -
    This will take the filter and make it apply to the derivative of stream givin - too it
    +
    This will take the filter and make it apply to the derivative of stream + givin too it
    Parameters:
    -
    filter - filter that gets applied to the derivative of the stream
    -
    correctSign - correct the derivative so that it doesn't matter if its - positive or negative. (false by default)
    +
    filter - filter that gets applied to the derivative of the + stream
    +
    correctSign - correct the derivative so that it doesn't matter if + its positive or negative. (false by default)
    @@ -253,8 +254,8 @@

    OnDerivative

  • OnDerivative

    public OnDerivative​(IStreamFilter filter)
    -
    This will take the filter and make it apply to the derivative of stream givin - too it
    +
    This will take the filter and make it apply to the derivative of stream + givin too it
    Parameters:
    filter - filter that gets applied to the derivative of the stream
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/OrderedLowPassFilter.html b/docs/com/stuypulse/stuylib/streams/filters/OrderedLowPassFilter.html index acd09513..088750ed 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/OrderedLowPassFilter.html +++ b/docs/com/stuypulse/stuylib/streams/filters/OrderedLowPassFilter.html @@ -139,7 +139,7 @@

    Class OrderedLowPassFilter< extends java.lang.Object implements IStreamFilter
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.

  • @@ -229,9 +229,9 @@

    OrderedLowPassFilter

    Multiple low pass filters combined into one filter
    Parameters:
    -
    rc - Time Constant. The time constant is the amount of time in seconds - that it takes to get 63.2% of the way to the target value. 63.2% is - (1 - (1 / e)).
    +
    rc - Time Constant. The time constant is the amount of time in + seconds that it takes to get 63.2% of the way to the target + value. 63.2% is (1 - (1 / e)).
    order - number of rolling averages (greater than or equal to 1)
    Throws:
    ConstructionError
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/OrderedRollingAverage.html b/docs/com/stuypulse/stuylib/streams/filters/OrderedRollingAverage.html index 9e04edab..1c1e7310 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/OrderedRollingAverage.html +++ b/docs/com/stuypulse/stuylib/streams/filters/OrderedRollingAverage.html @@ -139,7 +139,7 @@

    Class OrderedRollingAverag extends java.lang.Object implements IStreamFilter
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/RateLimit.html b/docs/com/stuypulse/stuylib/streams/filters/RateLimit.html index 80bc8e28..7121d916 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/RateLimit.html +++ b/docs/com/stuypulse/stuylib/streams/filters/RateLimit.html @@ -137,10 +137,10 @@

    Class RateLimit

    public class RateLimit
     extends OnDerivative
    This class lets you rate limit a stream of inputs - + That means that the value can not change more than a specified amount in one update - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/RollingAverage.html b/docs/com/stuypulse/stuylib/streams/filters/RollingAverage.html index 458c0694..3ee3052c 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/RollingAverage.html +++ b/docs/com/stuypulse/stuylib/streams/filters/RollingAverage.html @@ -137,7 +137,7 @@

    Class RollingAverage

    public class RollingAverage
     extends OnDerivative
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -162,8 +162,8 @@

    Constructor Summary

    RollingAverage​(double weight) -
    Make an Exponential Moving Average If exp = 1, it will instantly update The - weight must be greater than or equal to 1.
    +
    Make an Exponential Moving Average If exp = 1, it will instantly update + The weight must be greater than or equal to 1.
    @@ -215,9 +215,9 @@

    Constructor Detail

    RollingAverage

    public RollingAverage​(double weight)
                    throws ConstructionError
    -
    Make an Exponential Moving Average If exp = 1, it will instantly update The - weight must be greater than or equal to 1. The higher the weight, the longer - it takes to change value
    +
    Make an Exponential Moving Average If exp = 1, it will instantly update + The weight must be greater than or equal to 1. The higher the weight, the + longer it takes to change value
    Parameters:
    weight - weight (greater than or equal to 1)
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/TimedRateLimit.html b/docs/com/stuypulse/stuylib/streams/filters/TimedRateLimit.html new file mode 100644 index 00000000..7cd7f3fa --- /dev/null +++ b/docs/com/stuypulse/stuylib/streams/filters/TimedRateLimit.html @@ -0,0 +1,330 @@ + + + + + +TimedRateLimit (StuyLib 1.0.0 API) + + + + + + + + + + + + + + +
    + +
    + +
    +
    + +

    Class TimedRateLimit

    +
    +
    +
      +
    • java.lang.Object
    • +
    • +
        +
      • com.stuypulse.stuylib.streams.filters.TimedRateLimit
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      IStreamFilter
      +
      +
      +
      public class TimedRateLimit
      +extends java.lang.Object
      +implements IStreamFilter
      +
      This class lets you rate limit a stream of inputs + + Instead of being based on the rate that update is called, the value you give + it is based on how much it should be able to change in one second.
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        TimedRateLimit​(double rateLimit) 
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + +
        All Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        doubleget​(double next) +
        Get next value in Filter based on the next value given
        +
        +
          +
        • + + +

          Methods inherited from class java.lang.Object

          +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          TimedRateLimit

          +
          public TimedRateLimit​(double rateLimit)
          +
          +
          Parameters:
          +
          rateLimit - The amount that the value should be able to change in + one second.
          +
          +
        • +
        +
      • +
      +
      + +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          get

          +
          public double get​(double next)
          +
          Description copied from interface: IStreamFilter
          +
          Get next value in Filter based on the next value given
          +
          +
          Specified by:
          +
          get in interface IStreamFilter
          +
          Parameters:
          +
          next - next input value
          +
          Returns:
          +
          next modified value
          +
          +
        • +
        +
      • +
      +
      +
    • +
    +
    +
    +
    + + + + diff --git a/docs/com/stuypulse/stuylib/streams/filters/WeightedMovingAverage.html b/docs/com/stuypulse/stuylib/streams/filters/WeightedMovingAverage.html index bd31faaf..8f22a6ef 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/WeightedMovingAverage.html +++ b/docs/com/stuypulse/stuylib/streams/filters/WeightedMovingAverage.html @@ -139,7 +139,7 @@

    Class WeightedMovingAverag extends java.lang.Object implements IStreamFilter
    Implementation of Weighted Moving Average. - + Very heavily optimized, may not be readable, but it is really fast.
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/package-summary.html b/docs/com/stuypulse/stuylib/streams/filters/package-summary.html index 38347621..39922162 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/package-summary.html +++ b/docs/com/stuypulse/stuylib/streams/filters/package-summary.html @@ -149,7 +149,7 @@

    Package com.stuypulse.stuylib.streams.fil MovingAverage
    Simple implementation of an Simple Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -165,7 +165,7 @@

    Package com.stuypulse.stuylib.streams.fil OrderedLowPassFilter
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -174,7 +174,7 @@

    Package com.stuypulse.stuylib.streams.fil OrderedRollingAverage
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -183,10 +183,10 @@

    Package com.stuypulse.stuylib.streams.fil RateLimit
    This class lets you rate limit a stream of inputs - + That means that the value can not change more than a specified amount in one update - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -195,12 +195,21 @@

    Package com.stuypulse.stuylib.streams.fil RollingAverage
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    +TimedRateLimit + +
    This class lets you rate limit a stream of inputs + + Instead of being based on the rate that update is called, the value you give + it is based on how much it should be able to change in one second.
    + + + WeightedMovingAverage
    Implementation of Weighted Moving Average.
    diff --git a/docs/com/stuypulse/stuylib/streams/filters/package-tree.html b/docs/com/stuypulse/stuylib/streams/filters/package-tree.html index e3f1f748..6d96a967 100644 --- a/docs/com/stuypulse/stuylib/streams/filters/package-tree.html +++ b/docs/com/stuypulse/stuylib/streams/filters/package-tree.html @@ -118,6 +118,7 @@

    Class Hierarchy

  • com.stuypulse.stuylib.streams.filters.OrderedLowPassFilter (implements com.stuypulse.stuylib.streams.filters.IStreamFilter)
  • com.stuypulse.stuylib.streams.filters.OrderedRollingAverage (implements com.stuypulse.stuylib.streams.filters.IStreamFilter)
  • +
  • com.stuypulse.stuylib.streams.filters.TimedRateLimit (implements com.stuypulse.stuylib.streams.filters.IStreamFilter)
  • com.stuypulse.stuylib.streams.filters.WeightedMovingAverage (implements com.stuypulse.stuylib.streams.filters.IStreamFilter)
  • diff --git a/docs/com/stuypulse/stuylib/streams/package-summary.html b/docs/com/stuypulse/stuylib/streams/package-summary.html index bb42e242..1603c936 100644 --- a/docs/com/stuypulse/stuylib/streams/package-summary.html +++ b/docs/com/stuypulse/stuylib/streams/package-summary.html @@ -136,7 +136,7 @@

    Package com.stuypulse.stuylib.streams

    Class Writer allows you to read input from an IStream into a CSV file Class Reader is an IStream that reads from CSV file - + They extend from IStream, so they also work with the existing IStream classes
    @@ -150,15 +150,15 @@

    Package com.stuypulse.stuylib.streams

    CSVIStream.Writer -
    This CSVIStream writer let an IStream pass through while recording the values - of the IStream into a CSV file.
    +
    This CSVIStream writer let an IStream pass through while recording the + values of the IStream into a CSV file.
    FilteredIStream
    Takes a Stream and a StreamFilter and makes a FilteredStream - + This could be used to automatically filter controller inputs
    @@ -166,7 +166,7 @@

    Package com.stuypulse.stuylib.streams

    PollingIStream
    Takes an IStream and an IStreamFilter and makes a PollingIStream - + A PollingIStream calls .get() every x milliseconds instead of when the user calls get
    diff --git a/docs/com/stuypulse/stuylib/util/StopWatch.html b/docs/com/stuypulse/stuylib/util/StopWatch.html index 1e3a8c58..7f0c6a7e 100644 --- a/docs/com/stuypulse/stuylib/util/StopWatch.html +++ b/docs/com/stuypulse/stuylib/util/StopWatch.html @@ -135,7 +135,7 @@

    Class StopWatch

    extends java.lang.Object
    This StopWatch class helps classes who want their functions to be time independent do that by giving them an easy way to get intervals of time. - + This is better than just doing it in the class because it stores the time as a long to keep accuracy, but converts it into a double for convenience.
    @@ -192,7 +192,8 @@

    Method Summary

    double reset() -
    Resets the stop watch to the current time and returns time since last reset.
    +
    Resets the stop watch to the current time and returns time since last + reset.
    @@ -246,11 +247,12 @@

    Method Detail

  • reset

    public double reset()
    -
    Resets the stop watch to the current time and returns time since last reset.
    +
    Resets the stop watch to the current time and returns time since last + reset.
    Returns:
    -
    the time since the last reset was called in seconds. The result is - always a non 0 positive number.
    +
    the time since the last reset was called in seconds. The result + is always a non 0 positive number.
  • @@ -264,8 +266,8 @@

    getTime

    Gets the time since the stop watch was reset
    Returns:
    -
    the time since the last reset was called in seconds. The result is - always a non 0 positive number.
    +
    the time since the last reset was called in seconds. The result + is always a non 0 positive number.
    diff --git a/docs/index-all.html b/docs/index-all.html index 19e80181..ed2597a3 100644 --- a/docs/index-all.html +++ b/docs/index-all.html @@ -128,8 +128,8 @@

    B

    ButtonWrapper - Class in com.stuypulse.stuylib.input.buttons
    -
    This class helps us bridge the gap between new and old code - by allowing one button class to provide a new and old button.
    +
    This class helps us bridge the gap between new and old code by allowing one + button class to provide a new and old button.
    ButtonWrapper() - Constructor for class com.stuypulse.stuylib.input.buttons.ButtonWrapper
    @@ -137,7 +137,8 @@

    B

    ButtonWrapper(BooleanProvider) - Constructor for class com.stuypulse.stuylib.input.buttons.ButtonWrapper
    -
    Initializes ButtonWrapper with a lambda that will be used when calling .get()
    +
    Initializes ButtonWrapper with a lambda that will be used when calling + .get()
    @@ -151,8 +152,8 @@

    C

    calculate(double) - Method in class com.stuypulse.stuylib.control.PIDCalculator
    -
    Calculate the value that the controller wants to move at while calculating - the values for the PIDController
    +
    Calculate the value that the controller wants to move at while + calculating the values for the PIDController
    calculate(double) - Method in class com.stuypulse.stuylib.control.PIDController
    @@ -215,8 +216,8 @@

    C

    ConstructionError(String, String) - Constructor for exception com.stuypulse.stuylib.exception.ConstructionError
    -
    Create exception with formatted error message if construction is incorrectly - given constructor name and the error to be thrown
    +
    Create exception with formatted error message if construction is + incorrectly given constructor name and the error to be thrown
    containsKey(String) - Method in class com.stuypulse.stuylib.network.SLNetworkTable
    @@ -243,7 +244,7 @@

    C

    Class Writer allows you to read input from an IStream into a CSV file Class Reader is an IStream that reads from CSV file - + They extend from IStream, so they also work with the existing IStream classes
    CSVIStream() - Constructor for class com.stuypulse.stuylib.streams.CSVIStream
    @@ -255,8 +256,8 @@

    C

    CSVIStream.Writer - Class in com.stuypulse.stuylib.streams
    -
    This CSVIStream writer let an IStream pass through while recording the values - of the IStream into a CSV file.
    +
    This CSVIStream writer let an IStream pass through while recording the + values of the IStream into a CSV file.
    CSVReader - Class in com.stuypulse.stuylib.file.csv
    @@ -355,7 +356,7 @@

    F

    FilteredIStream - Class in com.stuypulse.stuylib.streams
    Takes a Stream and a StreamFilter and makes a FilteredStream - + This could be used to automatically filter controller inputs
    FilteredIStream(IStream, IStreamFilter...) - Constructor for class com.stuypulse.stuylib.streams.FilteredIStream
    @@ -378,7 +379,8 @@

    F

     
    fpow(double, int) - Static method in class com.stuypulse.stuylib.math.SLMath
    -
    fpow (fast pow), is a pow function that takes in an integer for the exponent.
    +
    fpow (fast pow), is a pow function that takes in an integer for the + exponent.
    FRCLogger - Class in com.stuypulse.stuylib.file
    @@ -390,9 +392,9 @@

    F

    FRCLogger.Loggable - Interface in com.stuypulse.stuylib.file
    -
    The Loggable interface should be implemented by a class that can - return a useful piece of data that can be called on demand to be written - into the log.
    +
    The Loggable interface should be implemented by a class that can return a + useful piece of data that can be called on demand to be written into the + log.
    @@ -472,6 +474,8 @@

    G

     
    get(double) - Method in class com.stuypulse.stuylib.streams.filters.OrderedRollingAverage
     
    +
    get(double) - Method in class com.stuypulse.stuylib.streams.filters.TimedRateLimit
    +
     
    get(double) - Method in class com.stuypulse.stuylib.streams.filters.WeightedMovingAverage
     
    get(int) - Method in class com.stuypulse.stuylib.file.csv.CSVReader
    @@ -542,14 +546,10 @@

    G

    Get Double from network table
    -
    getDPadAngle() - Method in class com.stuypulse.stuylib.input.Gamepad
    -
     
    getDPadDown() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getDPadLeft() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    -
    getDPadMag() - Method in class com.stuypulse.stuylib.input.Gamepad
    -
     
    getDPadRight() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getDPadUp() - Method in class com.stuypulse.stuylib.input.Gamepad
    @@ -576,6 +576,8 @@

    G

    Gets current network table instance
    +
    getJoystick() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getJoystick() - Method in class com.stuypulse.stuylib.input.WPIGamepad
    Get underlying joystick
    @@ -630,6 +632,8 @@

    G

     
    getLeftX() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getLeftX() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getLeftY() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getLeftY() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -640,11 +644,12 @@

    G

     
    getLeftY() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getLeftY() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getLogData() - Method in interface com.stuypulse.stuylib.file.FRCLogger.Loggable
    -
    Implement this method with something that - reports the message or data that should be fed - into the logger as a string.
    +
    Implement this method with something that reports the message or data + that should be fed into the logger as a string.
    getLoggables() - Method in class com.stuypulse.stuylib.file.FRCLogger
    @@ -652,9 +657,8 @@

    G

    getLogLevel() - Method in interface com.stuypulse.stuylib.file.FRCLogger.Loggable
    -
    Implement this method with something that - reports the level of severity the data should be - logged at.
    +
    Implement this method with something that reports the level of + severity the data should be logged at.
    getLongestSidelength() - Static method in class com.stuypulse.stuylib.network.limelight.Limelight
    @@ -713,6 +717,8 @@

    G

     
    getRawBottomButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawBottomButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawButton(int) - Method in class com.stuypulse.stuylib.input.WPIGamepad
    Get button from underlying joystick
    @@ -727,6 +733,8 @@

    G

     
    getRawDPadDown() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawDPadDown() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawDPadLeft() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawDPadLeft() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech
    @@ -735,6 +743,8 @@

    G

     
    getRawDPadLeft() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawDPadLeft() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawDPadRight() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawDPadRight() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech
    @@ -743,6 +753,8 @@

    G

     
    getRawDPadRight() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawDPadRight() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawDPadUp() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawDPadUp() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech
    @@ -751,6 +763,8 @@

    G

     
    getRawDPadUp() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawDPadUp() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawEntry(String) - Method in class com.stuypulse.stuylib.network.SLNetworkTable
    Get a NetworkTableEntry for a key
    @@ -767,6 +781,8 @@

    G

     
    getRawLeftAnalogButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawLeftAnalogButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawLeftBumper() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawLeftBumper() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -775,6 +791,8 @@

    G

     
    getRawLeftBumper() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawLeftBumper() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawLeftButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawLeftButton() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -783,6 +801,8 @@

    G

     
    getRawLeftButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawLeftButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawLeftTrigger() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawLeftTriggerAxis() - Method in class com.stuypulse.stuylib.input.Gamepad
    @@ -793,6 +813,8 @@

    G

     
    getRawLeftTriggerAxis() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawLeftTriggerAxis() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawOptionButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawOptionButton() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -801,6 +823,8 @@

    G

     
    getRawOptionButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawOptionButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawRightAnalogButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawRightAnalogButton() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -809,6 +833,8 @@

    G

     
    getRawRightAnalogButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawRightAnalogButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawRightBumper() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawRightBumper() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -817,6 +843,8 @@

    G

     
    getRawRightBumper() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawRightBumper() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawRightButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawRightButton() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -825,6 +853,8 @@

    G

     
    getRawRightButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawRightButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawRightTrigger() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawRightTriggerAxis() - Method in class com.stuypulse.stuylib.input.Gamepad
    @@ -835,6 +865,8 @@

    G

     
    getRawRightTriggerAxis() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawRightTriggerAxis() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawSelectButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawSelectButton() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -843,6 +875,8 @@

    G

     
    getRawSelectButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawSelectButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawStartButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRawStartButton() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -851,6 +885,8 @@

    G

     
    getRawStartButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawStartButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawTargetArea(int) - Static method in class com.stuypulse.stuylib.network.limelight.Limelight
     
    getRawTargetSkew(int) - Static method in class com.stuypulse.stuylib.network.limelight.Limelight
    @@ -867,10 +903,12 @@

    G

     
    getRawTopButton() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRawTopButton() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRawVelocity() - Method in class com.stuypulse.stuylib.control.Controller
    -
    Gets the velocity, which is represented as the change in error since the last - time that .update() was called
    +
    Gets the velocity, which is represented as the change in error since the + last time that .update() was called
    getRightAnalogButton() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    @@ -898,6 +936,8 @@

    G

     
    getRightX() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRightX() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRightY() - Method in class com.stuypulse.stuylib.input.Gamepad
     
    getRightY() - Method in class com.stuypulse.stuylib.input.gamepads.Logitech.DMode
    @@ -908,6 +948,8 @@

    G

     
    getRightY() - Method in class com.stuypulse.stuylib.input.gamepads.PS4
     
    +
    getRightY() - Method in class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    getRoll() - Method in class com.stuypulse.stuylib.network.limelight.Solve3DResult
    Get roll from Solve3D Result
    @@ -987,8 +1029,8 @@

    G

     
    getVelocity() - Method in class com.stuypulse.stuylib.control.Controller
    -
    Gets the velocity from the last time that .update() was called adjusted to - velocity per second
    +
    Gets the velocity from the last time that .update() was called adjusted + to velocity per second
    getVerticalSidelength() - Static method in class com.stuypulse.stuylib.network.limelight.Limelight
    @@ -1185,8 +1227,8 @@

    L

    logAllRegisteredLoggables() - Method in class com.stuypulse.stuylib.file.FRCLogger
    -
    Iterates through all the registered Loggables and logs them with level and data, - if logThisIteration() is true.
    +
    Iterates through all the registered Loggables and logs them with level + and data, if logThisIteration() is true.
    logError(T, Exception) - Method in class com.stuypulse.stuylib.file.FRCLogger
    @@ -1200,13 +1242,13 @@

    L

     
    Logitech.DMode - Class in com.stuypulse.stuylib.input.gamepads
    -
    There is a switch on the back of the controller this is for when the switch - is in the D position
    +
    There is a switch on the back of the controller this is for when the + switch is in the D position
    Logitech.XMode - Class in com.stuypulse.stuylib.input.gamepads
    -
    There is a switch on the back of the controller this is for when the switch - is in the X position
    +
    There is a switch on the back of the controller this is for when the + switch is in the X position
    logManualLoggable(FRCLogger.Loggable) - Method in class com.stuypulse.stuylib.file.FRCLogger
    @@ -1218,9 +1260,8 @@

    L

    logThisIteration() - Method in interface com.stuypulse.stuylib.file.FRCLogger.Loggable
    -
    Implement this method with something that reports - if any data from the class should be fed to the logger - this iteration.
    +
    Implement this method with something that reports if any data from + the class should be fed to the logger this iteration.
    longValue() - Method in class com.stuypulse.stuylib.network.SmartNumber
    @@ -1265,7 +1306,7 @@

    M

    MovingAverage - Class in com.stuypulse.stuylib.streams.filters
    Simple implementation of an Simple Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -1284,7 +1325,7 @@

    N

    NetKeyboard - Class in com.stuypulse.stuylib.input.keyboard
    This class lets you send and receive keyboard information over network tables - + Every other class will interact with the network keyboards through this class
    NetKeyboard(int) - Constructor for class com.stuypulse.stuylib.input.keyboard.NetKeyboard
    @@ -1307,9 +1348,9 @@

    N

    A KeyListener that uploads all of the key strokes to a network table where they can then be received and put into the robot - + This would not be used on the robot, but should be used on the users computer - + Make an AWT window to use this listener
    NetKeyListener(int, int) - Constructor for class com.stuypulse.stuylib.input.keyboard.computer.NetKeyListener
    @@ -1327,8 +1368,7 @@

    N

    NewButton - Class in com.stuypulse.stuylib.input.buttons
    -
    This class will let us use the new button by - providing a lambda for it to use
    +
    This class will let us use the new button by providing a lambda for it to use
    NewButton() - Constructor for class com.stuypulse.stuylib.input.buttons.NewButton
    @@ -1350,8 +1390,7 @@

    O

    OldButton - Class in com.stuypulse.stuylib.input.buttons
    -
    This class will let us use the old button by - providing a lambda for it to use
    +
    This class will let us use the old button by providing a lambda for it to use
    OldButton() - Constructor for class com.stuypulse.stuylib.input.buttons.OldButton
    @@ -1368,13 +1407,13 @@

    O

    OnDerivative(IStreamFilter) - Constructor for class com.stuypulse.stuylib.streams.filters.OnDerivative
    -
    This will take the filter and make it apply to the derivative of stream givin - too it
    +
    This will take the filter and make it apply to the derivative of stream + givin too it
    OnDerivative(IStreamFilter, boolean) - Constructor for class com.stuypulse.stuylib.streams.filters.OnDerivative
    -
    This will take the filter and make it apply to the derivative of stream givin - too it
    +
    This will take the filter and make it apply to the derivative of stream + givin too it
    open(int, String) - Static method in class com.stuypulse.stuylib.network.SLNetworkTable
    @@ -1395,7 +1434,7 @@

    O

    OrderedLowPassFilter - Class in com.stuypulse.stuylib.streams.filters
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -1406,7 +1445,7 @@

    O

    OrderedRollingAverage - Class in com.stuypulse.stuylib.streams.filters
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -1446,7 +1485,7 @@

    P

    PollingIStream - Class in com.stuypulse.stuylib.streams
    Takes an IStream and an IStreamFilter and makes a PollingIStream - + A PollingIStream calls .get() every x milliseconds instead of when the user calls get
    @@ -1469,10 +1508,10 @@

    R

    RateLimit - Class in com.stuypulse.stuylib.streams.filters
    This class lets you rate limit a stream of inputs - + That means that the value can not change more than a specified amount in one update - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    @@ -1490,9 +1529,8 @@

    R

    registerLoggable(FRCLogger.Loggable) - Method in class com.stuypulse.stuylib.file.FRCLogger
    -
    Registers a new Loggable that upon call will put the next - getLogData() at level getLogLevel() to the log if it will - logThisIteration().
    +
    Registers a new Loggable that upon call will put the next getLogData() at + level getLogLevel() to the log if it will logThisIteration().
    reset() - Method in class com.stuypulse.stuylib.control.PIDController
    @@ -1512,7 +1550,8 @@

    R

    reset() - Method in class com.stuypulse.stuylib.util.StopWatch
    -
    Resets the stop watch to the current time and returns time since last reset.
    +
    Resets the stop watch to the current time and returns time since last + reset.
    reset() - Method in class com.stuypulse.stuylib.util.TankDriveEncoder
    @@ -1521,14 +1560,14 @@

    R

    RollingAverage - Class in com.stuypulse.stuylib.streams.filters
    Simple implementation of an Exponential Moving Average - + This is not time dependant, so the values will change if you change the rate that you call this filter, the filter will not adapt for that.
    RollingAverage(double) - Constructor for class com.stuypulse.stuylib.streams.filters.RollingAverage
    -
    Make an Exponential Moving Average If exp = 1, it will instantly update The - weight must be greater than or equal to 1.
    +
    Make an Exponential Moving Average If exp = 1, it will instantly update + The weight must be greater than or equal to 1.
    rotate(double) - Method in class com.stuypulse.stuylib.math.Vector2D
    @@ -1598,8 +1637,8 @@

    S

    setErrorFilter(IStreamFilter) - Method in class com.stuypulse.stuylib.control.Controller
    -
    Lets you specify a filter that will be applied to all measurements that are - given to the controller.
    +
    Lets you specify a filter that will be applied to all measurements that + are given to the controller.
    setI(double) - Method in class com.stuypulse.stuylib.control.PIDController
     
    @@ -1620,8 +1659,8 @@

    S

    setOutputFilter(IStreamFilter) - Method in class com.stuypulse.stuylib.control.Controller
    -
    Lets you specify a filter that will be applied to all of the outputs of the - controller.
    +
    Lets you specify a filter that will be applied to all of the outputs of + the controller.
    setP(double) - Method in class com.stuypulse.stuylib.control.PIDController
     
    @@ -1647,7 +1686,8 @@

    S

    setVelocityFilter(IStreamFilter) - Method in class com.stuypulse.stuylib.control.Controller
    -
    Lets you specify a filter that will be applied to the velocity measurements.
    +
    Lets you specify a filter that will be applied to the velocity + measurements.
    size() - Method in class com.stuypulse.stuylib.file.csv.CSVReader
    @@ -1715,13 +1755,13 @@

    S

    spow(double, double) - Static method in class com.stuypulse.stuylib.math.SLMath
    -
    spow (signless pow), raises a number to a power without affecting the sign of - the number
    +
    spow (signless pow), raises a number to a power without affecting the + sign of the number
    square(double) - Static method in class com.stuypulse.stuylib.math.SLMath
    -
    [WARNING! THIS WILL KEEP THE SIGN OF THE INPUT NUMBER] Square number and keep - sign
    +
    [WARNING! THIS WILL KEEP THE SIGN OF THE INPUT NUMBER] Square number and + keep sign
    STANDARD - com.stuypulse.stuylib.network.limelight.Limelight.CameraStream
     
    @@ -1754,6 +1794,15 @@

    T

     
    TCSV - com.stuypulse.stuylib.file.csv.CSVType
     
    +
    TimedRateLimit - Class in com.stuypulse.stuylib.streams.filters
    +
    +
    This class lets you rate limit a stream of inputs + + Instead of being based on the rate that update is called, the value you give + it is based on how much it should be able to change in one second.
    +
    +
    TimedRateLimit(double) - Constructor for class com.stuypulse.stuylib.streams.filters.TimedRateLimit
    +
     
    toDouble() - Method in class com.stuypulse.stuylib.file.csv.CSVElement
    Value of element as a double
    @@ -1798,14 +1847,14 @@

    U

    update(double) - Method in class com.stuypulse.stuylib.control.Controller
    -
    Update the controller with the error from the destination that you want to - reach
    +
    Update the controller with the error from the destination that you want + to reach
    update(double, double) - Method in class com.stuypulse.stuylib.control.Controller
    Update the controller with the measurement that was just made and the set point you would like it to approach - + This function just subtracts the two at this moment.
    @@ -1916,13 +1965,13 @@

    W

    Writer(String, IStream) - Constructor for class com.stuypulse.stuylib.streams.CSVIStream.Writer
    -
    Makes a new IStream that, while getting values, will record them in a CSV - file
    +
    Makes a new IStream that, while getting values, will record them in a + CSV file
    Writer(String, IStream, int) - Constructor for class com.stuypulse.stuylib.streams.CSVIStream.Writer
    -
    Makes a new IStream that, while getting values, will record them in a CSV - file
    +
    Makes a new IStream that, while getting values, will record them in a + CSV file
    @@ -1932,6 +1981,14 @@

    X

    x - Variable in class com.stuypulse.stuylib.math.Vector2D
     
    +
    Xbox - Class in com.stuypulse.stuylib.input.gamepads
    +
    +
    A wrapper for the XboxController class to work with the gamepad interface.
    +
    +
    Xbox(int) - Constructor for class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    +
    Xbox(XboxController) - Constructor for class com.stuypulse.stuylib.input.gamepads.Xbox
    +
     
    XMode(int) - Constructor for class com.stuypulse.stuylib.input.gamepads.Logitech.XMode
     
    diff --git a/docs/member-search-index.js b/docs/member-search-index.js index cd1a3b73..b5d556f0 100644 --- a/docs/member-search-index.js +++ b/docs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"add(Vector2D)","url":"add(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"BufferedIStream(IStream, int)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream,int)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"BufferedIStream(IStream)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream)"},{"p":"com.stuypulse.stuylib.input.buttons","c":"ButtonWrapper","l":"ButtonWrapper()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"ButtonWrapper","l":"ButtonWrapper(BooleanProvider)","url":"%3Cinit%3E(com.stuypulse.stuylib.input.buttons.BooleanProvider)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"calculate(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"calculate(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"calculate(double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"circular(double, double)","url":"circular(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"circular(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"clearData()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"clearLoggables()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"close()"},{"p":"com.stuypulse.stuylib.exception","c":"ConstructionError","l":"ConstructionError(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"containsKey(String)","url":"containsKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"Controller()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"CSVElement(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream","l":"CSVIStream()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"CSVReader(String, CSVType)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.file.csv.CSVType)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"CSVReader(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"CSVWriter(String, CSVType)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.file.csv.CSVType)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"CSVWriter(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"cube(double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"deadband(double, double)","url":"deadband(double,double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"DEFAULT"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_BOOLEAN"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_DOUBLE"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_NUMBER"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_STRING"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"distance()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"distance(Vector2D)","url":"distance(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"DMode(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"doubleValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"DRIVER"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"equals(Vector2D)","url":"equals(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"EXCEL"},{"p":"com.stuypulse.stuylib.streams","c":"FilteredIStream","l":"FilteredIStream(IStream, IStreamFilter...)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream,com.stuypulse.stuylib.streams.filters.IStreamFilter...)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"floatValue()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"flush()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"FORCE_BLINK"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"FORCE_OFF"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"FORCE_ON"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"fpow(double, int)","url":"fpow(double,int)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"FRCLogger(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"Gamepad()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"BooleanProvider","l":"get()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"NewButton","l":"get()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"OldButton","l":"get()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"get()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"get()"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Reader","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Writer","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"FilteredIStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"IStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"PollingIStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"HullMovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"IStreamFilter","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"IStreamFilterGroup","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"InvertedHullMovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"LowPassFilter","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"MovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OnDerivative","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedLowPassFilter","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedRollingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"WeightedMovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"get(int)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"get(int)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"getArray()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getBoolean(String)","url":"getBoolean(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getBottomButton()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getButton(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCoords()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getCSVData()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCustomDouble(String)","url":"getCustomDouble(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCustomRawCrosshairX(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCustomString(String)","url":"getCustomString(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"getD()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"getDefault()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"getDefault()"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"getDefault()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"getDelimiter()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getDistance()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getDouble(int)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getDouble(String)","url":"getDouble(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadAngle()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadDown()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadLeft()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadMag()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadRight()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadUp()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadX()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadY()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getError()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getFilePath()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getHorizontalSidelength()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"getI()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getInstance()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getJoystick()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getK()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getKey(String)","url":"getKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"getKey(String)","url":"getKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getKeys()"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"getKeysPressed()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getLatencyMs()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftAngle()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftButton()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getLeftDistance()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getLeftEncoder()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftMag()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger.Loggable","l":"getLogData()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"getLoggables()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger.Loggable","l":"getLogLevel()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getLongestSidelength()"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"getNetKeyboard()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getNumber(int)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getNumber(String)","url":"getNumber(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getOptionButton()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getOutput()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"getP()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPDController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPIController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPIDController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPIDController(double, double, double)","url":"getPIDController(double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getPipeline()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getPitch()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getRate()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getRawAxis(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getRawButton(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawCrosshairY(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getRawEntry(String)","url":"getRawEntry(java.lang.String)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawKey(String)","url":"getRawKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetArea(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetSkew(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetXAngle(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetYAngle(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getRawVelocity()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightAngle()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightButton()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getRightDistance()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getRightEncoder()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightMag()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRightY()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getRoll()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getSelectButton()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getShortestSidelength()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getSolve3D()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getStartButton()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getString(int)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getString(String)","url":"getString(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getT()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getTable()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getTableName()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetArea()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerX()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerX(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerY()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerY(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetSkew()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetXAngle()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetYAngle()"},{"p":"com.stuypulse.stuylib.util","c":"StopWatch","l":"getTime()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getTopButton()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getVelocity()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getVerticalSidelength()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getVertices()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getX()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getY()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getYaw()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getZ()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"hasData()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"hasJoystick()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"hasValidTarget()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"HullMovingAverage","l":"HullMovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"IMAGE_CAPTURE_LATENCY"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"intValue()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"InvertedHullMovingAverage","l":"InvertedHullMovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"IS_CONNECTED_REQUIRED"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"isConnected()"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"isConnected()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"isConnected()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"isConnected()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"isDone(double, double)","url":"isDone(double,double)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"isDone(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"isDouble()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"isEntryValid(String)","url":"isEntryValid(java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"isNumber()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"isNumber(int)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"isString()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"IStreamFilterGroup","l":"IStreamFilterGroup(IStreamFilter...)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.filters.IStreamFilter...)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"iterator()"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"kDefaultSize"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"keyPressed(KeyEvent)","url":"keyPressed(java.awt.event.KeyEvent)"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"keyReleased(KeyEvent)","url":"keyReleased(java.awt.event.KeyEvent)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"last()"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"last(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"Limelight()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"limit(double, double, double)","url":"limit(double,double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"limit(double, double)","url":"limit(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"limit(double)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logAllRegisteredLoggables()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logError(T, Exception)","url":"logError(T,java.lang.Exception)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"Logitech(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logManualLoggable(FRCLogger.Loggable)","url":"logManualLoggable(com.stuypulse.stuylib.file.FRCLogger.Loggable)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logMisc(Level, T, String)","url":"logMisc(java.util.logging.Level,T,java.lang.String)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger.Loggable","l":"logThisIteration()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"longValue()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"LowPassFilter","l":"LowPassFilter(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_SIDE_LENGTH"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_SKEW"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_TARGET_AREA"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_UPDATE_TIME"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_WARNING_TIME"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_X_ANGLE"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_Y_ANGLE"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_SIDE_LENGTH"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_SKEW"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_TARGET_AREA"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_WARNING_TIME"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_X_ANGLE"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_Y_ANGLE"},{"p":"com.stuypulse.stuylib.streams.filters","c":"MovingAverage","l":"MovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"MYSQL"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"NetKeyboard(int, int)","url":"%3Cinit%3E(int,int)"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"NetKeyboard(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"NetKeyGamepad(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"NetKeyListener(int, int)","url":"%3Cinit%3E(int,int)"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyWindow","l":"NetKeyWindow()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"NewButton","l":"NewButton()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"NewButton","l":"NewButton(BooleanProvider)","url":"%3Cinit%3E(com.stuypulse.stuylib.input.buttons.BooleanProvider)"},{"p":"com.stuypulse.stuylib.input.buttons","c":"ButtonWrapper","l":"old()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"OldButton","l":"OldButton()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"OldButton","l":"OldButton(BooleanProvider)","url":"%3Cinit%3E(com.stuypulse.stuylib.input.buttons.BooleanProvider)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OnDerivative","l":"OnDerivative(IStreamFilter, boolean)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.filters.IStreamFilter,boolean)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OnDerivative","l":"OnDerivative(IStreamFilter)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"open(int, String)","url":"open(int,java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"open(NetworkTableInstance, String)","url":"open(edu.wpi.first.networktables.NetworkTableInstance,java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"open(String)","url":"open(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"open(String)","url":"open(java.lang.String)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedLowPassFilter","l":"OrderedLowPassFilter(double, int)","url":"%3Cinit%3E(double,int)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedRollingAverage","l":"OrderedRollingAverage(double, int)","url":"%3Cinit%3E(double,int)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"PIDCalculator(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"PIDController()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"PIDController(double, double, double)","url":"%3Cinit%3E(double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"PIP_MAIN"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"PIP_SECONDARY"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"PIPELINE"},{"p":"com.stuypulse.stuylib.streams","c":"PollingIStream","l":"PollingIStream(IStream, double)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream,double)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"PS4(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"RateLimit","l":"RateLimit(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"read()"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Reader","l":"Reader(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"registerLoggable(FRCLogger.Loggable)","url":"registerLoggable(com.stuypulse.stuylib.file.FRCLogger.Loggable)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"reset()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"reset()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"reset()"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"reset()"},{"p":"com.stuypulse.stuylib.util","c":"StopWatch","l":"reset()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"reset()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"RollingAverage","l":"RollingAverage(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"rotate(double, Vector2D)","url":"rotate(double,com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"rotate(double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"round(double, int)","url":"round(double,int)"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"set(boolean)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"set(double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"set(String)","url":"set(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setBoolean(String, boolean)","url":"setBoolean(java.lang.String,boolean)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCameraStream(Limelight.CameraStream)","url":"setCameraStream(com.stuypulse.stuylib.network.limelight.Limelight.CameraStream)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCamMode(Limelight.CamMode)","url":"setCamMode(com.stuypulse.stuylib.network.limelight.Limelight.CamMode)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"setControlSpeed(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"setCSVType(CSVType)","url":"setCSVType(com.stuypulse.stuylib.file.csv.CSVType)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCustomNumber(String, Number)","url":"setCustomNumber(java.lang.String,java.lang.Number)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCustomString(String, String)","url":"setCustomString(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setD(double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"setDefault(boolean)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"setDefault(double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"setDefault(String)","url":"setDefault(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setDouble(String, double)","url":"setDouble(java.lang.String,double)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"setErrorFilter(IStreamFilter)","url":"setErrorFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setI(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setIntegratorFilter(IStreamFilter)","url":"setIntegratorFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"setKey(String, boolean)","url":"setKey(java.lang.String,boolean)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setLEDMode(Limelight.LEDMode)","url":"setLEDMode(com.stuypulse.stuylib.network.limelight.Limelight.LEDMode)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setNumber(String, Number)","url":"setNumber(java.lang.String,java.lang.Number)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"setOutputFilter(IStreamFilter)","url":"setOutputFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setP(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setPID(double, double, double)","url":"setPID(double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setPipeline(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"setRumble(double)"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"setRumble(double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setSnapshotMode(Limelight.SnapshotMode)","url":"setSnapshotMode(com.stuypulse.stuylib.network.limelight.Limelight.SnapshotMode)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setString(String, String)","url":"setString(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"setValue(String)","url":"setValue(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"setVelocityFilter(IStreamFilter)","url":"setVelocityFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"size()"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"SLMath()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"SmartBoolean(String, boolean)","url":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"SmartBoolean(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"SmartNumber(String, double)","url":"%3Cinit%3E(java.lang.String,double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"SmartNumber(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"SmartString(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"SmartString(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"Solve3DResult(double, double, double, double, double, double)","url":"%3Cinit%3E(double,double,double,double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"Solve3DResult(double[])","url":"%3Cinit%3E(double[])"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"spow(double, double)","url":"spow(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"square(double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"STANDARD"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"STOP"},{"p":"com.stuypulse.stuylib.util","c":"StopWatch","l":"StopWatch()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"sub(Vector2D)","url":"sub(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"TankDriveEncoder(Encoder, Encoder)","url":"%3Cinit%3E(edu.wpi.first.wpilibj.Encoder,edu.wpi.first.wpilibj.Encoder)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"TCSV"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"toDouble()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"toNumber()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"toString()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"toString()"},{"p":"com.stuypulse.stuylib.exception","c":"ConstructionError","l":"toString()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"toString()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"toString()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"toString()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"TRIGGER_AXIS_THRESHOLD"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"TWO_PER_SECOND"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"unregisterLoggable(FRCLogger.Loggable)","url":"unregisterLoggable(com.stuypulse.stuylib.file.FRCLogger.Loggable)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"update(double, double)","url":"update(double,double)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"update(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"values()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"Vector2D()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"Vector2D(double, double)","url":"%3Cinit%3E(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"Vector2D(double[])","url":"%3Cinit%3E(double[])"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"VISION"},{"p":"com.stuypulse.stuylib.streams.filters","c":"WeightedMovingAverage","l":"WeightedMovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"WPIGamepad(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"WPIGamepad(Joystick)","url":"%3Cinit%3E(edu.wpi.first.wpilibj.Joystick)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(long)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(Object)","url":"write(java.lang.Object)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(String)","url":"write(java.lang.String)"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Writer","l":"Writer(String, IStream, int)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.streams.IStream,int)"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Writer","l":"Writer(String, IStream)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.streams.IStream)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"x"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"XMode(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"y"}] \ No newline at end of file +memberSearchIndex = [{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"add(Vector2D)","url":"add(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"BufferedIStream(IStream, int)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream,int)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"BufferedIStream(IStream)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream)"},{"p":"com.stuypulse.stuylib.input.buttons","c":"ButtonWrapper","l":"ButtonWrapper()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"ButtonWrapper","l":"ButtonWrapper(BooleanProvider)","url":"%3Cinit%3E(com.stuypulse.stuylib.input.buttons.BooleanProvider)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"calculate(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"calculate(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"calculate(double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"circular(double, double)","url":"circular(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"circular(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"clearData()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"clearLoggables()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"close()"},{"p":"com.stuypulse.stuylib.exception","c":"ConstructionError","l":"ConstructionError(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"containsKey(String)","url":"containsKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"Controller()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"CSVElement(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream","l":"CSVIStream()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"CSVReader(String, CSVType)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.file.csv.CSVType)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"CSVReader(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"CSVWriter(String, CSVType)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.file.csv.CSVType)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"CSVWriter(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"cube(double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"deadband(double, double)","url":"deadband(double,double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"DEFAULT"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_BOOLEAN"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_DOUBLE"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_NUMBER"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"DEFAULT_STRING"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"distance()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"distance(Vector2D)","url":"distance(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"DMode(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"doubleValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"DRIVER"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"equals(Vector2D)","url":"equals(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"EXCEL"},{"p":"com.stuypulse.stuylib.streams","c":"FilteredIStream","l":"FilteredIStream(IStream, IStreamFilter...)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream,com.stuypulse.stuylib.streams.filters.IStreamFilter...)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"floatValue()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"flush()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"FORCE_BLINK"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"FORCE_OFF"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"FORCE_ON"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"fpow(double, int)","url":"fpow(double,int)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"FRCLogger(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"Gamepad()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"BooleanProvider","l":"get()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"NewButton","l":"get()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"OldButton","l":"get()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"get()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"get()"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Reader","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Writer","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"FilteredIStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"IStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams","c":"PollingIStream","l":"get()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"HullMovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"IStreamFilter","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"IStreamFilterGroup","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"InvertedHullMovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"LowPassFilter","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"MovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OnDerivative","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedLowPassFilter","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedRollingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"TimedRateLimit","l":"get(double)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"WeightedMovingAverage","l":"get(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"get(int)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"get(int)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"getArray()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getBoolean(String)","url":"getBoolean(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getBottomButton()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getButton(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"getCodeValue()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCoords()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getCSVData()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCustomDouble(String)","url":"getCustomDouble(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCustomRawCrosshairX(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getCustomString(String)","url":"getCustomString(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"getD()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"getDefault()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"getDefault()"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"getDefault()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"getDelimiter()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getDistance()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getDouble(int)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getDouble(String)","url":"getDouble(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadDown()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadLeft()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadRight()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadUp()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadX()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getDPadY()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getError()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getFilePath()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getHorizontalSidelength()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"getI()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getInstance()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getJoystick()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getJoystick()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getK()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getKey(String)","url":"getKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"getKey(String)","url":"getKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getKeys()"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"getKeysPressed()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getLatencyMs()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftAngle()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftButton()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getLeftDistance()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getLeftEncoder()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftMag()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getLeftX()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getLeftY()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger.Loggable","l":"getLogData()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"getLoggables()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger.Loggable","l":"getLogLevel()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getLongestSidelength()"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"getNetKeyboard()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getNumber(int)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getNumber(String)","url":"getNumber(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getOptionButton()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getOutput()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"getP()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPDController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPIController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPIDController()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getPIDController(double, double, double)","url":"getPIDController(double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getPipeline()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getPitch()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getRate()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getRawAxis(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawBottomButton()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"getRawButton(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawCrosshairY(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawDPadDown()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawDPadLeft()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawDPadRight()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawDPadUp()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getRawEntry(String)","url":"getRawEntry(java.lang.String)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRawKey(String)","url":"getRawKey(java.lang.String)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawLeftAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawLeftBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawLeftButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawLeftTriggerAxis()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawOptionButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawRightBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawRightButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawRightTriggerAxis()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawSelectButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawStartButton()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetArea(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetSkew(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetXAngle(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getRawTargetYAngle(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRawTopButton()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getRawVelocity()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightAnalogButton()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightAngle()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightBumper()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightButton()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getRightDistance()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"getRightEncoder()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightMag()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightTrigger()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRightX()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.DMode","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"getRightY()"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"getRightY()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getRoll()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getSelectButton()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getShortestSidelength()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getSolve3D()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getStartButton()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"getString(int)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getString(String)","url":"getString(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"getT()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getTable()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"getTableName()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetArea()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerX()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerX(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerY()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetCornerY(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetSkew()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetXAngle()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getTargetYAngle()"},{"p":"com.stuypulse.stuylib.util","c":"StopWatch","l":"getTime()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"getTopButton()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"getVelocity()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getVerticalSidelength()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"getVertices()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getX()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getY()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getYaw()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"getZ()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"hasData()"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"hasJoystick()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"hasValidTarget()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"HullMovingAverage","l":"HullMovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"IMAGE_CAPTURE_LATENCY"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"intValue()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"InvertedHullMovingAverage","l":"InvertedHullMovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"IS_CONNECTED_REQUIRED"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"isConnected()"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"isConnected()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"isConnected()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"isConnected()"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"isDone(double, double)","url":"isDone(double,double)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"isDone(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"isDouble()"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"isEntryValid(String)","url":"isEntryValid(java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"isNumber()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"isNumber(int)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"isString()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"IStreamFilterGroup","l":"IStreamFilterGroup(IStreamFilter...)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.filters.IStreamFilter...)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"iterator()"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"kDefaultSize"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"keyPressed(KeyEvent)","url":"keyPressed(java.awt.event.KeyEvent)"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"keyReleased(KeyEvent)","url":"keyReleased(java.awt.event.KeyEvent)"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"last()"},{"p":"com.stuypulse.stuylib.streams","c":"BufferedIStream","l":"last(int)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"Limelight()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"limit(double, double, double)","url":"limit(double,double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"limit(double, double)","url":"limit(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"limit(double)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logAllRegisteredLoggables()"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logError(T, Exception)","url":"logError(T,java.lang.Exception)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech","l":"Logitech(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logManualLoggable(FRCLogger.Loggable)","url":"logManualLoggable(com.stuypulse.stuylib.file.FRCLogger.Loggable)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"logMisc(Level, T, String)","url":"logMisc(java.util.logging.Level,T,java.lang.String)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger.Loggable","l":"logThisIteration()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"longValue()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"LowPassFilter","l":"LowPassFilter(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_SIDE_LENGTH"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_SKEW"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_TARGET_AREA"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_UPDATE_TIME"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_WARNING_TIME"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_X_ANGLE"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MAX_Y_ANGLE"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_SIDE_LENGTH"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_SKEW"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_TARGET_AREA"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_WARNING_TIME"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_X_ANGLE"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"MIN_Y_ANGLE"},{"p":"com.stuypulse.stuylib.streams.filters","c":"MovingAverage","l":"MovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"MYSQL"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"NetKeyboard(int, int)","url":"%3Cinit%3E(int,int)"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"NetKeyboard(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"NetKeyGamepad","l":"NetKeyGamepad(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyListener","l":"NetKeyListener(int, int)","url":"%3Cinit%3E(int,int)"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","c":"NetKeyWindow","l":"NetKeyWindow()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"NewButton","l":"NewButton()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"NewButton","l":"NewButton(BooleanProvider)","url":"%3Cinit%3E(com.stuypulse.stuylib.input.buttons.BooleanProvider)"},{"p":"com.stuypulse.stuylib.input.buttons","c":"ButtonWrapper","l":"old()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"OldButton","l":"OldButton()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.input.buttons","c":"OldButton","l":"OldButton(BooleanProvider)","url":"%3Cinit%3E(com.stuypulse.stuylib.input.buttons.BooleanProvider)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OnDerivative","l":"OnDerivative(IStreamFilter, boolean)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.filters.IStreamFilter,boolean)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OnDerivative","l":"OnDerivative(IStreamFilter)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"open(int, String)","url":"open(int,java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"open(NetworkTableInstance, String)","url":"open(edu.wpi.first.networktables.NetworkTableInstance,java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"open(String)","url":"open(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"open(String)","url":"open(java.lang.String)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedLowPassFilter","l":"OrderedLowPassFilter(double, int)","url":"%3Cinit%3E(double,int)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"OrderedRollingAverage","l":"OrderedRollingAverage(double, int)","url":"%3Cinit%3E(double,int)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"PIDCalculator(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"PIDController()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"PIDController(double, double, double)","url":"%3Cinit%3E(double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"PIP_MAIN"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"PIP_SECONDARY"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"PIPELINE"},{"p":"com.stuypulse.stuylib.streams","c":"PollingIStream","l":"PollingIStream(IStream, double)","url":"%3Cinit%3E(com.stuypulse.stuylib.streams.IStream,double)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"PS4","l":"PS4(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.streams.filters","c":"RateLimit","l":"RateLimit(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"read()"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Reader","l":"Reader(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"registerLoggable(FRCLogger.Loggable)","url":"registerLoggable(com.stuypulse.stuylib.file.FRCLogger.Loggable)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"reset()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"reset()"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"reset()"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"reset()"},{"p":"com.stuypulse.stuylib.util","c":"StopWatch","l":"reset()"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"reset()"},{"p":"com.stuypulse.stuylib.streams.filters","c":"RollingAverage","l":"RollingAverage(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"rotate(double, Vector2D)","url":"rotate(double,com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"rotate(double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"round(double, int)","url":"round(double,int)"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"set(boolean)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"set(double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"set(String)","url":"set(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setBoolean(String, boolean)","url":"setBoolean(java.lang.String,boolean)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCameraStream(Limelight.CameraStream)","url":"setCameraStream(com.stuypulse.stuylib.network.limelight.Limelight.CameraStream)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCamMode(Limelight.CamMode)","url":"setCamMode(com.stuypulse.stuylib.network.limelight.Limelight.CamMode)"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"setControlSpeed(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"setCSVType(CSVType)","url":"setCSVType(com.stuypulse.stuylib.file.csv.CSVType)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCustomNumber(String, Number)","url":"setCustomNumber(java.lang.String,java.lang.Number)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setCustomString(String, String)","url":"setCustomString(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setD(double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"setDefault(boolean)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"setDefault(double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"setDefault(String)","url":"setDefault(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setDouble(String, double)","url":"setDouble(java.lang.String,double)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"setErrorFilter(IStreamFilter)","url":"setErrorFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setI(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setIntegratorFilter(IStreamFilter)","url":"setIntegratorFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.input.keyboard","c":"NetKeyboard","l":"setKey(String, boolean)","url":"setKey(java.lang.String,boolean)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setLEDMode(Limelight.LEDMode)","url":"setLEDMode(com.stuypulse.stuylib.network.limelight.Limelight.LEDMode)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setNumber(String, Number)","url":"setNumber(java.lang.String,java.lang.Number)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"setOutputFilter(IStreamFilter)","url":"setOutputFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setP(double)"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"setPID(double, double, double)","url":"setPID(double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setPipeline(int)"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"setRumble(double)"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"setRumble(double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight","l":"setSnapshotMode(Limelight.SnapshotMode)","url":"setSnapshotMode(com.stuypulse.stuylib.network.limelight.Limelight.SnapshotMode)"},{"p":"com.stuypulse.stuylib.network","c":"SLNetworkTable","l":"setString(String, String)","url":"setString(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"setValue(String)","url":"setValue(java.lang.String)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"setVelocityFilter(IStreamFilter)","url":"setVelocityFilter(com.stuypulse.stuylib.streams.filters.IStreamFilter)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"size()"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"SLMath()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"SmartBoolean(String, boolean)","url":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"com.stuypulse.stuylib.network","c":"SmartBoolean","l":"SmartBoolean(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"SmartNumber(String, double)","url":"%3Cinit%3E(java.lang.String,double)"},{"p":"com.stuypulse.stuylib.network","c":"SmartNumber","l":"SmartNumber(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"SmartString(String, String)","url":"%3Cinit%3E(java.lang.String,java.lang.String)"},{"p":"com.stuypulse.stuylib.network","c":"SmartString","l":"SmartString(String)","url":"%3Cinit%3E(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"Solve3DResult(double, double, double, double, double, double)","url":"%3Cinit%3E(double,double,double,double,double,double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Solve3DResult","l":"Solve3DResult(double[])","url":"%3Cinit%3E(double[])"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"spow(double, double)","url":"spow(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"SLMath","l":"square(double)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"STANDARD"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"STOP"},{"p":"com.stuypulse.stuylib.util","c":"StopWatch","l":"StopWatch()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"sub(Vector2D)","url":"sub(com.stuypulse.stuylib.math.Vector2D)"},{"p":"com.stuypulse.stuylib.util","c":"TankDriveEncoder","l":"TankDriveEncoder(Encoder, Encoder)","url":"%3Cinit%3E(edu.wpi.first.wpilibj.Encoder,edu.wpi.first.wpilibj.Encoder)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"TCSV"},{"p":"com.stuypulse.stuylib.streams.filters","c":"TimedRateLimit","l":"TimedRateLimit(double)","url":"%3Cinit%3E(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"toDouble()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"toNumber()"},{"p":"com.stuypulse.stuylib.control","c":"PIDCalculator","l":"toString()"},{"p":"com.stuypulse.stuylib.control","c":"PIDController","l":"toString()"},{"p":"com.stuypulse.stuylib.exception","c":"ConstructionError","l":"toString()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVElement","l":"toString()"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVReader","l":"toString()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"toString()"},{"p":"com.stuypulse.stuylib.input","c":"Gamepad","l":"TRIGGER_AXIS_THRESHOLD"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"TWO_PER_SECOND"},{"p":"com.stuypulse.stuylib.file","c":"FRCLogger","l":"unregisterLoggable(FRCLogger.Loggable)","url":"unregisterLoggable(com.stuypulse.stuylib.file.FRCLogger.Loggable)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"update(double, double)","url":"update(double,double)"},{"p":"com.stuypulse.stuylib.control","c":"Controller","l":"update(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVType","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CameraStream","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.LEDMode","l":"values()"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.SnapshotMode","l":"values()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"Vector2D()","url":"%3Cinit%3E()"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"Vector2D(double, double)","url":"%3Cinit%3E(double,double)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"Vector2D(double[])","url":"%3Cinit%3E(double[])"},{"p":"com.stuypulse.stuylib.network.limelight","c":"Limelight.CamMode","l":"VISION"},{"p":"com.stuypulse.stuylib.streams.filters","c":"WeightedMovingAverage","l":"WeightedMovingAverage(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"WPIGamepad(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input","c":"WPIGamepad","l":"WPIGamepad(Joystick)","url":"%3Cinit%3E(edu.wpi.first.wpilibj.Joystick)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(double)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(long)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(Object)","url":"write(java.lang.Object)"},{"p":"com.stuypulse.stuylib.file.csv","c":"CSVWriter","l":"write(String)","url":"write(java.lang.String)"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Writer","l":"Writer(String, IStream, int)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.streams.IStream,int)"},{"p":"com.stuypulse.stuylib.streams","c":"CSVIStream.Writer","l":"Writer(String, IStream)","url":"%3Cinit%3E(java.lang.String,com.stuypulse.stuylib.streams.IStream)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"x"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"Xbox(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Xbox","l":"Xbox(XboxController)","url":"%3Cinit%3E(edu.wpi.first.wpilibj.XboxController)"},{"p":"com.stuypulse.stuylib.input.gamepads","c":"Logitech.XMode","l":"XMode(int)","url":"%3Cinit%3E(int)"},{"p":"com.stuypulse.stuylib.math","c":"Vector2D","l":"y"}] \ No newline at end of file diff --git a/docs/member-search-index.zip b/docs/member-search-index.zip index 00adc4fb..952b95b2 100644 Binary files a/docs/member-search-index.zip and b/docs/member-search-index.zip differ diff --git a/docs/overview-summary.html b/docs/overview-summary.html index f4f69d92..abbb1eb9 100644 --- a/docs/overview-summary.html +++ b/docs/overview-summary.html @@ -2,7 +2,7 @@ - + StuyLib 1.0.0 API diff --git a/docs/overview-tree.html b/docs/overview-tree.html index 64df475a..0fab29b4 100644 --- a/docs/overview-tree.html +++ b/docs/overview-tree.html @@ -169,6 +169,7 @@

    Class Hierarchy

  • com.stuypulse.stuylib.input.gamepads.PS4
  • +
  • com.stuypulse.stuylib.input.gamepads.Xbox
  • com.stuypulse.stuylib.streams.filters.HullMovingAverage (implements com.stuypulse.stuylib.streams.filters.IStreamFilter)
  • @@ -217,6 +218,7 @@

    Class Hierarchy

    +
  • com.stuypulse.stuylib.streams.filters.TimedRateLimit (implements com.stuypulse.stuylib.streams.filters.IStreamFilter)
  • edu.wpi.first.wpilibj.buttons.Trigger (implements edu.wpi.first.wpilibj.Sendable)
    • edu.wpi.first.wpilibj.buttons.Button diff --git a/docs/package-search-index.zip b/docs/package-search-index.zip index 57b63cfd..38b49bb9 100644 Binary files a/docs/package-search-index.zip and b/docs/package-search-index.zip differ diff --git a/docs/type-search-index.js b/docs/type-search-index.js index bfe02af4..e66e67c1 100644 --- a/docs/type-search-index.js +++ b/docs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"com.stuypulse.stuylib.input.buttons","l":"BooleanProvider"},{"p":"com.stuypulse.stuylib.streams","l":"BufferedIStream"},{"p":"com.stuypulse.stuylib.input.buttons","l":"ButtonWrapper"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.CameraStream"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.CamMode"},{"p":"com.stuypulse.stuylib.exception","l":"ConstructionError"},{"p":"com.stuypulse.stuylib.control","l":"Controller"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVElement"},{"p":"com.stuypulse.stuylib.streams","l":"CSVIStream"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVReader"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVType"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVWriter"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Logitech.DMode"},{"p":"com.stuypulse.stuylib.streams","l":"FilteredIStream"},{"p":"com.stuypulse.stuylib.file","l":"FRCLogger"},{"p":"com.stuypulse.stuylib.input","l":"Gamepad"},{"p":"com.stuypulse.stuylib.streams.filters","l":"HullMovingAverage"},{"p":"com.stuypulse.stuylib.streams.filters","l":"InvertedHullMovingAverage"},{"p":"com.stuypulse.stuylib.streams","l":"IStream"},{"p":"com.stuypulse.stuylib.streams.filters","l":"IStreamFilter"},{"p":"com.stuypulse.stuylib.streams.filters","l":"IStreamFilterGroup"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.LEDMode"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight"},{"p":"com.stuypulse.stuylib.file","l":"FRCLogger.Loggable"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Logitech"},{"p":"com.stuypulse.stuylib.streams.filters","l":"LowPassFilter"},{"p":"com.stuypulse.stuylib.streams.filters","l":"MovingAverage"},{"p":"com.stuypulse.stuylib.input.keyboard","l":"NetKeyboard"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"NetKeyGamepad"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","l":"NetKeyListener"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","l":"NetKeyWindow"},{"p":"com.stuypulse.stuylib.input.buttons","l":"NewButton"},{"p":"com.stuypulse.stuylib.input.buttons","l":"OldButton"},{"p":"com.stuypulse.stuylib.streams.filters","l":"OnDerivative"},{"p":"com.stuypulse.stuylib.streams.filters","l":"OrderedLowPassFilter"},{"p":"com.stuypulse.stuylib.streams.filters","l":"OrderedRollingAverage"},{"p":"com.stuypulse.stuylib.control","l":"PIDCalculator"},{"p":"com.stuypulse.stuylib.control","l":"PIDController"},{"p":"com.stuypulse.stuylib.streams","l":"PollingIStream"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"PS4"},{"p":"com.stuypulse.stuylib.streams.filters","l":"RateLimit"},{"p":"com.stuypulse.stuylib.streams","l":"CSVIStream.Reader"},{"p":"com.stuypulse.stuylib.streams.filters","l":"RollingAverage"},{"p":"com.stuypulse.stuylib.math","l":"SLMath"},{"p":"com.stuypulse.stuylib.network","l":"SLNetworkTable"},{"p":"com.stuypulse.stuylib.network","l":"SmartBoolean"},{"p":"com.stuypulse.stuylib.network","l":"SmartNumber"},{"p":"com.stuypulse.stuylib.network","l":"SmartString"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.SnapshotMode"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Solve3DResult"},{"p":"com.stuypulse.stuylib.util","l":"StopWatch"},{"p":"com.stuypulse.stuylib.util","l":"TankDriveEncoder"},{"p":"com.stuypulse.stuylib.math","l":"Vector2D"},{"p":"com.stuypulse.stuylib.streams.filters","l":"WeightedMovingAverage"},{"p":"com.stuypulse.stuylib.input","l":"WPIGamepad"},{"p":"com.stuypulse.stuylib.streams","l":"CSVIStream.Writer"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Logitech.XMode"}] \ No newline at end of file +typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"com.stuypulse.stuylib.input.buttons","l":"BooleanProvider"},{"p":"com.stuypulse.stuylib.streams","l":"BufferedIStream"},{"p":"com.stuypulse.stuylib.input.buttons","l":"ButtonWrapper"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.CameraStream"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.CamMode"},{"p":"com.stuypulse.stuylib.exception","l":"ConstructionError"},{"p":"com.stuypulse.stuylib.control","l":"Controller"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVElement"},{"p":"com.stuypulse.stuylib.streams","l":"CSVIStream"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVReader"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVType"},{"p":"com.stuypulse.stuylib.file.csv","l":"CSVWriter"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Logitech.DMode"},{"p":"com.stuypulse.stuylib.streams","l":"FilteredIStream"},{"p":"com.stuypulse.stuylib.file","l":"FRCLogger"},{"p":"com.stuypulse.stuylib.input","l":"Gamepad"},{"p":"com.stuypulse.stuylib.streams.filters","l":"HullMovingAverage"},{"p":"com.stuypulse.stuylib.streams.filters","l":"InvertedHullMovingAverage"},{"p":"com.stuypulse.stuylib.streams","l":"IStream"},{"p":"com.stuypulse.stuylib.streams.filters","l":"IStreamFilter"},{"p":"com.stuypulse.stuylib.streams.filters","l":"IStreamFilterGroup"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.LEDMode"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight"},{"p":"com.stuypulse.stuylib.file","l":"FRCLogger.Loggable"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Logitech"},{"p":"com.stuypulse.stuylib.streams.filters","l":"LowPassFilter"},{"p":"com.stuypulse.stuylib.streams.filters","l":"MovingAverage"},{"p":"com.stuypulse.stuylib.input.keyboard","l":"NetKeyboard"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"NetKeyGamepad"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","l":"NetKeyListener"},{"p":"com.stuypulse.stuylib.input.keyboard.computer","l":"NetKeyWindow"},{"p":"com.stuypulse.stuylib.input.buttons","l":"NewButton"},{"p":"com.stuypulse.stuylib.input.buttons","l":"OldButton"},{"p":"com.stuypulse.stuylib.streams.filters","l":"OnDerivative"},{"p":"com.stuypulse.stuylib.streams.filters","l":"OrderedLowPassFilter"},{"p":"com.stuypulse.stuylib.streams.filters","l":"OrderedRollingAverage"},{"p":"com.stuypulse.stuylib.control","l":"PIDCalculator"},{"p":"com.stuypulse.stuylib.control","l":"PIDController"},{"p":"com.stuypulse.stuylib.streams","l":"PollingIStream"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"PS4"},{"p":"com.stuypulse.stuylib.streams.filters","l":"RateLimit"},{"p":"com.stuypulse.stuylib.streams","l":"CSVIStream.Reader"},{"p":"com.stuypulse.stuylib.streams.filters","l":"RollingAverage"},{"p":"com.stuypulse.stuylib.math","l":"SLMath"},{"p":"com.stuypulse.stuylib.network","l":"SLNetworkTable"},{"p":"com.stuypulse.stuylib.network","l":"SmartBoolean"},{"p":"com.stuypulse.stuylib.network","l":"SmartNumber"},{"p":"com.stuypulse.stuylib.network","l":"SmartString"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Limelight.SnapshotMode"},{"p":"com.stuypulse.stuylib.network.limelight","l":"Solve3DResult"},{"p":"com.stuypulse.stuylib.util","l":"StopWatch"},{"p":"com.stuypulse.stuylib.util","l":"TankDriveEncoder"},{"p":"com.stuypulse.stuylib.streams.filters","l":"TimedRateLimit"},{"p":"com.stuypulse.stuylib.math","l":"Vector2D"},{"p":"com.stuypulse.stuylib.streams.filters","l":"WeightedMovingAverage"},{"p":"com.stuypulse.stuylib.input","l":"WPIGamepad"},{"p":"com.stuypulse.stuylib.streams","l":"CSVIStream.Writer"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Xbox"},{"p":"com.stuypulse.stuylib.input.gamepads","l":"Logitech.XMode"}] \ No newline at end of file diff --git a/docs/type-search-index.zip b/docs/type-search-index.zip index 45c77714..5f21c307 100644 Binary files a/docs/type-search-index.zip and b/docs/type-search-index.zip differ diff --git a/src/com/stuypulse/stuylib/input/Gamepad.java b/src/com/stuypulse/stuylib/input/Gamepad.java index e947dfd2..0be316d3 100644 --- a/src/com/stuypulse/stuylib/input/Gamepad.java +++ b/src/com/stuypulse/stuylib/input/Gamepad.java @@ -126,20 +126,21 @@ public void setRumble(double intensity) { /*** BUTTONS BASED OFF OF IMPLEMENTED FUNCTIONS ***/ /**************************************************/ + private static double getAngle(double x, double y) { + if(x == 0 && y == 0) { + return 0; + } else { + return Math.toDegrees(Math.atan2(y, x)); + } + } + // Left Stick // public final double getLeftMag() { return Math.hypot(getLeftX(), getLeftY()); } public final double getLeftAngle() { - double x = getLeftX(); - double y = getLeftY(); - - if(x == 0 && y == 0) { - return 0; - } else { - return Math.toDegrees(Math.atan2(y, x)); - } + return getAngle(getLeftX(), getLeftY()); } // Right Stick // @@ -148,14 +149,7 @@ public final double getRightMag() { } public final double getRightAngle() { - double x = getRightX(); - double y = getRightY(); - - if(x == 0 && y == 0) { - return 0; - } else { - return Math.toDegrees(Math.atan2(y, x)); - } + return getAngle(getRightX(), getRightY()); } // D-Pad // @@ -167,21 +161,6 @@ public final double getDPadY() { return (getRawDPadUp() ? 1.0 : 0.0) - (getRawDPadDown() ? 1.0 : 0.0); } - public final double getDPadMag() { - return Math.hypot(getDPadX(), getDPadY()); - } - - public final double getDPadAngle() { - double x = getDPadX(); - double y = getDPadY(); - - if(x == 0 && y == 0) { - return 0; - } else { - return Math.toDegrees(Math.atan2(y, x)); - } - } - public final ButtonWrapper getDPadUp() { return new ButtonWrapper(() -> this.getRawDPadUp()); } diff --git a/src/com/stuypulse/stuylib/input/gamepads/Logitech.java b/src/com/stuypulse/stuylib/input/gamepads/Logitech.java index dd7f7644..2c7c82c4 100644 --- a/src/com/stuypulse/stuylib/input/gamepads/Logitech.java +++ b/src/com/stuypulse/stuylib/input/gamepads/Logitech.java @@ -84,6 +84,10 @@ public boolean getRawLeftButton() { return getRawButton(1); } + public boolean getRawBottomButton() { + return getRawButton(2); + } + public boolean getRawRightButton() { return getRawButton(3); } @@ -92,10 +96,6 @@ public boolean getRawTopButton() { return getRawButton(4); } - public boolean getRawBottomButton() { - return getRawButton(2); - } - // Start / Select / Option // public boolean getRawSelectButton() { return getRawButton(9); @@ -171,6 +171,10 @@ public boolean getRawLeftButton() { return getRawButton(3); } + public boolean getRawBottomButton() { + return getRawButton(1); + } + public boolean getRawRightButton() { return getRawButton(2); } @@ -179,10 +183,6 @@ public boolean getRawTopButton() { return getRawButton(4); } - public boolean getRawBottomButton() { - return getRawButton(1); - } - // Start / Select / Option // public boolean getRawSelectButton() { return getRawButton(7); diff --git a/src/com/stuypulse/stuylib/input/gamepads/PS4.java b/src/com/stuypulse/stuylib/input/gamepads/PS4.java index ffbc786b..90645695 100644 --- a/src/com/stuypulse/stuylib/input/gamepads/PS4.java +++ b/src/com/stuypulse/stuylib/input/gamepads/PS4.java @@ -73,6 +73,10 @@ public boolean getRawLeftButton() { return getRawButton(1); } + public boolean getRawBottomButton() { + return getRawButton(2); + } + public boolean getRawRightButton() { return getRawButton(3); } @@ -81,10 +85,6 @@ public boolean getRawTopButton() { return getRawButton(4); } - public boolean getRawBottomButton() { - return getRawButton(2); - } - // Start / Select / Option // public boolean getRawSelectButton() { return getRawButton(9); diff --git a/src/com/stuypulse/stuylib/input/gamepads/Xbox.java b/src/com/stuypulse/stuylib/input/gamepads/Xbox.java new file mode 100644 index 00000000..866188db --- /dev/null +++ b/src/com/stuypulse/stuylib/input/gamepads/Xbox.java @@ -0,0 +1,123 @@ +package com.stuypulse.stuylib.input.gamepads; + +import com.stuypulse.stuylib.input.Gamepad; + +import edu.wpi.first.wpilibj.XboxController; +import edu.wpi.first.wpilibj.GenericHID.Hand; + +/** + * A wrapper for the XboxController class to work with the gamepad interface. + * + * @author Sam (sam.belliveau@gmail.com) + */ + +public class Xbox extends Gamepad { + + private XboxController mJoystick; + + // Constructor // + public Xbox(XboxController joystick) { + mJoystick = joystick; + } + + public Xbox(int port) { + this(new XboxController(port)); + } + + // Get the underlying XboxClass + public XboxController getJoystick() { + return mJoystick; + } + + // Left Stick // + public double getLeftX() { + return getJoystick().getX(Hand.kLeft); + } + + public double getLeftY() { + return getJoystick().getY(Hand.kLeft); + } + + // Right Stick // + public double getRightX() { + return getJoystick().getX(Hand.kRight); + } + + public double getRightY() { + return getJoystick().getY(Hand.kRight); + } + + // D-Pad // + public boolean getRawDPadUp() { + return getJoystick().getPOV() == 0; + } + + public boolean getRawDPadDown() { + return getJoystick().getPOV() == 180; + } + + public boolean getRawDPadLeft() { + return getJoystick().getPOV() == 270; + } + + public boolean getRawDPadRight() { + return getJoystick().getPOV() == 90; + } + + // Bumpers // + public boolean getRawLeftBumper() { + return getJoystick().getBumper(Hand.kLeft); + } + + public boolean getRawRightBumper() { + return getJoystick().getBumper(Hand.kRight); + } + + // Triggers // + public double getRawLeftTriggerAxis() { + return getJoystick().getTriggerAxis(Hand.kLeft); + } + + public double getRawRightTriggerAxis() { + return getJoystick().getTriggerAxis(Hand.kLeft); + } + + // Face Buttons // + public boolean getRawLeftButton() { + return getJoystick().getXButton(); + } + + public boolean getRawBottomButton() { + return getJoystick().getAButton(); + } + + public boolean getRawRightButton() { + return getJoystick().getBButton(); + } + + public boolean getRawTopButton() { + return getJoystick().getYButton(); + } + + // Start / Select / Option // + public boolean getRawSelectButton() { + return getJoystick().getStartButton(); + } + + public boolean getRawStartButton() { + return getJoystick().getStartButton(); + } + + public boolean getRawOptionButton() { + return getJoystick().getStartButton(); + } + + // Analog Stick Buttons // + public boolean getRawLeftAnalogButton() { + return getJoystick().getStickButton(Hand.kLeft); + } + + public boolean getRawRightAnalogButton() { + return getJoystick().getStickButton(Hand.kRight); + } +} diff --git a/src/com/stuypulse/stuylib/streams/filters/IStreamFilter.java b/src/com/stuypulse/stuylib/streams/filters/IStreamFilter.java index be05a205..3fca6402 100644 --- a/src/com/stuypulse/stuylib/streams/filters/IStreamFilter.java +++ b/src/com/stuypulse/stuylib/streams/filters/IStreamFilter.java @@ -14,5 +14,5 @@ public interface IStreamFilter { * @param next next input value * @return next modified value */ - double get(double next); + public double get(double next); } diff --git a/src/com/stuypulse/stuylib/streams/filters/TimedRateLimit.java b/src/com/stuypulse/stuylib/streams/filters/TimedRateLimit.java new file mode 100644 index 00000000..99cd9038 --- /dev/null +++ b/src/com/stuypulse/stuylib/streams/filters/TimedRateLimit.java @@ -0,0 +1,43 @@ +package com.stuypulse.stuylib.streams.filters; + +import com.stuypulse.stuylib.exception.ConstructionError; +import com.stuypulse.stuylib.math.SLMath; +import com.stuypulse.stuylib.util.StopWatch; + +/** + * This class lets you rate limit a stream of inputs + * + * Instead of being based on the rate that update is called, the value you give + * it is based on how much it should be able to change in one second. + * + * @author Sam (sam.belliveau@gmail.com) + */ + +public class TimedRateLimit implements IStreamFilter { + + // Used to get the time since the last get call + private StopWatch mTimer; + + // Used to take the difference and + private double mLastValue; + private double mRateLimit; + + /** + * @param rateLimit The amount that the value should be able to change in + * one second. + */ + public TimedRateLimit(double rateLimit) { + if(rateLimit <= 0) { + throw new ConstructionError("TimedRateLimit(double rateLimit)", + "rateLimit must be greater than 0!"); + } + + mTimer = new StopWatch(); + mLastValue = 0; + } + + public double get(double next) { + return mLastValue += SLMath.limit(next - mLastValue, + mRateLimit * mTimer.reset()); + } +} diff --git a/src/com/stuypulse/stuylib/util/TankDriveEncoder.java b/src/com/stuypulse/stuylib/util/TankDriveEncoder.java index 5f354d07..020cbab6 100644 --- a/src/com/stuypulse/stuylib/util/TankDriveEncoder.java +++ b/src/com/stuypulse/stuylib/util/TankDriveEncoder.java @@ -61,8 +61,8 @@ public void reset() { * Record values from the drivetrain */ private void update() { - double left = mLeftEncoder.get(); - double right = mRightEncoder.get(); + double left = mLeftEncoder.getDistance(); + double right = mRightEncoder.getDistance(); if(!mLeftEncoder.getStopped()) { mLeftDistance += left;