From 0728f567f4ba9b8ed914c23a9805d26d5815509c Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 19 Nov 2023 08:08:06 -0800 Subject: [PATCH 01/47] Cleaning up logging so things function with the dashboard --- .../java/com/technototes/library/logger/Logger.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index bbe5831e..1f3c9867 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -126,11 +126,13 @@ private Entry[] generate(Set> a) { private void update(Entry[] choice) { try { - for (int i = 0; i < choice.length; i++) { - telemetry.addLine( - (i > 9 ? i + "| " : i + " | ") + - (choice[i] == null ? "" : choice[i].getTag().replace('`', captionDivider) + choice[i].toString()) - ); + for (Entry item : choice) { + // telemetry.addLine( + // (i > 9 ? i + "| " : i + " | ") + + // (choice[i] == null ? "" : choice[i].getTag().replace('`', captionDivider) + choice[i].toString()) + // ); + // All teh fancy HTML stuff gets in the way of the FTC Dashboard graph + telemetry.addData(item.getName(), item.get()); } telemetry.update(); } catch (Exception ignored) {} From 6a7b365354566ff3c0312db426140363cdde2a77 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 19 Nov 2023 09:58:29 -0800 Subject: [PATCH 02/47] Ripped out the NumberBar and NumberSlider lines. Colors are next. --- .../com/technototes/library/logger/Log.java | 131 ------------------ .../technototes/library/logger/Logger.java | 37 +---- .../library/logger/entry/NumberBarEntry.java | 35 ----- .../logger/entry/NumberSliderEntry.java | 60 -------- 4 files changed, 1 insertion(+), 262 deletions(-) delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberBarEntry.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberSliderEntry.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java index fedcf771..ac604932 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java @@ -100,137 +100,6 @@ Color numberColor() default Color.NO_COLOR; } - /** Log a number, but store it as a number bar - * - */ - @Retention(RetentionPolicy.RUNTIME) - @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) - @interface NumberBar { - /** Store index for this annotation (position in telemetry) - * - * @return The index - */ - int index() default -1; - - /** Store priority for this log entry (to pick the most wanted entry over others with same index) - * - * @return The priority - */ - int priority() default -1; - - /** Store the min for the number bar to scale to - * - * @return The min - */ - double min() default -1; - - /** Store the max for the number bar to scale to - * - * @return The max - */ - double max() default 1; - - /** Store the scale for the number bar to scale to - * - * @return The scale - */ - double scale() default 0.1; - - /** Store the name for this annotation to be be beside - * - * @return The name as a string - */ - String name() default ""; - - /** The color for the tag for the bar - * - * @return The color - */ - Color color() default Color.NO_COLOR; - - /** The color for the filled in bar color - * - * @return The color - */ - Color completeBarColor() default Color.NO_COLOR; - - /** The color for the not filled in bar color - * - * @return The color - */ - Color incompleteBarColor() default Color.NO_COLOR; - - /** The color for the bar outlines - * - * @return The color - */ - Color outline() default Color.NO_COLOR; - } - - @Retention(RetentionPolicy.RUNTIME) - @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) - @interface NumberSlider { - /** Store index for this annotation (position in telemetry) - * - * @return The index - */ - int index() default -1; - - /** Store priority for this log entry (to pick the most wanted entry over others with same index) - * - * @return The priority - */ - int priority() default -1; - - /** Store the min for the number bar to scale to - * - * @return The min - */ - double min() default -1; - - /** Store the max for the number bar to scale to - * - * @return The max - */ - double max() default 1; - - /** Store the scale for the number bar to scale to - * - * @return The scale - */ - double scale() default 0.1; - - /** Store the name for this annotation to be be beside - * - * @return The name as a string - */ - String name() default ""; - - /** The color for the tag for the slider - * - * @return The color - */ - Color color() default Color.NO_COLOR; - - /** The color for the slider background - * - * @return The color - */ - Color sliderBackground() default Color.NO_COLOR; - - /** The color for the slider outline - * - * @return The color - */ - Color outline() default Color.NO_COLOR; - - /** The color for the slider slide - * - * @return The color - */ - Color slider() default Color.NO_COLOR; - } - @Retention(RetentionPolicy.RUNTIME) @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) @interface Boolean { diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index 1f3c9867..2023a89c 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -3,15 +3,12 @@ import com.qualcomm.robotcore.eventloop.opmode.OpMode; import com.technototes.library.logger.entry.BooleanEntry; import com.technototes.library.logger.entry.Entry; -import com.technototes.library.logger.entry.NumberBarEntry; import com.technototes.library.logger.entry.NumberEntry; -import com.technototes.library.logger.entry.NumberSliderEntry; import com.technototes.library.logger.entry.StringEntry; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.sql.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; @@ -67,8 +64,6 @@ private void configure(Object root) { } else if ( field.isAnnotationPresent(Log.class) || field.isAnnotationPresent(Log.Number.class) || - field.isAnnotationPresent(Log.NumberSlider.class) || - field.isAnnotationPresent(Log.NumberBar.class) || field.isAnnotationPresent(Log.Boolean.class) ) { if (field.getType().isPrimitive() || o instanceof String) { @@ -185,37 +180,7 @@ private void set(Annotation[] a, Supplier m) { boolean init = false, run = true; Entry e = null; for (Annotation as : a) { - if (as instanceof Log.NumberSlider) { - e = - new NumberSliderEntry( - ((Log.NumberSlider) as).name(), - (Supplier) m, - ((Log.NumberSlider) as).index(), - ((Log.NumberSlider) as).min(), - ((Log.NumberSlider) as).max(), - ((Log.NumberSlider) as).scale(), - ((Log.NumberSlider) as).color(), - ((Log.NumberSlider) as).sliderBackground(), - ((Log.NumberSlider) as).outline(), - ((Log.NumberSlider) as).slider() - ); - e.setPriority(((Log.NumberSlider) as).priority()); - } else if (as instanceof Log.NumberBar) { - e = - new NumberBarEntry( - ((Log.NumberBar) as).name(), - (Supplier) m, - ((Log.NumberBar) as).index(), - ((Log.NumberBar) as).min(), - ((Log.NumberBar) as).max(), - ((Log.NumberBar) as).scale(), - ((Log.NumberBar) as).color(), - ((Log.NumberBar) as).completeBarColor(), - ((Log.NumberBar) as).outline(), - ((Log.NumberBar) as).incompleteBarColor() - ); - e.setPriority(((Log.NumberBar) as).priority()); - } else if (as instanceof Log.Number) { + if (as instanceof Log.Number) { e = new NumberEntry( ((Log.Number) as).name(), diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberBarEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberBarEntry.java deleted file mode 100644 index f2ec744f..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberBarEntry.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.technototes.library.logger.entry; - -import com.technototes.library.logger.Logger; -import com.technototes.library.util.Color; -import java.util.function.Supplier; - -public class NumberBarEntry extends NumberSliderEntry { - - // primary is bar color, secondary is outline, tertiary is incomplete bar - public NumberBarEntry( - String n, - Supplier s, - int x, - Number mi, - Number ma, - Number sc, - Color c, - Color pri, - Color sec, - Color tert - ) { - super(n, s, x, mi, ma, sc, c, pri, sec, tert); - } - - @Override - public String toString() { - StringBuilder r = new StringBuilder(secondary.format("[")); - int totalAmt = (int) ((max() - min()) / scale()); - int fullAmt = (int) (Math.round((getDouble() - min()) / scale())); - r.append(primary.format(Logger.repeat("█", fullAmt + 1))); - r.append(tertiary.format(Logger.repeat("━", totalAmt - fullAmt))); - r.append(secondary.format("]")); - return r.toString(); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberSliderEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberSliderEntry.java deleted file mode 100644 index 59f212ed..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberSliderEntry.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.technototes.library.logger.entry; - -import com.technototes.library.logger.Logger; -import com.technototes.library.util.Color; -import java.util.function.Supplier; - -public class NumberSliderEntry extends NumberEntry { - - protected Number min, max, scale; - protected Color primary, secondary, tertiary; - - public NumberSliderEntry( - String n, - Supplier s, - int x, - Number mi, - Number ma, - Number sc, - Color c, - Color pr, - Color sec, - Color tert - ) { - super(n, s, x, c); - min = mi; - max = ma; - scale = sc; - primary = pr; - secondary = sec; - tertiary = tert; - } - - public double min() { - return min.doubleValue(); - } - - public double max() { - return max.doubleValue(); - } - - public double scale() { - return scale.doubleValue(); - } - - public double getDouble() { - return get().doubleValue(); - } - - @Override - public String toString() { - StringBuilder r = new StringBuilder(secondary.format("[")); - int totalAmt = (int) ((max() - min()) / scale()); - int fullAmt = (int) (Math.round((getDouble() - min()) / scale())); - r.append(tertiary.format(Logger.repeat("━", fullAmt))); - r.append(primary.format("█")); - r.append(tertiary.format(Logger.repeat("━", totalAmt - fullAmt))); - r.append(secondary.format("]")); - return r.toString(); - } -} From 9bba9bc02ad357c7ec4f764492610eb46b5262fd Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 19 Nov 2023 10:05:33 -0800 Subject: [PATCH 03/47] Removed the color support from the logging stuff --- .../com/technototes/library/logger/Log.java | 40 ------------------- .../technototes/library/logger/Logger.java | 13 ++---- .../library/logger/entry/BooleanEntry.java | 11 ++--- .../library/logger/entry/Entry.java | 27 ++----------- .../library/logger/entry/NumberEntry.java | 9 +---- .../library/logger/entry/StringEntry.java | 9 ++--- 6 files changed, 15 insertions(+), 94 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java index ac604932..3c971503 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java @@ -4,7 +4,6 @@ import static java.lang.annotation.ElementType.LOCAL_VARIABLE; import static java.lang.annotation.ElementType.METHOD; -import com.technototes.library.util.Color; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Repeatable; @@ -44,18 +43,6 @@ */ String format() default "%s"; - /** The color for the entry - * - * @return The color - */ - Color entryColor() default Color.NO_COLOR; - - /** The color for the tag for the entry - * - * @return The color - */ - Color color() default Color.NO_COLOR; - @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.FIELD, ElementType.METHOD }) @@ -86,18 +73,6 @@ * @return The name as a string */ String name() default ""; - - /** The color for the tag for the number - * - * @return The color - */ - Color color() default Color.NO_COLOR; - - /** The color for the number - * - * @return The color - */ - Color numberColor() default Color.NO_COLOR; } @Retention(RetentionPolicy.RUNTIME) @@ -127,11 +102,6 @@ */ String trueFormat() default "%s"; - /** The color for the true String - * - * @return The color - */ - Color trueColor() default Color.NO_COLOR; /** Store the string when the annotated method returns false * @@ -145,11 +115,6 @@ */ String falseFormat() default "%s"; - /** The color for the false String - * - * @return The color - */ - Color falseColor() default Color.NO_COLOR; /** Store the name for this annotation to be be beside * @@ -157,10 +122,5 @@ */ String name() default ""; - /** The color for the tag for the boolean - * - * @return The color - */ - Color color() default Color.NO_COLOR; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index 2023a89c..c240bbf9 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -185,9 +185,7 @@ private void set(Annotation[] a, Supplier m) { new NumberEntry( ((Log.Number) as).name(), (Supplier) m, - ((Log.Number) as).index(), - ((Log.Number) as).color(), - ((Log.Number) as).numberColor() + ((Log.Number) as).index() ); e.setPriority(((Log.Number) as).priority()); } else if (as instanceof Log) { @@ -196,9 +194,7 @@ private void set(Annotation[] a, Supplier m) { ((Log) as).name(), (Supplier) m, ((Log) as).index(), - ((Log) as).color(), - ((Log) as).format(), - ((Log) as).entryColor() + ((Log) as).format() ); e.setPriority(((Log) as).priority()); } else if (as instanceof Log.Boolean) { @@ -209,11 +205,8 @@ private void set(Annotation[] a, Supplier m) { ((Log.Boolean) as).index(), ((Log.Boolean) as).trueValue(), ((Log.Boolean) as).falseValue(), - ((Log.Boolean) as).color(), ((Log.Boolean) as).trueFormat(), - ((Log.Boolean) as).falseFormat(), - ((Log.Boolean) as).trueColor(), - ((Log.Boolean) as).falseColor() + ((Log.Boolean) as).falseFormat() ); e.setPriority(((Log.Boolean) as).priority()); } else if (as instanceof LogConfig.Run) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java index 21d201ed..4cf8ba17 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java @@ -13,15 +13,12 @@ public BooleanEntry( int index, String wt, String wf, - Color c, String tf, - String ff, - Color tc, - Color fc + String ff ) { - super(n, s, index, c); - trueEntry = new StringEntry("", () -> wt, -1, Color.NO_COLOR, tf, tc); - falseEntry = new StringEntry("", () -> wf, -1, Color.NO_COLOR, ff, fc); + super(n, s, index); + trueEntry = new StringEntry("", () -> wt, -1, tf); + falseEntry = new StringEntry("", () -> wf, -1, ff); } @Override diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/Entry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/Entry.java index a4adf087..aa788e02 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/Entry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/Entry.java @@ -1,6 +1,5 @@ package com.technototes.library.logger.entry; -import com.technototes.library.util.Color; import java.util.function.Supplier; /** @@ -27,29 +26,18 @@ public abstract class Entry implements Supplier { * The name of the Entry */ protected String name; - /** - * String to use a 'header' (calculated from name and color) - */ - protected String tag; - /** - * Color to display - */ - protected Color color; /** - * Create an entry with name, value, index, and color + * Create an entry with name, value, index * * @param n Name of the entry * @param s Value function to display * @param index Index of the entry - * @param c Color to display */ - public Entry(String n, Supplier s, int index, Color c) { + public Entry(String n, Supplier s, int index) { x = index; supplier = s; name = n; - color = c; - tag = (name.equals("") ? " " : color.format(name) + " ` "); } /** @@ -79,16 +67,7 @@ public String toString() { } /** - * The tag for the entry - * - * @return The tag - */ - public String getTag() { - return tag; - } - - /** - * Get the name (unformatted tag) + * Get the name * * @return The name */ diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java index fa024288..72b01293 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java @@ -7,15 +7,10 @@ public class NumberEntry extends Entry { protected Color numberColor; - public NumberEntry(String n, Supplier s, int x, Color c, Color num) { - super(n, s, x, c); - numberColor = num; + public NumberEntry(String n, Supplier s, int x) { + super(n, s, x); } - public NumberEntry(String n, Supplier s, int x, Color c) { - super(n, s, x, c); - numberColor = Color.NO_COLOR; - } @Override public String toString() { diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/StringEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/StringEntry.java index 0f515650..1c1bc536 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/StringEntry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/StringEntry.java @@ -1,21 +1,18 @@ package com.technototes.library.logger.entry; -import com.technototes.library.util.Color; import java.util.function.Supplier; public class StringEntry extends Entry { private String format; - private Color entryColor; - public StringEntry(String n, Supplier s, int x, Color c, String f, Color ec) { - super(n, s, x, c); + public StringEntry(String n, Supplier s, int x, String f) { + super(n, s, x); format = f; - entryColor = ec; } @Override public String toString() { - return entryColor.format(format, get()); + return String.format(format, get()); } } From 7d9b05e35b3c8360dd972e10b06ec77541381c39 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 19 Nov 2023 10:39:30 -0800 Subject: [PATCH 04/47] Minor cleaning up --- .../java/com/technototes/library/logger/Log.java | 14 -------------- .../com/technototes/library/logger/LogConfig.java | 12 ++++++------ .../com/technototes/library/logger/Logger.java | 12 +++++------- .../library/logger/entry/BooleanEntry.java | 12 +++++------- build.dependencies.gradle | 8 ++++---- readme.md | 4 ++-- 6 files changed, 22 insertions(+), 40 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java index 3c971503..67d61546 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java @@ -96,26 +96,12 @@ */ String trueValue() default "true"; - /** The format for when the boolean returns true - * - * @return The String format - */ - String trueFormat() default "%s"; - - /** Store the string when the annotated method returns false * * @return The string */ String falseValue() default "false"; - /** The format for when the boolean returns false - * - * @return The String format - */ - String falseFormat() default "%s"; - - /** Store the name for this annotation to be be beside * * @return The name as a string diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/LogConfig.java b/RobotLibrary/src/main/java/com/technototes/library/logger/LogConfig.java index 3288579e..e3f4919d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/LogConfig.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/LogConfig.java @@ -32,26 +32,26 @@ boolean duringInit() default false; } - /** Annotation for Whitelisting Opmodes to log this item + /** Annotation for allowing Opmodes to log this item * */ @Retention(RetentionPolicy.RUNTIME) @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) - @interface Whitelist { - /** The whitelisted opmodes + @interface AllowList { + /** The allowed opmodes * * @return Opmode Classes */ Class[] value(); } - /** Annotation for Blacklisting Opmodes to log this item + /** Annotation for denying Opmodes to log this item * */ @Retention(RetentionPolicy.RUNTIME) @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) - @interface Blacklist { - /** The blacklisted opmodes + @interface DenyList { + /** The denied opmodes * * @return Opmode Classes */ diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index c240bbf9..693fabee 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -204,9 +204,7 @@ private void set(Annotation[] a, Supplier m) { (Supplier) m, ((Log.Boolean) as).index(), ((Log.Boolean) as).trueValue(), - ((Log.Boolean) as).falseValue(), - ((Log.Boolean) as).trueFormat(), - ((Log.Boolean) as).falseFormat() + ((Log.Boolean) as).falseValue() ); e.setPriority(((Log.Boolean) as).priority()); } else if (as instanceof LogConfig.Run) { @@ -260,13 +258,13 @@ private static Supplier getCustom(Object o) { } private boolean isFieldAllowed(Field f) { - if (f.isAnnotationPresent(LogConfig.Whitelist.class)) { - if (!Arrays.asList(f.getAnnotation(LogConfig.Whitelist.class).value()).contains(opMode.getClass())) { + if (f.isAnnotationPresent(LogConfig.AllowList.class)) { + if (!Arrays.asList(f.getAnnotation(LogConfig.AllowList.class).value()).contains(opMode.getClass())) { return false; } } - if (f.isAnnotationPresent(LogConfig.Blacklist.class)) { - if (Arrays.asList(f.getAnnotation(LogConfig.Blacklist.class).value()).contains(opMode.getClass())) { + if (f.isAnnotationPresent(LogConfig.DenyList.class)) { + if (Arrays.asList(f.getAnnotation(LogConfig.DenyList.class).value()).contains(opMode.getClass())) { return false; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java index 4cf8ba17..e6521b76 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java @@ -5,24 +5,22 @@ public class BooleanEntry extends Entry { - private StringEntry trueEntry, falseEntry; + private String trueEntry, falseEntry; public BooleanEntry( String n, Supplier s, int index, String wt, - String wf, - String tf, - String ff + String wf ) { super(n, s, index); - trueEntry = new StringEntry("", () -> wt, -1, tf); - falseEntry = new StringEntry("", () -> wf, -1, ff); + trueEntry = wt; + falseEntry = wf; } @Override public String toString() { - return (get() ? trueEntry : falseEntry).get(); + return (get() ? trueEntry : falseEntry); } } diff --git a/build.dependencies.gradle b/build.dependencies.gradle index 4cbf1215..3f94b0d1 100644 --- a/build.dependencies.gradle +++ b/build.dependencies.gradle @@ -6,9 +6,9 @@ repositories { } dependencies { - implementation 'org.firstinspires.ftc:RobotCore:9.0.0' - implementation 'org.firstinspires.ftc:RobotServer:9.0.0' - implementation 'org.firstinspires.ftc:Hardware:9.0.0' - implementation 'org.firstinspires.ftc:FtcCommon:9.0.0' + implementation 'org.firstinspires.ftc:RobotCore:9.0.1' + implementation 'org.firstinspires.ftc:RobotServer:9.0.1' + implementation 'org.firstinspires.ftc:Hardware:9.0.1' + implementation 'org.firstinspires.ftc:FtcCommon:9.0.1' implementation 'androidx.appcompat:appcompat:1.3.1' } diff --git a/readme.md b/readme.md index e4f40b11..54c0f6d9 100644 --- a/readme.md +++ b/readme.md @@ -4,8 +4,8 @@ TechnoLib is a FTC Library for everyone: - WPILib inspired command structure - Tons of simple implementations to provide abstractions, and teach you the basics -- EOCV integration for vision -- RoadRunner integration for pathfollowing +- EasyOpenCV integration for vision +- RoadRunner integration for path-following - Annotation based Telemetry - And much much more From 57ae0d7fe6cfa9a0d574225e26b86bc1445dc2df Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 19 Nov 2023 10:43:24 -0800 Subject: [PATCH 05/47] Updated the docs link. I should also update github.io... --- docs/Path/allclasses-index.html | 1248 +- docs/Path/allpackages-index.html | 170 +- .../path/command/MecanumDriveCommand.html | 18 +- .../RegenerativeTrajectoryCommand.html | 14 +- .../command/TrajectorySequenceCommand.html | 8 +- docs/Path/help-doc.html | 437 +- docs/Path/index-all.html | 7753 +------ docs/Path/index.html | 189 +- docs/Path/jquery-ui.overrides.css | 6 +- docs/Path/member-search-index.js | 1564 +- docs/Path/module-search-index.js | 3 +- docs/Path/overview-summary.html | 48 +- docs/Path/overview-tree.html | 1421 +- docs/Path/package-search-index.js | 11 +- docs/Path/script.js | 156 +- docs/Path/search.js | 608 +- docs/Path/serialized-form.html | 227 +- .../path/command/MecanumDriveCommand.html | 81 +- .../RegenerativeTrajectoryCommand.html | 81 +- .../command/TrajectorySequenceCommand.html | 56 +- docs/Path/stylesheet.css | 1092 +- docs/Path/tag-search-index.js | 3 +- docs/Path/type-search-index.js | 89 +- docs/TechnoLib/allclasses-index.html | 1979 +- docs/TechnoLib/allpackages-index.html | 268 +- .../library/control/CommandAxis.html | 20 +- .../library/control/CommandGamepad.html | 2 +- .../library/control/GamepadBase.Button.html | 128 +- .../library/control/GamepadBase.html | 174 +- .../library/logger/Log.Boolean.html | 134 +- .../technototes/library/logger/Log.Logs.html | 4 +- .../library/logger/Log.Number.html | 58 +- .../library/logger/Log.NumberBar.html | 312 - .../library/logger/Log.NumberSlider.html | 311 - .../com/technototes/library/logger/Log.html | 58 +- ...lacklist.html => LogConfig.AllowList.html} | 16 +- ...Whitelist.html => LogConfig.DenyList.html} | 16 +- .../technototes/library/logger/LogConfig.html | 16 +- .../technototes/library/logger/Logger.html | 16 +- .../library/logger/entry/BooleanEntry.html | 24 +- .../library/logger/entry/Entry.html | 117 +- .../library/logger/entry/NumberBarEntry.html | 217 - .../library/logger/entry/NumberEntry.html | 36 +- .../logger/entry/NumberSliderEntry.html | 317 - .../library/logger/entry/StringEntry.html | 22 +- .../library/logger/entry/package-summary.html | 6 +- .../library/logger/entry/package-tree.html | 10 +- .../library/logger/package-summary.html | 22 +- .../library/logger/package-tree.html | 6 +- docs/TechnoLib/constant-values.html | 349 +- docs/TechnoLib/deprecated-list.html | 311 +- docs/TechnoLib/help-doc.html | 451 +- docs/TechnoLib/index-all.html | 18048 +++------------- docs/TechnoLib/index.html | 308 +- docs/TechnoLib/jquery-ui.overrides.css | 6 +- docs/TechnoLib/member-search-index.js | 2353 +- docs/TechnoLib/module-search-index.js | 3 +- docs/TechnoLib/overview-summary.html | 48 +- docs/TechnoLib/overview-tree.html | 1800 +- docs/TechnoLib/package-search-index.js | 23 +- docs/TechnoLib/script.js | 156 +- docs/TechnoLib/search.js | 608 +- .../library/control/CommandAxis.html | 98 +- .../library/control/GamepadBase.Axis.html | 128 +- .../library/control/GamepadBase.Button.html | 128 +- .../library/control/GamepadBase.html | 128 +- .../library/logger/Log.Boolean.html | 391 +- .../technototes/library/logger/Log.Logs.html | 391 +- .../library/logger/Log.Number.html | 391 +- .../library/logger/Log.NumberBar.html | 375 - .../library/logger/Log.NumberSlider.html | 375 - .../com/technototes/library/logger/Log.html | 391 +- ...lacklist.html => LogConfig.AllowList.html} | 14 +- ...Whitelist.html => LogConfig.DenyList.html} | 14 +- .../library/logger/LogConfig.Disabled.html | 12 +- .../library/logger/LogConfig.Run.html | 12 +- .../technototes/library/logger/LogConfig.html | 12 +- .../technototes/library/logger/Logger.html | 574 +- .../library/logger/entry/BooleanEntry.html | 29 +- .../library/logger/entry/Entry.html | 225 +- .../library/logger/entry/NumberBarEntry.html | 113 - .../library/logger/entry/NumberEntry.html | 21 +- .../logger/entry/NumberSliderEntry.html | 138 - .../library/logger/entry/StringEntry.html | 35 +- docs/TechnoLib/stylesheet.css | 1092 +- docs/TechnoLib/tag-search-index.js | 3 +- docs/TechnoLib/type-search-index.js | 119 +- docs/Vision/allclasses-index.html | 216 +- docs/Vision/allpackages-index.html | 142 +- docs/Vision/deprecated-list.html | 154 +- docs/Vision/help-doc.html | 438 +- docs/Vision/index-all.html | 1174 +- docs/Vision/index.html | 150 +- docs/Vision/jquery-ui.overrides.css | 6 +- docs/Vision/member-search-index.js | 178 +- docs/Vision/module-search-index.js | 3 +- docs/Vision/overview-summary.html | 48 +- docs/Vision/overview-tree.html | 218 +- docs/Vision/package-search-index.js | 7 +- docs/Vision/script.js | 156 +- docs/Vision/search.js | 608 +- docs/Vision/stylesheet.css | 1092 +- docs/Vision/tag-search-index.js | 3 +- docs/Vision/type-search-index.js | 10 +- 104 files changed, 11806 insertions(+), 42042 deletions(-) delete mode 100644 docs/TechnoLib/com/technototes/library/logger/Log.NumberBar.html delete mode 100644 docs/TechnoLib/com/technototes/library/logger/Log.NumberSlider.html rename docs/TechnoLib/com/technototes/library/logger/{LogConfig.Blacklist.html => LogConfig.AllowList.html} (92%) rename docs/TechnoLib/com/technototes/library/logger/{LogConfig.Whitelist.html => LogConfig.DenyList.html} (92%) delete mode 100644 docs/TechnoLib/com/technototes/library/logger/entry/NumberBarEntry.html delete mode 100644 docs/TechnoLib/com/technototes/library/logger/entry/NumberSliderEntry.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberBar.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberSlider.html rename docs/TechnoLib/src-html/com/technototes/library/logger/{LogConfig.Blacklist.html => LogConfig.AllowList.html} (96%) rename docs/TechnoLib/src-html/com/technototes/library/logger/{LogConfig.Whitelist.html => LogConfig.DenyList.html} (96%) delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberBarEntry.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberSliderEntry.html diff --git a/docs/Path/allclasses-index.html b/docs/Path/allclasses-index.html index 6a44fed8..3a2573d4 100644 --- a/docs/Path/allclasses-index.html +++ b/docs/Path/allclasses-index.html @@ -1,995 +1,257 @@ - + - - - All Classes and Interfaces (Path API) - - - - - - - - - - - - - - -
- -
-
-
-

All Classes and Interfaces

-
-
-
- -
-
-
-
Class
-
Description
-
- AxesSigns -
-
-
IMU axes signs in the order XYZ (after remapping).
-
- -
-
Various utility functions for the BNO055 IMU.
-
- -
-   -
- -
-   -
- -
-   -
- -
-
- Set of helper functions for drawing Road Runner paths and trajectories on - dashboard canvases. -
-
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-
Utility functions for log files.
-
- -
-
Collection of utilites for interacting with Lynx modules.
-
- -
-
Parsed representation of a Lynx module firmware version.
-
- -
-
Exception indicating an outdated Lynx firmware version.
-
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-
Various regression utilities.
-
- -
-
- Feedforward parameter estimates from the ramp regression and additional summary - statistics -
-
- -
-
- Feedforward parameter estimates from the ramp regression and additional summary - statistics -
-
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
- -
-   -
-
-
-
-
-
-
- + + +All Classes and Interfaces (Path API) + + + + + + + + + + + + + + +
+ +
+
+
+

All Classes and Interfaces

+
+
+
+
+
+
Class
+
Description
+ +
+
IMU axes signs in the order XYZ (after remapping).
+
+ +
+
Various utility functions for the BNO055 IMU.
+
+ +
 
+ +
 
+ +
 
+ +
+
Set of helper functions for drawing Road Runner paths and trajectories on dashboard canvases.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Utility functions for log files.
+
+ +
+
Collection of utilites for interacting with Lynx modules.
+
+ +
+
Parsed representation of a Lynx module firmware version.
+
+ +
+
Exception indicating an outdated Lynx firmware version.
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
+
Various regression utilities.
+
+ +
+
Feedforward parameter estimates from the ramp regression and additional summary statistics
+
+ +
+
Feedforward parameter estimates from the ramp regression and additional summary statistics
+
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+
+ diff --git a/docs/Path/allpackages-index.html b/docs/Path/allpackages-index.html index 18ff0e7a..387f5c74 100644 --- a/docs/Path/allpackages-index.html +++ b/docs/Path/allpackages-index.html @@ -1,101 +1,73 @@ - + - - - All Packages (Path API) - - - - - - - - - - - - - - -
- -
-
-
-

All Packages

-
-
Package Summary
- -
-
-
- + + +All Packages (Path API) + + + + + + + + + + + + + + +
+ + +
+ diff --git a/docs/Path/com/technototes/path/command/MecanumDriveCommand.html b/docs/Path/com/technototes/path/command/MecanumDriveCommand.html index e3e0ba8a..13585d5c 100644 --- a/docs/Path/com/technototes/path/command/MecanumDriveCommand.html +++ b/docs/Path/com/technototes/path/command/MecanumDriveCommand.html @@ -79,7 +79,7 @@

Class MecanumDriveCommandcom.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
-
public class MecanumDriveCommand +
public class MecanumDriveCommand extends Object implements com.technototes.library.command.Command
@@ -180,25 +180,25 @@

Field Details

  • subsystem

    - +
  • x

    -
    public DoubleSupplier x
    +
    public DoubleSupplier x
  • y

    -
    public DoubleSupplier y
    +
    public DoubleSupplier y
  • r

    -
    public DoubleSupplier r
    +
    public DoubleSupplier r
  • @@ -212,7 +212,7 @@

    Constructor Details

  • MecanumDriveCommand

    -
    public MecanumDriveCommand(PathingMecanumDrivebaseSubsystem sub, + @@ -229,7 +229,7 @@

    Method Details

  • execute

    -
    public void execute()
    +
    public void execute()
    Specified by:
    execute in interface com.technototes.library.command.Command
    @@ -239,7 +239,7 @@

    execute

  • isFinished

    -
    public boolean isFinished()
    +
    public boolean isFinished()
    Specified by:
    isFinished in interface com.technototes.library.command.Command
    @@ -249,7 +249,7 @@

    isFinished

  • end

    -
    public void end(boolean cancel)
    +
    public void end(boolean cancel)
    Specified by:
    end in interface com.technototes.library.command.Command
    diff --git a/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html b/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html index 892cec25..b1616bfe 100644 --- a/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html +++ b/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html @@ -81,7 +81,7 @@

    Class Regenerative
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>


    -
    @@ -181,7 +181,7 @@

    Field Details

  • trajFunc

    -
    public Supplier<com.acmerobotics.roadrunner.trajectory.Trajectory> trajFunc
    +
    public Supplier<com.acmerobotics.roadrunner.trajectory.Trajectory> trajFunc
  • @@ -195,21 +195,21 @@

    Constructor Details

  • RegenerativeTrajectoryCommand

    -
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, +
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Function<Function<com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder>,com.acmerobotics.roadrunner.trajectory.Trajectory> t)
  • RegenerativeTrajectoryCommand

    -
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, +
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<com.acmerobotics.roadrunner.trajectory.Trajectory> t)
  • RegenerativeTrajectoryCommand

    -
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, +
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, BiFunction<Function<com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder>,T,com.acmerobotics.roadrunner.trajectory.Trajectory> t, T mux)
    @@ -217,7 +217,7 @@

    RegenerativeTrajectoryCommand

    -
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, +
    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Function<T,com.acmerobotics.roadrunner.trajectory.Trajectory> t, T mux)
  • @@ -233,7 +233,7 @@

    Method Details

  • initialize

    -
    public void initialize()
    +
    public void initialize()
    Specified by:
    initialize in interface com.technototes.library.command.Command
    diff --git a/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html b/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html index 1ec0a42c..9a807af7 100644 --- a/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html +++ b/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html @@ -258,7 +258,7 @@

    Method Details

  • initialize

    -
    public void initialize()
    +
    public void initialize()
    Specified by:
    initialize in interface com.technototes.library.command.Command
    @@ -268,7 +268,7 @@

    initialize

  • execute

    -
    public void execute()
    +
    public void execute()
    Specified by:
    execute in interface com.technototes.library.command.Command
    @@ -278,7 +278,7 @@

    execute

  • isFinished

    -
    public boolean isFinished()
    +
    public boolean isFinished()
    Specified by:
    isFinished in interface com.technototes.library.command.Command
    @@ -288,7 +288,7 @@

    isFinished

  • end

    -
    public void end(boolean cancel)
    +
    public void end(boolean cancel)
    Specified by:
    end in interface com.technototes.library.command.Command
    diff --git a/docs/Path/help-doc.html b/docs/Path/help-doc.html index 5d7423c3..a2e7a2eb 100644 --- a/docs/Path/help-doc.html +++ b/docs/Path/help-doc.html @@ -1,261 +1,180 @@ - + - - - API Help (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    - Starting from the Overview page, you can browse the - documentation using the links in each page, and in the navigation bar at the top of each - page. The Index and Search box allow you to navigate to - specific declarations and summary pages, including: - All Packages, - All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    - The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    - The Overview page is the front page of this API document - and provides a list of all packages with a summary for each. This page can also - contain an overall description of the set of packages. -

    -
    -
    -

    Package

    -

    - Each package has a page that contains a list of its classes and interfaces, with a - summary for each. These pages may contain the following categories: -

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    - Each class, interface, nested class and nested interface has its own separate page. - Each of these pages has three sections consisting of a declaration and description, - member summary tables, and detailed member descriptions. Entries in each of these - sections are omitted if they are empty or not applicable. -

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    - Note: Annotation interfaces have required and - optional elements, but not methods. Only enum classes have enum constants. The - components of a record class are displayed as part of the declaration of the record - class. Properties are a feature of JavaFX. -

    -

    - The summary entries are alphabetical, while the detailed descriptions are in the - order they appear in the source code. This preserves the logical groupings - established by the programmer. -

    -
    -
    -

    Other Files

    -

    - Packages and modules may contain pages with additional information related to the - declarations nearby. -

    -
    -
    -

    Tree (Class Hierarchy)

    -

    - There is a Class Hierarchy page for all packages, - plus a hierarchy for each package. Each hierarchy page contains a list of classes - and a list of interfaces. Classes are organized by inheritance structure starting - with java.lang.Object. Interfaces do not inherit from - java.lang.Object. -

    -
      -
    • - When viewing the Overview page, clicking on TREE displays the hierarchy for all - packages. -
    • -
    • - When viewing a particular package, class or interface page, clicking on TREE - displays the hierarchy for only that package. -
    • -
    -
    -
    -

    Serialized Form

    -

    - Each serializable or externalizable class has a description of its serialization - fields and methods. This information is of interest to those who implement rather - than use the API. While there is no link in the navigation bar, you can get to this - information by going to any serialized class and clicking "Serialized Form" in the - "See Also" section of the class description. -

    -
    -
    -

    All Packages

    -

    - The All Packages page contains an alphabetic - index of all packages contained in the documentation. -

    -
    -
    -

    All Classes and Interfaces

    -

    - The All Classes and Interfaces page contains an - alphabetic index of all classes and interfaces contained in the documentation, - including annotation interfaces, enum classes, and record classes. -

    -
    -
    -

    Index

    -

    - The Index contains an alphabetic index of all classes, - interfaces, constructors, methods, and fields in the documentation, as well as - summary pages such as All Packages, - All Classes and Interfaces. -

    -
    -
    -
    - This help file applies to API documentation generated by the standard doclet. -
    -
    -
    - + + +API Help (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
    +
    +
    +

    Kinds of Pages

    +The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    +

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    +
    +
    +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

    +
      +
    • Interfaces
    • +
    • Classes
    • +
    • Enum Classes
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Interfaces
    • +
    +
    +
    +

    Class or Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

    +
      +
    • Class Inheritance Diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class or Interface Declaration
    • +
    • Class or Interface Description
    • +
    +
    +
      +
    • Nested Class Summary
    • +
    • Enum Constant Summary
    • +
    • Field Summary
    • +
    • Property Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    +

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
    +
    +

    Other Files

    +

    Packages and modules may contain pages with additional information related to the declarations nearby.

    +
    +
    +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • +
    +
    +
    +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

    +
    +
    +

    All Packages

    +

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    +
    +
    +

    All Classes and Interfaces

    +

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    +
    +
    +

    Index

    +

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    +
    +
    +
    +This help file applies to API documentation generated by the standard doclet.
    +
    +
    + diff --git a/docs/Path/index-all.html b/docs/Path/index-all.html index d3ff9630..d31da351 100644 --- a/docs/Path/index-all.html +++ b/docs/Path/index-all.html @@ -1,6602 +1,1155 @@ - + - - - Index (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    - A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form -

    A

    -
    -
    - AccelResult(double, double) - - Constructor for class com.technototes.path.util.RegressionUtil.AccelResult -
    -
     
    -
    - addDisplacementMarker(double, double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addDisplacementMarker(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addDisplacementMarker(DisplacementProducer, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addDisplacementMarker(MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addSpatialMarker(Vector2d, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(double, double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(TimeProducer, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTrajectory(Trajectory) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - AxesSigns - - Enum Class in - com.technototes.path.util -
    -
    -
    IMU axes signs in the order XYZ (after remapping).
    -
    -
    - AXIAL_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    B

    -
    -
    - back(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - batteryVoltageSensor - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - BNO055IMUUtil - - Class in - com.technototes.path.util -
    -
    -
    Various utility functions for the BNO055 IMU.
    -
    -
    - BNO055IMUUtil() - - Constructor for class com.technototes.path.util.BNO055IMUUtil -
    -
     
    -
    - build() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - bVal - - Variable in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    -

    C

    -
    -
    - COLOR_ACTIVE_TRAJECTORY - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_ACTIVE_TURN - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_ACTIVE_WAIT - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_INACTIVE_TRAJECTORY - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_INACTIVE_TURN - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_INACTIVE_WAIT - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - com.technototes.path.command - - package com.technototes.path.command -
    -
     
    -
    - com.technototes.path.geometry - - package com.technototes.path.geometry -
    -
     
    -
    - com.technototes.path.subsystem - - package com.technototes.path.subsystem -
    -
     
    -
    - com.technototes.path.trajectorysequence - - package com.technototes.path.trajectorysequence -
    -
     
    -
    - com.technototes.path.trajectorysequence.sequencesegment - - package com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - com.technototes.path.util - - package com.technototes.path.util -
    -
     
    -
    - compareTo(LynxModuleUtil.LynxFirmwareVersion) - - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - ConfigurablePose - - Class in - com.technototes.path.geometry -
    -
     
    -
    - ConfigurablePose() - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(double, double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(Pose2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(Vector2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(Vector2d, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePoseD - - Class in - com.technototes.path.geometry -
    -
     
    -
    - ConfigurablePoseD() - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(double, double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(Pose2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(Vector2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(Vector2d, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurableVector - - Class in - com.technototes.path.geometry -
    -
     
    -
    - ConfigurableVector() - - Constructor for class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - ConfigurableVector(double, double) - - Constructor for class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - ConfigurableVector(Vector2d) - - Constructor for class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - CROSS_TRACK_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    D

    -
    -
    - DashboardUtil - - Class in - com.technototes.path.util -
    -
    -
    - Set of helper functions for drawing Road Runner paths and trajectories on dashboard - canvases. -
    -
    -
    - DashboardUtil() - - Constructor for class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - DeadWheelConstants - - Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.EncoderOverflow - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.ForwardOffset - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.GearRatio - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.LateralDistance - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.TicksPerRev - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.WheelRadius - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DistanceSensorLocalizer - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - DistanceSensorLocalizer(IGyro, Map<IDistanceSensor, Pose2d>) - - Constructor for class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - DO_DASH - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - drawPoseHistory(Canvas, List<Pose2d>) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - drawRobot(Canvas, Pose2d) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - drawSampledPath(Canvas, Path) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - drawSampledPath(Canvas, Path, double) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - duration() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    -

    E

    -
    -
    - EmptySequenceException - - Exception in - com.technototes.path.trajectorysequence -
    -
     
    -
    - EmptySequenceException() - - Constructor for exception com.technototes.path.trajectorysequence.EmptySequenceException -
    -
     
    -
    - encoderOverflow - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - encoderTicksToInches(double) - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - encoderTicksToInches(double, double, double, double) - - Static method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - encoderTicksToInches(double, double, double, double) - - Static method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - encoderTicksToInches(double, double, double, double) - - Static method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - end() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - end(boolean) - - Method in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - end(boolean) - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - end(boolean) - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - eng - - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - ensureMinimumFirmwareVersion(HardwareMap) - - Static method in class com.technototes.path.util.LynxModuleUtil -
    -
    -
    - Ensure all of the Lynx modules attached to the robot satisfy the minimum - requirement. -
    -
    -
    - equals(Object) - - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.ResetGyroCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    -

    F

    -
    -
    - fitAccelData(List<Double>, List<Double>, List<Double>, - RegressionUtil.RampResult, File) - - Static method in class com.technototes.path.util.RegressionUtil -
    -
    -
    Run regression to compute acceleration feedforward.
    -
    -
    - fitRampData(List<Double>, List<Double>, List<Double>, boolean, - File) - - Static method in class com.technototes.path.util.RegressionUtil -
    -
    -
    - Run regression to compute velocity and static feedforward from ramp test data. -
    -
    -
    - FOLLOW_TRAJECTORY - - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
     
    -
    - followTrajectory(Trajectory) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectory(Trajectory) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectoryAsync(Trajectory) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectoryAsync(Trajectory) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequence(TrajectorySequence) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequence(TrajectorySequence) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequenceAsync(TrajectorySequence) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequenceAsync(TrajectorySequence) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequenceAsync(TrajectorySequence) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - forward(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - forwardOffset - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - frontEncoder - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    -

    G

    -
    -
    - GEAR_RATIO - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - GEAR_RATIO - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - gearRatio - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - get(int) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - getAccelerationConstraint(double) - - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getAccelerationConstraint(double) - - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getBoolean(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getBoolean(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getBoolean(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getConstant() - - Method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getConstant() - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getConstant() - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getDouble(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getDouble(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getDouble(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getDuration() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getEndPose() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getExternalHeadingVelocity() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getExternalHeadingVelocity() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getFirmwareVersion(LynxModule) - - Static method in class com.technototes.path.util.LynxModuleUtil -
    -
    -
    Retrieve and parse Lynx module firmware version.
    -
    -
    - getGearRatio() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getHeading() - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - getHeading() - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - getHeading() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - getInt(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getInt(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getLastError() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getLastError() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getLastPoseError() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - getLogFile(String) - - Static method in class com.technototes.path.util.LoggingUtil -
    -
    -
    Obtain a log file with the provided name
    -
    -
    - getMarkers() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getMotionProfile() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment -
    -
     
    -
    - getMotorVelocityF(double) - - Static method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getMotorVelocityF(double) - - Static method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getMotorVelocityF(double) - - Static method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getPID(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getPID(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getPIDF(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getPIDF(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getPoseEstimate() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - getPoseVelocity() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - getRadians() - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - getRawExternalHeading() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getRawExternalHeading() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getStartPose() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getTicksPerRev() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getTotalRotation() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment -
    -
     
    -
    - getTrajectory() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment -
    -
     
    -
    - getVelocityConstraint(double, double, double) - - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getVelocityConstraint(double, double, double) - - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getWheelPositions() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getWheelPositions() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getWheelPositions() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getWheelRadius() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getWheelVelocities() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getWheelVelocities() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getWheelVelocities() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getX() - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - getY() - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - gyroOffset - - Variable in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    -

    H

    -
    -
    - heading - - Variable in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - heading - - Variable in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - HEADING_PID - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - HEADING_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    I

    -
    -
    - IDLE - - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
     
    -
    - imu - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - isBusy() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - isBusy() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - isBusy() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - isFinished() - - Method in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - isFinished() - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - isFinished() - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    -

    K

    -
    -
    - kA - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - kA - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - kA - - Variable in class com.technototes.path.util.RegressionUtil.AccelResult -
    -
     
    -
    - kStatic - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - kStatic - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - kStatic - - Variable in class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    - kV - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - kV - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - kV - - Variable in class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    -

    L

    -
    -
    - LATERAL_MULTIPLIER - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - LATERAL_MULTIPLIER - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - lateralDistance - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - leftEncoder - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - leftFront - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - leftRear - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - lineTo(Vector2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToConstantHeading(Vector2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToLinearHeading(Pose2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToSplineHeading(Pose2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - LoggingUtil - - Class in - com.technototes.path.util -
    -
    -
    Utility functions for log files.
    -
    -
    - LoggingUtil() - - Constructor for class com.technototes.path.util.LoggingUtil -
    -
     
    -
    - LynxFirmwareVersion(int, int, int) - - Constructor for class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - LynxFirmwareVersionException(String) - - Constructor for exception com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersionException -
    -
     
    -
    - LynxModuleUtil - - Class in - com.technototes.path.util -
    -
    -
    Collection of utilites for interacting with Lynx modules.
    -
    -
    - LynxModuleUtil() - - Constructor for class com.technototes.path.util.LynxModuleUtil -
    -
     
    -
    - LynxModuleUtil.LynxFirmwareVersion - - Class in - com.technototes.path.util -
    -
    -
    Parsed representation of a Lynx module firmware version.
    -
    -
    - LynxModuleUtil.LynxFirmwareVersionException - - Exception in - com.technototes.path.util -
    -
    -
    Exception indicating an outdated Lynx firmware version.
    -
    -
    -

    M

    -
    -
    - major - - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - mapPose(Function<Pose2d, T>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mapPose(Function<Pose2d, T>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mapVec(Function<Vector2d, T>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mapX(Function<Double, T>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mapY(Function<Double, T>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - MAX_ACCEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_ACCEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_ACCEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_ACCEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_VEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_VEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_RPM - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_RPM - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_VEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_VEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MecanumConstants - - Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.GearRatio - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.HeadPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.KA - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.KStatic - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.KV - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.LateralMult - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxAngleAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxAngleVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxRPM - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MotorVeloPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.OmegaWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.PoseLimit - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.TicksPerRev - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.TrackWidth - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.TransPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.UseDriveEncoder - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.VXWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.VYWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.WheelBase - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.WheelRadius - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumDriveCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, - DoubleSupplier, DoubleSupplier) - - Constructor for class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - minor - - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - mirrorOverX(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mirrorOverX(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mirrorOverY(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mirrorOverY(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - MOTOR_VELO_PID - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MOTOR_VELO_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - motors - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - mutateHeading(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateHeading(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutatePose(UnaryOperator<Pose2d>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutatePose(UnaryOperator<Pose2d>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateVec(UnaryOperator<Vector2d>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateVec(UnaryOperator<Vector2d>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateVec(UnaryOperator<Vector2d>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mutateX(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateX(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateX(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mutateY(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateY(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateY(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    -

    N

    -
    -
    - NNN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - NNP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - NPN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - NPP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    -

    O

    -
    -
    - OMEGA_WEIGHT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - OMEGA_WEIGHT - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    P

    -
    -
    - PathingMecanumDrivebaseSubsystem - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, IMU, MecanumConstants) - - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, IMU, MecanumConstants, Localizer) - - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - PathingMecanumDrivebaseSubsystem.Mode - - Enum Class in - com.technototes.path.subsystem -
    -
     
    -
    - PNN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - PNP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - POSE_HISTORY_LIMIT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - POSE_HISTORY_LIMIT - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - POSE_HISTORY_LIMIT - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - PPN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - PPP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    -

    R

    -
    -
    - r - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - RampResult(double, double, double) - - Constructor for class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    - RegenerativeTrajectoryCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, - Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, - Trajectory>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, - Supplier<Trajectory>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, - TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Function<Function<Pose2d, TrajectorySequenceBuilder>, - TrajectorySequence>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Function<T, TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Supplier<TrajectorySequence>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegressionUtil - - Class in - com.technototes.path.util -
    -
    -
    Various regression utilities.
    -
    -
    - RegressionUtil() - - Constructor for class com.technototes.path.util.RegressionUtil -
    -
     
    -
    - RegressionUtil.AccelResult - - Class in - com.technototes.path.util -
    -
    -
    - Feedforward parameter estimates from the ramp regression and additional summary - statistics -
    -
    -
    - RegressionUtil.RampResult - - Class in - com.technototes.path.util -
    -
    -
    - Feedforward parameter estimates from the ramp regression and additional summary - statistics -
    -
    -
    - remapAxes(BNO055IMU, AxesOrder, AxesSigns) - - Static method in class com.technototes.path.util.BNO055IMUUtil -
    -
    -
    Remap BNO055 IMU axes and signs.
    -
    -
    - resetAccelConstraint() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - resetConstraints() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - ResetGyroCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - ResetGyroCommand(PathingMecanumDrivebaseSubsystem) - - Constructor for class com.technototes.path.command.ResetGyroCommand -
    -
     
    -
    - resetTurnConstraint() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - resetVelConstraint() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - rightEncoder - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - rightFront - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - rightRear - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - ROAD_RUNNER_FOLDER - - Static variable in class com.technototes.path.util.LoggingUtil -
    -
     
    -
    - rpmToVelocity(double, double, double) - - Static method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - rpmToVelocity(double, double, double) - - Static method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - rpmToVelocity(double, double, double) - - Static method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - rSquare - - Variable in class com.technototes.path.util.RegressionUtil.AccelResult -
    -
     
    -
    - rSquare - - Variable in class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    - RUN_USING_ENCODER - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - RUN_USING_ENCODER - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    S

    -
    -
    - SequenceSegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - SequenceSegment(double, Pose2d, Pose2d, List<TrajectoryMarker>) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - set(double, double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(double, double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(double, double) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - set(double, double, double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(double, double, double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(Pose2d) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(Pose2d) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(Vector2d) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(Vector2d) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(Vector2d) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - set(Vector2d, double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(Vector2d, double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setAccelConstraint(TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setGyroOffset(double) - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - setHeading(double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - setHeading(double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setMode(DcMotor.RunMode) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setMode(DcMotor.RunMode) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setMotorPowers(double, double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setMotorPowers(double, double, double, double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setPoseEstimate(Pose2d) - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - setReversed(boolean) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setTangent(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setTurnConstraint(double, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setVelConstraint(TrajectoryVelocityConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setWeightedDrivePower(Pose2d) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setWeightedDrivePower(Pose2d) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setX(double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - setX(double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setX(double) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - setY(double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - setY(double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setY(double) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - size() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - speed - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - splineTo(Vector2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineTo(Vector2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToConstantHeading(Vector2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToLinearHeading(Pose2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToSplineHeading(Pose2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - start() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - stop() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - strafeLeft(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeLeft(double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeRight(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeRight(double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeTo(Vector2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeTo(Vector2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.ResetGyroCommand -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    -

    T

    -
    -
    - TankConstants - - Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.AxialPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.CrossPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.GearRatio - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.HeadPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.KA - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.KStatic - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.KV - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.LateralMult - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxAngleAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxAngleVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxRPM - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MotorVeloPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.OmegaWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.PoseLimit - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.TicksPerRev - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.TrackWidth - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.UseDriveEncoder - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.VXWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.WheelRadius - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankDrivebaseSubsystem - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - TankDrivebaseSubsystem(EncodedMotorGroup<DcMotorEx>, - EncodedMotorGroup<DcMotorEx>, IMU, TankConstants, Localizer) - - Constructor for class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - ThreeDeadWheelLocalizer - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, - DeadWheelConstants) - - Constructor for class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - TICKS_PER_REV - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - TICKS_PER_REV - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - ticksPerRev - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - toPose() - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - toPose() - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - toString() - - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - toVec() - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - TRACK_WIDTH - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - TRACK_WIDTH - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - trajectory - - Variable in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - trajectory - - Variable in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - trajectoryBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, boolean) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, boolean) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - TrajectoryCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, - TrajectoryBuilder>, Trajectory>) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, - T) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectorySegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - TrajectorySegment(Trajectory) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment -
    -
     
    -
    - TrajectorySequence - - Class in - com.technototes.path.trajectorysequence -
    -
     
    -
    - TrajectorySequence(List<SequenceSegment>) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - trajectorySequenceBuilder() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectorySequenceBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectorySequenceBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - TrajectorySequenceBuilder - - Class in - com.technototes.path.trajectorysequence -
    -
     
    -
    - TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint, double, double) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint, double, double) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - TrajectorySequenceCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, - TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Function<Function<Pose2d, TrajectorySequenceBuilder>, - TrajectorySequence>) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, - TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Supplier<TrajectorySequence>) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceRunner - - Class in - com.technototes.path.trajectorysequence -
    -
     
    -
    - TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - trajFunc - - Variable in class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - trajFunc - - Variable in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - TRANSLATIONAL_PID - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - turn(double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - turn(double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - turn(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - turn(double, double, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - TURN - - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
     
    -
    - turnAsync(double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - turnAsync(double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - TurnSegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - TurnSegment(Pose2d, double, MotionProfile, List<TrajectoryMarker>) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment -
    -
     
    -
    -

    U

    -
    -
    - UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - update() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - update() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - update() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - update(Pose2d) - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - update(Pose2d, Pose2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    -

    V

    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.path.util.AxesSigns -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - values() - - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.path.util.AxesSigns -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - VX_WEIGHT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - VX_WEIGHT - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - VY_WEIGHT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    -

    W

    -
    -
    - waitForIdle() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - waitForIdle() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - waitSeconds(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - WaitSegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - WaitSegment(Pose2d, double, List<TrajectoryMarker>) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.WaitSegment -
    -
     
    -
    - WHEEL_BASE - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - WHEEL_RADIUS - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - WHEEL_RADIUS - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - wheelRadius - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    -

    X

    -
    -
    - x - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - x - - Variable in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    -

    Y

    -
    -
    - y - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - y - - Variable in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    -

    Z

    -
    -
    - zeroExternalHeading() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form -
    -
    -
    - + + +Index (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    +A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form +

    A

    +
    +
    AccelResult(double, double) - Constructor for class com.technototes.path.util.RegressionUtil.AccelResult
    +
     
    +
    addDisplacementMarker(double, double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addDisplacementMarker(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addDisplacementMarker(DisplacementProducer, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addDisplacementMarker(MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addSpatialMarker(Vector2d, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addTemporalMarker(double, double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addTemporalMarker(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addTemporalMarker(MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addTemporalMarker(TimeProducer, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    addTrajectory(Trajectory) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    AxesSigns - Enum Class in com.technototes.path.util
    +
    +
    IMU axes signs in the order XYZ (after remapping).
    +
    +
    AXIAL_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    +

    B

    +
    +
    back(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    batteryVoltageSensor - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    BNO055IMUUtil - Class in com.technototes.path.util
    +
    +
    Various utility functions for the BNO055 IMU.
    +
    +
    BNO055IMUUtil() - Constructor for class com.technototes.path.util.BNO055IMUUtil
    +
     
    +
    build() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    bVal - Variable in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    +

    C

    +
    +
    COLOR_ACTIVE_TRAJECTORY - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    COLOR_ACTIVE_TURN - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    COLOR_ACTIVE_WAIT - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    COLOR_INACTIVE_TRAJECTORY - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    COLOR_INACTIVE_TURN - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    COLOR_INACTIVE_WAIT - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    com.technototes.path.command - package com.technototes.path.command
    +
     
    +
    com.technototes.path.geometry - package com.technototes.path.geometry
    +
     
    +
    com.technototes.path.subsystem - package com.technototes.path.subsystem
    +
     
    +
    com.technototes.path.trajectorysequence - package com.technototes.path.trajectorysequence
    +
     
    +
    com.technototes.path.trajectorysequence.sequencesegment - package com.technototes.path.trajectorysequence.sequencesegment
    +
     
    +
    com.technototes.path.util - package com.technototes.path.util
    +
     
    +
    compareTo(LynxModuleUtil.LynxFirmwareVersion) - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    ConfigurablePose - Class in com.technototes.path.geometry
    +
     
    +
    ConfigurablePose() - Constructor for class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    ConfigurablePose(double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    ConfigurablePose(double, double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    ConfigurablePose(Pose2d) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    ConfigurablePose(Vector2d) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    ConfigurablePose(Vector2d, double) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    ConfigurablePoseD - Class in com.technototes.path.geometry
    +
     
    +
    ConfigurablePoseD() - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    ConfigurablePoseD(double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    ConfigurablePoseD(double, double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    ConfigurablePoseD(Pose2d) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    ConfigurablePoseD(Vector2d) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    ConfigurablePoseD(Vector2d, double) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    ConfigurableVector - Class in com.technototes.path.geometry
    +
     
    +
    ConfigurableVector() - Constructor for class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    ConfigurableVector(double, double) - Constructor for class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    ConfigurableVector(Vector2d) - Constructor for class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    CROSS_TRACK_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    +

    D

    +
    +
    DashboardUtil - Class in com.technototes.path.util
    +
    +
    Set of helper functions for drawing Road Runner paths and trajectories on dashboard canvases.
    +
    +
    DashboardUtil() - Constructor for class com.technototes.path.util.DashboardUtil
    +
     
    +
    DeadWheelConstants - Interface in com.technototes.path.subsystem
    +
     
    +
    DeadWheelConstants.EncoderOverflow - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    DeadWheelConstants.ForwardOffset - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    DeadWheelConstants.GearRatio - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    DeadWheelConstants.LateralDistance - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    DeadWheelConstants.TicksPerRev - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    DeadWheelConstants.WheelRadius - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    DistanceSensorLocalizer - Class in com.technototes.path.subsystem
    +
     
    +
    DistanceSensorLocalizer(IGyro, Map<IDistanceSensor, Pose2d>) - Constructor for class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    DO_DASH - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    drawPoseHistory(Canvas, List<Pose2d>) - Static method in class com.technototes.path.util.DashboardUtil
    +
     
    +
    drawRobot(Canvas, Pose2d) - Static method in class com.technototes.path.util.DashboardUtil
    +
     
    +
    drawSampledPath(Canvas, Path) - Static method in class com.technototes.path.util.DashboardUtil
    +
     
    +
    drawSampledPath(Canvas, Path, double) - Static method in class com.technototes.path.util.DashboardUtil
    +
     
    +
    duration() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    +
     
    +
    +

    E

    +
    +
    EmptySequenceException - Exception in com.technototes.path.trajectorysequence
    +
     
    +
    EmptySequenceException() - Constructor for exception com.technototes.path.trajectorysequence.EmptySequenceException
    +
     
    +
    encoderOverflow - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    encoderTicksToInches(double) - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    encoderTicksToInches(double, double, double, double) - Static method in interface com.technototes.path.subsystem.DeadWheelConstants
    +
     
    +
    encoderTicksToInches(double, double, double, double) - Static method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    encoderTicksToInches(double, double, double, double) - Static method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    end() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    +
     
    +
    end(boolean) - Method in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    end(boolean) - Method in class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    end(boolean) - Method in class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    eng - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    ensureMinimumFirmwareVersion(HardwareMap) - Static method in class com.technototes.path.util.LynxModuleUtil
    +
    +
    Ensure all of the Lynx modules attached to the robot satisfy the minimum requirement.
    +
    +
    equals(Object) - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    execute() - Method in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    execute() - Method in class com.technototes.path.command.ResetGyroCommand
    +
     
    +
    execute() - Method in class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    execute() - Method in class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    +

    F

    +
    +
    fitAccelData(List<Double>, List<Double>, List<Double>, RegressionUtil.RampResult, File) - Static method in class com.technototes.path.util.RegressionUtil
    +
    +
    Run regression to compute acceleration feedforward.
    +
    +
    fitRampData(List<Double>, List<Double>, List<Double>, boolean, File) - Static method in class com.technototes.path.util.RegressionUtil
    +
    +
    Run regression to compute velocity and static feedforward from ramp test data.
    +
    +
    FOLLOW_TRAJECTORY - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    +
     
    +
    followTrajectory(Trajectory) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    followTrajectory(Trajectory) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    followTrajectoryAsync(Trajectory) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    followTrajectoryAsync(Trajectory) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    followTrajectorySequence(TrajectorySequence) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    followTrajectorySequence(TrajectorySequence) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    followTrajectorySequenceAsync(TrajectorySequence) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    followTrajectorySequenceAsync(TrajectorySequence) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    followTrajectorySequenceAsync(TrajectorySequence) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    forward(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    forwardOffset - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    frontEncoder - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    +

    G

    +
    +
    GEAR_RATIO - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    GEAR_RATIO - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    gearRatio - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    get(int) - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    +
     
    +
    getAccelerationConstraint(double) - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getAccelerationConstraint(double) - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getBoolean(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.DeadWheelConstants
    +
     
    +
    getBoolean(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getBoolean(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getConstant() - Method in interface com.technototes.path.subsystem.DeadWheelConstants
    +
     
    +
    getConstant() - Method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getConstant() - Method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getDouble(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.DeadWheelConstants
    +
     
    +
    getDouble(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getDouble(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getDuration() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    +
     
    +
    getEndPose() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    +
     
    +
    getExternalHeadingVelocity() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getExternalHeadingVelocity() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getFirmwareVersion(LynxModule) - Static method in class com.technototes.path.util.LynxModuleUtil
    +
    +
    Retrieve and parse Lynx module firmware version.
    +
    +
    getGearRatio() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    getHeading() - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    getHeading() - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    getHeading() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    getInt(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getInt(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getLastError() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getLastError() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getLastPoseError() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    getLogFile(String) - Static method in class com.technototes.path.util.LoggingUtil
    +
    +
    Obtain a log file with the provided name
    +
    +
    getMarkers() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    +
     
    +
    getMotionProfile() - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    +
     
    +
    getMotorVelocityF(double) - Static method in interface com.technototes.path.subsystem.DeadWheelConstants
    +
     
    +
    getMotorVelocityF(double) - Static method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getMotorVelocityF(double) - Static method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getPID(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getPID(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getPIDF(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    getPIDF(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    getPoseEstimate() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    getPoseVelocity() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    getRadians() - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    getRawExternalHeading() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getRawExternalHeading() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getStartPose() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    +
     
    +
    getTicksPerRev() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    getTotalRotation() - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    +
     
    +
    getTrajectory() - Method in class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment
    +
     
    +
    getVelocityConstraint(double, double, double) - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getVelocityConstraint(double, double, double) - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getWheelPositions() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getWheelPositions() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getWheelPositions() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    getWheelRadius() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    getWheelVelocities() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    getWheelVelocities() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    getWheelVelocities() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    getX() - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    getY() - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    gyroOffset - Variable in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    +

    H

    +
    +
    heading - Variable in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    heading - Variable in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    HEADING_PID - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    HEADING_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    +

    I

    +
    +
    IDLE - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    +
     
    +
    imu - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    initialize() - Method in class com.technototes.path.command.RegenerativeTrajectoryCommand
    +
     
    +
    initialize() - Method in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    +
     
    +
    initialize() - Method in class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    initialize() - Method in class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    isBusy() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    isBusy() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    isBusy() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    isFinished() - Method in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    isFinished() - Method in class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    isFinished() - Method in class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    +

    K

    +
    +
    kA - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    kA - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    kA - Variable in class com.technototes.path.util.RegressionUtil.AccelResult
    +
     
    +
    kStatic - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    kStatic - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    kStatic - Variable in class com.technototes.path.util.RegressionUtil.RampResult
    +
     
    +
    kV - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    kV - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    kV - Variable in class com.technototes.path.util.RegressionUtil.RampResult
    +
     
    +
    +

    L

    +
    +
    LATERAL_MULTIPLIER - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    LATERAL_MULTIPLIER - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    lateralDistance - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    leftEncoder - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    leftFront - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    leftRear - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    lineTo(Vector2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineToConstantHeading(Vector2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineToLinearHeading(Pose2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineToSplineHeading(Pose2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    LoggingUtil - Class in com.technototes.path.util
    +
    +
    Utility functions for log files.
    +
    +
    LoggingUtil() - Constructor for class com.technototes.path.util.LoggingUtil
    +
     
    +
    LynxFirmwareVersion(int, int, int) - Constructor for class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    LynxFirmwareVersionException(String) - Constructor for exception com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersionException
    +
     
    +
    LynxModuleUtil - Class in com.technototes.path.util
    +
    +
    Collection of utilites for interacting with Lynx modules.
    +
    +
    LynxModuleUtil() - Constructor for class com.technototes.path.util.LynxModuleUtil
    +
     
    +
    LynxModuleUtil.LynxFirmwareVersion - Class in com.technototes.path.util
    +
    +
    Parsed representation of a Lynx module firmware version.
    +
    +
    LynxModuleUtil.LynxFirmwareVersionException - Exception in com.technototes.path.util
    +
    +
    Exception indicating an outdated Lynx firmware version.
    +
    +
    +

    M

    +
    +
    major - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    mapPose(Function<Pose2d, T>) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mapPose(Function<Pose2d, T>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mapVec(Function<Vector2d, T>) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    mapX(Function<Double, T>) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    mapY(Function<Double, T>) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    MAX_ACCEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    MAX_ACCEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    MAX_ANG_ACCEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    MAX_ANG_ACCEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    MAX_ANG_VEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    MAX_ANG_VEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    MAX_RPM - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    MAX_RPM - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    MAX_VEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    MAX_VEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    MecanumConstants - Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.GearRatio - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.HeadPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.KA - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.KStatic - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.KV - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.LateralMult - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.MaxAccel - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.MaxAngleAccel - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.MaxAngleVelo - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.MaxRPM - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.MaxVelo - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.MotorVeloPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.OmegaWeight - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.PoseLimit - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.TicksPerRev - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.TrackWidth - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.TransPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.UseDriveEncoder - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.VXWeight - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.VYWeight - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.WheelBase - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumConstants.WheelRadius - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    MecanumDriveCommand - Class in com.technototes.path.command
    +
     
    +
    MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier) - Constructor for class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    minor - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    mirrorOverX(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mirrorOverX(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mirrorOverY(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mirrorOverY(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    MOTOR_VELO_PID - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    MOTOR_VELO_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    motors - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    mutateHeading(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mutateHeading(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mutatePose(UnaryOperator<Pose2d>) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mutatePose(UnaryOperator<Pose2d>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mutateVec(UnaryOperator<Vector2d>) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mutateVec(UnaryOperator<Vector2d>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mutateVec(UnaryOperator<Vector2d>) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    mutateX(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mutateX(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mutateX(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    mutateY(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    mutateY(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    mutateY(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    +

    N

    +
    +
    NNN - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    NNP - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    NPN - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    NPP - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    +

    O

    +
    +
    OMEGA_WEIGHT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    OMEGA_WEIGHT - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    +

    P

    +
    +
    PathingMecanumDrivebaseSubsystem - Class in com.technototes.path.subsystem
    +
     
    +
    PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, IMU, MecanumConstants) - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, IMU, MecanumConstants, Localizer) - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    PathingMecanumDrivebaseSubsystem.Mode - Enum Class in com.technototes.path.subsystem
    +
     
    +
    PNN - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    PNP - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    POSE_HISTORY_LIMIT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    POSE_HISTORY_LIMIT - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    POSE_HISTORY_LIMIT - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    PPN - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    PPP - Enum constant in enum class com.technototes.path.util.AxesSigns
    +
     
    +
    +

    R

    +
    +
    r - Variable in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    RampResult(double, double, double) - Constructor for class com.technototes.path.util.RegressionUtil.RampResult
    +
     
    +
    RegenerativeTrajectoryCommand - Class in com.technototes.path.command
    +
     
    +
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    +
     
    +
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    +
     
    +
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    +
     
    +
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    +
     
    +
    RegenerativeTrajectorySequenceCommand - Class in com.technototes.path.command
    +
     
    +
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    +
     
    +
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectorySequenceBuilder>, TrajectorySequence>) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    +
     
    +
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    +
     
    +
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier<TrajectorySequence>) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    +
     
    +
    RegressionUtil - Class in com.technototes.path.util
    +
    +
    Various regression utilities.
    +
    +
    RegressionUtil() - Constructor for class com.technototes.path.util.RegressionUtil
    +
     
    +
    RegressionUtil.AccelResult - Class in com.technototes.path.util
    +
    +
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    +
    +
    RegressionUtil.RampResult - Class in com.technototes.path.util
    +
    +
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    +
    +
    remapAxes(BNO055IMU, AxesOrder, AxesSigns) - Static method in class com.technototes.path.util.BNO055IMUUtil
    +
    +
    Remap BNO055 IMU axes and signs.
    +
    +
    resetAccelConstraint() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    resetConstraints() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    ResetGyroCommand - Class in com.technototes.path.command
    +
     
    +
    ResetGyroCommand(PathingMecanumDrivebaseSubsystem) - Constructor for class com.technototes.path.command.ResetGyroCommand
    +
     
    +
    resetTurnConstraint() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    resetVelConstraint() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    rightEncoder - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    rightFront - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    rightRear - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    ROAD_RUNNER_FOLDER - Static variable in class com.technototes.path.util.LoggingUtil
    +
     
    +
    rpmToVelocity(double, double, double) - Static method in interface com.technototes.path.subsystem.DeadWheelConstants
    +
     
    +
    rpmToVelocity(double, double, double) - Static method in interface com.technototes.path.subsystem.MecanumConstants
    +
     
    +
    rpmToVelocity(double, double, double) - Static method in interface com.technototes.path.subsystem.TankConstants
    +
     
    +
    rSquare - Variable in class com.technototes.path.util.RegressionUtil.AccelResult
    +
     
    +
    rSquare - Variable in class com.technototes.path.util.RegressionUtil.RampResult
    +
     
    +
    RUN_USING_ENCODER - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    RUN_USING_ENCODER - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    +

    S

    +
    +
    SequenceSegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    +
     
    +
    SequenceSegment(double, Pose2d, Pose2d, List<TrajectoryMarker>) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    +
     
    +
    set(double, double) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    set(double, double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    set(double, double) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    set(double, double, double) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    set(double, double, double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    set(Pose2d) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    set(Pose2d) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    set(Vector2d) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    set(Vector2d) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    set(Vector2d) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    set(Vector2d, double) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    set(Vector2d, double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    setAccelConstraint(TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    setGyroOffset(double) - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    setHeading(double) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    setHeading(double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    setMode(DcMotor.RunMode) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    setMode(DcMotor.RunMode) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    setMotorPowers(double, double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    setMotorPowers(double, double, double, double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    setPoseEstimate(Pose2d) - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    setReversed(boolean) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    setTangent(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    setTurnConstraint(double, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    setVelConstraint(TrajectoryVelocityConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    setWeightedDrivePower(Pose2d) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    setWeightedDrivePower(Pose2d) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    setX(double) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    setX(double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    setX(double) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    setY(double) - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    setY(double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    setY(double) - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    size() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    +
     
    +
    speed - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    splineTo(Vector2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineToConstantHeading(Vector2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineToLinearHeading(Pose2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineToSplineHeading(Pose2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    start() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    +
     
    +
    stop() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    strafeLeft(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    strafeRight(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    strafeTo(Vector2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    subsystem - Variable in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    subsystem - Variable in class com.technototes.path.command.ResetGyroCommand
    +
     
    +
    subsystem - Variable in class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    subsystem - Variable in class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    +

    T

    +
    +
    TankConstants - Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.AxialPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.CrossPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.GearRatio - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.HeadPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.KA - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.KStatic - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.KV - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.LateralMult - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.MaxAccel - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.MaxAngleAccel - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.MaxAngleVelo - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.MaxRPM - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.MaxVelo - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.MotorVeloPID - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.OmegaWeight - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.PoseLimit - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.TicksPerRev - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.TrackWidth - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.UseDriveEncoder - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.VXWeight - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankConstants.WheelRadius - Annotation Interface in com.technototes.path.subsystem
    +
     
    +
    TankDrivebaseSubsystem - Class in com.technototes.path.subsystem
    +
     
    +
    TankDrivebaseSubsystem(EncodedMotorGroup<DcMotorEx>, EncodedMotorGroup<DcMotorEx>, IMU, TankConstants, Localizer) - Constructor for class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    ThreeDeadWheelLocalizer - Class in com.technototes.path.subsystem
    +
     
    +
    ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants) - Constructor for class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    TICKS_PER_REV - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    TICKS_PER_REV - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    ticksPerRev - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    toPose() - Method in class com.technototes.path.geometry.ConfigurablePose
    +
     
    +
    toPose() - Method in class com.technototes.path.geometry.ConfigurablePoseD
    +
     
    +
    toString() - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    +
     
    +
    toVec() - Method in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    TRACK_WIDTH - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    TRACK_WIDTH - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    trajectory - Variable in class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    trajectory - Variable in class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    trajectoryBuilder(Pose2d) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    trajectoryBuilder(Pose2d) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    trajectoryBuilder(Pose2d, boolean) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    trajectoryBuilder(Pose2d, boolean) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    trajectoryBuilder(Pose2d, double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    trajectoryBuilder(Pose2d, double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    TrajectoryCommand - Class in com.technototes.path.command
    +
     
    +
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory) - Constructor for class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - Constructor for class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) - Constructor for class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, T) - Constructor for class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) - Constructor for class com.technototes.path.command.TrajectoryCommand
    +
     
    +
    TrajectorySegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    +
     
    +
    TrajectorySegment(Trajectory) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment
    +
     
    +
    TrajectorySequence - Class in com.technototes.path.trajectorysequence
    +
     
    +
    TrajectorySequence(List<SequenceSegment>) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequence
    +
     
    +
    trajectorySequenceBuilder() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    trajectorySequenceBuilder(Pose2d) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    trajectorySequenceBuilder(Pose2d) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    TrajectorySequenceBuilder - Class in com.technototes.path.trajectorysequence
    +
     
    +
    TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    TrajectorySequenceCommand - Class in com.technototes.path.command
    +
     
    +
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectorySequenceBuilder>, TrajectorySequence>) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier<TrajectorySequence>) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    +
     
    +
    TrajectorySequenceRunner - Class in com.technototes.path.trajectorysequence
    +
     
    +
    TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    trajFunc - Variable in class com.technototes.path.command.RegenerativeTrajectoryCommand
    +
     
    +
    trajFunc - Variable in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    +
     
    +
    TRANSLATIONAL_PID - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    turn(double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    turn(double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    turn(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    turn(double, double, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    TURN - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    +
     
    +
    turnAsync(double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    turnAsync(double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    TurnSegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    +
     
    +
    TurnSegment(Pose2d, double, MotionProfile, List<TrajectoryMarker>) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    +
     
    +
    +

    U

    +
    +
    UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    update() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    update() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    update() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    update(Pose2d) - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    +
     
    +
    update(Pose2d, Pose2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    +
     
    +
    +

    V

    +
    +
    valueOf(String) - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.path.util.AxesSigns
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    values() - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.path.util.AxesSigns
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    VX_WEIGHT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    VX_WEIGHT - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    VY_WEIGHT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    +

    W

    +
    +
    waitForIdle() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    waitForIdle() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    waitSeconds(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    +
     
    +
    WaitSegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    +
     
    +
    WaitSegment(Pose2d, double, List<TrajectoryMarker>) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.WaitSegment
    +
     
    +
    WHEEL_BASE - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    WHEEL_RADIUS - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    WHEEL_RADIUS - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    +
     
    +
    wheelRadius - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    +
     
    +
    +

    X

    +
    +
    x - Variable in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    x - Variable in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    +

    Y

    +
    +
    y - Variable in class com.technototes.path.command.MecanumDriveCommand
    +
     
    +
    y - Variable in class com.technototes.path.geometry.ConfigurableVector
    +
     
    +
    +

    Z

    +
    +
    zeroExternalHeading() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    +
     
    +
    +A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form
    +
    +
    + diff --git a/docs/Path/index.html b/docs/Path/index.html index eed71d00..3e24a800 100644 --- a/docs/Path/index.html +++ b/docs/Path/index.html @@ -1,118 +1,75 @@ - + - - - Overview (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Path API

    -
    -
    -
    Packages
    - -
    -
    -
    -
    - + + +Overview (Path API) + + + + + + + + + + + + + + +
    + + +
    + diff --git a/docs/Path/jquery-ui.overrides.css b/docs/Path/jquery-ui.overrides.css index bc437535..facf852c 100644 --- a/docs/Path/jquery-ui.overrides.css +++ b/docs/Path/jquery-ui.overrides.css @@ -29,7 +29,7 @@ a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #f8981d; - border: 1px solid #f8981d; + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; + border: 1px solid #F8981D; } diff --git a/docs/Path/member-search-index.js b/docs/Path/member-search-index.js index 7cbacf96..7f6550ab 100644 --- a/docs/Path/member-search-index.js +++ b/docs/Path/member-search-index.js @@ -1,1563 +1 @@ -memberSearchIndex = [ - { - p: 'com.technototes.path.util', - c: 'RegressionUtil.AccelResult', - l: 'AccelResult(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(DisplacementProducer, MarkerCallback)', - u: 'addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.DisplacementProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(double, double, MarkerCallback)', - u: 'addDisplacementMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(double, MarkerCallback)', - u: 'addDisplacementMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(MarkerCallback)', - u: 'addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addSpatialMarker(Vector2d, MarkerCallback)', - u: 'addSpatialMarker(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(double, double, MarkerCallback)', - u: 'addTemporalMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(double, MarkerCallback)', - u: 'addTemporalMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(MarkerCallback)', - u: 'addTemporalMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(TimeProducer, MarkerCallback)', - u: 'addTemporalMarker(com.acmerobotics.roadrunner.trajectory.TimeProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTrajectory(Trajectory)', - u: 'addTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'AXIAL_PID' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'back(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'back(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'batteryVoltageSensor', - }, - { p: 'com.technototes.path.util', c: 'BNO055IMUUtil', l: 'BNO055IMUUtil()', u: '%3Cinit%3E()' }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceBuilder', l: 'build()' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'bVal' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_ACTIVE_TRAJECTORY', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_ACTIVE_TURN', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_ACTIVE_WAIT', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_INACTIVE_TRAJECTORY', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_INACTIVE_TURN', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_INACTIVE_WAIT', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersion', - l: 'compareTo(LynxModuleUtil.LynxFirmwareVersion)', - u: 'compareTo(com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(Pose2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(Vector2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(Vector2d, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(Pose2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(Vector2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(Vector2d, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'ConfigurableVector()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'ConfigurableVector(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'ConfigurableVector(Vector2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'CROSS_TRACK_PID' }, - { p: 'com.technototes.path.util', c: 'DashboardUtil', l: 'DashboardUtil()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.path.subsystem', - c: 'DistanceSensorLocalizer', - l: 'DistanceSensorLocalizer(IGyro, Map)', - u: '%3Cinit%3E(com.technototes.library.hardware.sensor.IGyro,java.util.Map)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceRunner', l: 'DO_DASH' }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawPoseHistory(Canvas, List)', - u: 'drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas,java.util.List)', - }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawRobot(Canvas, Pose2d)', - u: 'drawRobot(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawSampledPath(Canvas, Path)', - u: 'drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path)', - }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawSampledPath(Canvas, Path, double)', - u: 'drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path,double)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'duration()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'EmptySequenceException', - l: 'EmptySequenceException()', - u: '%3Cinit%3E()', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'encoderOverflow' }, - { - p: 'com.technototes.path.subsystem', - c: 'ThreeDeadWheelLocalizer', - l: 'encoderTicksToInches(double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'encoderTicksToInches(double, double, double, double)', - u: 'encoderTicksToInches(double,double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'encoderTicksToInches(double, double, double, double)', - u: 'encoderTicksToInches(double,double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'encoderTicksToInches(double, double, double, double)', - u: 'encoderTicksToInches(double,double,double,double)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'end()' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'end(boolean)' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'end(boolean)' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'end(boolean)' }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'eng' }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil', - l: 'ensureMinimumFirmwareVersion(HardwareMap)', - u: 'ensureMinimumFirmwareVersion(com.qualcomm.robotcore.hardware.HardwareMap)', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersion', - l: 'equals(Object)', - u: 'equals(java.lang.Object)', - }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'execute()' }, - { p: 'com.technototes.path.command', c: 'ResetGyroCommand', l: 'execute()' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'execute()' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'execute()' }, - { - p: 'com.technototes.path.util', - c: 'RegressionUtil', - l: 'fitAccelData(List, List, List, RegressionUtil.RampResult, File)', - u: 'fitAccelData(java.util.List,java.util.List,java.util.List,com.technototes.path.util.RegressionUtil.RampResult,java.io.File)', - }, - { - p: 'com.technototes.path.util', - c: 'RegressionUtil', - l: 'fitRampData(List, List, List, boolean, File)', - u: 'fitRampData(java.util.List,java.util.List,java.util.List,boolean,java.io.File)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem.Mode', - l: 'FOLLOW_TRAJECTORY', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectory(Trajectory)', - u: 'followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectory(Trajectory)', - u: 'followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectoryAsync(Trajectory)', - u: 'followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectoryAsync(Trajectory)', - u: 'followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectorySequence(TrajectorySequence)', - u: 'followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectorySequence(TrajectorySequence)', - u: 'followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectorySequenceAsync(TrajectorySequence)', - u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectorySequenceAsync(TrajectorySequence)', - u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'followTrajectorySequenceAsync(TrajectorySequence)', - u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'forward(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'forward(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'forwardOffset' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'frontEncoder' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'GEAR_RATIO' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'GEAR_RATIO' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'gearRatio' }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'get(int)' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getAccelerationConstraint(double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getAccelerationConstraint(double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'getBoolean(Class)', - u: 'getBoolean(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getBoolean(Class)', - u: 'getBoolean(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getBoolean(Class)', - u: 'getBoolean(java.lang.Class)', - }, - { p: 'com.technototes.path.subsystem', c: 'DeadWheelConstants', l: 'getConstant()' }, - { p: 'com.technototes.path.subsystem', c: 'MecanumConstants', l: 'getConstant()' }, - { p: 'com.technototes.path.subsystem', c: 'TankConstants', l: 'getConstant()' }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'getDouble(Class)', - u: 'getDouble(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getDouble(Class)', - u: 'getDouble(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getDouble(Class)', - u: 'getDouble(java.lang.Class)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getDuration()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getEndPose()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getExternalHeadingVelocity()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getExternalHeadingVelocity()', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil', - l: 'getFirmwareVersion(LynxModule)', - u: 'getFirmwareVersion(com.qualcomm.hardware.lynx.LynxModule)', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getGearRatio()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'getHeading()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'getHeading()' }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getHeading()' }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getInt(Class)', - u: 'getInt(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getInt(Class)', - u: 'getInt(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getLastError()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getLastError()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'getLastPoseError()', - }, - { - p: 'com.technototes.path.util', - c: 'LoggingUtil', - l: 'getLogFile(String)', - u: 'getLogFile(java.lang.String)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getMarkers()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TurnSegment', - l: 'getMotionProfile()', - }, - { p: 'com.technototes.path.subsystem', c: 'DeadWheelConstants', l: 'getMotorVelocityF(double)' }, - { p: 'com.technototes.path.subsystem', c: 'MecanumConstants', l: 'getMotorVelocityF(double)' }, - { p: 'com.technototes.path.subsystem', c: 'TankConstants', l: 'getMotorVelocityF(double)' }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getPID(Class)', - u: 'getPID(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getPID(Class)', - u: 'getPID(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getPIDF(Class)', - u: 'getPIDF(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getPIDF(Class)', - u: 'getPIDF(java.lang.Class)', - }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getPoseEstimate()' }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getPoseVelocity()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'getRadians()' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getRawExternalHeading()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getRawExternalHeading()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getStartPose()', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getTicksPerRev()' }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TurnSegment', - l: 'getTotalRotation()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TrajectorySegment', - l: 'getTrajectory()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getVelocityConstraint(double, double, double)', - u: 'getVelocityConstraint(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getVelocityConstraint(double, double, double)', - u: 'getVelocityConstraint(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getWheelPositions()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getWheelPositions()' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelPositions()' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelRadius()' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getWheelVelocities()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getWheelVelocities()' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelVelocities()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'getX()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'getY()' }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'gyroOffset' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'heading' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'heading' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'HEADING_PID' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'HEADING_PID' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem.Mode', l: 'IDLE' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'imu' }, - { p: 'com.technototes.path.command', c: 'RegenerativeTrajectoryCommand', l: 'initialize()' }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'initialize()', - }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'initialize()' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'initialize()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'isBusy()' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'isBusy()' }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceRunner', l: 'isBusy()' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'isFinished()' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'isFinished()' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'isFinished()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kA' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kA' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.AccelResult', l: 'kA' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kStatic' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kStatic' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'kStatic' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kV' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kV' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'kV' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'LATERAL_MULTIPLIER', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'LATERAL_MULTIPLIER' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'lateralDistance' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'leftEncoder' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'leftFront' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'leftRear' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineTo(Vector2d)', - u: 'lineTo(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToConstantHeading(Vector2d)', - u: 'lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToLinearHeading(Pose2d)', - u: 'lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToSplineHeading(Pose2d)', - u: 'lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.util', c: 'LoggingUtil', l: 'LoggingUtil()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersion', - l: 'LynxFirmwareVersion(int, int, int)', - u: '%3Cinit%3E(int,int,int)', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersionException', - l: 'LynxFirmwareVersionException(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil', l: 'LynxModuleUtil()', u: '%3Cinit%3E()' }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'major' }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mapPose(Function)', - u: 'mapPose(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mapPose(Function)', - u: 'mapPose(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mapVec(Function)', - u: 'mapVec(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mapX(Function)', - u: 'mapX(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mapY(Function)', - u: 'mapY(java.util.function.Function)', - }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_ACCEL' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ACCEL' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'MAX_ANG_ACCEL', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ANG_ACCEL' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_ANG_VEL' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ANG_VEL' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_RPM' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_RPM' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_VEL' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_VEL' }, - { - p: 'com.technototes.path.command', - c: 'MecanumDriveCommand', - l: 'MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)', - }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'minor' }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mirrorOverX(Pose2d)', - u: 'mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mirrorOverX(Pose2d)', - u: 'mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mirrorOverY(Pose2d)', - u: 'mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mirrorOverY(Pose2d)', - u: 'mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'MOTOR_VELO_PID', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MOTOR_VELO_PID' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'motors' }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateHeading(UnaryOperator)', - u: 'mutateHeading(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateHeading(UnaryOperator)', - u: 'mutateHeading(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutatePose(UnaryOperator)', - u: 'mutatePose(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutatePose(UnaryOperator)', - u: 'mutatePose(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateVec(UnaryOperator)', - u: 'mutateVec(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateVec(UnaryOperator)', - u: 'mutateVec(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mutateVec(UnaryOperator)', - u: 'mutateVec(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateX(UnaryOperator)', - u: 'mutateX(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateX(UnaryOperator)', - u: 'mutateX(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mutateX(UnaryOperator)', - u: 'mutateX(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateY(UnaryOperator)', - u: 'mutateY(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateY(UnaryOperator)', - u: 'mutateY(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mutateY(UnaryOperator)', - u: 'mutateY(java.util.function.UnaryOperator)', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NNN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NNP' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NPN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NPP' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'OMEGA_WEIGHT' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'OMEGA_WEIGHT' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants, Localizer)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants,com.acmerobotics.roadrunner.localization.Localizer)', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PNN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PNP' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'POSE_HISTORY_LIMIT', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'POSE_HISTORY_LIMIT' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'POSE_HISTORY_LIMIT', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PPN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PPP' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'r' }, - { - p: 'com.technototes.path.util', - c: 'RegressionUtil.RampResult', - l: 'RampResult(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { p: 'com.technototes.path.util', c: 'RegressionUtil', l: 'RegressionUtil()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.path.util', - c: 'BNO055IMUUtil', - l: 'remapAxes(BNO055IMU, AxesOrder, AxesSigns)', - u: 'remapAxes(com.qualcomm.hardware.bosch.BNO055IMU,org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.path.util.AxesSigns)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetAccelConstraint()', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetConstraints()', - }, - { - p: 'com.technototes.path.command', - c: 'ResetGyroCommand', - l: 'ResetGyroCommand(PathingMecanumDrivebaseSubsystem)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetTurnConstraint()', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetVelConstraint()', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'rightEncoder' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'rightFront' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'rightRear' }, - { p: 'com.technototes.path.util', c: 'LoggingUtil', l: 'ROAD_RUNNER_FOLDER' }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'rpmToVelocity(double, double, double)', - u: 'rpmToVelocity(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'rpmToVelocity(double, double, double)', - u: 'rpmToVelocity(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'rpmToVelocity(double, double, double)', - u: 'rpmToVelocity(double,double,double)', - }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.AccelResult', l: 'rSquare' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'rSquare' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'RUN_USING_ENCODER', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'RUN_USING_ENCODER' }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'SequenceSegment(double, Pose2d, Pose2d, List)', - u: '%3Cinit%3E(double,com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d,java.util.List)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(double, double)', - u: 'set(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(double, double)', - u: 'set(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'set(double, double)', - u: 'set(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(double, double, double)', - u: 'set(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(double, double, double)', - u: 'set(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(Pose2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(Pose2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(Vector2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(Vector2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'set(Vector2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(Vector2d, double)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(Vector2d, double)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setAccelConstraint(TrajectoryAccelerationConstraint)', - u: 'setAccelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'setConstraints(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'setGyroOffset(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setHeading(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setHeading(double)' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setMode(DcMotor.RunMode)', - u: 'setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setMode(DcMotor.RunMode)', - u: 'setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setMotorPowers(double, double)', - u: 'setMotorPowers(double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setMotorPowers(double, double, double, double)', - u: 'setMotorPowers(double,double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)', - u: 'setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)', - u: 'setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'DistanceSensorLocalizer', - l: 'setPoseEstimate(Pose2d)', - u: 'setPoseEstimate(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setReversed(boolean)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setTangent(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setTurnConstraint(double, double)', - u: 'setTurnConstraint(double,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setVelConstraint(TrajectoryVelocityConstraint)', - u: 'setVelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setWeightedDrivePower(Pose2d)', - u: 'setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setWeightedDrivePower(Pose2d)', - u: 'setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setX(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setX(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'setX(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setY(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setY(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'setY(double)' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)', - u: 'setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)', - u: 'setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'size()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'speed' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineTo(Vector2d, double)', - u: 'splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToConstantHeading(Vector2d, double)', - u: 'splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToLinearHeading(Pose2d, double)', - u: 'splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToSplineHeading(Pose2d, double)', - u: 'splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'start()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'stop()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeLeft(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'strafeLeft(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeRight(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'strafeRight(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeTo(Vector2d)', - u: 'strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'subsystem' }, - { p: 'com.technototes.path.command', c: 'ResetGyroCommand', l: 'subsystem' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'subsystem' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'subsystem' }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'TankDrivebaseSubsystem(EncodedMotorGroup, EncodedMotorGroup, IMU, TankConstants, Localizer)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.TankConstants,com.acmerobotics.roadrunner.localization.Localizer)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'ThreeDeadWheelLocalizer', - l: 'ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants)', - u: '%3Cinit%3E(com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.path.subsystem.DeadWheelConstants)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'TICKS_PER_REV', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'TICKS_PER_REV' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'ticksPerRev' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'toPose()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'toPose()' }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'toString()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'toVec()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'TRACK_WIDTH' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'TRACK_WIDTH' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'trajectory' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'trajectory' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, boolean)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, boolean)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, double)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, double)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TrajectorySegment', - l: 'TrajectorySegment(Trajectory)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequence', - l: 'TrajectorySequence(List)', - u: '%3Cinit%3E(java.util.List)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectorySequenceBuilder()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectorySequenceBuilder(Pose2d)', - u: 'trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectorySequenceBuilder(Pose2d)', - u: 'trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,java.lang.Double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.followers.TrajectoryFollower,com.acmerobotics.roadrunner.control.PIDCoefficients)', - }, - { p: 'com.technototes.path.command', c: 'RegenerativeTrajectoryCommand', l: 'trajFunc' }, - { p: 'com.technototes.path.command', c: 'RegenerativeTrajectorySequenceCommand', l: 'trajFunc' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'TRANSLATIONAL_PID', - }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem.Mode', l: 'TURN' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'turn(double)' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'turn(double)' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'turn(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'turn(double, double, double)', - u: 'turn(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'turnAsync(double)', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'turnAsync(double)' }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TurnSegment', - l: 'TurnSegment(Pose2d, double, MotionProfile, List)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.profile.MotionProfile,java.util.List)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback)', - u: 'UNSTABLE_addDisplacementMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback)', - u: 'UNSTABLE_addTemporalMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'update()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'update()' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'update()' }, - { - p: 'com.technototes.path.subsystem', - c: 'DistanceSensorLocalizer', - l: 'update(Pose2d)', - u: 'update(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'update(Pose2d, Pose2d)', - u: 'update(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem.Mode', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.path.util', - c: 'AxesSigns', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem.Mode', - l: 'values()', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'values()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'VX_WEIGHT' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'VX_WEIGHT' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'VY_WEIGHT' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'waitForIdle()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'waitForIdle()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'waitSeconds(double)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'WaitSegment', - l: 'WaitSegment(Pose2d, double, List)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,java.util.List)', - }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'WHEEL_BASE' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'WHEEL_RADIUS' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'WHEEL_RADIUS' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'wheelRadius' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'x' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'x' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'y' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'y' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'zeroExternalHeading()', - }, -]; -updateSearchResults(); +memberSearchIndex = [{"p":"com.technototes.path.util","c":"RegressionUtil.AccelResult","l":"AccelResult(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(DisplacementProducer, MarkerCallback)","u":"addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.DisplacementProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(double, double, MarkerCallback)","u":"addDisplacementMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(double, MarkerCallback)","u":"addDisplacementMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(MarkerCallback)","u":"addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addSpatialMarker(Vector2d, MarkerCallback)","u":"addSpatialMarker(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(double, double, MarkerCallback)","u":"addTemporalMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(double, MarkerCallback)","u":"addTemporalMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(MarkerCallback)","u":"addTemporalMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(TimeProducer, MarkerCallback)","u":"addTemporalMarker(com.acmerobotics.roadrunner.trajectory.TimeProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTrajectory(Trajectory)","u":"addTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"AXIAL_PID"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"back(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"back(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"batteryVoltageSensor"},{"p":"com.technototes.path.util","c":"BNO055IMUUtil","l":"BNO055IMUUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"build()"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"bVal"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_ACTIVE_TRAJECTORY"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_ACTIVE_TURN"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_ACTIVE_WAIT"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_INACTIVE_TRAJECTORY"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_INACTIVE_TURN"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_INACTIVE_WAIT"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"compareTo(LynxModuleUtil.LynxFirmwareVersion)","u":"compareTo(com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(Pose2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(Vector2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(Vector2d, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(Pose2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(Vector2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(Vector2d, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"ConfigurableVector()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"ConfigurableVector(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"ConfigurableVector(Vector2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"CROSS_TRACK_PID"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"DashboardUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"DistanceSensorLocalizer(IGyro, Map)","u":"%3Cinit%3E(com.technototes.library.hardware.sensor.IGyro,java.util.Map)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"DO_DASH"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawPoseHistory(Canvas, List)","u":"drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas,java.util.List)"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawRobot(Canvas, Pose2d)","u":"drawRobot(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawSampledPath(Canvas, Path)","u":"drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path)"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawSampledPath(Canvas, Path, double)","u":"drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"duration()"},{"p":"com.technototes.path.trajectorysequence","c":"EmptySequenceException","l":"EmptySequenceException()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"encoderOverflow"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"encoderTicksToInches(double)"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"encoderTicksToInches(double, double, double, double)","u":"encoderTicksToInches(double,double,double,double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"encoderTicksToInches(double, double, double, double)","u":"encoderTicksToInches(double,double,double,double)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"encoderTicksToInches(double, double, double, double)","u":"encoderTicksToInches(double,double,double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"end()"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"end(boolean)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"end(boolean)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"end(boolean)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"eng"},{"p":"com.technototes.path.util","c":"LynxModuleUtil","l":"ensureMinimumFirmwareVersion(HardwareMap)","u":"ensureMinimumFirmwareVersion(com.qualcomm.robotcore.hardware.HardwareMap)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"execute()"},{"p":"com.technototes.path.command","c":"ResetGyroCommand","l":"execute()"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"execute()"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"execute()"},{"p":"com.technototes.path.util","c":"RegressionUtil","l":"fitAccelData(List, List, List, RegressionUtil.RampResult, File)","u":"fitAccelData(java.util.List,java.util.List,java.util.List,com.technototes.path.util.RegressionUtil.RampResult,java.io.File)"},{"p":"com.technototes.path.util","c":"RegressionUtil","l":"fitRampData(List, List, List, boolean, File)","u":"fitRampData(java.util.List,java.util.List,java.util.List,boolean,java.io.File)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"FOLLOW_TRAJECTORY"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectory(Trajectory)","u":"followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectory(Trajectory)","u":"followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectoryAsync(Trajectory)","u":"followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectoryAsync(Trajectory)","u":"followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectorySequence(TrajectorySequence)","u":"followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectorySequence(TrajectorySequence)","u":"followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectorySequenceAsync(TrajectorySequence)","u":"followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectorySequenceAsync(TrajectorySequence)","u":"followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"followTrajectorySequenceAsync(TrajectorySequence)","u":"followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"forward(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"forward(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"forwardOffset"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"frontEncoder"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"GEAR_RATIO"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"GEAR_RATIO"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"gearRatio"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"get(int)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getAccelerationConstraint(double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getAccelerationConstraint(double)"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getBoolean(Class)","u":"getBoolean(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getBoolean(Class)","u":"getBoolean(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getBoolean(Class)","u":"getBoolean(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getConstant()"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getConstant()"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getConstant()"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getDouble(Class)","u":"getDouble(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getDouble(Class)","u":"getDouble(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getDouble(Class)","u":"getDouble(java.lang.Class)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getDuration()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getEndPose()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getExternalHeadingVelocity()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getExternalHeadingVelocity()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil","l":"getFirmwareVersion(LynxModule)","u":"getFirmwareVersion(com.qualcomm.hardware.lynx.LynxModule)"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getGearRatio()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"getHeading()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"getHeading()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"getHeading()"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getInt(Class)","u":"getInt(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getInt(Class)","u":"getInt(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getLastError()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getLastError()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"getLastPoseError()"},{"p":"com.technototes.path.util","c":"LoggingUtil","l":"getLogFile(String)","u":"getLogFile(java.lang.String)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getMarkers()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TurnSegment","l":"getMotionProfile()"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getMotorVelocityF(double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getMotorVelocityF(double)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getMotorVelocityF(double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getPID(Class)","u":"getPID(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getPID(Class)","u":"getPID(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getPIDF(Class)","u":"getPIDF(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getPIDF(Class)","u":"getPIDF(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"getPoseEstimate()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"getPoseVelocity()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"getRadians()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getRawExternalHeading()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getRawExternalHeading()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getStartPose()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getTicksPerRev()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TurnSegment","l":"getTotalRotation()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TrajectorySegment","l":"getTrajectory()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getVelocityConstraint(double, double, double)","u":"getVelocityConstraint(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getVelocityConstraint(double, double, double)","u":"getVelocityConstraint(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getWheelPositions()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getWheelPositions()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getWheelPositions()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getWheelRadius()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getWheelVelocities()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getWheelVelocities()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getWheelVelocities()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"getX()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"getY()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"gyroOffset"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"heading"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"heading"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"HEADING_PID"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"HEADING_PID"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"IDLE"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"imu"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"initialize()"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"initialize()"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"initialize()"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"initialize()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"isBusy()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"isBusy()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"isBusy()"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"isFinished()"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"isFinished()"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"isFinished()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"kA"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"kA"},{"p":"com.technototes.path.util","c":"RegressionUtil.AccelResult","l":"kA"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"kStatic"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"kStatic"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"kStatic"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"kV"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"kV"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"kV"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"LATERAL_MULTIPLIER"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"LATERAL_MULTIPLIER"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"lateralDistance"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"leftEncoder"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"leftFront"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"leftRear"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineTo(Vector2d)","u":"lineTo(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToConstantHeading(Vector2d)","u":"lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToLinearHeading(Pose2d)","u":"lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToSplineHeading(Pose2d)","u":"lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.util","c":"LoggingUtil","l":"LoggingUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"LynxFirmwareVersion(int, int, int)","u":"%3Cinit%3E(int,int,int)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersionException","l":"LynxFirmwareVersionException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil","l":"LynxModuleUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"major"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mapPose(Function)","u":"mapPose(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mapPose(Function)","u":"mapPose(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mapVec(Function)","u":"mapVec(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mapX(Function)","u":"mapX(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mapY(Function)","u":"mapY(java.util.function.Function)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_ACCEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_ACCEL"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_ANG_ACCEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_ANG_ACCEL"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_ANG_VEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_ANG_VEL"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_RPM"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_RPM"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_VEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_VEL"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"minor"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mirrorOverX(Pose2d)","u":"mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mirrorOverX(Pose2d)","u":"mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mirrorOverY(Pose2d)","u":"mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mirrorOverY(Pose2d)","u":"mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MOTOR_VELO_PID"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MOTOR_VELO_PID"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"motors"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateHeading(UnaryOperator)","u":"mutateHeading(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateHeading(UnaryOperator)","u":"mutateHeading(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutatePose(UnaryOperator)","u":"mutatePose(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutatePose(UnaryOperator)","u":"mutatePose(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateVec(UnaryOperator)","u":"mutateVec(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateVec(UnaryOperator)","u":"mutateVec(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mutateVec(UnaryOperator)","u":"mutateVec(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateX(UnaryOperator)","u":"mutateX(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateX(UnaryOperator)","u":"mutateX(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mutateX(UnaryOperator)","u":"mutateX(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateY(UnaryOperator)","u":"mutateY(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateY(UnaryOperator)","u":"mutateY(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mutateY(UnaryOperator)","u":"mutateY(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NNN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NNP"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NPN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NPP"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"OMEGA_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"OMEGA_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants, Localizer)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants,com.acmerobotics.roadrunner.localization.Localizer)"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PNN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PNP"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"POSE_HISTORY_LIMIT"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"POSE_HISTORY_LIMIT"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"POSE_HISTORY_LIMIT"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PPN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PPP"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"r"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"RampResult(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.util","c":"RegressionUtil","l":"RegressionUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.util","c":"BNO055IMUUtil","l":"remapAxes(BNO055IMU, AxesOrder, AxesSigns)","u":"remapAxes(com.qualcomm.hardware.bosch.BNO055IMU,org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.path.util.AxesSigns)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetAccelConstraint()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetConstraints()"},{"p":"com.technototes.path.command","c":"ResetGyroCommand","l":"ResetGyroCommand(PathingMecanumDrivebaseSubsystem)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetTurnConstraint()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetVelConstraint()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"rightEncoder"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"rightFront"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"rightRear"},{"p":"com.technototes.path.util","c":"LoggingUtil","l":"ROAD_RUNNER_FOLDER"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"rpmToVelocity(double, double, double)","u":"rpmToVelocity(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"rpmToVelocity(double, double, double)","u":"rpmToVelocity(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"rpmToVelocity(double, double, double)","u":"rpmToVelocity(double,double,double)"},{"p":"com.technototes.path.util","c":"RegressionUtil.AccelResult","l":"rSquare"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"rSquare"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"RUN_USING_ENCODER"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"RUN_USING_ENCODER"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"SequenceSegment(double, Pose2d, Pose2d, List)","u":"%3Cinit%3E(double,com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d,java.util.List)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(double, double)","u":"set(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(double, double)","u":"set(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"set(double, double)","u":"set(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(double, double, double)","u":"set(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(double, double, double)","u":"set(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(Pose2d)","u":"set(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(Pose2d)","u":"set(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(Vector2d)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(Vector2d)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"set(Vector2d)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(Vector2d, double)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(Vector2d, double)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setAccelConstraint(TrajectoryAccelerationConstraint)","u":"setAccelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"setConstraints(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"setGyroOffset(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"setHeading(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"setHeading(double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setMode(DcMotor.RunMode)","u":"setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setMode(DcMotor.RunMode)","u":"setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setMotorPowers(double, double)","u":"setMotorPowers(double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setMotorPowers(double, double, double, double)","u":"setMotorPowers(double,double,double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)","u":"setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)","u":"setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"setPoseEstimate(Pose2d)","u":"setPoseEstimate(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setReversed(boolean)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setTangent(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setTurnConstraint(double, double)","u":"setTurnConstraint(double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setVelConstraint(TrajectoryVelocityConstraint)","u":"setVelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setWeightedDrivePower(Pose2d)","u":"setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setWeightedDrivePower(Pose2d)","u":"setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"setX(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"setX(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"setX(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"setY(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"setY(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"setY(double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)","u":"setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)","u":"setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"size()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"speed"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineTo(Vector2d, double)","u":"splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToConstantHeading(Vector2d, double)","u":"splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToLinearHeading(Pose2d, double)","u":"splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToSplineHeading(Pose2d, double)","u":"splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"start()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"stop()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeLeft(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"strafeLeft(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeRight(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"strafeRight(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeTo(Vector2d)","u":"strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"subsystem"},{"p":"com.technototes.path.command","c":"ResetGyroCommand","l":"subsystem"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"subsystem"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"subsystem"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"TankDrivebaseSubsystem(EncodedMotorGroup, EncodedMotorGroup, IMU, TankConstants, Localizer)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.TankConstants,com.acmerobotics.roadrunner.localization.Localizer)"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants)","u":"%3Cinit%3E(com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.path.subsystem.DeadWheelConstants)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"TICKS_PER_REV"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"TICKS_PER_REV"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"ticksPerRev"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"toPose()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"toPose()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"toString()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"toVec()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"TRACK_WIDTH"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"TRACK_WIDTH"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"trajectory"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"trajectory"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, boolean)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, boolean)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, double)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, double)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TrajectorySegment","l":"TrajectorySegment(Trajectory)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"TrajectorySequence(List)","u":"%3Cinit%3E(java.util.List)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectorySequenceBuilder()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectorySequenceBuilder(Pose2d)","u":"trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectorySequenceBuilder(Pose2d)","u":"trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,java.lang.Double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.followers.TrajectoryFollower,com.acmerobotics.roadrunner.control.PIDCoefficients)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"trajFunc"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"trajFunc"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"TRANSLATIONAL_PID"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"TURN"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"turn(double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"turn(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"turn(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"turn(double, double, double)","u":"turn(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"turnAsync(double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"turnAsync(double)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TurnSegment","l":"TurnSegment(Pose2d, double, MotionProfile, List)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.profile.MotionProfile,java.util.List)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback)","u":"UNSTABLE_addDisplacementMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback)","u":"UNSTABLE_addTemporalMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"update()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"update()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"update()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"update(Pose2d)","u":"update(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"update(Pose2d, Pose2d)","u":"update(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"values()"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"values()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"VX_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"VX_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"VY_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"waitForIdle()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"waitForIdle()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"waitSeconds(double)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"WaitSegment","l":"WaitSegment(Pose2d, double, List)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,java.util.List)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"WHEEL_BASE"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"WHEEL_RADIUS"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"WHEEL_RADIUS"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"wheelRadius"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"x"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"x"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"y"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"y"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"zeroExternalHeading()"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/Path/module-search-index.js b/docs/Path/module-search-index.js index a6f96499..0d59754f 100644 --- a/docs/Path/module-search-index.js +++ b/docs/Path/module-search-index.js @@ -1,2 +1 @@ -moduleSearchIndex = []; -updateSearchResults(); +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/Path/overview-summary.html b/docs/Path/overview-summary.html index 54ad7d37..e4c41490 100644 --- a/docs/Path/overview-summary.html +++ b/docs/Path/overview-summary.html @@ -1,27 +1,25 @@ - + - - - Path API - - - - - - - - - - -
    - -

    index.html

    -
    - + + +Path API + + + + + + + + + + +
    + +

    index.html

    +
    + diff --git a/docs/Path/overview-tree.html b/docs/Path/overview-tree.html index 8a2963f3..11f1f087 100644 --- a/docs/Path/overview-tree.html +++ b/docs/Path/overview-tree.html @@ -1,1204 +1,221 @@ - + - - - Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Annotation Interface Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - + + +Class Hierarchy (Path API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Class Hierarchy

    + +
    +
    +

    Interface Hierarchy

    + +
    +
    +

    Annotation Interface Hierarchy

    + +
    +
    +

    Enum Class Hierarchy

    + +
    +
    +
    +
    + diff --git a/docs/Path/package-search-index.js b/docs/Path/package-search-index.js index 585beab9..8876cd3f 100644 --- a/docs/Path/package-search-index.js +++ b/docs/Path/package-search-index.js @@ -1,10 +1 @@ -packageSearchIndex = [ - { l: 'All Packages', u: 'allpackages-index.html' }, - { l: 'com.technototes.path.command' }, - { l: 'com.technototes.path.geometry' }, - { l: 'com.technototes.path.subsystem' }, - { l: 'com.technototes.path.trajectorysequence' }, - { l: 'com.technototes.path.trajectorysequence.sequencesegment' }, - { l: 'com.technototes.path.util' }, -]; -updateSearchResults(); +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.technototes.path.command"},{"l":"com.technototes.path.geometry"},{"l":"com.technototes.path.subsystem"},{"l":"com.technototes.path.trajectorysequence"},{"l":"com.technototes.path.trajectorysequence.sequencesegment"},{"l":"com.technototes.path.util"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/Path/script.js b/docs/Path/script.js index a6efd285..864989cf 100644 --- a/docs/Path/script.js +++ b/docs/Path/script.js @@ -29,106 +29,104 @@ var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); + createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); } function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); } function show(tableId, selected, columns) { - if (tableId !== selected) { - document - .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function (elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected).forEach(function (elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); } function updateTabs(tableId, selected) { - document - .querySelector('div#' + tableId + ' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex', 0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex', -1); - } - }); + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); } function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } } - } } -var updateSearchResults = function () {}; +var updateSearchResults = function() {}; function indexFilesLoaded() { - return ( - moduleSearchIndex && - packageSearchIndex && - typeSearchIndex && - memberSearchIndex && - tagSearchIndex - ); + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; } // Workaround for scroll position not being included in browser history (8249133) -document.addEventListener('DOMContentLoaded', function (e) { - var contentDiv = document.querySelector('div.flex-content'); - window.addEventListener('popstate', function (e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener('hashchange', function (e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener('scroll', function (e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function () { +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); } - }); - if (!location.hash) { - history.replaceState(contentDiv.scrollTop, document.title); - } }); diff --git a/docs/Path/search.js b/docs/Path/search.js index 3ba91721..db3b2f4a 100644 --- a/docs/Path/search.js +++ b/docs/Path/search.js @@ -23,354 +23,332 @@ * questions. */ -var noResult = { l: 'No results found' }; -var loading = { l: 'Loading search index...' }; -var catModules = 'Modules'; -var catPackages = 'Packages'; -var catTypes = 'Classes and Interfaces'; -var catMembers = 'Members'; -var catSearchTags = 'Search Tags'; -var highlight = '$&'; -var searchPattern = ''; -var fallbackPattern = ''; +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; var RANKING_THRESHOLD = 2; var NO_MATCH = 0xffff; var MIN_RESULTS = 3; var MAX_RESULTS = 500; -var UNNAMED = ''; +var UNNAMED = ""; function escapeHtml(str) { - return str.replace(//g, '>'); + return str.replace(//g, ">"); } function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight); - } - return highlighted; + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; } function getURLPrefix(ui) { - var urlPrefix = ''; - var slash = '/'; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function (index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); } - }); } - } - return urlPrefix; + return urlPrefix; } function createSearchPattern(term) { - var pattern = ''; - var isWordToken = false; - term - .replace(/,\s*/g, ', ') - .trim() - .split(/\s+/) - .forEach(function (w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; - } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === '') { - continue; + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += '([a-z0-9_$<>\\[\\]]*?)'; + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } } - } }); - return pattern; + return pattern; } function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); } var watermark = 'Search'; -$(function () { - var search = $('#search-input'); - var reset = $('#reset-button'); - search.val(''); - search.prop('disabled', false); - reset.prop('disabled', false); - search.val(watermark).addClass('watermark'); - search.blur(function () { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function () { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function () { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget('custom.catcomplete', $.ui.autocomplete, { - _create: function () { - this._super(); - this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); - }, - _renderMenu: function (ul, items) { - var rMenu = this; - var currentCategory = ''; - rMenu.menu.bindings = $(); - $.each(items, function (index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append('
  • ' + item.category + '
  • '); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr('aria-label', item.category + ' : ' + item.l); - li.attr('class', 'result-item'); - } else { - li.attr('aria-label', item.l); - li.attr('class', 'result-item'); - } +$(function() { + var search = $("#search-input"); + var reset = $("#reset-button"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } }); - }, - _renderItem: function (ul, item) { - var label = ''; - var matcher = createMatcher(escapeHtml(searchPattern), 'g'); - var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $('
  • ').appendTo(ul); - var div = $('
    ').appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html( - label + - ' (' + - item.h + - ')
    ' + - item.d + - '
    ', - ); - } else { - div.html(label + ' (' + item.h + ')'); - } - } else { - if (item.m) { - div.html(item.m + '/' + label); - } else { - div.html(label); - } + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + item.category + "
  • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
    " + + item.d + "
    "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; } - return li; - }, }); function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { - leftBoundaryMatch = 0; - } else if ( - '_' === input[index - 1] || - (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) - ) { - leftBoundaryMatch = 1; - } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf('('); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? '/' : '.'; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; } - } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) delta += match[i].length; - } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) delta += 5; - } - return leftBoundaryMatch + periferalMatch + delta / 200; + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + } function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === '') { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ''); - var fallbackMatcher = new RegExp(fallbackPattern, 'i'); + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ ranking: ranking, item: item }); + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); } - return newResults.length <= MAX_RESULTS; - }); - return newResults - .sort(function (e1, e2) { - return e1.ranking - e2.ranking; - }) - .map(function (e) { - return e.item; - }); + return []; } - return []; - } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher( - indexArray, - fallbackMatcher, - category, - nameFunc, - ); - result = result.concat( - secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - }), - ); + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } } - } - searchIndex(moduleSearchIndex, catModules, function (item) { - return item.l; - }); - searchIndex(packageSearchIndex, catPackages, function (item) { - return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function (item) { - return item.l; - }); + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); - if (!indexFilesLoaded()) { - updateSearchResults = function () { - doSearch(request, response); - }; - result.unshift(loading); - } else { - updateSearchResults = function () {}; - } - response(result); -} -$(function () { - $('#search-input').catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function (event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $('#search-input').empty(); - } - }, - autoFocus: true, - focus: function (event, ui) { - return false; - }, - position: { - collision: 'flip', - }, - select: function (event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += 'module-summary.html'; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + '.html'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + '.html' + '#'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search-input").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search-input").focus(); + } } - $('#search-input').focus(); - } - }, - }); + }); }); diff --git a/docs/Path/serialized-form.html b/docs/Path/serialized-form.html index 54d1be79..ecbc3349 100644 --- a/docs/Path/serialized-form.html +++ b/docs/Path/serialized-form.html @@ -1,147 +1,84 @@ - + - - - Serialized Form (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Serialized Form

    -
    - -
    -
    -
    - + + +Serialized Form (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Serialized Form

    +
    + +
    +
    +
    + diff --git a/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html b/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html index c28fede6..643546db 100644 --- a/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html +++ b/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html @@ -18,47 +18,46 @@ 005import com.acmerobotics.roadrunner.geometry.Vector2d; 006import com.technototes.library.command.Command; 007import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem; -008 -009import java.util.function.DoubleSupplier; -010 -011public class MecanumDriveCommand implements Command { -012 -013 public PathingMecanumDrivebaseSubsystem subsystem; -014 public DoubleSupplier x, y, r; -015 -016 public MecanumDriveCommand( -017 PathingMecanumDrivebaseSubsystem sub, -018 DoubleSupplier xSup, -019 DoubleSupplier ySup, -020 DoubleSupplier rSup -021 ) { -022 addRequirements(sub); -023 subsystem = sub; -024 x = xSup; -025 y = ySup; -026 r = rSup; -027 } -028 -029 @Override -030 public void execute() { -031 Vector2d input = new Vector2d(-y.getAsDouble() * subsystem.speed, -x.getAsDouble() * subsystem.speed) -032 .rotated(-subsystem.getExternalHeading()); -033 -034 subsystem.setWeightedDrivePower( -035 new Pose2d(input.getX(), input.getY(), -Math.pow(r.getAsDouble() * subsystem.speed, 3)) -036 ); -037 } -038 -039 @Override -040 public boolean isFinished() { -041 return false; -042 } -043 -044 @Override -045 public void end(boolean cancel) { -046 if (cancel) subsystem.setDriveSignal(new DriveSignal()); -047 } -048} +008import java.util.function.DoubleSupplier; +009 +010public class MecanumDriveCommand implements Command { +011 +012 public PathingMecanumDrivebaseSubsystem subsystem; +013 public DoubleSupplier x, y, r; +014 +015 public MecanumDriveCommand( +016 PathingMecanumDrivebaseSubsystem sub, +017 DoubleSupplier xSup, +018 DoubleSupplier ySup, +019 DoubleSupplier rSup +020 ) { +021 addRequirements(sub); +022 subsystem = sub; +023 x = xSup; +024 y = ySup; +025 r = rSup; +026 } +027 +028 @Override +029 public void execute() { +030 Vector2d input = new Vector2d(-y.getAsDouble() * subsystem.speed, -x.getAsDouble() * subsystem.speed) +031 .rotated(-subsystem.getExternalHeading()); +032 +033 subsystem.setWeightedDrivePower( +034 new Pose2d(input.getX(), input.getY(), -Math.pow(r.getAsDouble() * subsystem.speed, 3)) +035 ); +036 } +037 +038 @Override +039 public boolean isFinished() { +040 return false; +041 } +042 +043 @Override +044 public void end(boolean cancel) { +045 if (cancel) subsystem.setDriveSignal(new DriveSignal()); +046 } +047} diff --git a/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html b/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html index dd3029a8..9c441bf1 100644 --- a/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html +++ b/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html @@ -17,47 +17,46 @@ 004import com.acmerobotics.roadrunner.trajectory.Trajectory; 005import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder; 006import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem; -007 -008import java.util.function.BiFunction; -009import java.util.function.Function; -010import java.util.function.Supplier; -011 -012public class RegenerativeTrajectoryCommand extends TrajectoryCommand { -013 -014 public Supplier<Trajectory> trajFunc; -015 -016 public RegenerativeTrajectoryCommand( -017 PathingMecanumDrivebaseSubsystem sub, -018 Function<Function<Pose2d, TrajectoryBuilder>, Trajectory> t -019 ) { -020 super(sub, t); -021 trajFunc = () -> t.apply(sub::trajectoryBuilder); -022 } -023 -024 public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<Trajectory> t) { -025 super(sub, t); -026 trajFunc = t; -027 } -028 -029 public <T> RegenerativeTrajectoryCommand( -030 PathingMecanumDrivebaseSubsystem sub, -031 BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory> t, -032 T mux -033 ) { -034 super(sub, t, mux); -035 trajFunc = () -> t.apply(sub::trajectoryBuilder, mux); -036 } -037 -038 public <T> RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Function<T, Trajectory> t, T mux) { -039 super(sub, t, mux); -040 trajFunc = () -> t.apply(mux); -041 } -042 -043 @Override -044 public void initialize() { -045 subsystem.followTrajectoryAsync(trajFunc.get()); -046 } -047} +007import java.util.function.BiFunction; +008import java.util.function.Function; +009import java.util.function.Supplier; +010 +011public class RegenerativeTrajectoryCommand extends TrajectoryCommand { +012 +013 public Supplier<Trajectory> trajFunc; +014 +015 public RegenerativeTrajectoryCommand( +016 PathingMecanumDrivebaseSubsystem sub, +017 Function<Function<Pose2d, TrajectoryBuilder>, Trajectory> t +018 ) { +019 super(sub, t); +020 trajFunc = () -> t.apply(sub::trajectoryBuilder); +021 } +022 +023 public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<Trajectory> t) { +024 super(sub, t); +025 trajFunc = t; +026 } +027 +028 public <T> RegenerativeTrajectoryCommand( +029 PathingMecanumDrivebaseSubsystem sub, +030 BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory> t, +031 T mux +032 ) { +033 super(sub, t, mux); +034 trajFunc = () -> t.apply(sub::trajectoryBuilder, mux); +035 } +036 +037 public <T> RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Function<T, Trajectory> t, T mux) { +038 super(sub, t, mux); +039 trajFunc = () -> t.apply(mux); +040 } +041 +042 @Override +043 public void initialize() { +044 subsystem.followTrajectoryAsync(trajFunc.get()); +045 } +046} diff --git a/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html b/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html index ef9d1b2f..cfe8b533 100644 --- a/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html +++ b/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html @@ -58,32 +58,36 @@ 045 trajectory = t.apply(sub::trajectorySequenceBuilder, mux); 046 } 047 -048 public <T> TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem sub, Function<T, TrajectorySequence> t, T mux) { -049 addRequirements(sub); -050 subsystem = sub; -051 trajectory = t.apply(mux); -052 } -053 -054 @Override -055 public void initialize() { -056 subsystem.followTrajectorySequenceAsync(trajectory); -057 } -058 -059 @Override -060 public void execute() { -061 subsystem.update(); -062 } -063 -064 @Override -065 public boolean isFinished() { -066 return !subsystem.isBusy(); -067 } -068 -069 @Override -070 public void end(boolean cancel) { -071 if (cancel) subsystem.stop(); -072 } -073} +048 public <T> TrajectorySequenceCommand( +049 PathingMecanumDrivebaseSubsystem sub, +050 Function<T, TrajectorySequence> t, +051 T mux +052 ) { +053 addRequirements(sub); +054 subsystem = sub; +055 trajectory = t.apply(mux); +056 } +057 +058 @Override +059 public void initialize() { +060 subsystem.followTrajectorySequenceAsync(trajectory); +061 } +062 +063 @Override +064 public void execute() { +065 subsystem.update(); +066 } +067 +068 @Override +069 public boolean isFinished() { +070 return !subsystem.isBusy(); +071 } +072 +073 @Override +074 public void end(boolean cancel) { +075 if (cancel) subsystem.stop(); +076 } +077} diff --git a/docs/Path/stylesheet.css b/docs/Path/stylesheet.css index 236a306f..4a576bd2 100644 --- a/docs/Path/stylesheet.css +++ b/docs/Path/stylesheet.css @@ -12,89 +12,86 @@ */ body { - background-color: #ffffff; - color: #353833; - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; - margin: 0; - padding: 0; - height: 100%; - width: 100%; + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; } iframe { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overflow-y: scroll; - border: none; -} -a:link, -a:visited { - text-decoration: none; - color: #4a6782; -} -a[href]:hover, -a[href]:focus { - text-decoration: none; - color: #bb7a2a; + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; } a[name] { - color: #353833; + color:#353833; } pre { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; } h1 { - font-size: 20px; + font-size:20px; } h2 { - font-size: 18px; + font-size:18px; } h3 { - font-size: 16px; + font-size:16px; } h4 { - font-size: 15px; + font-size:15px; } h5 { - font-size: 14px; + font-size:14px; } h6 { - font-size: 13px; + font-size:13px; } ul { - list-style-type: disc; + list-style-type:disc; } -code, -tt { - font-family: 'DejaVu Sans Mono', monospace; +code, tt { + font-family:'DejaVu Sans Mono', monospace; } :not(h1, h2, h3, h4, h5, h6) > code, :not(h1, h2, h3, h4, h5, h6) > tt { - font-size: 14px; - padding-top: 4px; - margin-top: 8px; - line-height: 1.4em; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; } dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - padding-top: 4px; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; } .summary-table dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - vertical-align: top; - padding-top: 4px; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; } sup { - font-size: 8px; + font-size:8px; } button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; } /* * Styles for HTML generated by javadoc. @@ -106,654 +103,596 @@ button { * Styles for document title and copyright. */ .clear { - clear: both; - height: 0; - overflow: hidden; + clear:both; + height:0; + overflow:hidden; } .about-language { - float: right; - padding: 0 21px 8px 8px; - font-size: 11px; - margin-top: -9px; - height: 2.9em; + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; } .legal-copy { - margin-left: 0.5em; + margin-left:.5em; } .tab { - background-color: #0066ff; - color: #ffffff; - padding: 8px; - width: 5em; - font-weight: bold; + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; } /* * Styles for navigation bar. */ @media screen { - .flex-box { - position: fixed; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } } .top-nav { - background-color: #4d7a97; - color: #ffffff; - float: left; - padding: 0; - width: 100%; - clear: right; - min-height: 2.8em; - padding-top: 10px; - overflow: hidden; - font-size: 12px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; } .sub-nav { - background-color: #dee3e9; - float: left; - width: 100%; - overflow: hidden; - font-size: 12px; + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; } .sub-nav div { - clear: left; - float: left; - padding: 0 0 5px 6px; - text-transform: uppercase; + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; } .sub-nav .nav-list { - padding-top: 5px; + padding-top:5px; } ul.nav-list { - display: block; - margin: 0 25px 0 0; - padding: 0; + display:block; + margin:0 25px 0 0; + padding:0; } ul.sub-nav-list { - float: left; - margin: 0 25px 0 0; - padding: 0; + float:left; + margin:0 25px 0 0; + padding:0; } ul.nav-list li { - list-style: none; - float: left; - padding: 5px 6px; - text-transform: uppercase; + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; } .sub-nav .nav-list-search { - float: right; - margin: 0 0 0 0; - padding: 5px 6px; - clear: none; + float:right; + margin:0 0 0 0; + padding:5px 6px; + clear:none; } .nav-list-search label { - position: relative; - right: -16px; + position:relative; + right:-16px; } ul.sub-nav-list li { - list-style: none; - float: left; - padding-top: 10px; + list-style:none; + float:left; + padding-top:10px; } -.top-nav a:link, -.top-nav a:active, -.top-nav a:visited { - color: #ffffff; - text-decoration: none; - text-transform: uppercase; +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; } .top-nav a:hover { - text-decoration: none; - color: #bb7a2a; - text-transform: uppercase; + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; } .nav-bar-cell1-rev { - background-color: #f8981d; - color: #253441; - margin: auto 5px; + background-color:#F8981D; + color:#253441; + margin: auto 5px; } .skip-nav { - position: absolute; - top: auto; - left: -9999px; - overflow: hidden; + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; } /* * Hide navigation links and search box in print layout */ @media print { - ul.nav-list, - div.sub-nav { - display: none; - } + ul.nav-list, div.sub-nav { + display:none; + } } /* * Styles for page header and footer. */ .title { - color: #2c4557; - margin: 10px 0; + color:#2c4557; + margin:10px 0; } .sub-title { - margin: 5px 0 0 0; + margin:5px 0 0 0; } .header ul { - margin: 0 0 15px 0; - padding: 0; + margin:0 0 15px 0; + padding:0; } -.header ul li, -.footer ul li { - list-style: none; - font-size: 13px; +.header ul li, .footer ul li { + list-style:none; + font-size:13px; } /* * Styles for headings. */ body.class-declaration-page .summary h2, body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding: 0; - margin: 15px 0; +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; } body.class-declaration-page .summary h3, body.class-declaration-page .details h3, body.class-declaration-page .summary .inherited-list h2 { - background-color: #dee3e9; - border: 1px solid #d0d9e0; - margin: 0 0 6px -8px; - padding: 7px 5px; + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; } /* * Styles for page layout containers. */ main { - clear: both; - padding: 10px 20px; - position: relative; + clear:both; + padding:10px 20px; + position:relative; } dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: bold; - margin: 10px 0 0 0; - color: #4e4e4e; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; } dl.notes > dd { - margin: 5px 10px 10px 0; - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + margin:5px 10px 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } dl.name-value > dt { - margin-left: 1px; - font-size: 1.1em; - display: inline; - font-weight: bold; + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; } dl.name-value > dd { - margin: 0 0 0 1px; - font-size: 1.1em; - display: inline; + margin:0 0 0 1px; + font-size:1.1em; + display:inline; } /* * Styles for lists. */ li.circle { - list-style: circle; + list-style:circle; } ul.horizontal li { - display: inline; - font-size: 0.9em; + display:inline; + font-size:0.9em; } div.inheritance { - margin: 0; - padding: 0; + margin:0; + padding:0; } div.inheritance div.inheritance { - margin-left: 2em; + margin-left:2em; } ul.block-list, ul.details-list, ul.member-list, ul.summary-list { - margin: 10px 0 10px 0; - padding: 0; + margin:10px 0 10px 0; + padding:0; } ul.block-list > li, ul.details-list > li, ul.member-list > li, ul.summary-list > li { - list-style: none; - margin-bottom: 15px; - line-height: 1.4; + list-style:none; + margin-bottom:15px; + line-height:1.4; } -.summary-table dl, -.summary-table dl dt, -.summary-table dl dd { - margin-top: 0; - margin-bottom: 1px; +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; } -ul.see-list, -ul.see-list-long { - padding-left: 0; - list-style: none; +ul.see-list, ul.see-list-long { + padding-left: 0; + list-style: none; } ul.see-list li { - display: inline; + display: inline; } ul.see-list li:not(:last-child):after, ul.see-list-long li:not(:last-child):after { - content: ', '; - white-space: pre-wrap; + content: ", "; + white-space: pre-wrap; } /* * Styles for tables. */ -.summary-table, -.details-table { - width: 100%; - border-spacing: 0; - border-left: 1px solid #eee; - border-right: 1px solid #eee; - border-bottom: 1px solid #eee; - padding: 0; +.summary-table, .details-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; + padding:0; } .caption { - position: relative; - text-align: left; - background-repeat: no-repeat; - color: #253441; - font-weight: bold; - clear: none; - overflow: hidden; - padding: 0; - padding-top: 10px; - padding-left: 1px; - margin: 0; - white-space: pre; -} -.caption a:link, -.caption a:visited { - color: #1f389c; + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0; + padding-top:10px; + padding-left:1px; + margin:0; + white-space:pre; +} +.caption a:link, .caption a:visited { + color:#1f389c; } .caption a:hover, .caption a:active { - color: #ffffff; + color:#FFFFFF; } .caption span { - white-space: nowrap; - padding-top: 5px; - padding-left: 12px; - padding-right: 12px; - padding-bottom: 7px; - display: inline-block; - float: left; - background-color: #f8981d; - border: none; - height: 16px; + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; } div.table-tabs { - padding: 10px 0 0 1px; - margin: 0; + padding:10px 0 0 1px; + margin:0; } div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; } div.table-tabs > button.active-table-tab { - background: #f8981d; - color: #253441; + background: #F8981D; + color: #253441; } div.table-tabs > button.table-tab { - background: #4d7a97; - color: #ffffff; + background: #4D7A97; + color: #FFFFFF; } .two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); } .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); } .four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( - 10%, - auto - ); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); } @media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } } @media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } } @media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, -.details-table > div { - text-align: left; - padding: 8px 3px 3px 7px; -} -.col-first, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name { - vertical-align: top; - padding-right: 0; - padding-top: 8px; - padding-bottom: 3px; + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; } .table-header { - background: #dee3e9; - font-weight: bold; -} -.col-first, -.col-first { - font-size: 13px; -} -.col-second, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name, -.col-last { - font-size: 13px; + background:#dee3e9; + font-weight: bold; } -.col-first, -.col-second, -.col-constructor-name { - vertical-align: top; - overflow: auto; +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; } .col-last { - white-space: normal; -} -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-constructor-name a:link, -.col-constructor-name a:visited, -.col-summary-item-name a:link, -.col-summary-item-name a:visited, -.constant-values-container a:link, -.constant-values-container a:visited, -.all-classes-container a:link, -.all-classes-container a:visited, -.all-packages-container a:link, -.all-packages-container a:visited { - font-weight: bold; + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { + font-weight:bold; } .table-sub-heading-color { - background-color: #eeeeff; + background-color:#EEEEFF; } -.even-row-color, -.even-row-color .table-header { - background-color: #ffffff; +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; } -.odd-row-color, -.odd-row-color .table-header { - background-color: #eeeeef; +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; } /* * Styles for contents. */ .deprecated-content { - margin: 0; - padding: 10px 0; + margin:0; + padding:10px 0; } div.block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } .col-last div { - padding-top: 0; + padding-top:0; } .col-last a { - padding-bottom: 3px; + padding-bottom:3px; } .module-signature, .package-signature, .type-signature, .member-signature { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - margin: 14px 0; - white-space: pre-wrap; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; } .module-signature, .package-signature, .type-signature { - margin-top: 0; + margin-top: 0; } .member-signature .type-parameters-long, .member-signature .parameters, .member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; + display: inline-block; + vertical-align: top; + white-space: pre; } .member-signature .type-parameters { - white-space: normal; + white-space: normal; } /* * Styles for formatting effect. */ .source-line-no { - color: green; - padding: 0 30px 0 0; + color:green; + padding:0 30px 0 0; } h1.hidden { - visibility: hidden; - overflow: hidden; - font-size: 10px; + visibility:hidden; + overflow:hidden; + font-size:10px; } .block { - display: block; - margin: 0 10px 5px 0; - color: #474747; -} -.deprecated-label, -.descfrm-type-label, -.implementation-label, -.member-name-label, -.member-name-link, -.module-label-in-package, -.module-label-in-type, -.override-specify-label, -.package-label-in-type, -.package-hierarchy-label, -.type-name-label, -.type-name-link, -.search-tag-link, -.preview-label { - font-weight: bold; -} -.deprecation-comment, -.help-footnote, -.preview-comment { - font-style: italic; + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; } .deprecation-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; } .preview-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; } div.block div.deprecation-comment { - font-style: normal; + font-style:normal; } /* * Styles specific to HTML5 elements. */ -main, -nav, -header, -footer, -section { - display: block; +main, nav, header, footer, section { + display:block; } /* * Styles for javadoc search. */ .ui-autocomplete-category { - font-weight: bold; - font-size: 15px; - padding: 7px 0 7px 3px; - background-color: #4d7a97; - color: #ffffff; + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; } .result-item { - font-size: 13px; + font-size:13px; } .ui-autocomplete { - max-height: 85%; - max-width: 65%; - overflow-y: scroll; - overflow-x: scroll; - white-space: nowrap; - box-shadow: - 0 3px 6px rgba(0, 0, 0, 0.16), - 0 3px 6px rgba(0, 0, 0, 0.23); + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); } ul.ui-autocomplete { - position: fixed; - z-index: 999999; - background-color: #ffffff; + position:fixed; + z-index:999999; + background-color: #FFFFFF; } -ul.ui-autocomplete li { - float: left; - clear: both; - width: 100%; +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; } .result-highlight { - font-weight: bold; + font-weight:bold; } .ui-autocomplete .result-item { - font-size: inherit; + font-size: inherit; } #search-input { - background-image: url('resources/glass.png'); - background-size: 13px; - background-repeat: no-repeat; - background-position: 2px 3px; - padding-left: 20px; - position: relative; - right: -18px; - width: 400px; + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; + width:400px; } #reset-button { - background-color: rgb(255, 255, 255); - background-image: url('resources/x.png'); - background-position: center; - background-repeat: no-repeat; - background-size: 12px; - border: 0 none; - width: 16px; - height: 16px; - position: relative; - left: -4px; - top: -4px; - font-size: 0px; + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:16px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; } .watermark { - color: #545454; + color:#545454; } .search-tag-desc-result { - font-style: italic; - font-size: 11px; + font-style:italic; + font-size:11px; } .search-tag-holder-result { - font-style: italic; - font-size: 12px; + font-style:italic; + font-size:12px; } .search-tag-result:target { - background-color: yellow; + background-color:yellow; } .module-graph span { - display: none; - position: absolute; + display:none; + position:absolute; } .module-graph:hover span { - display: block; - margin: -100px 0 0 100px; - z-index: 1; + display:block; + margin: -100px 0 0 100px; + z-index: 1; } .inherited-list { - margin: 10px 0 10px 0; + margin: 10px 0 10px 0; } section.class-description { - line-height: 1.4; -} -.summary section[class$='-summary'], -.details section[class$='-details'], -.class-uses .detail, -.serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, -section[class$='-details'] .detail { - padding: 0 0 5px 8px; - background-color: #ffffff; - border: none; + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; } .vertical-separator { - padding: 0 5px; + padding: 0 5px; } ul.help-section-list { - margin: 0; + margin: 0; } ul.help-subtoc > li { display: inline-block; @@ -761,34 +700,32 @@ ul.help-subtoc > li { font-size: smaller; } ul.help-subtoc > li::before { - content: '\2022'; - padding-right: 2px; + content: "\2022" ; + padding-right:2px; } span.help-note { - font-style: italic; + font-style: italic; } /* * Indicator icon for external links. */ -main a[href*="://"]::after -{ - content: ''; - display: inline-block; - background-image: url('data:image/svg+xml; utf8, \ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ \ \ '); - background-size: 100% 100%; - width: 7px; - height: 7px; - margin-left: 2px; - margin-bottom: 4px; + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; } main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after -{ - background-image: url('data:image/svg+xml; utf8, \ +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ \ \ @@ -817,135 +754,116 @@ main a[href*="://"]:focus::after table.borderless, table.plain, table.striped { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } table.borderless > caption, table.plain > caption, table.striped > caption { - font-weight: bold; - font-size: smaller; + font-weight: bold; + font-size: smaller; } -table.borderless th, -table.borderless td, -table.plain th, -table.plain td, -table.striped th, -table.striped td { - padding: 2px 5px; +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; } table.borderless, -table.borderless > thead > tr > th, -table.borderless > tbody > tr > th, -table.borderless > tr > th, -table.borderless > thead > tr > td, -table.borderless > tbody > tr > td, -table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, -table.borderless > tbody > tr, -table.borderless > tr { - background-color: transparent; +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; } table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, -table.plain > tbody tr, -table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, -table.plain > tbody > tr > th, -table.plain > tr > th, -table.plain > thead > tr > td, -table.plain > tbody > tr > td, -table.plain > tr > td { - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; } table.striped { - border-collapse: collapse; - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; } table.striped > thead { - background-color: #e3e3e3; + background-color: #E3E3E3; } -table.striped > thead > tr > th, -table.striped > thead > tr > td { - border: 1px solid black; +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; } table.striped > tbody > tr:nth-child(even) { - background-color: #eee; + background-color: #EEE } table.striped > tbody > tr:nth-child(odd) { - background-color: #fff; + background-color: #FFF } -table.striped > tbody > tr > th, -table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; } table.striped > tbody > tr > th { - font-weight: normal; + font-weight: normal; } /** * Tweak font sizes and paddings for small screens. */ @media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } + #search-input { + width: 300px; + } } @media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$='-summary'], - .details section[class$='-details'], - .class-uses .detail, - .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } } @media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } } diff --git a/docs/Path/tag-search-index.js b/docs/Path/tag-search-index.js index 6080d404..f38b3cb3 100644 --- a/docs/Path/tag-search-index.js +++ b/docs/Path/tag-search-index.js @@ -1,2 +1 @@ -tagSearchIndex = [{ l: 'Serialized Form', h: '', u: 'serialized-form.html' }]; -updateSearchResults(); +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/Path/type-search-index.js b/docs/Path/type-search-index.js index 941e2e37..6286d5b7 100644 --- a/docs/Path/type-search-index.js +++ b/docs/Path/type-search-index.js @@ -1,88 +1 @@ -typeSearchIndex = [ - { p: 'com.technototes.path.util', l: 'RegressionUtil.AccelResult' }, - { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, - { p: 'com.technototes.path.util', l: 'AxesSigns' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.AxialPID' }, - { p: 'com.technototes.path.util', l: 'BNO055IMUUtil' }, - { p: 'com.technototes.path.geometry', l: 'ConfigurablePose' }, - { p: 'com.technototes.path.geometry', l: 'ConfigurablePoseD' }, - { p: 'com.technototes.path.geometry', l: 'ConfigurableVector' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.CrossPID' }, - { p: 'com.technototes.path.util', l: 'DashboardUtil' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants' }, - { p: 'com.technototes.path.subsystem', l: 'DistanceSensorLocalizer' }, - { p: 'com.technototes.path.trajectorysequence', l: 'EmptySequenceException' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.EncoderOverflow' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.ForwardOffset' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.GearRatio' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.GearRatio' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.GearRatio' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.HeadPID' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.HeadPID' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KA' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.KA' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KStatic' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.KStatic' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KV' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.KV' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.LateralDistance' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.LateralMult' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.LateralMult' }, - { p: 'com.technototes.path.util', l: 'LoggingUtil' }, - { p: 'com.technototes.path.util', l: 'LynxModuleUtil.LynxFirmwareVersion' }, - { p: 'com.technototes.path.util', l: 'LynxModuleUtil.LynxFirmwareVersionException' }, - { p: 'com.technototes.path.util', l: 'LynxModuleUtil' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAccel' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAccel' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAngleAccel' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAngleAccel' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAngleVelo' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAngleVelo' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxRPM' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxRPM' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxVelo' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxVelo' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants' }, - { p: 'com.technototes.path.command', l: 'MecanumDriveCommand' }, - { p: 'com.technototes.path.subsystem', l: 'PathingMecanumDrivebaseSubsystem.Mode' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MotorVeloPID' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MotorVeloPID' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.OmegaWeight' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.OmegaWeight' }, - { p: 'com.technototes.path.subsystem', l: 'PathingMecanumDrivebaseSubsystem' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.PoseLimit' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.PoseLimit' }, - { p: 'com.technototes.path.util', l: 'RegressionUtil.RampResult' }, - { p: 'com.technototes.path.command', l: 'RegenerativeTrajectoryCommand' }, - { p: 'com.technototes.path.command', l: 'RegenerativeTrajectorySequenceCommand' }, - { p: 'com.technototes.path.util', l: 'RegressionUtil' }, - { p: 'com.technototes.path.command', l: 'ResetGyroCommand' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'SequenceSegment' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants' }, - { p: 'com.technototes.path.subsystem', l: 'TankDrivebaseSubsystem' }, - { p: 'com.technototes.path.subsystem', l: 'ThreeDeadWheelLocalizer' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.TicksPerRev' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TicksPerRev' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.TicksPerRev' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TrackWidth' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.TrackWidth' }, - { p: 'com.technototes.path.command', l: 'TrajectoryCommand' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'TrajectorySegment' }, - { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequence' }, - { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequenceBuilder' }, - { p: 'com.technototes.path.command', l: 'TrajectorySequenceCommand' }, - { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequenceRunner' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TransPID' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'TurnSegment' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.UseDriveEncoder' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.UseDriveEncoder' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.VXWeight' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.VXWeight' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.VYWeight' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'WaitSegment' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.WheelBase' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.WheelRadius' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.WheelRadius' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.WheelRadius' }, -]; -updateSearchResults(); +typeSearchIndex = [{"p":"com.technototes.path.util","l":"RegressionUtil.AccelResult"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.technototes.path.util","l":"AxesSigns"},{"p":"com.technototes.path.subsystem","l":"TankConstants.AxialPID"},{"p":"com.technototes.path.util","l":"BNO055IMUUtil"},{"p":"com.technototes.path.geometry","l":"ConfigurablePose"},{"p":"com.technototes.path.geometry","l":"ConfigurablePoseD"},{"p":"com.technototes.path.geometry","l":"ConfigurableVector"},{"p":"com.technototes.path.subsystem","l":"TankConstants.CrossPID"},{"p":"com.technototes.path.util","l":"DashboardUtil"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants"},{"p":"com.technototes.path.subsystem","l":"DistanceSensorLocalizer"},{"p":"com.technototes.path.trajectorysequence","l":"EmptySequenceException"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.EncoderOverflow"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.ForwardOffset"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.GearRatio"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.GearRatio"},{"p":"com.technototes.path.subsystem","l":"TankConstants.GearRatio"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.HeadPID"},{"p":"com.technototes.path.subsystem","l":"TankConstants.HeadPID"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.KA"},{"p":"com.technototes.path.subsystem","l":"TankConstants.KA"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.KStatic"},{"p":"com.technototes.path.subsystem","l":"TankConstants.KStatic"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.KV"},{"p":"com.technototes.path.subsystem","l":"TankConstants.KV"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.LateralDistance"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.LateralMult"},{"p":"com.technototes.path.subsystem","l":"TankConstants.LateralMult"},{"p":"com.technototes.path.util","l":"LoggingUtil"},{"p":"com.technototes.path.util","l":"LynxModuleUtil.LynxFirmwareVersion"},{"p":"com.technototes.path.util","l":"LynxModuleUtil.LynxFirmwareVersionException"},{"p":"com.technototes.path.util","l":"LynxModuleUtil"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxAccel"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxAccel"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxAngleAccel"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxAngleAccel"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxAngleVelo"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxAngleVelo"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxRPM"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxRPM"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxVelo"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxVelo"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants"},{"p":"com.technototes.path.command","l":"MecanumDriveCommand"},{"p":"com.technototes.path.subsystem","l":"PathingMecanumDrivebaseSubsystem.Mode"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MotorVeloPID"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MotorVeloPID"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.OmegaWeight"},{"p":"com.technototes.path.subsystem","l":"TankConstants.OmegaWeight"},{"p":"com.technototes.path.subsystem","l":"PathingMecanumDrivebaseSubsystem"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.PoseLimit"},{"p":"com.technototes.path.subsystem","l":"TankConstants.PoseLimit"},{"p":"com.technototes.path.util","l":"RegressionUtil.RampResult"},{"p":"com.technototes.path.command","l":"RegenerativeTrajectoryCommand"},{"p":"com.technototes.path.command","l":"RegenerativeTrajectorySequenceCommand"},{"p":"com.technototes.path.util","l":"RegressionUtil"},{"p":"com.technototes.path.command","l":"ResetGyroCommand"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"SequenceSegment"},{"p":"com.technototes.path.subsystem","l":"TankConstants"},{"p":"com.technototes.path.subsystem","l":"TankDrivebaseSubsystem"},{"p":"com.technototes.path.subsystem","l":"ThreeDeadWheelLocalizer"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.TicksPerRev"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.TicksPerRev"},{"p":"com.technototes.path.subsystem","l":"TankConstants.TicksPerRev"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.TrackWidth"},{"p":"com.technototes.path.subsystem","l":"TankConstants.TrackWidth"},{"p":"com.technototes.path.command","l":"TrajectoryCommand"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"TrajectorySegment"},{"p":"com.technototes.path.trajectorysequence","l":"TrajectorySequence"},{"p":"com.technototes.path.trajectorysequence","l":"TrajectorySequenceBuilder"},{"p":"com.technototes.path.command","l":"TrajectorySequenceCommand"},{"p":"com.technototes.path.trajectorysequence","l":"TrajectorySequenceRunner"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.TransPID"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"TurnSegment"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.UseDriveEncoder"},{"p":"com.technototes.path.subsystem","l":"TankConstants.UseDriveEncoder"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.VXWeight"},{"p":"com.technototes.path.subsystem","l":"TankConstants.VXWeight"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.VYWeight"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"WaitSegment"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.WheelBase"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.WheelRadius"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.WheelRadius"},{"p":"com.technototes.path.subsystem","l":"TankConstants.WheelRadius"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/TechnoLib/allclasses-index.html b/docs/TechnoLib/allclasses-index.html index 60a3aaee..4d79fa7b 100644 --- a/docs/TechnoLib/allclasses-index.html +++ b/docs/TechnoLib/allclasses-index.html @@ -1,1520 +1,463 @@ - + - - - All Classes and Interfaces (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    - -
    -
    -
    -
    Class
    -
    Description
    -
    - Alliance -
    -
    -
    - An enumeration to specify which alliance the bot is on (Red, Blue, or None) -
    -
    - -
    -
    Not sure what this is for.
    -
    - -
    -
    Not sure what this is for.
    -
    - -
    -
    - This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate. -
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Class for analog sensors
    -
    -
    - AxisBase -
    -
    -
    The class to extend custom gamepad axis from
    -
    -
    - Binding<T - extends - BooleanSupplier> -
    -
    -
    Class for bindings to extend
    -
    - -
    -
    Button type
    -
    - -
    -   -
    - -
    -
    The class to extend custom gamepad buttons from
    -
    - -
    -   -
    - -
    -
    - A command that allows choosing among a number of commands based on variety of - conditions -
    -
    -
    - Color -
    -
    -
    Enum for Colors and some formatting
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -   -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Class for color sensors
    -
    -
    - Command -
    -
    -
    The root Command class
    -
    - -
    -
    The command state enum
    -
    - -
    -
    Class for command axis for the gamepad
    -
    - -
    - Deprecated. -
    - -
    -
    - Command implementation of - Binding -
    -
    - -
    -
    Class for command buttons for gamepad
    -
    - -
    -
    Class for command gamepads that specifies class params
    -
    - -
    -
    - Root class for all command groups (Sequential, Parallel, etc...) WARNING: You - probably will be better served by the specific CommandGroup subclasses, rather - than using this one directly. -
    -
    -
    - CommandInput<T - extends - ButtonBase> -
    -
    -
    Class for gamepad-command integration
    -
    - -
    -
    Class for command based op modes
    -
    - -
    -
    Enum for op mode state
    -
    - -
    -
    This is a "singleton" object for scheduling commands.
    -
    - -
    -
    - Simple class for commands that require a certain condition to be true to run -
    -
    - -
    -
    TODO: Remove this.
    -
    -
    - DeviceSubsystem<T - extends - HardwareDevice<?>> -
    -
    -
    class for subsystems
    -
    - -
    -   -
    - -
    -
    Enum for the priority of the differential.
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Class for digital sensors
    -
    - -
    -
    TODO: Remove this.
    -
    -
    - DrivebaseSubsystem<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for DriveBase subsystems
    -
    -
    - DummyDevice<T> -
    -
    -
    This isn't worth actually doing.
    -
    -
    - Enablable<T - extends - Enablable<T>> -
    -
    -
    Interface for anything that can be enabled/disabled
    -
    -
    - EncodedMotor<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for encoded motors
    -
    -
    - EncodedMotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for encoded motor groups
    -
    - -
    -
    Class for encoded motor subsystems
    -
    -
    - Encoder -
    -
    -
    Interfaces for encoders to use
    -
    -
    - Entry<T> -
    -
    -
    The root class for logging entries
    -
    - -
    -
    - A wrapper around an AnalogInput that enables "zeroing" for usefulness -
    -
    -
    - GamepadBase<T - extends - ButtonBase,U - extends - AxisBase> -
    -
    -
    - A class to extend gamepads from, it does the internal processing for you. -
    -
    - -
    -
    Axis enum for all axis on gamepad
    -
    - -
    -
    Button enum for all buttons on gamepad
    -
    -
    - GamepadDpad<T - extends - ButtonBase> -
    -
    -
    A class for dpads
    -
    -
    - GamepadStick<T - extends - AxisBase,U - extends - ButtonBase> -
    -
    -
    A class for gamepad sticks
    -
    - -
    -
    TODO: Remove this.
    -
    -
    - HardwareDevice<T - extends com.qualcomm.robotcore.hardware.HardwareDevice> -
    -
    - Deprecated. -
    - -
    - Deprecated. -
    - -
    -   -
    - -
    -   -
    -
    - IGyro -
    -
    -
    An interface for a single-angle gyroscope
    -
    - -
    -   -
    -
    - IMU -
    -
    -
    - Class for the IMU (Inertial Movement Units) that implements the IGyro interface -
    -
    - -
    -
    The direction of the axes signs when remapping the axes
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    This is duplicated in the IMU class
    -
    -
    - Integral -
    -
    -
    A simple Observation-based integral calculator over time
    -
    -
    - Invertable<T - extends - Invertable<T>> -
    -
    -
    Interface for anything that can be inverted
    -
    - -
    -   -
    -
    - Log -
    -
    -
    - The root annotation for annotation logging, also doubles as a basic string log -
    -
    - -
    -   -
    -
    - Log.Logs -
    -
    -   -
    - -
    -
    Log a number
    -
    - -
    -
    Log a number, but store it as a number bar
    -
    - -
    -   -
    -
    - LogConfig -
    -
    -
    Annotations for configuring Logs
    -
    - -
    -
    Annotation for Blacklisting Opmodes to log this item
    -
    - -
    -
    Annotation to completely disable the entry
    -
    - -
    -
    - Annotation for determining when logged item will be sent to Telemetry -
    -
    - -
    -
    Annotation for Whitelisting Opmodes to log this item
    -
    -
    - Loggable -
    -
    -
    - All classes with annotations for logging must extend this all the way up the - hierarchy up to the op mode -
    -
    -
    - Logger -
    -
    -
    The class to manage logging
    -
    -
    - MapUtils -
    -
    -   -
    -
    - MathUtils -
    -
    -
    Class with various math functions
    -
    -
    - Motor<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for motors
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    - Wraps a motor instance to provide corrected velocity counts and allow reversing - independently of the corresponding slot's motor direction -
    -
    - -
    -   -
    -
    - MotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for a group of motors
    -
    -
    - MotorSubsystem<T - extends - Motor<?>> -
    -
    -
    Class for motor subsystems
    -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -
    - Command group to run commands in parallel until all of them finish -
    -
    - -
    -
    - Command group to run commands in parallel until one particular command completes -
    -
    - -
    -
    - Command group to run commands in parallel until *one* is finished -
    -
    -
    - Periodic -
    -
    -
    An interface for classes to have the periodic function
    -
    -
    - Range -
    -
    -
    Helper class for tracking a range
    -
    - -
    - Deprecated. -
    - -
    -
    - Root class for the Robot Library (I will put important stuff here) -
    -
    -
    - Sensor<T - extends com.qualcomm.robotcore.hardware.HardwareDevice> -
    -
    - Deprecated. -
    -
    - Sensored -
    -
    - Deprecated. -
    - -
    -
    - A grouping command which runs a list of commands in sequence -
    -
    -
    - Servo -
    -
    - Deprecated. -
    - -
    -
    TODO: Remove this.
    -
    - -
    - Deprecated. -
    - -
    -   -
    - -
    -   -
    - -
    -
    Class for servo subsystems
    -
    -
    - SimpleMecanumDrivebaseSubsystem<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for mecanum/xdrive drivebases
    -
    - -
    -
    - This is a functional interface, when 'accept' is invoked, will only invoke the - 'consume' method when a different value is provided. -
    -
    -
    - Speaker -
    -
    - Deprecated. -
    -
    - Stick -
    -
    -
    Interface for objects that behave as sticks
    -
    - -
    -   -
    -
    - Subsystem -
    -
    -   -
    -
    - TankDrivebaseSubsystem<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
    -
    -
    Class for drivebase subsystems
    -
    - -
    -
    A command to do nothing but wait for a span of time.
    -
    -
    -
    -
    -
    -
    -
    - + + +All Classes and Interfaces (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes and Interfaces

    +
    +
    +
    +
    +
    +
    Class
    +
    Description
    + +
    +
    An enumeration to specify which alliance the bot is on (Red, Blue, or None)
    +
    + +
    +
    Not sure what this is for.
    +
    + +
    +
    Not sure what this is for.
    +
    + +
    +
    This feels over-engineered, but it's probably for some obnoxious Java thing, + unfortunate.
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Class for analog sensors
    +
    + +
    +
    The class to extend custom gamepad axis from
    +
    + +
    +
    Class for bindings to extend
    +
    + +
    +
    Button type
    +
    + +
     
    + +
    +
    The class to extend custom gamepad buttons from
    +
    + +
     
    + +
    +
    A command that allows choosing among a number of commands based on variety of conditions
    +
    + +
    +
    Enum for Colors and some formatting
    +
    + +
    +
    TODO: Remove this.
    +
    + +
     
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Class for color sensors
    +
    + +
    +
    The root Command class
    +
    + +
    +
    The command state enum
    +
    + +
    +
    Class for command axis for the gamepad
    +
    + +
    Deprecated.
    + +
    +
    Command implementation of Binding
    +
    + +
    +
    Class for command buttons for gamepad
    +
    + +
    +
    Class for command gamepads that specifies class params
    +
    + +
    +
    Root class for all command groups (Sequential, Parallel, etc...) + WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than + using this one directly.
    +
    + +
    +
    Class for gamepad-command integration
    +
    + +
    +
    Class for command based op modes
    +
    + +
    +
    Enum for op mode state
    +
    + +
    +
    This is a "singleton" object for scheduling commands.
    +
    + +
    +
    Simple class for commands that require a certain condition to be true to run
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    class for subsystems
    +
    + +
     
    + +
    +
    Enum for the priority of the differential.
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Class for digital sensors
    +
    + +
    +
    TODO: Remove this.
    +
    +
    DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for DriveBase subsystems
    +
    + +
    +
    This isn't worth actually doing.
    +
    + +
    +
    Interface for anything that can be enabled/disabled
    +
    +
    EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for encoded motors
    +
    +
    EncodedMotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for encoded motor groups
    +
    + +
    +
    Class for encoded motor subsystems
    +
    + +
    +
    Interfaces for encoders to use
    +
    + +
    +
    The root class for logging entries
    +
    + +
    +
    A wrapper around an AnalogInput that enables "zeroing" for usefulness
    +
    +
    GamepadBase<T extends ButtonBase,U extends AxisBase>
    +
    +
    A class to extend gamepads from, it does the internal processing for you.
    +
    + +
    +
    Axis enum for all axis on gamepad
    +
    + +
    +
    Button enum for all buttons on gamepad
    +
    + +
    +
    A class for dpads
    +
    + +
    +
    A class for gamepad sticks
    +
    + +
    +
    TODO: Remove this.
    +
    +
    HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice>
    +
    Deprecated.
    + +
    Deprecated.
    + +
     
    + +
     
    + +
    +
    An interface for a single-angle gyroscope
    +
    + +
     
    + +
    +
    Class for the IMU (Inertial Movement Units) that implements the IGyro interface
    +
    + +
    +
    The direction of the axes signs when remapping the axes
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    This is duplicated in the IMU class
    +
    + +
    +
    A simple Observation-based integral calculator over time
    +
    + +
    +
    Interface for anything that can be inverted
    +
    + +
     
    + +
    +
    The root annotation for annotation logging, also doubles as a basic string log
    +
    + +
     
    + +
     
    + +
    +
    Log a number
    +
    + +
    +
    Annotations for configuring Logs
    +
    + +
    +
    Annotation for allowing Opmodes to log this item
    +
    + +
    +
    Annotation for denying Opmodes to log this item
    +
    + +
    +
    Annotation to completely disable the entry
    +
    + +
    +
    Annotation for determining when logged item will be sent to Telemetry
    +
    + +
    +
    All classes with annotations for logging must extend this all the way up the hierarchy up to the op mode
    +
    + +
    +
    The class to manage logging
    +
    + +
     
    + +
    +
    Class with various math functions
    +
    +
    Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for motors
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding + slot's motor direction
    +
    + +
     
    +
    MotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for a group of motors
    +
    +
    MotorSubsystem<T extends Motor<?>>
    +
    +
    Class for motor subsystems
    +
    + +
     
    + +
    +
    Command group to run commands in parallel until all of them finish
    +
    + +
    +
    Command group to run commands in parallel until one particular command completes
    +
    + +
    +
    Command group to run commands in parallel until *one* is finished
    +
    + +
    +
    An interface for classes to have the periodic function
    +
    + +
    +
    Helper class for tracking a range
    +
    + +
    Deprecated.
    + +
    +
    Root class for the Robot Library (I will put important stuff here)
    +
    +
    Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice>
    +
    Deprecated.
    + +
    Deprecated.
    + +
    +
    A grouping command which runs a list of commands in sequence
    +
    + +
    Deprecated.
    + +
    +
    TODO: Remove this.
    +
    + +
    Deprecated.
    + +
     
    + +
     
    + +
    +
    Class for servo subsystems
    +
    +
    SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for mecanum/xdrive drivebases
    +
    + +
    +
    This is a functional interface, when 'accept' is invoked, will only invoke the 'consume' method + when a different value is provided.
    +
    + +
    Deprecated.
    + +
    +
    Interface for objects that behave as sticks
    +
    + +
     
    + +
     
    +
    TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    +
    +
    Class for drivebase subsystems
    +
    + +
    +
    A command to do nothing but wait for a span of time.
    +
    +
    +
    +
    +
    +
    +
    + diff --git a/docs/TechnoLib/allpackages-index.html b/docs/TechnoLib/allpackages-index.html index fd25660d..fa615a47 100644 --- a/docs/TechnoLib/allpackages-index.html +++ b/docs/TechnoLib/allpackages-index.html @@ -1,174 +1,98 @@ - + - - - All Packages (RobotLibrary API) - - - - - - - - - - - - - - - - + + +All Packages (RobotLibrary API) + + + + + + + + + + + + + + + + diff --git a/docs/TechnoLib/com/technototes/library/control/CommandAxis.html b/docs/TechnoLib/com/technototes/library/control/CommandAxis.html index 5177ba68..88fe5f9e 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandAxis.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandAxis.html @@ -84,7 +84,7 @@

    Class CommandAxis

    CommandInput<CommandAxis>, Enablable<ButtonBase>, Invertable<ButtonBase>, Periodic, BooleanSupplier, DoubleSupplier

  • -
    public class CommandAxis +
    public class CommandAxis extends AxisBase implements CommandInput<CommandAxis>
    Class for command axis for the gamepad
    @@ -202,7 +202,7 @@

    Constructor Details

  • CommandAxis

    -
    public CommandAxis(DoubleSupplier supplier)
    +
    public CommandAxis(DoubleSupplier supplier)
    Make a command axis
    Parameters:
    @@ -213,7 +213,7 @@

    CommandAxis

  • CommandAxis

    -
    public CommandAxis(DoubleSupplier supplier, +
    public CommandAxis(DoubleSupplier supplier, double threshold)
    Make a command axis
    @@ -234,7 +234,7 @@

    Method Details

  • getInstance

    - +
    Description copied from interface: CommandInput
    Return instance of class parameter
    @@ -248,7 +248,7 @@

    getInstance

  • setTriggerThreshold

    -
    public CommandAxis setTriggerThreshold(double threshold)
    +
    public CommandAxis setTriggerThreshold(double threshold)
    Description copied from class: AxisBase
    Set threshold
    @@ -262,19 +262,19 @@

    setTriggerThreshold

  • schedulePressed

    - +
  • schedule

    - +
  • setInverted

    -
    public CommandAxis setInverted(boolean invert)
    +
    public CommandAxis setInverted(boolean invert)
    Description copied from interface: Invertable
    Set the inversion (true -> Is inverted, false -> Not inverted)
    @@ -292,13 +292,13 @@

    setInverted

  • getAsButton

    - +
  • getAsButton

    -
    public CommandButton getAsButton(double threshold)
    +
    public CommandButton getAsButton(double threshold)
  • diff --git a/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html b/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html index 51203e83..b0b07896 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html @@ -103,7 +103,7 @@

    Fields inherited from class com.technototes.library.control.GamepadBase

    -a, b, back, circle, cross, dpad, dpadDown, dpadLeft, dpadRight, dpadUp, leftBumper, leftStick, leftStickButton, leftStickX, leftStickY, leftTrigger, options, rightBumper, rightStick, rightStickButton, rightStickX, rightStickY, rightTrigger, share, square, start, triangle, x, y
  • +dpad, dpadDown, dpadLeft, dpadRight, dpadUp, leftBumper, leftStick, leftStickButton, leftStickX, leftStickY, leftTrigger, ps_circle, ps_cross, ps_options, ps_share, ps_square, ps_triangle, rightBumper, rightStick, rightStickButton, rightStickX, rightStickY, rightTrigger, xbox_a, xbox_b, xbox_back, xbox_start, xbox_x, xbox_y
  • diff --git a/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html b/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html index bb126056..b6feb1bf 100644 --- a/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html +++ b/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html @@ -109,37 +109,37 @@

    Enum Constant Summary

    Enum Constant
    Description
    - +
    -
    XBox A button
    +
    Left bumper button
    - +
    -
    XBox B button
    +
    Button when clicking the left stick
    - +
    -
    PS4/XBox Back button
    +
    PS4 Circle (O) button
    - +
    -
    PS4 Circle (O) button
    +
    PS4 Cross (X) button
    - +
    -
    PS4 Cross (X) button
    +
    PS4 Options button
    - +
    -
    Left bumper button
    +
    PS4 Share button
    - +
    -
    Button when clicking the left stick
    +
    PS4 Square button
    - +
    -
    PS4 Options button
    +
    PS4 Triangle button
    @@ -149,27 +149,27 @@

    Enum Constant Summary

    Button which clicking the right stick
    - +
    -
    PS4 Share button
    +
    XBox A button
    - +
    -
    PS4 Square button
    +
    XBox B button
    - +
    -
    PS4/XBox Start button
    +
    XBox Back button
    - +
    -
    PS4 Triangle button
    +
    XBox Start button
    - +
    XBox X button
    - +
    XBox Y button
    @@ -219,87 +219,87 @@

    Methods inherited from cl

    Enum Constant Details

    - +
    -
    The button objects for the PS4 game controller
    +
    The button objects for the XBox game controller
    - +
    -
    The button objects for the PS4 game controller
    +
    The button objects for the XBox game controller
    - +
    The button objects for the XBox game controller
    - +
    -
    The button objects for the PS4 game controller
    +
    The button objects for the XBox game controller
    - +
    The button objects for the XBox game controller
    - +
    The button objects for the XBox game controller
    @@ -424,86 +424,86 @@

    Field Details

      @@ -86,54 +86,29 @@

      Optional Element Summary

      Modifier and Type
      Optional Element
      Description
      - - -
      -
      The color for the tag for the boolean
      -
      - - -
      -
      The color for the false String
      -
      - +
      -
      The format for when the boolean returns false
      -
      - - -
      Store the string when the annotated method returns false
      -
      int
      - -
      -
      Store index for this annotation (position in telemetry)
      -
      - - +
      int
      +
      -
      Store the name for this annotation to be be beside
      +
      Store index for this annotation (position in telemetry)
      -
      int
      - + +
      -
      Store priority for this log entry (to pick the most wanted entry over others with same index)
      +
      Store the name for this annotation to be be beside
      - - +
      int
      +
      -
      The color for the true String
      +
      Store priority for this log entry (to pick the most wanted entry over others with same index)
      - +
      -
      The format for when the boolean returns true
      -
      - - -
      Store the string when the annotated method returns true
  • @@ -151,7 +126,7 @@

    Element Details

  • index

    -
    int index
    +
    int index
    Store index for this annotation (position in telemetry)
    Returns:
    @@ -166,7 +141,7 @@

    index

  • priority

    - +
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    Returns:
    @@ -181,7 +156,7 @@

    priority

  • trueValue

    - +
    Store the string when the annotated method returns true
    Returns:
    @@ -194,39 +169,9 @@

    trueValue

  • -
    -

    trueFormat

    - -
    The format for when the boolean returns true
    -
    -
    Returns:
    -
    The String format
    -
    -
    -
    Default:
    -
    "%s"
    -
    -
    -
  • -
  • -
    -

    trueColor

    - -
    The color for the true String
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • -
  • falseValue

    - +
    Store the string when the annotated method returns false
    Returns:
    @@ -239,39 +184,9 @@

    falseValue

  • -
    -

    falseFormat

    - -
    The format for when the boolean returns false
    -
    -
    Returns:
    -
    The String format
    -
    -
    -
    Default:
    -
    "%s"
    -
    -
    -
  • -
  • -
    -

    falseColor

    - -
    The color for the false String
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • -
  • name

    - +
    Store the name for this annotation to be be beside
    Returns:
    @@ -283,21 +198,6 @@

    name

  • -
  • -
    -

    color

    - -
    The color for the tag for the boolean
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html b/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html index 320e1432..0e81251c 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html @@ -74,7 +74,7 @@

    Annotation Interface Log
    @Documented @Retention(RUNTIME) @Target({FIELD,METHOD}) -public static @interface Log.Logs
    +public static @interface Log.Logs

  • diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.Number.html b/docs/TechnoLib/com/technototes/library/logger/Log.Number.html index e15a0f8d..5ebf0497 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.Number.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.Number.html @@ -73,7 +73,7 @@

    Annotation Interface L
    +public static @interface Log.Number
    Log a number

    @@ -87,25 +87,15 @@

    Optional Element Summary

    Modifier and Type
    Optional Element
    Description
    - - +
    int
    +
    -
    The color for the tag for the number
    -
    -
    int
    - -
    Store index for this annotation (position in telemetry)
    - - -
    -
    Store the name for this annotation to be be beside
    -
    - - + +
    -
    The color for the number
    +
    Store the name for this annotation to be be beside
    int
    @@ -127,7 +117,7 @@

    Element Details

  • index

    -
    int index
    +
    int index
    Store index for this annotation (position in telemetry)
    Returns:
    @@ -142,7 +132,7 @@

    index

  • priority

    - +
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    Returns:
    @@ -157,7 +147,7 @@

    priority

  • name

    - +
    Store the name for this annotation to be be beside
    Returns:
    @@ -169,36 +159,6 @@

    name

  • -
  • -
    -

    color

    - -
    The color for the tag for the number
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • -
  • -
    -

    numberColor

    - -
    The color for the number
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.NumberBar.html b/docs/TechnoLib/com/technototes/library/logger/Log.NumberBar.html deleted file mode 100644 index 188e93f1..00000000 --- a/docs/TechnoLib/com/technototes/library/logger/Log.NumberBar.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - -Log.NumberBar (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface Log.NumberBar

    -
    -
    -
    -
    Enclosing class:
    -
    Log
    -
    -
    - -
    Log a number, but store it as a number bar
    -
    -
    -
      - -
    • -
      -

      Optional Element Summary

      -
      Optional Elements
      -
      -
      Modifier and Type
      -
      Optional Element
      -
      Description
      - - -
      -
      The color for the tag for the bar
      -
      - - -
      -
      The color for the filled in bar color
      -
      - - -
      -
      The color for the not filled in bar color
      -
      -
      int
      - -
      -
      Store index for this annotation (position in telemetry)
      -
      -
      double
      - -
      -
      Store the max for the number bar to scale to
      -
      -
      double
      - -
      -
      Store the min for the number bar to scale to
      -
      - - -
      -
      Store the name for this annotation to be be beside
      -
      - - -
      -
      The color for the bar outlines
      -
      -
      int
      - -
      -
      Store priority for this log entry (to pick the most wanted entry over others with same index)
      -
      -
      double
      - -
      -
      Store the scale for the number bar to scale to
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Element Details

      -
        -
      • -
        -

        index

        -
        int index
        -
        Store index for this annotation (position in telemetry)
        -
        -
        Returns:
        -
        The index
        -
        -
        -
        Default:
        -
        -1
        -
        -
        -
      • -
      • -
        -

        priority

        - -
        Store priority for this log entry (to pick the most wanted entry over others with same index)
        -
        -
        Returns:
        -
        The priority
        -
        -
        -
        Default:
        -
        -1
        -
        -
        -
      • -
      • -
        -

        min

        -
        double min
        -
        Store the min for the number bar to scale to
        -
        -
        Returns:
        -
        The min
        -
        -
        -
        Default:
        -
        -1.0
        -
        -
        -
      • -
      • -
        -

        max

        -
        double max
        -
        Store the max for the number bar to scale to
        -
        -
        Returns:
        -
        The max
        -
        -
        -
        Default:
        -
        1.0
        -
        -
        -
      • -
      • -
        -

        scale

        -
        double scale
        -
        Store the scale for the number bar to scale to
        -
        -
        Returns:
        -
        The scale
        -
        -
        -
        Default:
        -
        0.1
        -
        -
        -
      • -
      • -
        -

        name

        - -
        Store the name for this annotation to be be beside
        -
        -
        Returns:
        -
        The name as a string
        -
        -
        -
        Default:
        -
        ""
        -
        -
        -
      • -
      • -
        -

        color

        - -
        The color for the tag for the bar
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      • -
        -

        completeBarColor

        - -
        The color for the filled in bar color
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      • -
        -

        incompleteBarColor

        - -
        The color for the not filled in bar color
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      • -
        -

        outline

        - -
        The color for the bar outlines
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.NumberSlider.html b/docs/TechnoLib/com/technototes/library/logger/Log.NumberSlider.html deleted file mode 100644 index e6e43ce3..00000000 --- a/docs/TechnoLib/com/technototes/library/logger/Log.NumberSlider.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - -Log.NumberSlider (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface Log.NumberSlider

    -
    -
    -
    -
    Enclosing class:
    -
    Log
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Optional Element Summary

      -
      Optional Elements
      -
      -
      Modifier and Type
      -
      Optional Element
      -
      Description
      - - -
      -
      The color for the tag for the slider
      -
      -
      int
      - -
      -
      Store index for this annotation (position in telemetry)
      -
      -
      double
      - -
      -
      Store the max for the number bar to scale to
      -
      -
      double
      - -
      -
      Store the min for the number bar to scale to
      -
      - - -
      -
      Store the name for this annotation to be be beside
      -
      - - -
      -
      The color for the slider outline
      -
      -
      int
      - -
      -
      Store priority for this log entry (to pick the most wanted entry over others with same index)
      -
      -
      double
      - -
      -
      Store the scale for the number bar to scale to
      -
      - - -
      -
      The color for the slider slide
      -
      - - -
      -
      The color for the slider background
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Element Details

      -
        -
      • -
        -

        index

        -
        int index
        -
        Store index for this annotation (position in telemetry)
        -
        -
        Returns:
        -
        The index
        -
        -
        -
        Default:
        -
        -1
        -
        -
        -
      • -
      • -
        -

        priority

        - -
        Store priority for this log entry (to pick the most wanted entry over others with same index)
        -
        -
        Returns:
        -
        The priority
        -
        -
        -
        Default:
        -
        -1
        -
        -
        -
      • -
      • -
        -

        min

        -
        double min
        -
        Store the min for the number bar to scale to
        -
        -
        Returns:
        -
        The min
        -
        -
        -
        Default:
        -
        -1.0
        -
        -
        -
      • -
      • -
        -

        max

        -
        double max
        -
        Store the max for the number bar to scale to
        -
        -
        Returns:
        -
        The max
        -
        -
        -
        Default:
        -
        1.0
        -
        -
        -
      • -
      • -
        -

        scale

        -
        double scale
        -
        Store the scale for the number bar to scale to
        -
        -
        Returns:
        -
        The scale
        -
        -
        -
        Default:
        -
        0.1
        -
        -
        -
      • -
      • -
        -

        name

        - -
        Store the name for this annotation to be be beside
        -
        -
        Returns:
        -
        The name as a string
        -
        -
        -
        Default:
        -
        ""
        -
        -
        -
      • -
      • -
        -

        color

        - -
        The color for the tag for the slider
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      • -
        -

        sliderBackground

        - -
        The color for the slider background
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      • -
        -

        outline

        - -
        The color for the slider outline
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      • -
        -

        slider

        - -
        The color for the slider slide
        -
        -
        Returns:
        -
        The color
        -
        -
        -
        Default:
        -
        NO_COLOR
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.html b/docs/TechnoLib/com/technototes/library/logger/Log.html index 44cdc9f3..8e7813c3 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.html @@ -71,7 +71,7 @@

    Annotation Interface Log

    @Repeatable(Logs.class) @Retention(RUNTIME) @Target({FIELD,LOCAL_VARIABLE,METHOD}) -public @interface Log +public @interface Log
    The root annotation for annotation logging, also doubles as a basic string log
    @@ -96,14 +96,6 @@

    Nested Class Summary

    Log a number
    -
    static @interface 
    - -
    -
    Log a number, but store it as a number bar
    -
    -
    static @interface 
    - -
     
  • @@ -116,16 +108,6 @@

    Optional Element Summary

    Modifier and Type
    Optional Element
    Description
    - - -
    -
    The color for the tag for the entry
    -
    - - -
    -
    The color for the entry
    -
    @@ -161,7 +143,7 @@

    Element Details

  • index

    -
    int index
    +
    int index
    Store index for this annotation (position in telemetry)
    Returns:
    @@ -176,7 +158,7 @@

    index

  • priority

    - +
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    Returns:
    @@ -191,7 +173,7 @@

    priority

  • name

    - +
    Store the name for this annotation to be be beside
    Returns:
    @@ -206,7 +188,7 @@

    name

  • format

    - +
    The format for the logged String
    Returns:
    @@ -218,36 +200,6 @@

    format

  • -
  • -
    -

    entryColor

    - -
    The color for the entry
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • -
  • -
    -

    color

    - -
    The color for the tag for the entry
    -
    -
    Returns:
    -
    The color
    -
    -
    -
    Default:
    -
    NO_COLOR
    -
    -
    -
  • diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Blacklist.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html similarity index 92% rename from docs/TechnoLib/com/technototes/library/logger/LogConfig.Blacklist.html rename to docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html index 493cbdd9..2673237f 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Blacklist.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html @@ -2,10 +2,10 @@ -LogConfig.Blacklist (RobotLibrary API) +LogConfig.AllowList (RobotLibrary API) - + @@ -63,7 +63,7 @@
    -

    Annotation Interface LogConfig.Blacklist

    +

    Annotation Interface LogConfig.AllowList

    @@ -73,8 +73,8 @@

    Annotation In
    -
    Annotation for Blacklisting Opmodes to log this item
    +public static @interface LogConfig.AllowList

  • +
    Annotation for allowing Opmodes to log this item
      @@ -90,7 +90,7 @@

      Required Element Summary

      Class<?>[]
      -
      The blacklisted opmodes
      +
      The allowed opmodes
    @@ -107,8 +107,8 @@

    Element Details

  • value

    -
    Class<?>[] value
    -
    The blacklisted opmodes
    +
    Class<?>[] value
    +
    The allowed opmodes
    Returns:
    Opmode Classes
    diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Whitelist.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html similarity index 92% rename from docs/TechnoLib/com/technototes/library/logger/LogConfig.Whitelist.html rename to docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html index 68d77335..8d81a1a6 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Whitelist.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html @@ -2,10 +2,10 @@ -LogConfig.Whitelist (RobotLibrary API) +LogConfig.DenyList (RobotLibrary API) - + @@ -63,7 +63,7 @@
    -

    Annotation Interface LogConfig.Whitelist

    +

    Annotation Interface LogConfig.DenyList

    @@ -73,8 +73,8 @@

    Annotation In
    -
    Annotation for Whitelisting Opmodes to log this item
    +public static @interface LogConfig.DenyList +
    Annotation for denying Opmodes to log this item

      @@ -90,7 +90,7 @@

      Required Element Summary

      Class<?>[]
      -
      The whitelisted opmodes
      +
      The denied opmodes
    @@ -107,8 +107,8 @@

    Element Details

  • value

    -
    Class<?>[] value
    -
    The whitelisted opmodes
    +
    Class<?>[] value
    +
    The denied opmodes
    Returns:
    Opmode Classes
    diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.html index 7598ae48..045bac53 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.html @@ -83,24 +83,24 @@

    Nested Class Summary

    Class
    Description
    static @interface 
    - +
    -
    Annotation for Blacklisting Opmodes to log this item
    +
    Annotation for allowing Opmodes to log this item
    static @interface 
    - +
    -
    Annotation to completely disable the entry
    +
    Annotation for denying Opmodes to log this item
    static @interface 
    - +
    -
    Annotation for determining when logged item will be sent to Telemetry
    +
    Annotation to completely disable the entry
    static @interface 
    - +
    -
    Annotation for Whitelisting Opmodes to log this item
    +
    Annotation for determining when logged item will be sent to Telemetry
    diff --git a/docs/TechnoLib/com/technototes/library/logger/Logger.html b/docs/TechnoLib/com/technototes/library/logger/Logger.html index 75854ac7..4eabcd91 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Logger.html +++ b/docs/TechnoLib/com/technototes/library/logger/Logger.html @@ -76,7 +76,7 @@

    Class Logger


    -
    public class Logger +
    public class Logger extends Object
    The class to manage logging
    @@ -167,19 +167,19 @@

    Field Details

  • runEntries

    -
    public Entry<?>[] runEntries
    +
    public Entry<?>[] runEntries
  • initEntries

    -
    public Entry<?>[] initEntries
    +
    public Entry<?>[] initEntries
  • captionDivider

    -
    public char captionDivider
    +
    public char captionDivider
    The divider between the tag and the entry for telemetry (default ':')
  • @@ -194,7 +194,7 @@

    Constructor Details

  • Logger

    -
    public Logger(com.qualcomm.robotcore.eventloop.opmode.OpMode op)
    +
    public Logger(com.qualcomm.robotcore.eventloop.opmode.OpMode op)
    Instantiate the logger
    Parameters:
    @@ -213,21 +213,21 @@

    Method Details

  • runUpdate

    -
    public void runUpdate()
    +
    public void runUpdate()
    Update the logged run items in temeletry
  • initUpdate

    -
    public void initUpdate()
    +
    public void initUpdate()
    Update the logged init items in temeletry
  • repeat

    -
    public static String repeat(String s, +
    public static String repeat(String s, int num)
    Repeat a String
    diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html b/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html index 2107e10d..cd653280 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html @@ -93,7 +93,7 @@

    Class BooleanEntry

    Field Summary

    Fields inherited from class com.technototes.library.logger.entry.Entry

    -color, name, priority, supplier, tag, x
    +name, priority, supplier, x
  • @@ -104,16 +104,11 @@

    Constructor Summary

    Constructor
    Description
    -
    BooleanEntry(String n, +
    BooleanEntry(String n, Supplier<Boolean> s, int index, String wt, - String wf, - Color c, - String tf, - String ff, - Color tc, - Color fc)
    + String wf)
     
    @@ -139,7 +134,7 @@

    Method Summary

    Methods inherited from class com.technototes.library.logger.entry.Entry

    -get, getIndex, getName, getPriority, getTag, setIndex, setPriority
    +get, getIndex, getName, getPriority, setIndex, setPriority

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    @@ -155,18 +150,13 @@

    Methods inherited from cl

    Constructor Details

    @@ -180,7 +170,7 @@

    Method Details

  • toString

    -
    public String toString()
    +
    public String toString()
    Description copied from class: Entry
    The String for the logged item
    diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html b/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html index e57b77b7..bb0f2971 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html @@ -88,7 +88,7 @@

    Class Entry<T>

    BooleanEntry, NumberEntry, StringEntry

    -
    public abstract class Entry<T> +
    public abstract class Entry<T> extends Object implements Supplier<T>
    The root class for logging entries
    @@ -104,30 +104,20 @@

    Field Summary

    Modifier and Type
    Field
    Description
    -
    protected Color
    - +
    protected String
    +
    -
    Color to display
    -
    -
    protected String
    - -
    The name of the Entry
    -
    protected int
    - -
    -
    The priority (in the telemetry list) of the entry
    -
    -
    protected Supplier<T>
    - +
    protected int
    +
    -
    The function called to get the value to display
    +
    The priority (in the telemetry list) of the entry
    -
    protected String
    - +
    protected Supplier<T>
    +
    -
    String to use a 'header' (calculated from name and color)
    +
    The function called to get the value to display
    protected int
    @@ -145,12 +135,11 @@

    Constructor Summary

    Constructor
    Description
    -
    Entry(String n, +
    Entry(String n, Supplier<T> s, - int index, - Color c)
    + int index)
    -
    Create an entry with name, value, index, and color
    +
    Create an entry with name, value, index
    @@ -177,31 +166,26 @@

    Method Summary

    -
    Get the name (unformatted tag)
    +
    Get the name
    int
    Get Priority for the entry
    - - + +
    setIndex(int i)
    -
    The tag for the entry
    -
    - -
    setIndex(int i)
    -
    Set index
    - -
    setPriority(int p)
    -
    + +
    setPriority(int p)
    +
    Set's the priority for this log line (handy for telemetry overflow)
    - - -
    + + +
    The String for the logged item
    @@ -224,45 +208,31 @@

    Field Details

  • x

    -
    protected int x
    +
    protected int x
    The index (in the list) of the entry
  • priority

    -
    protected int priority
    +
    protected int priority
    The priority (in the telemetry list) of the entry
  • supplier

    -
    protected Supplier<T> supplier
    +
    protected Supplier<T> supplier
    The function called to get the value to display
  • name

    -
    protected String name
    +
    protected String name
    The name of the Entry
  • -
  • -
    -

    tag

    -
    protected String tag
    -
    String to use a 'header' (calculated from name and color)
    -
    -
  • -
  • -
    -

    color

    -
    protected Color color
    -
    Color to display
    -
    -
  • @@ -272,19 +242,17 @@

    color

    Constructor Details

    diff --git a/docs/TechnoLib/constant-values.html b/docs/TechnoLib/constant-values.html index 5af54f17..08ce8446 100644 --- a/docs/TechnoLib/constant-values.html +++ b/docs/TechnoLib/constant-values.html @@ -1,236 +1,117 @@ - + - - - Constant Field Values (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Constant Field Values

    -
    -

    Contents

    - -
    -
    -
    -

    com.technototes.*

    -
      -
    • -
      - com.technototes.library.control.AxisBase -
      -
      -
      Modifier and Type
      -
      Constant Field
      -
      Value
      -
      - public static final double -
      - -
      0.05
      -
      -
    • -
    -
      -
    • -
      - com.technototes.library.structure.CommandOpMode -
      -
      -
      Modifier and Type
      -
      Constant Field
      -
      Value
      -
      - public static final int -
      -
      - MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED -
      -
      900
      -
      -
    • -
    -
      -
    • -
      - com.technototes.library.util.Characters -
      -
      -
      Modifier and Type
      -
      Constant Field
      -
      Value
      -
      - public static final String -
      - -
      "\ud83d\udd35"
      -
      - public static final String -
      -
      - CYCLE -
      -
      "\u267b\ufe0f"
      -
      - public static final String -
      -
      - DUCK -
      -
      "\ud83e\udd86"
      -
      - public static final String -
      -
      - GAMEPAD -
      -
      "\ud83c\udfae"
      -
      - public static final String -
      - -
      "\ud83d\udfe5"
      -
      -
    • -
    -
    -
    -
    -
    - + + +Constant Field Values (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Constant Field Values

    +
    +

    Contents

    + +
    +
    +
    +

    com.technototes.*

    + +
      +
    • +
      com.technototes.library.structure.CommandOpMode
      +
      +
      Modifier and Type
      +
      Constant Field
      +
      Value
      +
      public static final int
      +
      MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED
      +
      900
      +
      +
    • +
    + +
    +
    +
    +
    + diff --git a/docs/TechnoLib/deprecated-list.html b/docs/TechnoLib/deprecated-list.html index fc5f118b..1f0e48e2 100644 --- a/docs/TechnoLib/deprecated-list.html +++ b/docs/TechnoLib/deprecated-list.html @@ -1,195 +1,120 @@ - + - - - Deprecated List (RobotLibrary API) - - - - - - - - - - - - - - - - + + +Deprecated List (RobotLibrary API) + + + + + + + + + + + + + + + + diff --git a/docs/TechnoLib/help-doc.html b/docs/TechnoLib/help-doc.html index 76a45f3d..44dc1160 100644 --- a/docs/TechnoLib/help-doc.html +++ b/docs/TechnoLib/help-doc.html @@ -1,269 +1,186 @@ - + - - - API Help (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    - Starting from the Overview page, you can browse the - documentation using the links in each page, and in the navigation bar at the top of each - page. The Index and Search box allow you to navigate to - specific declarations and summary pages, including: - All Packages, - All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    - The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    - The Overview page is the front page of this API document - and provides a list of all packages with a summary for each. This page can also - contain an overall description of the set of packages. -

    -
    -
    -

    Package

    -

    - Each package has a page that contains a list of its classes and interfaces, with a - summary for each. These pages may contain the following categories: -

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    - Each class, interface, nested class and nested interface has its own separate page. - Each of these pages has three sections consisting of a declaration and description, - member summary tables, and detailed member descriptions. Entries in each of these - sections are omitted if they are empty or not applicable. -

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    - Note: Annotation interfaces have required and - optional elements, but not methods. Only enum classes have enum constants. The - components of a record class are displayed as part of the declaration of the record - class. Properties are a feature of JavaFX. -

    -

    - The summary entries are alphabetical, while the detailed descriptions are in the - order they appear in the source code. This preserves the logical groupings - established by the programmer. -

    -
    -
    -

    Other Files

    -

    - Packages and modules may contain pages with additional information related to the - declarations nearby. -

    -
    -
    -

    Tree (Class Hierarchy)

    -

    - There is a Class Hierarchy page for all packages, - plus a hierarchy for each package. Each hierarchy page contains a list of classes - and a list of interfaces. Classes are organized by inheritance structure starting - with java.lang.Object. Interfaces do not inherit from - java.lang.Object. -

    -
      -
    • - When viewing the Overview page, clicking on TREE displays the hierarchy for all - packages. -
    • -
    • - When viewing a particular package, class or interface page, clicking on TREE - displays the hierarchy for only that package. -
    • -
    -
    -
    -

    Deprecated API

    -

    - The Deprecated API page lists all of the API that - have been deprecated. A deprecated API is not recommended for use, generally due to - shortcomings, and a replacement API is usually given. Deprecated APIs may be removed - in future implementations. -

    -
    -
    -

    Constant Field Values

    -

    - The Constant Field Values page lists the static - final fields and their values. -

    -
    -
    -

    All Packages

    -

    - The All Packages page contains an alphabetic - index of all packages contained in the documentation. -

    -
    -
    -

    All Classes and Interfaces

    -

    - The All Classes and Interfaces page contains an - alphabetic index of all classes and interfaces contained in the documentation, - including annotation interfaces, enum classes, and record classes. -

    -
    -
    -

    Index

    -

    - The Index contains an alphabetic index of all classes, - interfaces, constructors, methods, and fields in the documentation, as well as - summary pages such as All Packages, - All Classes and Interfaces. -

    -
    -
    -
    - This help file applies to API documentation generated by the standard doclet. -
    -
    -
    - + + +API Help (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
    +
    +
    +

    Kinds of Pages

    +The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    +

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    +
    +
    +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

    +
      +
    • Interfaces
    • +
    • Classes
    • +
    • Enum Classes
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Interfaces
    • +
    +
    +
    +

    Class or Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

    +
      +
    • Class Inheritance Diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class or Interface Declaration
    • +
    • Class or Interface Description
    • +
    +
    +
      +
    • Nested Class Summary
    • +
    • Enum Constant Summary
    • +
    • Field Summary
    • +
    • Property Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    +

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
    +
    +

    Other Files

    +

    Packages and modules may contain pages with additional information related to the declarations nearby.

    +
    +
    +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • +
    +
    +
    +

    Deprecated API

    +

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    +
    +
    +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
    +
    +

    All Packages

    +

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    +
    +
    +

    All Classes and Interfaces

    +

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    +
    +
    +

    Index

    +

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    +
    +
    +
    +This help file applies to API documentation generated by the standard doclet.
    +
    +
    + diff --git a/docs/TechnoLib/index-all.html b/docs/TechnoLib/index-all.html index 6f766cc2..81a9c88f 100644 --- a/docs/TechnoLib/index-all.html +++ b/docs/TechnoLib/index-all.html @@ -1,14693 +1,3359 @@ - + - - - Index (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    - A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values -

    A

    -
    -
    - a - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the XBox game controller
    -
    -
    - A - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    XBox A button
    -
    -
    - accept(T) - - Method in interface com.technototes.library.util.SmartConsumer -
    -
    -
    - The public interface for a SmartConsumer: accept should be invoked, not consume :) -
    -
    -
    - addCommands(Command...) - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    Add a command to the group
    -
    -
    - additionalInitConditions() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - addRequirements(Subsystem...) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Add requirement subsystems to command
    -
    -
    - addSongs(String...) - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - ALL_ACTIVE - - Enum constant in enum class com.technototes.library.control.Binding.Type -
    -
     
    -
    - Alliance - - Enum Class in - com.technototes.library.util -
    -
    -
    - An enumeration to specify which alliance the bot is on (Red, Blue, or None) -
    -
    -
    - Alliance.Blue - - Annotation Interface in - com.technototes.library.util -
    -
    -
    Not sure what this is for.
    -
    -
    - Alliance.Red - - Annotation Interface in - com.technototes.library.util -
    -
    -
    Not sure what this is for.
    -
    -
    - Alliance.Selector<T> - Class in - com.technototes.library.util -
    -
    -
    - This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate. -
    -
    -
    - alongWith(Command...) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Run this command in parallel with additional commands
    -
    -
    - alpha() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get the alpha (transparency) of the color
    -
    -
    - analog(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - analog(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - AnalogBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - AnalogBuilder(int) - - Constructor for class com.technototes.library.hardware2.AnalogBuilder -
    -
     
    -
    - AnalogBuilder(AnalogSensor) - - Constructor for class com.technototes.library.hardware2.AnalogBuilder -
    -
     
    -
    - AnalogBuilder(String) - - Constructor for class com.technototes.library.hardware2.AnalogBuilder -
    -
     
    -
    - AnalogSensor - - Class in - com.technototes.library.hardware.sensor -
    -
    -
    Class for analog sensors
    -
    -
    - AnalogSensor(AnalogInput) - - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor -
    -
    -
    Make an analog sensor
    -
    -
    - AnalogSensor(String) - - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor -
    -
    -
    Make an analog sensor
    -
    -
    - andThen(Command...) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Run a command or series of ParallelCommands after this one
    -
    -
    - anyCancelled - - Variable in class com.technototes.library.command.CommandGroup -
    -
    -
    Have *any* of the command list been cancelled
    -
    -
    - apply(UnaryOperator<T>) - - Method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - arcadeDrive(double, double) - - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem -
    -
     
    -
    - argb() - - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - argb() - - Method in class com.technototes.library.hardware.sensor.ColorSensor -
    -
     
    -
    - argb() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
     
    -
    - asConditional(BooleanSupplier) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Creates a conditional command out of this
    -
    -
    - at(double) - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - AVERAGE - - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
     
    -
    - AxisBase - - Class in - com.technototes.library.control -
    -
    -
    The class to extend custom gamepad axis from
    -
    -
    - AxisBase(DoubleSupplier) - - Constructor for class com.technototes.library.control.AxisBase -
    -
    -
    Make a GamepadAxis with the supplier
    -
    -
    - AxisBase(DoubleSupplier, double) - - Constructor for class com.technototes.library.control.AxisBase -
    -
    -
    - Make a GamepadAxis with the supplier and the threshold for the stick to behave as a - button -
    -
    -
    - axisInstance(DoubleSupplier) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    - Returns the U (extended from AxisBase) type wrapped around a simple DoubleSupplier -
    -
    -
    -

    B

    -
    -
    - b - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the XBox game controller
    -
    -
    - B - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    XBox B button
    -
    -
    - back - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the XBox game controller
    -
    -
    - BACK - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4/XBox Back button
    -
    -
    - Binding<T - extends - BooleanSupplier> - Interface in - com.technototes.library.control -
    -
    -
    Class for bindings to extend
    -
    -
    - Binding.Type - - Enum Class in - com.technototes.library.control -
    -
    -
    Button type
    -
    -
    - BLACK - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - blue() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get the RGB blue of the sensor
    -
    -
    - BLUE - - Enum constant in enum class com.technototes.library.util.Alliance -
    -
    -
    BLUE alliance selector
    -
    -
    - BLUE - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - BLUE_CIRCLE - - Static variable in class com.technototes.library.util.Characters -
    -
     
    -
    - BooleanEntry - - Class in - com.technototes.library.logger.entry -
    -
     
    -
    - BooleanEntry(String, Supplier<Boolean>, int, String, String, Color, String, - String, Color, Color) - - Constructor for class com.technototes.library.logger.entry.BooleanEntry -
    -
     
    -
    - booleanSupplier - - Variable in class com.technototes.library.control.ButtonBase -
    -
     
    -
    - brake() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
     
    -
    - brake() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Configure the motor to *brake* when the power is set to zero.
    -
    -
    - brake() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - build() - - Method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - build() - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - ButtonBase - - Class in - com.technototes.library.control -
    -
    -
    The class to extend custom gamepad buttons from
    -
    -
    - ButtonBase(BooleanSupplier) - - Constructor for class com.technototes.library.control.ButtonBase -
    -
    -
    Create button with boolean supplier
    -
    -
    - buttonInstance(BooleanSupplier) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Great a ButtonBase type from the given BooleanSupplier
    -
    -
    - bVal - - Variable in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    The value of the enumeration
    -
    -
    - bVal - - Variable in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    -

    C

    -
    -
    - calculateA(double, double, double, double) - - Method in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
    -
    - Calculates the value for the differential output generated by averaging -
    -
    -
    - calculateS(double, double, double, double) - - Method in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
    -
    - Calculates the value for the differential output generated by subtracting -
    -
    -
    - cancel() - - Method in interface com.technototes.library.command.Command -
    -
    -
    - If the command is running, interrupt it such that it can be cancelled -
    -
    -
    - CANCELLED - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    The command has been cancelled
    -
    -
    - cancelUpon(BooleanSupplier) - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Runs this command until it finishes, or until the condition supplied is true -
    -
    -
    - captionDivider - - Variable in class com.technototes.library.logger.Logger -
    -
    -
    - The divider between the tag and the entry for telemetry (default ':') -
    -
    -
    - Characters - - Class in - com.technototes.library.util -
    -
     
    -
    - Characters() - - Constructor for class com.technototes.library.util.Characters -
    -
     
    -
    - ChoiceCommand - - Class in - com.technototes.library.command -
    -
    -
    - A command that allows choosing among a number of commands based on variety of - conditions -
    -
    -
    - ChoiceCommand(Pair<BooleanSupplier, Command>...) - - Constructor for class com.technototes.library.command.ChoiceCommand -
    -
    -
    - Each pair represents a condition to check, and the command to execute if that - condition is true -
    -
    -
    - ChoiceCommand(BooleanSupplier, Command) - - Constructor for class com.technototes.library.command.ChoiceCommand -
    -
    -
    - This is a simplistic ChoiceCommand that is simply a single conditional command I - *think* this will wwait until b is true -
    -
    -
    - circle - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the PS4 game controller
    -
    -
    - CIRCLE - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4 Circle (O) button
    -
    -
    - clear() - - Static method in interface com.technototes.library.command.Command -
    -
    -
    Clear out the state, time, and requirement maps.
    -
    -
    - close() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - closestTo(double, double...) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    - Returns the value from a list which is closed to the first value. -
    -
    -
    - closestTo(double, int...) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    - Returns the value from a list which is closed to the first value. -
    -
    -
    - coast() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
     
    -
    - coast() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Configure the motor to *float* when the power is set to zero.
    -
    -
    - coast() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - codriverGamepad - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Command gamepad objects
    -
    -
    - color - - Variable in class com.technototes.library.logger.entry.Entry -
    -
    -
    Color to display
    -
    -
    - color() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    The color for the tag for the boolean
    -
    -
    - color() - - Element in annotation interface com.technototes.library.logger.Log -
    -
    -
    The color for the tag for the entry
    -
    -
    - color() - - Element in annotation interface com.technototes.library.logger.Log.Number -
    -
    -
    The color for the tag for the number
    -
    -
    - color() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    The color for the tag for the bar
    -
    -
    - color() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    The color for the tag for the slider
    -
    -
    - color(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - Color - - Enum Class in - com.technototes.library.util -
    -
    -
    Enum for Colors and some formatting
    -
    -
    - ColorBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - ColorBuilder(ColorSensor) - - Constructor for class com.technototes.library.hardware2.ColorBuilder -
    -
     
    -
    - ColorBuilder(String) - - Constructor for class com.technototes.library.hardware2.ColorBuilder -
    -
     
    -
    - ColorDistanceSensor - - Class in - com.technototes.library.hardware.sensor -
    -
     
    -
    - ColorDistanceSensor(ColorRangeSensor) - - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - ColorDistanceSensor(String) - - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - colorRange(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - ColorRangeBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - ColorRangeBuilder(ColorRangeSensor) - - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - ColorRangeBuilder(String) - - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - ColorSensor - - Class in - com.technototes.library.hardware.sensor -
    -
    -
    Class for color sensors
    -
    -
    - ColorSensor(ColorSensor) - - Constructor for class com.technototes.library.hardware.sensor.ColorSensor -
    -
    -
    Make a color Sensor
    -
    -
    - ColorSensor(String) - - Constructor for class com.technototes.library.hardware.sensor.ColorSensor -
    -
    -
    Make a color sensor
    -
    -
    - com.technototes.library - - package com.technototes.library -
    -
     
    -
    - com.technototes.library.command - - package com.technototes.library.command -
    -
     
    -
    - com.technototes.library.control - - package com.technototes.library.control -
    -
     
    -
    - com.technototes.library.general - - package com.technototes.library.general -
    -
     
    -
    - com.technototes.library.hardware - - package com.technototes.library.hardware -
    -
     
    -
    - com.technototes.library.hardware.motor - - package com.technototes.library.hardware.motor -
    -
     
    -
    - com.technototes.library.hardware.sensor - - package com.technototes.library.hardware.sensor -
    -
     
    -
    - com.technototes.library.hardware.sensor.encoder - - package com.technototes.library.hardware.sensor.encoder -
    -
     
    -
    - com.technototes.library.hardware.servo - - package com.technototes.library.hardware.servo -
    -
     
    -
    - com.technototes.library.hardware2 - - package com.technototes.library.hardware2 -
    -
     
    -
    - com.technototes.library.logger - - package com.technototes.library.logger -
    -
     
    -
    - com.technototes.library.logger.entry - - package com.technototes.library.logger.entry -
    -
     
    -
    - com.technototes.library.structure - - package com.technototes.library.structure -
    -
     
    -
    - com.technototes.library.subsystem - - package com.technototes.library.subsystem -
    -
     
    -
    - com.technototes.library.subsystem.drivebase - - package com.technototes.library.subsystem.drivebase -
    -
     
    -
    - com.technototes.library.subsystem.motor - - package com.technototes.library.subsystem.motor -
    -
     
    -
    - com.technototes.library.subsystem.servo - - package com.technototes.library.subsystem.servo -
    -
     
    -
    - com.technototes.library.util - - package com.technototes.library.util -
    -
     
    -
    - Command - - Interface in - com.technototes.library.command -
    -
    -
    The root Command class
    -
    -
    - Command.CommandState - - Enum Class in - com.technototes.library.command -
    -
    -
    The command state enum
    -
    -
    - CommandAxis - - Class in - com.technototes.library.control -
    -
    -
    Class for command axis for the gamepad
    -
    -
    - CommandAxis(DoubleSupplier) - - Constructor for class com.technototes.library.control.CommandAxis -
    -
    -
    Make a command axis
    -
    -
    - CommandAxis(DoubleSupplier, double) - - Constructor for class com.technototes.library.control.CommandAxis -
    -
    -
    Make a command axis
    -
    -
    - CommandBase - - Class in - com.technototes.library.command -
    -
    -
    Deprecated.
    -
    -
    - CommandBase() - - Constructor for class com.technototes.library.command.CommandBase -
    -
    -
    Deprecated.
    -   -
    -
    - CommandBinding - - Class in - com.technototes.library.control -
    -
    -
    - Command implementation of - Binding -
    -
    -
    - CommandBinding(Binding.Type, CommandInput...) - - Constructor for class com.technototes.library.control.CommandBinding -
    -
     
    -
    - CommandBinding(CommandInput...) - - Constructor for class com.technototes.library.control.CommandBinding -
    -
     
    -
    - CommandButton - - Class in - com.technototes.library.control -
    -
    -
    Class for command buttons for gamepad
    -
    -
    - CommandButton(BooleanSupplier) - - Constructor for class com.technototes.library.control.CommandButton -
    -
    -
    Make command button
    -
    -
    - CommandGamepad - - Class in - com.technototes.library.control -
    -
    -
    Class for command gamepads that specifies class params
    -
    -
    - CommandGamepad(Gamepad) - - Constructor for class com.technototes.library.control.CommandGamepad -
    -
    -
    Make command gamepad
    -
    -
    - CommandGroup - - Class in - com.technototes.library.command -
    -
    -
    - Root class for all command groups (Sequential, Parallel, etc...) WARNING: You - probably will be better served by the specific CommandGroup subclasses, rather than - using this one directly. -
    -
    -
    - CommandGroup(boolean, Command...) - - Constructor for class com.technototes.library.command.CommandGroup -
    -
    -
    Create a command group with commands
    -
    -
    - CommandInput<T - extends - ButtonBase> - Interface in - com.technototes.library.control -
    -
    -
    Class for gamepad-command integration
    -
    -
    - commandMap - - Variable in class com.technototes.library.command.CommandGroup -
    -
    -
    This is a map from the command to whether it has been run
    -
    -
    - CommandOpMode - - Class in - com.technototes.library.structure -
    -
    -
    Class for command based op modes
    -
    -
    - CommandOpMode() - - Constructor for class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - CommandOpMode.OpModeState - - Enum Class in - com.technototes.library.structure -
    -
    -
    Enum for op mode state
    -
    -
    - CommandScheduler - - Class in - com.technototes.library.command -
    -
    -
    This is a "singleton" object for scheduling commands.
    -
    -
    - completeBarColor() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    The color for the filled in bar color
    -
    -
    - ConditionalCommand - - Class in - com.technototes.library.command -
    -
    -
    - Simple class for commands that require a certain condition to be true to run -
    -
    -
    - ConditionalCommand(BooleanSupplier) - - Constructor for class com.technototes.library.command.ConditionalCommand -
    -
    -
    This makes a "wait" command
    -
    -
    - ConditionalCommand(BooleanSupplier, Command) - - Constructor for class com.technototes.library.command.ConditionalCommand -
    -
    -
    Make a conditional command
    -
    -
    - ConditionalCommand(BooleanSupplier, Command, Command) - - Constructor for class com.technototes.library.command.ConditionalCommand -
    -
    -
    Make a conditional command
    -
    -
    - constrain(double, double, double) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    - Deprecated.  -
    -
    -
    - constrain(int, int, int) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    - Deprecated.  -
    -
    -
    - Constraints(double, double, double) - - Constructor for class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - consume(T) - - Method in interface com.technototes.library.util.SmartConsumer -
    -
    -
    The 'consume' function
    -
    -
    - countCancel - - Variable in class com.technototes.library.command.CommandGroup -
    -
    -
    Should a cancelled command be considered 'finished'
    -
    -
    - countCancel() - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    - Specify that this CommandGroup should count a cancellation as 'completed' -
    -
    -
    - create(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - create(Command, Subsystem...) - - Static method in interface com.technototes.library.command.Command -
    -
    -
    - This is a helper to create a new command from an existing command, but with - additional subsystem requirements -
    -
    -
    - create(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - cross - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the PS4 game controller
    -
    -
    - CROSS - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4 Cross (X) button
    -
    -
    - crServo(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - crServo(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - CRServoBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - CRServoBuilder(int) - - Constructor for class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - CRServoBuilder(CRServo) - - Constructor for class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - CRServoBuilder(String) - - Constructor for class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - CYAN - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - CYCLE - - Static variable in class com.technototes.library.util.Characters -
    -
     
    -
    -

    D

    -
    -
    - DARK_GRAY - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - deadline(Command...) - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Runs all the commands specified in parallel *until this command is completed* -
    -
    -
    - DEFAULT_TRIGGER_THRESHOLD - - Static variable in class com.technototes.library.control.AxisBase -
    -
    -
    The default trigger threshold
    -
    -
    - degrees() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Set angle format to degrees
    -
    -
    - degrees() - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - device - - Variable in class com.technototes.library.hardware.HardwareDevice -
    -
    -
    Deprecated.
    -   -
    -
    - device - - Variable in class com.technototes.library.subsystem.DeviceSubsystem -
    -
     
    -
    - DeviceSubsystem<T - extends - HardwareDevice<?>> - Class in - com.technototes.library.subsystem -
    -
    -
    class for subsystems
    -
    -
    - DeviceSubsystem(T) - - Constructor for class com.technototes.library.subsystem.DeviceSubsystem -
    -
    -
    Create a subsystem
    -
    -
    - DIFFERENCE - - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
     
    -
    - Differential - - Class in - com.technototes.library.util -
    -
     
    -
    - Differential(DoubleConsumer, DoubleConsumer) - - Constructor for class com.technototes.library.util.Differential -
    -
    -
    Create differential from two consumers
    -
    -
    - Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority) - - Constructor for class com.technototes.library.util.Differential -
    -
    -
    Create differential from two consumers
    -
    -
    - Differential.DifferentialPriority - - Enum Class in - com.technototes.library.util -
    -
    -
    Enum for the priority of the differential.
    -
    -
    - digital(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - digital(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - DigitalBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - DigitalBuilder(int) - - Constructor for class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - DigitalBuilder(DigitalChannel) - - Constructor for class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - DigitalBuilder(String) - - Constructor for class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - DigitalSensor - - Class in - com.technototes.library.hardware.sensor -
    -
    -
    Class for digital sensors
    -
    -
    - DigitalSensor(DigitalChannel) - - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor -
    -
    -
    Make a digital sensor
    -
    -
    - DigitalSensor(String) - - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor -
    -
    -
    Make a digital sensor
    -
    -
    - direction(DcMotorSimple.Direction) - - Method in class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - direction(DcMotorSimple.Direction) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - direction(Servo.Direction) - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - disable() - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - disable() - - Method in interface com.technototes.library.general.Enablable -
    -
    -
    Disable the object
    -
    -
    - disable() - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - disable() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - distance(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - DistanceBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - DistanceBuilder(DistanceSensor) - - Constructor for class com.technototes.library.hardware2.DistanceBuilder -
    -
     
    -
    - DistanceBuilder(String) - - Constructor for class com.technototes.library.hardware2.DistanceBuilder -
    -
     
    -
    - doubleSupplier - - Variable in class com.technototes.library.control.AxisBase -
    -
     
    -
    - down - - Variable in class com.technototes.library.control.GamepadDpad -
    -
    -
    The objects for the dpad buttons
    -
    -
    - dpad - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The dpad object
    -
    -
    - dpadDown - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - dpadLeft - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - dpadRight - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - dpadUp - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - drive(double, double) - - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem -
    -
     
    -
    - drive(double, double, double) - - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
     
    -
    - drive(double, double, double, double) - - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
     
    -
    - DrivebaseSubsystem<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.subsystem.drivebase -
    -
    -
    Class for DriveBase subsystems
    -
    -
    - DrivebaseSubsystem(Motor<T>...) - - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem -
    -
    -
    Create a drivebase subsystem
    -
    -
    - DrivebaseSubsystem(DoubleSupplier, Motor<T>...) - - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem -
    -
    -
    Create a drivebase subsystem
    -
    -
    - driverGamepad - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Command gamepad objects
    -
    -
    - DUCK - - Static variable in class com.technototes.library.util.Characters -
    -
     
    -
    - DummyDevice<T> - Class in - com.technototes.library.hardware -
    -
    -
    This isn't worth actually doing.
    -
    -
    - DummyDevice(T) - - Constructor for class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - duringInit() - - Element in annotation interface com.technototes.library.logger.LogConfig.Run -
    -
    -
    Run the log during the init Period
    -
    -
    - duringRun() - - Element in annotation interface com.technototes.library.logger.LogConfig.Run -
    -
    -
    Run the log during the teleop Period
    -
    -
    -

    E

    -
    -
    - Enablable<T - extends - Enablable<T>> - Interface in - com.technototes.library.general -
    -
    -
    Interface for anything that can be enabled/disabled
    -
    -
    - enable() - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - enable() - - Method in interface com.technototes.library.general.Enablable -
    -
    -
    Enable the object
    -
    -
    - enable() - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - enable() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - EncodedMotor<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.hardware.motor -
    -
    -
    Class for encoded motors
    -
    -
    - EncodedMotor(String) - - Constructor for class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Make encoded motor, with the default encoder configured
    -
    -
    - EncodedMotor(String, Encoder) - - Constructor for class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Make encoded motor
    -
    -
    - EncodedMotor(T) - - Constructor for class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Make encoded motor, with the default encoder configured
    -
    -
    - EncodedMotor(T, Encoder) - - Constructor for class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Make encoded motor
    -
    -
    - EncodedMotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.hardware.motor -
    -
    -
    Class for encoded motor groups
    -
    -
    - EncodedMotorGroup(EncodedMotor<T>, Motor<T>...) - - Constructor for class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
    -
    Create an encoded motor groupM
    -
    -
    - EncodedMotorSubsystem - - Class in - com.technototes.library.subsystem.motor -
    -
    -
    Class for encoded motor subsystems
    -
    -
    - EncodedMotorSubsystem(EncodedMotor<?>) - - Constructor for class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Create encoded motor subsystem
    -
    -
    - Encoder - - Interface in - com.technototes.library.hardware.sensor.encoder -
    -
    -
    Interfaces for encoders to use
    -
    -
    - end() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Runs once when op mode is ended
    -
    -
    - end(boolean) - - Method in interface com.technototes.library.command.Command -
    -
    -
    End the command
    -
    -
    - end(boolean) - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    This stops the command group from executing
    -
    -
    - END - - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState -
    -
     
    -
    - Entry<T> - Class in - com.technototes.library.logger.entry -
    -
    -
    The root class for logging entries
    -
    -
    - Entry(String, Supplier<T>, int, Color) - - Constructor for class com.technototes.library.logger.entry.Entry -
    -
    -
    Create an entry with name, value, index, and color
    -
    -
    - entryColor() - - Element in annotation interface com.technototes.library.logger.Log -
    -
    -
    The color for the entry
    -
    -
    - execute() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Execute the command
    -
    -
    - execute() - - Method in class com.technototes.library.command.CommandBase -
    -
    -
    Deprecated.
    -
    Execute the command
    -
    -
    - execute() - - Method in class com.technototes.library.command.CommandGroup -
    -
     
    -
    - execute() - - Method in class com.technototes.library.command.ConditionalCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.library.command.WaitCommand -
    -
     
    -
    - EXECUTING - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    The command is running normally
    -
    -
    - expandedPWM() - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - expandedRange() - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -   -
    -
    - ExternalEncoder - - Class in - com.technototes.library.hardware.sensor.encoder -
    -
    -
    - A wrapper around an AnalogInput that enables "zeroing" for usefulness -
    -
    -
    - ExternalEncoder(AnalogInput) - - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder -
    -
    -
    Create an ExternalEncoder from an arbitrary AnalogInput
    -
    -
    - ExternalEncoder(String) - - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder -
    -
    -
    - Create an ExternalEncoder from an arbitrary AnalogInput device -
    -
    -
    -

    F

    -
    -
    - falseColor() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    The color for the false String
    -
    -
    - falseFormat() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    The format for when the boolean returns false
    -
    -
    - falseValue() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    Store the string when the annotated method returns false
    -
    -
    - FINISHED - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    The command has completed successfully
    -
    -
    - flMotor - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
    -
    Drive motors
    -
    -
    - format() - - Element in annotation interface com.technototes.library.logger.Log -
    -
    -
    The format for the logged String
    -
    -
    - format(Object) - - Method in enum class com.technototes.library.util.Color -
    -
    -
    Format the supplied object with the HTML to become this color
    -
    -
    - format(String, Object...) - - Method in enum class com.technototes.library.util.Color -
    -
    -
    - Format the supplied object with the HTML and a format String to become this color -
    -
    -
    - forward() - - Method in class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - forward() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - forward() - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - FORWARD - - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction -
    -
     
    -
    - frMotor - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
    -
    Drive motors
    -
    -
    -

    G

    -
    -
    - gain(float) - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - GAMEPAD - - Static variable in class com.technototes.library.util.Characters -
    -
     
    -
    - gamepad1 - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - gamepad2 - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - GamepadBase<T - extends - ButtonBase,U - extends - AxisBase> - Class in - com.technototes.library.control -
    -
    -
    - A class to extend gamepads from, it does the internal processing for you. -
    -
    -
    - GamepadBase(Gamepad, Class<T>, Class<U>) - - Constructor for class com.technototes.library.control.GamepadBase -
    -
    -
    Creates a gamepad with these parameters
    -
    -
    - GamepadBase.Axis - - Enum Class in - com.technototes.library.control -
    -
    -
    Axis enum for all axis on gamepad
    -
    -
    - GamepadBase.Button - - Enum Class in - com.technototes.library.control -
    -
    -
    Button enum for all buttons on gamepad
    -
    -
    - GamepadDpad<T - extends - ButtonBase> - Class in - com.technototes.library.control -
    -
    -
    A class for dpads
    -
    -
    - GamepadDpad(T, T, T, T) - - Constructor for class com.technototes.library.control.GamepadDpad -
    -
    -
    Create dpad with 4 buttons
    -
    -
    - GamepadStick<T - extends - AxisBase,U - extends - ButtonBase> - Class in - com.technototes.library.control -
    -
    -
    A class for gamepad sticks
    -
    -
    - GamepadStick(T, T, U) - - Constructor for class com.technototes.library.control.GamepadStick -
    -
    -
    Make a gamepad stick
    -
    -
    - get() - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Gets the current state of the command (Supplier<CommandState>) -
    -
    -
    - get() - - Method in interface com.technototes.library.control.Binding -
    -
     
    -
    - get() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - get() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
     
    -
    - get() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    - Gets the *speed* of the motor when it's used as a DoubleSupplier -
    -
    -
    - get() - - Method in class com.technototes.library.logger.entry.Entry -
    -
     
    -
    - get(Binding.Type) - - Method in interface com.technototes.library.control.Binding -
    -
    -
    Get this as boolean for the type
    -
    -
    - get(Class<? extends OpMode>) - - Static method in enum class com.technototes.library.util.Alliance -
    -
    -
    - Get the alliance set for the OpMode passed in, if it's set in the annotation -
    -
    -
    - getAllDeviceList() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -   -
    -
    - getAllDevices() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    Get all devices in group
    -
    -
    - getAllDevices() - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - getAllDevices() - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - getAllDevices() - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    -
    - getAngle() - - Method in interface com.technototes.library.control.Stick -
    -
    -
    Returns the angle of the stick
    -
    -
    - getAngularOrientation() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
     
    -
    - getAngularOrientation(AngleUnit) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Gets the Angular orientation of the IMU
    -
    -
    - getAngularVelocity() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
     
    -
    - getAngularVelocity(AngleUnit) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Gets the angular velocity (in default units)
    -
    -
    - getAsBoolean() - - Method in interface com.technototes.library.control.Binding -
    -
     
    -
    - getAsBoolean() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Same as isPressed()
    -
    -
    - getAsButton() - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - getAsButton(double) - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - getAsDouble() - - Method in class com.technototes.library.control.AxisBase -
    -
    -
    Returns the double from the axis
    -
    -
    - getAsDouble() - - Method in interface com.technototes.library.hardware.Sensored -
    -
    -
    Deprecated.
    -   -
    -
    - getAverage() - - Method in class com.technototes.library.util.Differential -
    -
    -
    - Gets the current average of the two differential inputs, equating to one of the - outputs -
    -
    -
    - getAxis(GamepadBase.Axis) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns an axis
    -
    -
    - getAxisAsBoolean(GamepadBase.Axis) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns an axis as boolean
    -
    -
    - getAxisAsDouble(GamepadBase.Axis) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns an axis as double
    -
    -
    - getButton(GamepadBase.Button) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns a button
    -
    -
    - getButtonAsBoolean(GamepadBase.Button) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns a button as boolean (same as isPressed)
    -
    -
    - getColor() - - Method in enum class com.technototes.library.util.Alliance -
    -
    -
    Get the alliance color (Red, Blue, or Black)
    -
    -
    - getConnectionInfo() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - getCorrectedVelocity() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - getCurrent(Subsystem) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    This gets the command currently using the subsystem provided
    -
    -
    - getCurrentPosition() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - getCurrentPosition() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - getCurrentSong() - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - getDefault(Subsystem) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Get the default command that is running on the subsystem provided -
    -
    -
    - getDefaultCommand() - - Method in interface com.technototes.library.subsystem.Subsystem -
    -
     
    -
    - getDefaultType() - - Method in interface com.technototes.library.control.Binding -
    -
     
    -
    - getDefaultType() - - Method in class com.technototes.library.control.CommandBinding -
    -
     
    -
    - getDeviation() - - Method in class com.technototes.library.util.Differential -
    -
    -
    - Gets the current deviation between the two differential inputs and the average, - equating to one of the outputs -
    -
    -
    - getDevice() - - Method in class com.technototes.library.hardware.HardwareDevice -
    -
    -
    Deprecated.
    -
    Get encapsulated device
    -
    -
    - getDevice() - - Method in class com.technototes.library.subsystem.DeviceSubsystem -
    -
    -
    Get the devices for this subsystem
    -
    -
    - getDeviceName() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - getDifferentialPriority() - - Method in class com.technototes.library.util.Differential -
    -
    -
    Gets the priority for the difference output.
    -
    -
    - getDirection() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - getDistance() - - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor -
    -
     
    -
    - getDistance(DistanceUnit) - - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - getDistance(DistanceUnit) - - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor -
    -
     
    -
    - getDistance(DistanceUnit) - - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor -
    -
    -
    Deprecated.
    -
    Get the value with a specified distance Unit
    -
    -
    - getDistanceFromCenter() - - Method in interface com.technototes.library.control.Stick -
    -
    -
    Returns the stick's distance from the center
    -
    -
    - getDouble() - - Method in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - getDpad() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns the Dpad object
    -
    -
    - getEncoder() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Get the encoder object
    -
    -
    - getFollowerist() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -   -
    -
    - getFollowers() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    Get the followers for the lead device
    -
    -
    - getFollowers() - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - getFollowers() - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - getFollowers() - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    -
    - getGamepad() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns the encapsulated gamepad
    -
    -
    - getGyro() - - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem -
    -
    -
    Get the Gyro angle
    -
    -
    - getHexValue() - - Method in enum class com.technototes.library.util.Color -
    -
    -
    Get the hex value
    -
    -
    - getIndex() - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    Get the index for the entry
    -
    -
    - getInstance() - - Static method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Get (or create) the singleton CommandScheduler object
    -
    -
    - getInstance() - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - getInstance() - - Method in class com.technototes.library.control.CommandButton -
    -
     
    -
    - getInstance() - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    Return instance of class parameter
    -
    -
    - getInverted() - - Method in class com.technototes.library.control.ButtonBase -
    -
     
    -
    - getInverted() - - Method in interface com.technototes.library.general.Invertable -
    -
    -
    Get current inversion
    -
    -
    - getInverted() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Returns whether the motor is inverted.
    -
    -
    - getInverted() - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -   -
    -
    - getLast() - - Method in interface com.technototes.library.util.SmartConsumer -
    -
     
    -
    - getLeftStick() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns the left stick
    -
    -
    - getLight() - - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - getLogger() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Get the op mode's logger
    -
    -
    - getManufacturer() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - getMap() - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
     
    -
    - getMax(double...) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    Get the max of supplied doubles
    -
    -
    - getMax(int...) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    Get the max of supplied ints
    -
    -
    - getMaxAccel() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - getMaxAcceleration() - - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - getMaxVel() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - getMaxVelocity() - - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - getMultiplier() - - Method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction -
    -
     
    -
    - getName() - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    Get the name (unformatted tag)
    -
    -
    - getOpModeRuntime() - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Gets the number of seconds that the opmode has been executing
    -
    -
    - getOpModeRuntime() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Get the opmode runtime
    -
    -
    - getOpModeState() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Get op mode state
    -
    -
    - getPosition() - - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder -
    -
     
    -
    - getPosition() - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -
    Get servo position
    -
    -
    - getPosition() - - Method in class com.technototes.library.subsystem.servo.ServoSubsystem -
    -
    -
    Get subsystem servo position
    -
    -
    - getPriority() - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    Get Priority for the entry
    -
    -
    - getProportion() - - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - getRawVelocity() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - getRequirements() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Return the subsystem requirements for this command
    -
    -
    - getRightStick() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Returns the right stick
    -
    -
    - getRuntime() - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Return the amount of time since the command was first initialized -
    -
    -
    - getScale(double...) - - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem -
    -
    -
    - This will give you a *positive* value to scale the value to such that the largest - value of the list will be |1| (negative or positive). -
    -
    -
    - getSeconds() - - Method in class com.technototes.library.command.WaitCommand -
    -
     
    -
    - getSensorValue() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Get the encoder position value
    -
    -
    - getSensorValue() - - Method in class com.technototes.library.hardware.sensor.AnalogSensor -
    -
     
    -
    - getSensorValue() - - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder -
    -
    -
    Get the sensor value (relative to the assigned zero)
    -
    -
    - getSensorValue() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - getSensorValue() - - Method in interface com.technototes.library.hardware.Sensored -
    -
    -
    Deprecated.
    -
    Get the sensor value
    -
    -
    - getSensorValue() - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -   -
    -
    - getServo() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - getSpeed() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Gets the power set for the motor
    -
    -
    - getSpeed() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Gets the power value for the motor
    -
    -
    - getSpeed() - - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem -
    -
    -
    Override this one, I guess? Not sure how useful it is.
    -
    -
    - getSpeed() - - Method in class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
    -
    Get the speed of the motors in the subsystem
    -
    -
    - getState() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Return the command state: Probably don't use this
    -
    -
    - getSuppliers() - - Method in interface com.technototes.library.control.Binding -
    -
     
    -
    - getSuppliers() - - Method in class com.technototes.library.control.CommandBinding -
    -
     
    -
    - getTag() - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    The tag for the entry
    -
    -
    - getTargetPosition() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - getTargetTolerance() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - getTriggerThreshold() - - Method in class com.technototes.library.control.AxisBase -
    -
    -
    Gets the trigger threshold
    -
    -
    - getUnit() - - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - getUnit() - - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor -
    -
     
    -
    - getUnit() - - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor -
    -
    -
    Deprecated.
    -
    Get the current distance unit
    -
    -
    - getValue() - - Method in class com.technototes.library.hardware.sensor.DigitalSensor -
    -
    -
    Get the sensor value as a boolean
    -
    -
    - getValue() - - Method in class com.technototes.library.util.Integral -
    -
    -
    Get the current accumulation
    -
    -
    - getVelocity() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Get the power for the motor (Velocity, I guess?)
    -
    -
    - getVersion() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - getVersion() - - Static method in class com.technototes.library.RobotLibrary -
    -
    -
    Get library version
    -
    -
    - getVolume() - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - getXAxis() - - Method in class com.technototes.library.control.GamepadDpad -
    -
    -
    Return x axis double (treating dpad as stick)
    -
    -
    - getXAxis() - - Method in class com.technototes.library.control.GamepadStick -
    -
     
    -
    - getXAxis() - - Method in interface com.technototes.library.control.Stick -
    -
    -
    Return x axis double
    -
    -
    - getXSupplier() - - Method in interface com.technototes.library.control.Stick -
    -
    -
    Return x axis supplier
    -
    -
    - getYAxis() - - Method in class com.technototes.library.control.GamepadDpad -
    -
    -
    Return y axis double (treating dpad as stick)
    -
    -
    - getYAxis() - - Method in class com.technototes.library.control.GamepadStick -
    -
     
    -
    - getYAxis() - - Method in interface com.technototes.library.control.Stick -
    -
    -
    Return y axis double
    -
    -
    - getYSupplier() - - Method in interface com.technototes.library.control.Stick -
    -
    -
    Return y axis supplier
    -
    -
    - green() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get the RGB green of the sensor
    -
    -
    - GREEN - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - gyroHeading() - - Method in interface com.technototes.library.hardware.sensor.IGyro -
    -
    -
    The heading (in default units)
    -
    -
    - gyroHeading() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Get gyro heading
    -
    -
    - gyroHeading(AngleUnit) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Get the gyro heading in the provided units
    -
    -
    - gyroHeadingInDegrees() - - Method in interface com.technototes.library.hardware.sensor.IGyro -
    -
    -
    The heading (in degrees)
    -
    -
    - gyroHeadingInDegrees() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Gets the gyro heading in degrees
    -
    -
    - gyroHeadingInRadians() - - Method in interface com.technototes.library.hardware.sensor.IGyro -
    -
    -
    The heading (in radians)
    -
    -
    - gyroHeadingInRadians() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Gets the gyro heading in radians
    -
    -
    - gyroSupplier - - Variable in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem -
    -
    -
    Override this to get the gyroscope heading.
    -
    -
    -

    H

    -
    -
    - HardwareBuilder<T> - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - HardwareBuilder(int) - - Constructor for class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - HardwareBuilder(String) - - Constructor for class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - HardwareBuilder(T) - - Constructor for class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - HardwareDevice<T - extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in - com.technototes.library.hardware -
    -
    -
    Deprecated.
    -
    -
    - HardwareDevice(String) - - Constructor for class com.technototes.library.hardware.HardwareDevice -
    -
    -
    Deprecated.
    -
    - Make a hardware device with the string to get from hardwaremap -
    -
    -
    - HardwareDevice(T) - - Constructor for class com.technototes.library.hardware.HardwareDevice -
    -
    -
    Deprecated.
    -
    Make a hardware device
    -
    -
    - HardwareDeviceGroup<T - extends - HardwareDevice> - Interface in - com.technototes.library.hardware -
    -
    -
    Deprecated.
    -
    -
    - hardwareMap - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - hardwareMap - - Static variable in class com.technototes.library.hardware.HardwareDevice -
    -
    -
    Deprecated.
    -
    Hardware map object for stuff
    -
    -
    - hsv() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get HSV as an int
    -
    -
    - hsvArray() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
     
    -
    - hue() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get HSV hue
    -
    -
    -

    I

    -
    -
    - IColorSensor - - Interface in - com.technototes.library.hardware.sensor -
    -
     
    -
    - IDistanceSensor - - Interface in - com.technototes.library.hardware.sensor -
    -
     
    -
    - idle(DcMotor.ZeroPowerBehavior) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - ignoreCancel() - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    - Specify that this CommandGroup should NOT count cancellation as 'completed' -
    -
    -
    - IGyro - - Interface in - com.technototes.library.hardware.sensor -
    -
    -
    An interface for a single-angle gyroscope
    -
    -
    - ILightSensor - - Interface in - com.technototes.library.hardware.sensor -
    -
     
    -
    - imu(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - IMU - - Class in - com.technototes.library.hardware.sensor -
    -
    -
    - Class for the IMU (Inertial Movement Units) that implements the IGyro interface -
    -
    -
    - IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, - RevHubOrientationOnRobot.UsbFacingDirection) - - Constructor for class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Make an imu
    -
    -
    - IMU(IMU, IMU.Parameters) - - Constructor for class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Make an imu
    -
    -
    - IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, - RevHubOrientationOnRobot.UsbFacingDirection) - - Constructor for class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Make an imu
    -
    -
    - IMU(String, IMU.Parameters) - - Constructor for class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Make an imu
    -
    -
    - IMU.AxesSigns - - Enum Class in - com.technototes.library.hardware.sensor -
    -
    -
    The direction of the axes signs when remapping the axes
    -
    -
    - IMUBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - IMUBuilder(BNO055IMUImpl) - - Constructor for class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - IMUBuilder(String) - - Constructor for class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    deprecated
    -
    -
    - IMUBuilder.AxesSigns - - Enum Class in - com.technototes.library.hardware2 -
    -
    -
    This is duplicated in the IMU class
    -
    -
    - incompleteBarColor() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    The color for the not filled in bar color
    -
    -
    - incrementPosition(double) - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -   -
    -
    - index() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    - index() - - Element in annotation interface com.technototes.library.logger.Log -
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    - index() - - Element in annotation interface com.technototes.library.logger.Log.Number -
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    - index() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    - index() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    - INIT - - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState -
    -
     
    -
    - initEntries - - Variable in class com.technototes.library.logger.Logger -
    -
     
    -
    - initialize() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Init the command
    -
    -
    - initialize() - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    Mark all commands in the group as not yet run
    -
    -
    - initialize(IMU.Parameters) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Initialize the IMU
    -
    -
    - INITIALIZING - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    The command is initializing after having been triggered
    -
    -
    - initLoop() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Runs constantly when op mode is initialized, yet not started
    -
    -
    - initMap(HardwareMap) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - initUpdate() - - Method in class com.technototes.library.logger.Logger -
    -
    -
    Update the logged init items in temeletry
    -
    -
    - input() - - Method in class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - inRange(double) - - Method in class com.technototes.library.util.Range -
    -
    -
    Check if the value is in the range
    -
    -
    - Integral - - Class in - com.technototes.library.util -
    -
    -
    A simple Observation-based integral calculator over time
    -
    -
    - Integral() - - Constructor for class com.technototes.library.util.Integral -
    -
    -
    Initialize it with a value of 0
    -
    -
    - Integral(double) - - Constructor for class com.technototes.library.util.Integral -
    -
    -
    Initialize it with the value c
    -
    -
    - INTERRUPTED - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    - The command is pending cancellation (but has not yet processed the cancellation) -
    -
    -
    - invert() - - Method in interface com.technototes.library.general.Invertable -
    -
    -
    Toggle inversion
    -
    -
    - invert() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Invert the motor (toggle inversion)
    -
    -
    - invert() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Invert the motor (toggle inversion)
    -
    -
    - invert() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - Invertable<T - extends - Invertable<T>> - Interface in - com.technototes.library.general -
    -
    -
    Interface for anything that can be inverted
    -
    -
    - isAtPosition(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Is the motor at the specified position
    -
    -
    - isAtTarget() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - isCancelled() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Exactly what it says
    -
    -
    - isDisabled() - - Method in interface com.technototes.library.general.Enablable -
    -
     
    -
    - isEnabled() - - Method in class com.technototes.library.control.ButtonBase -
    -
     
    -
    - isEnabled() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Is the gamepad (and all bound commands from it!) enabled?
    -
    -
    - isEnabled() - - Method in class com.technototes.library.control.GamepadDpad -
    -
     
    -
    - isEnabled() - - Method in class com.technototes.library.control.GamepadStick -
    -
     
    -
    - isEnabled() - - Method in interface com.technototes.library.general.Enablable -
    -
     
    -
    - isFinished() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Return if the command is finished
    -
    -
    - isFinished() - - Method in class com.technototes.library.command.CommandBase -
    -
    -
    Deprecated.
    -
    Is this command finished
    -
    -
    - isFinished() - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    MUST IMPLEMENT IN SUBCLASSES:
    -
    -
    - isFinished() - - Method in class com.technototes.library.command.ConditionalCommand -
    -
     
    -
    - isFinished() - - Method in class com.technototes.library.command.ParallelCommandGroup -
    -
     
    -
    - isFinished() - - Method in class com.technototes.library.command.ParallelDeadlineGroup -
    -
     
    -
    - isFinished() - - Method in class com.technototes.library.command.ParallelRaceGroup -
    -
    -
    Is this finished?
    -
    -
    - isFinished() - - Method in class com.technototes.library.command.SequentialCommandGroup -
    -
    -
    Returns if all the commands are finished
    -
    -
    - isFinished() - - Method in class com.technototes.library.command.WaitCommand -
    -
     
    -
    - isInverseToggled() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is untoggled
    -
    -
    - isJustInverseToggled() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is just untoggled
    -
    -
    - isJustPressed() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is just pressed
    -
    -
    - isJustReleased() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is just released
    -
    -
    - isJustToggled() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is just toggled
    -
    -
    - isPreRelease() - - Static method in class com.technototes.library.RobotLibrary -
    -
    -
    Get if the library is a pre release
    -
    -
    - isPressed() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is pressed
    -
    -
    - isPrime(int) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    Calculate if the supplied number is prime
    -
    -
    - isReleased() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is released
    -
    -
    - isRumbling() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Is the gamepad rumbling
    -
    -
    - isRunning() - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Is the command in some state of running/started/finished/cancelled -
    -
    -
    - isState(CommandOpMode.OpModeState...) - - Method in enum class com.technototes.library.structure.CommandOpMode.OpModeState -
    -
    -
    Check if other states are this state
    -
    -
    - isToggled() - - Method in class com.technototes.library.control.ButtonBase -
    -
    -
    Returns if the button is toggled
    -
    -
    - IterativeCommand - - Class in - com.technototes.library.command -
    -
     
    -
    - IterativeCommand(Function<Integer, Command>, int) - - Constructor for class com.technototes.library.command.IterativeCommand -
    -
    -
    iterative command for an int
    -
    -
    - IterativeCommand(Function<Integer, Command>, int, BooleanSupplier) - - Constructor for class com.technototes.library.command.IterativeCommand -
    -
     
    -
    - IterativeCommand(Function<Integer, Command>, BooleanSupplier) - - Constructor for class com.technototes.library.command.IterativeCommand -
    -
     
    -
    - IterativeCommand(Function<T, Command>, T, T, Function<T, T>) - - Constructor for class com.technototes.library.command.IterativeCommand -
    -
    -
    iterative command for anything
    -
    -
    - IterativeCommand(Function<T, Command>, T, T, Function<T, T>, - BooleanSupplier) - - Constructor for class com.technototes.library.command.IterativeCommand -
    -
     
    -
    -

    J

    -
    -
    - joystickDrive(double, double, double) - - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
     
    -
    - joystickDriveWithGyro(double, double, double, double) - - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
     
    -
    - justFinished() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Is this command finished?
    -
    -
    - justFinishedNoCancel() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Is this command completed?
    -
    -
    - justStarted() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Has the command just be started?
    -
    -
    -

    L

    -
    -
    - lastCommand - - Variable in class com.technototes.library.command.SequentialCommandGroup -
    -
     
    -
    - led(boolean) - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - left - - Variable in class com.technototes.library.control.GamepadDpad -
    -
    -
    The objects for the dpad buttons
    -
    -
    - LEFT_BUMPER - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    Left bumper button
    -
    -
    - LEFT_STICK_BUTTON - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    Button when clicking the left stick
    -
    -
    - LEFT_STICK_X - - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    Left stick's horizontal axis
    -
    -
    - LEFT_STICK_Y - - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    Left stick's vertical axis
    -
    -
    - LEFT_TRIGGER - - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    Left Trigger's axis
    -
    -
    - leftBumper - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - leftSide - - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem -
    -
    -
    Drive motors
    -
    -
    - leftStick - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The stick objects
    -
    -
    - leftStickButton - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - leftStickX - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The axis objects
    -
    -
    - leftStickY - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The axis objects
    -
    -
    - leftTrigger - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The axis objects
    -
    -
    - LIGHT_GRAY - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - LIME - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - Log - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    - The root annotation for annotation logging, also doubles as a basic string log -
    -
    -
    - Log.Boolean - - Annotation Interface in - com.technototes.library.logger -
    -
     
    -
    - Log.Logs - - Annotation Interface in - com.technototes.library.logger -
    -
     
    -
    - Log.Number - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    Log a number
    -
    -
    - Log.NumberBar - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    Log a number, but store it as a number bar
    -
    -
    - Log.NumberSlider - - Annotation Interface in - com.technototes.library.logger -
    -
     
    -
    - LogConfig - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    Annotations for configuring Logs
    -
    -
    - LogConfig.Blacklist - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    Annotation for Blacklisting Opmodes to log this item
    -
    -
    - LogConfig.Disabled - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    Annotation to completely disable the entry
    -
    -
    - LogConfig.Run - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    - Annotation for determining when logged item will be sent to Telemetry -
    -
    -
    - LogConfig.Whitelist - - Annotation Interface in - com.technototes.library.logger -
    -
    -
    Annotation for Whitelisting Opmodes to log this item
    -
    -
    - Loggable - - Interface in - com.technototes.library.logger -
    -
    -
    - All classes with annotations for logging must extend this all the way up the - hierarchy up to the op mode -
    -
    -
    - Logger - - Class in - com.technototes.library.logger -
    -
    -
    The class to manage logging
    -
    -
    - Logger(OpMode) - - Constructor for class com.technototes.library.logger.Logger -
    -
    -
    Instantiate the logger
    -
    -
    -

    M

    -
    -
    - MAGENTA - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - map - - Static variable in interface com.technototes.library.util.SmartConsumer -
    -
    -
    The map of values that have been consumed.
    -
    -
    - map(double, double, double, double, double) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    - Scale a value originally between in_min and in_max to be the same ratio when mapped - to out_min and out_max. -
    -
    -
    - MapUtils - - Class in - com.technototes.library.util -
    -
     
    -
    - MapUtils() - - Constructor for class com.technototes.library.util.MapUtils -
    -
     
    -
    - MathUtils - - Class in - com.technototes.library.util -
    -
    -
    Class with various math functions
    -
    -
    - MathUtils() - - Constructor for class com.technototes.library.util.MathUtils -
    -
     
    -
    - max - - Variable in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - max - - Variable in class com.technototes.library.util.Range -
    -
    -
    The maximum value of the range
    -
    -
    - max() - - Method in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - max() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    Store the max for the number bar to scale to
    -
    -
    - max() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    Store the max for the number bar to scale to
    -
    -
    - maxAcceleration - - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - maxSpeed - - Variable in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Max speed
    -
    -
    - maxVelocity - - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - middle() - - Method in class com.technototes.library.util.Range -
    -
    -
    Get the 'middle' of the range
    -
    -
    - min - - Variable in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - min - - Variable in class com.technototes.library.util.Range -
    -
    -
    The minimum value of the range
    -
    -
    - min() - - Method in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - min() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    Store the min for the number bar to scale to
    -
    -
    - min() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    Store the min for the number bar to scale to
    -
    -
    - mode(DcMotor.RunMode) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - mode(DigitalChannel.Mode) - - Method in class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - motor(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - motor(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - Motor<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.hardware.motor -
    -
    -
    Class for motors
    -
    -
    - Motor(String) - - Constructor for class com.technototes.library.hardware.motor.Motor -
    -
    -
    Create a motor
    -
    -
    - Motor(T) - - Constructor for class com.technototes.library.hardware.motor.Motor -
    -
    -
    Create a motor
    -
    -
    - MotorBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - MotorBuilder(int) - - Constructor for class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - MotorBuilder(DcMotorEx) - - Constructor for class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - MotorBuilder(String) - - Constructor for class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - MotorEncoder - - Class in - com.technototes.library.hardware.sensor.encoder -
    -
    -
    - Wraps a motor instance to provide corrected velocity counts and allow reversing - independently of the corresponding slot's motor direction -
    -
    -
    - MotorEncoder(DcMotorEx) - - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - MotorEncoder(DcMotorEx, ElapsedTime) - - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - MotorEncoder(EncodedMotor<DcMotorEx>) - - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - MotorEncoder(String) - - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - MotorEncoder.Direction - - Enum Class in - com.technototes.library.hardware.sensor.encoder -
    -
     
    -
    - MotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.hardware.motor -
    -
    -
    Class for a group of motors
    -
    -
    - MotorGroup(Motor<T>...) - - Constructor for class com.technototes.library.hardware.motor.MotorGroup -
    -
    -
    Make a motor group
    -
    -
    - MotorSubsystem<T - extends - Motor<?>> - Class in - com.technototes.library.subsystem.motor -
    -
    -
    Class for motor subsystems
    -
    -
    - MotorSubsystem(T) - - Constructor for class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
    -
    Create motor subsystem
    -
    -
    - MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED - - Static variable in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - msStuckDetectStop - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Deprecated.
    -
    -
    -

    N

    -
    -
    - name - - Variable in class com.technototes.library.logger.entry.Entry -
    -
    -
    The name of the Entry
    -
    -
    - name() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    - name() - - Element in annotation interface com.technototes.library.logger.Log -
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    - name() - - Element in annotation interface com.technototes.library.logger.Log.Number -
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    - name() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    - name() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    - NEUTRAL - - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
     
    -
    - NNN - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Negative, Negative, Negative
    -
    -
    - NNN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - NNP - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Negative, Negative, Positive
    -
    -
    - NNP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - NO_COLOR - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - NONE - - Enum constant in enum class com.technototes.library.util.Alliance -
    -
    -
    NO ALLIANCE SELECTED
    -
    -
    - NONE_ACTIVE - - Enum constant in enum class com.technototes.library.control.Binding.Type -
    -
     
    -
    - NPN - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Negative, Positive, Negative
    -
    -
    - NPN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - NPP - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Negative, Positive, Positive
    -
    -
    - NPP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - NumberBarEntry - - Class in - com.technototes.library.logger.entry -
    -
     
    -
    - NumberBarEntry(String, Supplier<Number>, int, Number, Number, Number, Color, - Color, Color, Color) - - Constructor for class com.technototes.library.logger.entry.NumberBarEntry -
    -
     
    -
    - numberColor - - Variable in class com.technototes.library.logger.entry.NumberEntry -
    -
     
    -
    - numberColor() - - Element in annotation interface com.technototes.library.logger.Log.Number -
    -
    -
    The color for the number
    -
    -
    - NumberEntry - - Class in - com.technototes.library.logger.entry -
    -
     
    -
    - NumberEntry(String, Supplier<Number>, int, Color) - - Constructor for class com.technototes.library.logger.entry.NumberEntry -
    -
     
    -
    - NumberEntry(String, Supplier<Number>, int, Color, Color) - - Constructor for class com.technototes.library.logger.entry.NumberEntry -
    -
     
    -
    - NumberSliderEntry - - Class in - com.technototes.library.logger.entry -
    -
     
    -
    - NumberSliderEntry(String, Supplier<Number>, int, Number, Number, Number, - Color, Color, Color, Color) - - Constructor for class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    -

    O

    -
    -
    - of(Pair<T, U>...) - - Static method in class com.technototes.library.util.MapUtils -
    -
     
    -
    - of(T, T) - - Static method in class com.technototes.library.util.Alliance.Selector -
    -
    -
    Selector factory method
    -
    -
    - offset - - Variable in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - onlyIf(BooleanSupplier) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Runs this command only if the choiceCondition is met (i.e.
    -
    -
    - onRange(double, double) - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -
    Set servo range
    -
    -
    - onUnit(DistanceUnit) - - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor -
    -
     
    -
    - onUnit(DistanceUnit) - - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor -
    -
     
    -
    - onUnit(DistanceUnit) - - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor -
    -
    -
    Deprecated.
    -
    Set the distance unit
    -
    -
    - options - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the PS4 game controller
    -
    -
    - OPTIONS - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4 Options button
    -
    -
    - ORANGE - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - outline() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    The color for the bar outlines
    -
    -
    - outline() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    The color for the slider outline
    -
    -
    - output() - - Method in class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    -

    P

    -
    -
    - ParallelCommandGroup - - Class in - com.technototes.library.command -
    -
    -
    - Command group to run commands in parallel until all of them finish -
    -
    -
    - ParallelCommandGroup(Command...) - - Constructor for class com.technototes.library.command.ParallelCommandGroup -
    -
    -
    Make parallel command group
    -
    -
    - ParallelDeadlineGroup - - Class in - com.technototes.library.command -
    -
    -
    - Command group to run commands in parallel until one particular command completes -
    -
    -
    - ParallelDeadlineGroup(Command, Command...) - - Constructor for class com.technototes.library.command.ParallelDeadlineGroup -
    -
    -
    Make parallel deadline group
    -
    -
    - ParallelRaceGroup - - Class in - com.technototes.library.command -
    -
    -
    - Command group to run commands in parallel until *one* is finished -
    -
    -
    - ParallelRaceGroup(Command...) - - Constructor for class com.technototes.library.command.ParallelRaceGroup -
    -
    -
    Make parallel race group
    -
    -
    - parameter(Consumer<BNO055IMU.Parameters>) - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - periodic() - - Method in class com.technototes.library.control.ButtonBase -
    -
     
    -
    - periodic() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    - Run the periodic functions for the controller (if the controller is enabled) -
    -
    -
    - periodic() - - Method in class com.technototes.library.control.GamepadDpad -
    -
     
    -
    - periodic() - - Method in class com.technototes.library.control.GamepadStick -
    -
     
    -
    - periodic() - - Method in interface com.technototes.library.general.Periodic -
    -
    -
    The periodic function
    -
    -
    - periodic() - - Method in class com.technototes.library.subsystem.DeviceSubsystem -
    -
     
    -
    - periodic() - - Method in interface com.technototes.library.subsystem.Subsystem -
    -
     
    -
    - Periodic - - Interface in - com.technototes.library.general -
    -
    -
    An interface for classes to have the periodic function
    -
    -
    - PINK - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - PNN - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Positive, Negative, Negative
    -
    -
    - PNN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - PNP - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Positive, Negative, Positive
    -
    -
    - PNP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - position(double) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - positionThreshold - - Variable in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Deadzone for going to positions with encoder
    -
    -
    - PPN - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Positive, Positive, Negative
    -
    -
    - PPN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - PPP - - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    Positive, Positive, Positive
    -
    -
    - PPP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    -
    - primary - - Variable in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - priority - - Variable in class com.technototes.library.logger.entry.Entry -
    -
    -
    The priority (in the telemetry list) of the entry
    -
    -
    - priority() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    - Store priority for this log entry (to pick the most wanted entry over others with - same index) -
    -
    -
    - priority() - - Element in annotation interface com.technototes.library.logger.Log.Number -
    -
    -
    - Store priority for this log entry (to pick the most wanted entry over others with - same index) -
    -
    -
    - priority() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    - Store priority for this log entry (to pick the most wanted entry over others with - same index) -
    -
    -
    - priority() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    - Store priority for this log entry (to pick the most wanted entry over others with - same index) -
    -
    -
    - priority() - - Element in annotation interface com.technototes.library.logger.Log -
    -
    -
    - Store priority for this log entry (to pick the most wanted entry over others with - same index) -
    -
    -
    - product - - Variable in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - propagate(double) - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    Propagate actions across the followers
    -
    -
    - propogate(double) - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    -
    - propogate(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - propogate(double) - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - propogate(double) - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    -
    - proportion - - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints -
    -
     
    -
    - PURPLE - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - pwmRange(double, double) - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - pythag(double...) - - Static method in class com.technototes.library.util.MathUtils -
    -
    -
    Calculate pythagorean theorem of any number of sides
    -
    -
    -

    R

    -
    -
    - raceWith(Command...) - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Runs all the commands in parallel (including this command) until one of them - finishes -
    -
    -
    - radians() - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Set angle format to radians
    -
    -
    - radians() - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - range(double, double) - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - Range - - Class in - com.technototes.library.util -
    -
    -
    Helper class for tracking a range
    -
    -
    - Range(double, double) - - Constructor for class com.technototes.library.util.Range -
    -
    -
    Create a range with the given minimum and maximum
    -
    -
    - raw() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - red() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get the RGB red of the sensor
    -
    -
    - RED - - Enum constant in enum class com.technototes.library.util.Alliance -
    -
    -
    RED alliance selector
    -
    -
    - RED - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - RED_SQUARE - - Static variable in class com.technototes.library.util.Characters -
    -
     
    -
    - register() - - Method in interface com.technototes.library.subsystem.Subsystem -
    -
     
    -
    - register(Periodic) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Register a periodic function to be run once each schedule loop -
    -
    -
    - remap(AxesOrder, IMUBuilder.AxesSigns) - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - remapAxesAndSigns(AxesOrder, IMU.AxesSigns) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Remaps the axes for the IMU in the order and sign provided.
    -
    -
    - remapLegacyAxes(AxesOrder, IMU.AxesSigns) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    - Remaps the axes for the BNO055 IMU in the order and sign provided The SDK 8.1.1 - added a new IMU class, which (delightfully) rotated the X and Y axes around the Z - axis by 90 degrees clock-wise (viewed from above) If you have code that was using - that layout, this is what you probably need to call. -
    -
    -
    - repeat(String, int) - - Static method in class com.technototes.library.logger.Logger -
    -
    -
    Repeat a String
    -
    -
    - requestOpModeStop() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - requirementMap - - Static variable in interface com.technototes.library.command.Command -
    -
    -
    The Command to Required Subsystems lookup
    -
    -
    - reset() - - Static method in interface com.technototes.library.util.SmartConsumer -
    -
     
    -
    - RESET - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    The command has just be scheduled
    -
    -
    - resetDeviceConfigurationForOpMode() - - Method in class com.technototes.library.hardware.DummyDevice -
    -
     
    -
    - resetScheduler() - - Static method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Alex had a comment "be careful with this" and he's not wrong.
    -
    -
    - Rev2MDistanceSensor - - Class in - com.technototes.library.hardware.sensor -
    -
    -
    Deprecated.
    -
    -
    - Rev2MDistanceSensor(DistanceSensor) - - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor -
    -
    -
    Deprecated.
    -
    Create a range sensor
    -
    -
    - Rev2MDistanceSensor(String) - - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor -
    -
    -
    Deprecated.
    -
    Create a range sensor
    -
    -
    - reverse() - - Method in class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - reverse() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - reverse() - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - REVERSE - - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction -
    -
     
    -
    - rgb() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
     
    -
    - right - - Variable in class com.technototes.library.control.GamepadDpad -
    -
    -
    The objects for the dpad buttons
    -
    -
    - RIGHT_BUMPER - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    Right bumper button
    -
    -
    - RIGHT_STICK_BUTTON - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    Button which clicking the right stick
    -
    -
    - RIGHT_STICK_X - - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    Right stick's horizontal axis
    -
    -
    - RIGHT_STICK_Y - - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    Right stick's vertical axis
    -
    -
    - RIGHT_TRIGGER - - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    Right Trigger's axis
    -
    -
    - rightBumper - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - rightSide - - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem -
    -
    -
    Drive motors
    -
    -
    - rightStick - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The stick objects
    -
    -
    - rightStickButton - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    - rightStickX - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The axis objects
    -
    -
    - rightStickY - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The axis objects
    -
    -
    - rightTrigger - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The axis objects
    -
    -
    - rlMotor - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
    -
    Drive motors
    -
    -
    - RobotLibrary - - Class in - com.technototes.library -
    -
    -
    - Root class for the Robot Library (I will put important stuff here) -
    -
    -
    - RobotLibrary() - - Constructor for class com.technototes.library.RobotLibrary -
    -
     
    -
    - rrMotor - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
    -
    Drive motors
    -
    -
    - rumble() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Rumble for about 1/8th of a second
    -
    -
    - rumble(double) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Rumble the gamepad for 'seconds'
    -
    -
    - rumbleBlip() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Run a single "RumbleBlip"
    -
    -
    - rumbleBlips(int) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Run a bunch of "RumbleBlips"
    -
    -
    - run() - - Method in interface com.technototes.library.command.Command -
    -
    -
    Run the commmand
    -
    -
    - run() - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - This is invoked from inside the CommandOpMode method, during the opCode. -
    -
    -
    - RUN - - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState -
    -
     
    -
    - runEntries - - Variable in class com.technototes.library.logger.Logger -
    -
     
    -
    - runLoop() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Runs constantly when op mode is started
    -
    -
    - runOpMode() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - runUpdate() - - Method in class com.technototes.library.logger.Logger -
    -
    -
    Update the logged run items in temeletry
    -
    -
    -

    S

    -
    -
    - saturation() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get HSV saturation
    -
    -
    - scale - - Variable in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - scale() - - Method in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - scale() - - Element in annotation interface com.technototes.library.logger.Log.NumberBar -
    -
    -
    Store the scale for the number bar to scale to
    -
    -
    - scale() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    Store the scale for the number bar to scale to
    -
    -
    - scale(double) - - Method in class com.technototes.library.util.Range -
    -
    -
    Scale the range by a given value
    -
    -
    - scalePWM(double, double) - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -   -
    -
    - schedule(Command) - - Method in class com.technototes.library.command.CommandGroup -
    -
    -
    - This should schedule the command as part of this command group, I think. -
    -
    -
    - schedule(Command) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Schedule a command to run
    -
    -
    - schedule(Command) - - Method in class com.technototes.library.command.ParallelCommandGroup -
    -
     
    -
    - schedule(Command) - - Method in class com.technototes.library.command.ParallelDeadlineGroup -
    -
    -
    - Add another command to the group to be run while waiting for the 'deadline' command - to finish -
    -
    -
    - schedule(Command) - - Method in class com.technototes.library.command.ParallelRaceGroup -
    -
    -
    - Add one more command to the list of commands that will be run at the same time -
    -
    -
    - schedule(Command) - - Method in class com.technototes.library.command.SequentialCommandGroup -
    -
    -
    - This allows you to append another command to the Sequential Command Group -
    -
    -
    - schedule(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    Schedule the command to run
    -
    -
    - schedule(Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Register a command to be scheduled.
    -
    -
    - schedule(BooleanSupplier, Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    Schedule the command to run over & over
    -
    -
    - schedule(Consumer<Boolean>) - - Method in class com.technototes.library.control.CommandButton -
    -
     
    -
    - schedule(Function<Boolean, Command>) - - Method in class com.technototes.library.control.CommandButton -
    -
     
    -
    - schedule(Function<Double, Command>) - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - scheduleAfterOther(Command, Command) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule the 'other' command (the second one) when the 'dependency' command has - finished (but *not* been cancelled!). -
    -
    -
    - scheduleAfterOther(Command, Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule the 'other' command (the second one) when the 'dependency' command has - finished (but *not* been cancelled!) *and* 'additionalCondition' is true. -
    -
    -
    - scheduleDefault(Command, Subsystem) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Schedule the default command for a given subsystem.
    -
    -
    - scheduleDpad(BiConsumer<Double, Double>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleDpad(BiFunction<Double, Double, Command>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleForState(Command, CommandOpMode.OpModeState...) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule a command to be run when the OpMode is one of the provided list of states. -
    -
    -
    - scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule a command to be run when the OpMode is one of the provided list of states - and the 'supplier' boolean function is also true. -
    -
    -
    - scheduleInit(Command) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule a command to be run recurringly during the 'Init' phase of an opmode. -
    -
    -
    - scheduleInit(Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule a command to be run recurringly during the 'Init' phase of an opmode. -
    -
    -
    - scheduleJoystick(Command) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedules a command to be run during Run and End states, all the time. -
    -
    -
    - scheduleJoystick(Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedules a command to be run during Run and End states, all the time. -
    -
    -
    - scheduleLeftStick(BiConsumer<Double, Double>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleLeftStick(BiFunction<Double, Double, Command>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleOnce(Command) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Schedule a command to run
    -
    -
    - scheduleOnceForState(Command, CommandOpMode.OpModeState) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Schedule a command to run during a particular OpModeState
    -
    -
    - schedulePressed(Function<DoubleSupplier, Command>) - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - scheduleRightStick(BiConsumer<Double, Double>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleRightStick(BiFunction<Double, Double, Command>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleStick(Stick, BiConsumer<Double, Double>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleStick(Stick, BiFunction<Double, Double, Command>) - - Method in class com.technototes.library.control.CommandGamepad -
    -
     
    -
    - scheduleWithOther(Command, Command) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule the 'other' command (the second one) when the 'dependency' command has just - started. -
    -
    -
    - scheduleWithOther(Command, Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    - Schedule the 'other' command (the second one) when the 'dependency' command has just - started *and* 'additionalCondition' is also true. -
    -
    -
    - secondary - - Variable in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - select(Alliance) - - Method in class com.technototes.library.util.Alliance.Selector -
    -
    -
    Select the red or blue item based on the Alliance
    -
    -
    - selectOf(Alliance, T, T) - - Static method in class com.technototes.library.util.Alliance.Selector -
    -
    -
    Based on Alliance, choose red or blue
    -
    -
    - selectOf(T, T) - - Method in enum class com.technototes.library.util.Alliance -
    -
    -
    Select either 'a' or 'b' depending on alliance
    -
    -
    - Selector(T, T) - - Constructor for class com.technototes.library.util.Alliance.Selector -
    -
    -
    Create a Selelector for red/blue
    -
    -
    - Sensor<T - extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in - com.technototes.library.hardware.sensor -
    -
    -
    Deprecated.
    -
    -
    - Sensor(String) - - Constructor for class com.technototes.library.hardware.sensor.Sensor -
    -
    -
    Deprecated.
    -
    Create sensor
    -
    -
    - Sensor(T) - - Constructor for class com.technototes.library.hardware.sensor.Sensor -
    -
    -
    Deprecated.
    -
    Create a sensor
    -
    -
    - Sensored - - Interface in - com.technototes.library.hardware -
    -
    -
    Deprecated.
    -
    -
    - SequentialCommandGroup - - Class in - com.technototes.library.command -
    -
    -
    A grouping command which runs a list of commands in sequence
    -
    -
    - SequentialCommandGroup(Command...) - - Constructor for class com.technototes.library.command.SequentialCommandGroup -
    -
    -
    Make sequential command group.
    -
    -
    - servo(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - servo(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - Servo - - Class in - com.technototes.library.hardware.servo -
    -
    -
    Deprecated.
    -
    -
    - Servo(Servo) - - Constructor for class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -
    Create servo object
    -
    -
    - Servo(String) - - Constructor for class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -
    Create servo object
    -
    -
    - ServoBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - ServoBuilder(int) - - Constructor for class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - ServoBuilder(Servo) - - Constructor for class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - ServoBuilder(String) - - Constructor for class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - ServoGroup - - Class in - com.technototes.library.hardware.servo -
    -
    -
    Deprecated.
    -
    -
    - ServoGroup(Servo...) - - Constructor for class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -
    Create a servo group
    -
    -
    - ServoProfiler - - Class in - com.technototes.library.hardware.servo -
    -
     
    -
    - ServoProfiler(Servo) - - Constructor for class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - ServoProfiler.Constraints - - Class in - com.technototes.library.hardware.servo -
    -
     
    -
    - ServoSubsystem - - Class in - com.technototes.library.subsystem.servo -
    -
    -
    Class for servo subsystems
    -
    -
    - ServoSubsystem(Servo) - - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem -
    -
    -
    Create servo subsystem
    -
    -
    - ServoSubsystem(Servo...) - - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem -
    -
     
    -
    - set(double) - - Method in class com.technototes.library.util.Integral -
    -
    -
    Set the value to C
    -
    -
    - setAverageOutput(double) - - Method in class com.technototes.library.util.Differential -
    -
    -
    Set the average of the differential.
    -
    -
    - setConstraints(double, double, double) - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - setConstraints(ServoProfiler.Constraints) - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - setDefaultCommand(Command) - - Method in interface com.technototes.library.subsystem.Subsystem -
    -
     
    -
    - setDeviationOutput(double) - - Method in class com.technototes.library.util.Differential -
    -
    -
    Set the deviation of the differential.
    -
    -
    - setDirection(MotorEncoder.Direction) - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
    -
    - Allows you to set the direction of the counts and velocity without modifying the - motor's direction state -
    -
    -
    - setEnabled(boolean) - - Method in class com.technototes.library.control.ButtonBase -
    -
     
    -
    - setEnabled(boolean) - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    - Enable/disable the gamepad (and all potentially bound commands!) -
    -
    -
    - setEnabled(boolean) - - Method in class com.technototes.library.control.GamepadDpad -
    -
     
    -
    - setEnabled(boolean) - - Method in class com.technototes.library.control.GamepadStick -
    -
     
    -
    - setEnabled(boolean) - - Method in interface com.technototes.library.general.Enablable -
    -
    -
    Set whether or not the device is enabled
    -
    -
    - setEncoder(Encoder) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Explicitly set the encoder for the motor
    -
    -
    - setHeading(double) - - Method in interface com.technototes.library.hardware.sensor.IGyro -
    -
    -
    Sets the current heading (in default units)
    -
    -
    - setHeading(double) - - Method in class com.technototes.library.hardware.sensor.IMU -
    -
    -
    Sets the current heading to be 'new heading'
    -
    -
    - setIndex(int) - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    Set index
    -
    -
    - setInverted(boolean) - - Method in class com.technototes.library.control.ButtonBase -
    -
     
    -
    - setInverted(boolean) - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - setInverted(boolean) - - Method in class com.technototes.library.control.CommandButton -
    -
     
    -
    - setInverted(boolean) - - Method in interface com.technototes.library.general.Invertable -
    -
    -
    - Set the inversion (true -> Is inverted, false -> Not inverted) -
    -
    -
    - setInverted(boolean) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Set the Inverted state for the motor.
    -
    -
    - setInverted(boolean) - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Set the Inverted state for the motor.
    -
    -
    - setInverted(boolean) - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -   -
    -
    - setLimits(double, double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
     
    -
    - setLimits(double, double) - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    - Sets the min & max values for the motor power (still clipped to -1/1) -
    -
    -
    - setLimits(double, double) - - Method in class com.technototes.library.util.Differential -
    -
    -
    Set the limits for the differential
    -
    -
    - setMaxSpeed(double) - - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Set the max speed for the subsystem
    -
    -
    - setOpMode(CommandOpMode) - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Set the scheduler's opmode
    -
    -
    - setOutputs(double, double) - - Method in class com.technototes.library.util.Differential -
    -
    -
    Set both outputs for the differential
    -
    -
    - setPIDFCoeffecients(double, double, double, double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Configure the PIDF constants for the motor
    -
    -
    - setPIDFCoeffecients(PIDFCoefficients) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Configure the PIDF constants for the motor
    -
    -
    - setPosition(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Set the position of the motor
    -
    -
    - setPosition(double) - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -
    Set servo position
    -
    -
    - setPosition(double) - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    -
    - setPosition(double) - - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Set position for subsystem with existing max speed
    -
    -
    - setPosition(double) - - Method in class com.technototes.library.subsystem.servo.ServoSubsystem -
    -
    -
    Set servo subsystem position
    -
    -
    - setPosition(double, double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    - Set the power for the motor to try to get to the position specified. -
    -
    -
    - setPosition(double, double) - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - setPosition(double, double) - - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Set position for subsystem
    -
    -
    - setPriority(int) - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    - Set's the priority for this log line (handy for telemetry overflow) -
    -
    -
    - setPriority(Differential.DifferentialPriority) - - Method in class com.technototes.library.util.Differential -
    -
    -
    Sets the priority for the differential.
    -
    -
    - setRunMode(DcMotor.RunMode) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Set the runmode for the motor
    -
    -
    - setServoRange(double) - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - setSpeed(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Sets the (clipped) speed for the motor
    -
    -
    - setSpeed(double) - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Set speed of motor
    -
    -
    - setSpeed(double) - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - setSpeed(double) - - Method in class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
    -
    Set the speed of the primary motors in subsystem
    -
    -
    - setState(Command.CommandState) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Set the command state: DEFINITELY DO NOT USE THIS!
    -
    -
    - setTargetPosition(double) - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - setTargetTolerance(double) - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - setTriggerThreshold(double) - - Method in class com.technototes.library.control.AxisBase -
    -
    -
    Set threshold
    -
    -
    - setTriggerThreshold(double) - - Method in class com.technototes.library.control.CommandAxis -
    -
     
    -
    - setVelocity(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Set velocity of motor in tps
    -
    -
    - setVelocity(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - setVolume(float) - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - share - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the PS4 game controller
    -
    -
    - SHARE - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4 Share button
    -
    -
    - SimpleMecanumDrivebaseSubsystem<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.subsystem.drivebase -
    -
    -
    Class for mecanum/xdrive drivebases
    -
    -
    - SimpleMecanumDrivebaseSubsystem(Motor<T>, Motor<T>, Motor<T>, - Motor<T>) - - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
    -
    Create mecanum drivebase
    -
    -
    - SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor<T>, Motor<T>, - Motor<T>, Motor<T>) - - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
    -
    Create mecanum drivebase
    -
    -
    - sleep(double) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Delay the command for some time
    -
    -
    - sleep(DoubleSupplier) - - Method in interface com.technototes.library.command.Command -
    -
    -
    Delay the command for some time
    -
    -
    - slider() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    The color for the slider slide
    -
    -
    - sliderBackground() - - Element in annotation interface com.technototes.library.logger.Log.NumberSlider -
    -
    -
    The color for the slider background
    -
    -
    - SmartConsumer<T> - Interface in - com.technototes.library.util -
    -
    -
    - This is a functional interface, when 'accept' is invoked, will only invoke the - 'consume' method when a different value is provided. -
    -
    -
    - SOME_ACTIVE - - Enum constant in enum class com.technototes.library.control.Binding.Type -
    -
     
    -
    - Speaker - - Class in - com.technototes.library.hardware -
    -
    -
    Deprecated.
    -
    -
    - Speaker(float, String...) - - Constructor for class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - Speaker(String...) - - Constructor for class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - square - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the PS4 game controller
    -
    -
    - SQUARE - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4 Square button
    -
    -
    - start - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the XBox game controller
    -
    -
    - start(String) - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - START - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4/XBox Start button
    -
    -
    - startAt(double) - - Method in class com.technototes.library.hardware.servo.Servo -
    -
    -
    Deprecated.
    -
    Set position for the servo and return this
    -
    -
    - startAt(double) - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    -
    - STARTED - - Enum constant in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    The command has been triggered
    -
    -
    - stateMap - - Static variable in interface com.technototes.library.command.Command -
    -
    -
    The Command to Current State of the Command lookup
    -
    -
    - Stick - - Interface in - com.technototes.library.control -
    -
    -
    Interface for objects that behave as sticks
    -
    -
    - stickButton - - Variable in class com.technototes.library.control.GamepadStick -
    -
    -
    The objects for the stick button
    -
    -
    - stop() - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - stop() - - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem -
    -
     
    -
    - stop() - - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem -
    -
     
    -
    - stop() - - Method in class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
     
    -
    - stopRumble() - - Method in class com.technototes.library.control.GamepadBase -
    -
    -
    Stop rumbling on the gamepad
    -
    -
    - StringEntry - - Class in - com.technototes.library.logger.entry -
    -
     
    -
    - StringEntry(String, Supplier<String>, int, Color, String, Color) - - Constructor for class com.technototes.library.logger.entry.StringEntry -
    -
     
    -
    - Subsystem - - Interface in - com.technototes.library.subsystem -
    -
     
    -
    - supplier - - Variable in class com.technototes.library.logger.entry.Entry -
    -
    -
    The function called to get the value to display
    -
    -
    -

    T

    -
    -
    - tag - - Variable in class com.technototes.library.logger.entry.Entry -
    -
    -
    String to use a 'header' (calculated from name and color)
    -
    -
    - TankDrivebaseSubsystem<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.subsystem.drivebase -
    -
    -
    Class for drivebase subsystems
    -
    -
    - TankDrivebaseSubsystem(Motor<T>, Motor<T>) - - Constructor for class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem -
    -
    -
    Create tank drivebase
    -
    -
    - tare() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Zero the encoder
    -
    -
    - tare() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - telemetry - - Variable in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - terminate() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
     
    -
    - terminateOpMode() - - Method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Forcefully halt the opmode
    -
    -
    - tertiary - - Variable in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - timeMap - - Static variable in interface com.technototes.library.command.Command -
    -
    -
    The Command to Total Time Spent Running lookup
    -
    -
    - toggle(Command, Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - For scheduling a pair of "opposite" commands for toggling when something is or is - not being toggled -
    -
    -
    - toggleEnabled() - - Method in interface com.technototes.library.general.Enablable -
    -
    -
    Toggle whether this object is enabled or not
    -
    -
    - tolerance(int) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - toString() - - Method in class com.technototes.library.logger.entry.BooleanEntry -
    -
     
    -
    - toString() - - Method in class com.technototes.library.logger.entry.Entry -
    -
    -
    The String for the logged item
    -
    -
    - toString() - - Method in class com.technototes.library.logger.entry.NumberBarEntry -
    -
     
    -
    - toString() - - Method in class com.technototes.library.logger.entry.NumberEntry -
    -
     
    -
    - toString() - - Method in class com.technototes.library.logger.entry.NumberSliderEntry -
    -
     
    -
    - toString() - - Method in class com.technototes.library.logger.entry.StringEntry -
    -
     
    -
    - translateTargetPosition(double) - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - triangle - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the PS4 game controller
    -
    -
    - TRIANGLE - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    PS4 Triangle button
    -
    -
    - trueColor() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    The color for the true String
    -
    -
    - trueFormat() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    The format for when the boolean returns true
    -
    -
    - trueValue() - - Element in annotation interface com.technototes.library.logger.Log.Boolean -
    -
    -
    Store the string when the annotated method returns true
    -
    -
    -

    U

    -
    -
    - universalLoop() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Runs constantly during all periods
    -
    -
    - up - - Variable in class com.technototes.library.control.GamepadDpad -
    -
    -
    The objects for the dpad buttons
    -
    -
    - update() - - Method in class com.technototes.library.hardware.servo.ServoProfiler -
    -
     
    -
    - update(double) - - Method in class com.technototes.library.util.Integral -
    -
    -
    - Update the accumulated value for the number of seconds since last update -
    -
    -
    - uponInit() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Runs once when op mode is initialized
    -
    -
    - uponStart() - - Method in class com.technototes.library.structure.CommandOpMode -
    -
    -
    Runs once when op mode is started
    -
    -
    -

    V

    -
    -
    - value() - - Method in interface com.technototes.library.hardware.sensor.IColorSensor -
    -
    -
    Get HSV value (not entire HSV, just 'V')
    -
    -
    - value() - - Element in annotation interface com.technototes.library.logger.Log.Logs -
    -
     
    -
    - value() - - Element in annotation interface com.technototes.library.logger.LogConfig.Blacklist -
    -
    -
    The blacklisted opmodes
    -
    -
    - value() - - Element in annotation interface com.technototes.library.logger.LogConfig.Whitelist -
    -
    -
    The whitelisted opmodes
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.control.Binding.Type -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.util.Alliance -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.util.Color -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.command.Command.CommandState -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.control.Binding.Type -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.control.GamepadBase.Axis -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.util.Alliance -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.util.Color -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - velocity(PIDFCoefficients) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    -

    W

    -
    -
    - WaitCommand - - Class in - com.technototes.library.command -
    -
    -
    A command to do nothing but wait for a span of time.
    -
    -
    - WaitCommand(double) - - Constructor for class com.technototes.library.command.WaitCommand -
    -
    -
    Create a wait command for a fixed number of seconds
    -
    -
    - WaitCommand(DoubleSupplier) - - Constructor for class com.technototes.library.command.WaitCommand -
    -
    -
    - Create a wait command for a number of seconds that can be calculated when the - commannd is triggered -
    -
    -
    - waitUntil(BooleanSupplier) - - Method in interface com.technototes.library.command.Command -
    -
    -
    After this command, wait until the condition function is true
    -
    -
    - whenInverseToggled(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule the command to be run when the input has only stopped being toggled -
    -
    -
    - whenPressed(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    Schedule a command to be run once the input is pressed.
    -
    -
    - whenPressedReleased(Command, Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - For scheduling a pair commands for when the input is pressed and released. -
    -
    -
    - whenReleased(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    Schedule a command to be run once the input is released.
    -
    -
    - whenToggled(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule a command to be run when the input was just toggled (From pressed to - released, or released to pressed) -
    -
    -
    - whileInverseToggled(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule the command to run over & over while the input is *not* changing It - will be canceled once the input is toggled. -
    -
    -
    - whilePressed(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule a command to be run over & over while the input is pressed, but once - it's released, the command will be cancelled. -
    -
    -
    - whilePressedContinuous(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule a command to be run over & over while the input is pressed -
    -
    -
    - whilePressedOnce(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule a command to be run while the input is pressed, but only once, and if the - command takes so long that the input is released, the command will be cancelled. -
    -
    -
    - whilePressedReleased(Command, Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - For scheduling a pair commands for while the input is pressed and released. -
    -
    -
    - whileReleased(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schedule a command to be run over & over while the input is released, but once - it's pressed, the command will be cancelled. -
    -
    -
    - whileReleasedOnce(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    - Schdule the command to be run when the input is released, but only once! -
    -
    -
    - whileToggled(Command) - - Method in interface com.technototes.library.control.CommandInput -
    -
    -
    Schedule the command to be run while the input is changing.
    -
    -
    - WHITE - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    - withTimeout(double) - - Method in interface com.technototes.library.command.Command -
    -
    -
    - Runs this command until it either finishes, or the timeout has elapsed -
    -
    -
    -

    X

    -
    -
    - x - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the XBox game controller
    -
    -
    - x - - Variable in class com.technototes.library.logger.entry.Entry -
    -
    -
    The index (in the list) of the entry
    -
    -
    - X - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    XBox X button
    -
    -
    - xAxis - - Variable in class com.technototes.library.control.GamepadStick -
    -
    -
    The objects for the stick axis
    -
    -
    -

    Y

    -
    -
    - y - - Variable in class com.technototes.library.control.GamepadBase -
    -
    -
    The button objects for the XBox game controller
    -
    -
    - Y - - Enum constant in enum class com.technototes.library.control.GamepadBase.Button -
    -
    -
    XBox Y button
    -
    -
    - yAxis - - Variable in class com.technototes.library.control.GamepadStick -
    -
    -
    The objects for the stick axis
    -
    -
    - YELLOW - - Enum constant in enum class com.technototes.library.util.Color -
    -
     
    -
    -

    Z

    -
    -
    - zero() - - Method in interface com.technototes.library.hardware.sensor.IGyro -
    -
    -
    Zeroes the current heading (in default units)
    -
    -
    - zero() - - Method in class com.technototes.library.util.Integral -
    -
    -
    Set the value to zero
    -
    -
    - zeroEncoder() - - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder -
    -
    -
    zero the encoder
    -
    -
    - zeroEncoder() - - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder -
    -
    -
    Set the current device value as "zero"
    -
    -
    - zeroEncoder() - - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values -
    -
    -
    - + + +Index (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    +A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +

    A

    +
    +
    accept(T) - Method in interface com.technototes.library.util.SmartConsumer
    +
    +
    The public interface for a SmartConsumer: accept should be invoked, not consume :)
    +
    +
    addCommands(Command...) - Method in class com.technototes.library.command.CommandGroup
    +
    +
    Add a command to the group
    +
    +
    additionalInitConditions() - Method in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    addRequirements(Subsystem...) - Method in interface com.technototes.library.command.Command
    +
    +
    Add requirement subsystems to command
    +
    +
    addSongs(String...) - Method in class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    ALL_ACTIVE - Enum constant in enum class com.technototes.library.control.Binding.Type
    +
     
    +
    Alliance - Enum Class in com.technototes.library.util
    +
    +
    An enumeration to specify which alliance the bot is on (Red, Blue, or None)
    +
    +
    Alliance.Blue - Annotation Interface in com.technototes.library.util
    +
    +
    Not sure what this is for.
    +
    +
    Alliance.Red - Annotation Interface in com.technototes.library.util
    +
    +
    Not sure what this is for.
    +
    +
    Alliance.Selector<T> - Class in com.technototes.library.util
    +
    +
    This feels over-engineered, but it's probably for some obnoxious Java thing, + unfortunate.
    +
    +
    alongWith(Command...) - Method in interface com.technototes.library.command.Command
    +
    +
    Run this command in parallel with additional commands
    +
    +
    alpha() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get the alpha (transparency) of the color
    +
    +
    analog(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    analog(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    AnalogBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    AnalogBuilder(int) - Constructor for class com.technototes.library.hardware2.AnalogBuilder
    +
     
    +
    AnalogBuilder(AnalogSensor) - Constructor for class com.technototes.library.hardware2.AnalogBuilder
    +
     
    +
    AnalogBuilder(String) - Constructor for class com.technototes.library.hardware2.AnalogBuilder
    +
     
    +
    AnalogSensor - Class in com.technototes.library.hardware.sensor
    +
    +
    Class for analog sensors
    +
    +
    AnalogSensor(AnalogInput) - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor
    +
    +
    Make an analog sensor
    +
    +
    AnalogSensor(String) - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor
    +
    +
    Make an analog sensor
    +
    +
    andThen(Command...) - Method in interface com.technototes.library.command.Command
    +
    +
    Run a command or series of ParallelCommands after this one
    +
    +
    anyCancelled - Variable in class com.technototes.library.command.CommandGroup
    +
    +
    Have *any* of the command list been cancelled
    +
    +
    apply(UnaryOperator<T>) - Method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    arcadeDrive(double, double) - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    +
     
    +
    argb() - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    argb() - Method in class com.technototes.library.hardware.sensor.ColorSensor
    +
     
    +
    argb() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
     
    +
    asConditional(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    +
    +
    Creates a conditional command out of this
    +
    +
    at(double) - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    AVERAGE - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
     
    +
    AxisBase - Class in com.technototes.library.control
    +
    +
    The class to extend custom gamepad axis from
    +
    +
    AxisBase(DoubleSupplier) - Constructor for class com.technototes.library.control.AxisBase
    +
    +
    Make a GamepadAxis with the supplier
    +
    +
    AxisBase(DoubleSupplier, double) - Constructor for class com.technototes.library.control.AxisBase
    +
    +
    Make a GamepadAxis with the supplier and the threshold for the stick to behave as a button
    +
    +
    axisInstance(DoubleSupplier) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns the U (extended from AxisBase) type wrapped around a simple DoubleSupplier
    +
    +
    +

    B

    +
    +
    Binding<T extends BooleanSupplier> - Interface in com.technototes.library.control
    +
    +
    Class for bindings to extend
    +
    +
    Binding.Type - Enum Class in com.technototes.library.control
    +
    +
    Button type
    +
    +
    BLACK - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    blue() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get the RGB blue of the sensor
    +
    +
    BLUE - Enum constant in enum class com.technototes.library.util.Alliance
    +
    +
    BLUE alliance selector
    +
    +
    BLUE - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    BLUE_CIRCLE - Static variable in class com.technototes.library.util.Characters
    +
     
    +
    BooleanEntry - Class in com.technototes.library.logger.entry
    +
     
    +
    BooleanEntry(String, Supplier<Boolean>, int, String, String) - Constructor for class com.technototes.library.logger.entry.BooleanEntry
    +
     
    +
    booleanSupplier - Variable in class com.technototes.library.control.ButtonBase
    +
     
    +
    brake() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
     
    +
    brake() - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Configure the motor to *brake* when the power is set to zero.
    +
    +
    brake() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    build() - Method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    build() - Method in class com.technototes.library.hardware2.IMUBuilder
    +
    +
    Deprecated
    +
    +
    ButtonBase - Class in com.technototes.library.control
    +
    +
    The class to extend custom gamepad buttons from
    +
    +
    ButtonBase(BooleanSupplier) - Constructor for class com.technototes.library.control.ButtonBase
    +
    +
    Create button with boolean supplier
    +
    +
    buttonInstance(BooleanSupplier) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Great a ButtonBase type from the given BooleanSupplier
    +
    +
    bVal - Variable in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    The value of the enumeration
    +
    +
    bVal - Variable in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    +

    C

    +
    +
    calculateA(double, double, double, double) - Method in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
    +
    Calculates the value for the differential output generated by averaging
    +
    +
    calculateS(double, double, double, double) - Method in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
    +
    Calculates the value for the differential output generated by subtracting
    +
    +
    cancel() - Method in interface com.technototes.library.command.Command
    +
    +
    If the command is running, interrupt it such that it can be cancelled
    +
    +
    CANCELLED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command has been cancelled
    +
    +
    cancelUpon(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    +
    +
    Runs this command until it finishes, or until the condition supplied is true
    +
    +
    captionDivider - Variable in class com.technototes.library.logger.Logger
    +
    +
    The divider between the tag and the entry for telemetry (default ':')
    +
    +
    Characters - Class in com.technototes.library.util
    +
     
    +
    Characters() - Constructor for class com.technototes.library.util.Characters
    +
     
    +
    ChoiceCommand - Class in com.technototes.library.command
    +
    +
    A command that allows choosing among a number of commands based on variety of conditions
    +
    +
    ChoiceCommand(Pair<BooleanSupplier, Command>...) - Constructor for class com.technototes.library.command.ChoiceCommand
    +
    +
    Each pair represents a condition to check, and the command to execute if that condition is + true
    +
    +
    ChoiceCommand(BooleanSupplier, Command) - Constructor for class com.technototes.library.command.ChoiceCommand
    +
    +
    This is a simplistic ChoiceCommand that is simply a single conditional command + I *think* this will wwait until b is true
    +
    +
    clear() - Static method in interface com.technototes.library.command.Command
    +
    +
    Clear out the state, time, and requirement maps.
    +
    +
    close() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    closestTo(double, double...) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Returns the value from a list which is closed to the first value.
    +
    +
    closestTo(double, int...) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Returns the value from a list which is closed to the first value.
    +
    +
    coast() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
     
    +
    coast() - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Configure the motor to *float* when the power is set to zero.
    +
    +
    coast() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    codriverGamepad - Variable in class com.technototes.library.structure.CommandOpMode
    +
    +
    Command gamepad objects
    +
    +
    color(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    Color - Enum Class in com.technototes.library.util
    +
    +
    Enum for Colors and some formatting
    +
    +
    ColorBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    ColorBuilder(ColorSensor) - Constructor for class com.technototes.library.hardware2.ColorBuilder
    +
     
    +
    ColorBuilder(String) - Constructor for class com.technototes.library.hardware2.ColorBuilder
    +
     
    +
    ColorDistanceSensor - Class in com.technototes.library.hardware.sensor
    +
     
    +
    ColorDistanceSensor(ColorRangeSensor) - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    ColorDistanceSensor(String) - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    colorRange(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    ColorRangeBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    ColorRangeBuilder(ColorRangeSensor) - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder
    +
     
    +
    ColorRangeBuilder(String) - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder
    +
     
    +
    ColorSensor - Class in com.technototes.library.hardware.sensor
    +
    +
    Class for color sensors
    +
    +
    ColorSensor(ColorSensor) - Constructor for class com.technototes.library.hardware.sensor.ColorSensor
    +
    +
    Make a color Sensor
    +
    +
    ColorSensor(String) - Constructor for class com.technototes.library.hardware.sensor.ColorSensor
    +
    +
    Make a color sensor
    +
    +
    com.technototes.library - package com.technototes.library
    +
     
    +
    com.technototes.library.command - package com.technototes.library.command
    +
     
    +
    com.technototes.library.control - package com.technototes.library.control
    +
     
    +
    com.technototes.library.general - package com.technototes.library.general
    +
     
    +
    com.technototes.library.hardware - package com.technototes.library.hardware
    +
     
    +
    com.technototes.library.hardware.motor - package com.technototes.library.hardware.motor
    +
     
    +
    com.technototes.library.hardware.sensor - package com.technototes.library.hardware.sensor
    +
     
    +
    com.technototes.library.hardware.sensor.encoder - package com.technototes.library.hardware.sensor.encoder
    +
     
    +
    com.technototes.library.hardware.servo - package com.technototes.library.hardware.servo
    +
     
    +
    com.technototes.library.hardware2 - package com.technototes.library.hardware2
    +
     
    +
    com.technototes.library.logger - package com.technototes.library.logger
    +
     
    +
    com.technototes.library.logger.entry - package com.technototes.library.logger.entry
    +
     
    +
    com.technototes.library.structure - package com.technototes.library.structure
    +
     
    +
    com.technototes.library.subsystem - package com.technototes.library.subsystem
    +
     
    +
    com.technototes.library.subsystem.drivebase - package com.technototes.library.subsystem.drivebase
    +
     
    +
    com.technototes.library.subsystem.motor - package com.technototes.library.subsystem.motor
    +
     
    +
    com.technototes.library.subsystem.servo - package com.technototes.library.subsystem.servo
    +
     
    +
    com.technototes.library.util - package com.technototes.library.util
    +
     
    +
    Command - Interface in com.technototes.library.command
    +
    +
    The root Command class
    +
    +
    Command.CommandState - Enum Class in com.technototes.library.command
    +
    +
    The command state enum
    +
    +
    CommandAxis - Class in com.technototes.library.control
    +
    +
    Class for command axis for the gamepad
    +
    +
    CommandAxis(DoubleSupplier) - Constructor for class com.technototes.library.control.CommandAxis
    +
    +
    Make a command axis
    +
    +
    CommandAxis(DoubleSupplier, double) - Constructor for class com.technototes.library.control.CommandAxis
    +
    +
    Make a command axis
    +
    +
    CommandBase - Class in com.technototes.library.command
    +
    +
    Deprecated.
    +
    +
    CommandBase() - Constructor for class com.technototes.library.command.CommandBase
    +
    +
    Deprecated.
    +
    CommandBinding - Class in com.technototes.library.control
    +
    +
    Command implementation of Binding
    +
    +
    CommandBinding(Binding.Type, CommandInput...) - Constructor for class com.technototes.library.control.CommandBinding
    +
     
    +
    CommandBinding(CommandInput...) - Constructor for class com.technototes.library.control.CommandBinding
    +
     
    +
    CommandButton - Class in com.technototes.library.control
    +
    +
    Class for command buttons for gamepad
    +
    +
    CommandButton(BooleanSupplier) - Constructor for class com.technototes.library.control.CommandButton
    +
    +
    Make command button
    +
    +
    CommandGamepad - Class in com.technototes.library.control
    +
    +
    Class for command gamepads that specifies class params
    +
    +
    CommandGamepad(Gamepad) - Constructor for class com.technototes.library.control.CommandGamepad
    +
    +
    Make command gamepad
    +
    +
    CommandGroup - Class in com.technototes.library.command
    +
    +
    Root class for all command groups (Sequential, Parallel, etc...) + WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than + using this one directly.
    +
    +
    CommandGroup(boolean, Command...) - Constructor for class com.technototes.library.command.CommandGroup
    +
    +
    Create a command group with commands
    +
    +
    CommandInput<T extends ButtonBase> - Interface in com.technototes.library.control
    +
    +
    Class for gamepad-command integration
    +
    +
    commandMap - Variable in class com.technototes.library.command.CommandGroup
    +
    +
    This is a map from the command to whether it has been run
    +
    +
    CommandOpMode - Class in com.technototes.library.structure
    +
    +
    Class for command based op modes
    +
    +
    CommandOpMode() - Constructor for class com.technototes.library.structure.CommandOpMode
    +
     
    +
    CommandOpMode.OpModeState - Enum Class in com.technototes.library.structure
    +
    +
    Enum for op mode state
    +
    +
    CommandScheduler - Class in com.technototes.library.command
    +
    +
    This is a "singleton" object for scheduling commands.
    +
    +
    ConditionalCommand - Class in com.technototes.library.command
    +
    +
    Simple class for commands that require a certain condition to be true to run
    +
    +
    ConditionalCommand(BooleanSupplier) - Constructor for class com.technototes.library.command.ConditionalCommand
    +
    +
    This makes a "wait" command
    +
    +
    ConditionalCommand(BooleanSupplier, Command) - Constructor for class com.technototes.library.command.ConditionalCommand
    +
    +
    Make a conditional command
    +
    +
    ConditionalCommand(BooleanSupplier, Command, Command) - Constructor for class com.technototes.library.command.ConditionalCommand
    +
    +
    Make a conditional command
    +
    +
    constrain(double, double, double) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Deprecated. 
    +
    +
    constrain(int, int, int) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Deprecated. 
    +
    +
    Constraints(double, double, double) - Constructor for class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    consume(T) - Method in interface com.technototes.library.util.SmartConsumer
    +
    +
    The 'consume' function
    +
    +
    countCancel - Variable in class com.technototes.library.command.CommandGroup
    +
    +
    Should a cancelled command be considered 'finished'
    +
    +
    countCancel() - Method in class com.technototes.library.command.CommandGroup
    +
    +
    Specify that this CommandGroup should count a cancellation as 'completed'
    +
    +
    create(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    create(Command, Subsystem...) - Static method in interface com.technototes.library.command.Command
    +
    +
    This is a helper to create a new command from an existing command, but with additional + subsystem requirements
    +
    +
    create(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    crServo(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    crServo(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    CRServoBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    CRServoBuilder(int) - Constructor for class com.technototes.library.hardware2.CRServoBuilder
    +
     
    +
    CRServoBuilder(CRServo) - Constructor for class com.technototes.library.hardware2.CRServoBuilder
    +
     
    +
    CRServoBuilder(String) - Constructor for class com.technototes.library.hardware2.CRServoBuilder
    +
     
    +
    CYAN - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    CYCLE - Static variable in class com.technototes.library.util.Characters
    +
     
    +
    +

    D

    +
    +
    DARK_GRAY - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    deadline(Command...) - Method in interface com.technototes.library.command.Command
    +
    +
    Runs all the commands specified in parallel *until this command is completed*
    +
    +
    DEFAULT_TRIGGER_THRESHOLD - Static variable in class com.technototes.library.control.AxisBase
    +
    +
    The default trigger threshold
    +
    +
    degrees() - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Set angle format to degrees
    +
    +
    degrees() - Method in class com.technototes.library.hardware2.IMUBuilder
    +
    +
    Deprecated
    +
    +
    device - Variable in class com.technototes.library.hardware.HardwareDevice
    +
    +
    Deprecated.
    +
    device - Variable in class com.technototes.library.subsystem.DeviceSubsystem
    +
     
    +
    DeviceSubsystem<T extends HardwareDevice<?>> - Class in com.technototes.library.subsystem
    +
    +
    class for subsystems
    +
    +
    DeviceSubsystem(T) - Constructor for class com.technototes.library.subsystem.DeviceSubsystem
    +
    +
    Create a subsystem
    +
    +
    DIFFERENCE - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
     
    +
    Differential - Class in com.technototes.library.util
    +
     
    +
    Differential(DoubleConsumer, DoubleConsumer) - Constructor for class com.technototes.library.util.Differential
    +
    +
    Create differential from two consumers
    +
    +
    Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority) - Constructor for class com.technototes.library.util.Differential
    +
    +
    Create differential from two consumers
    +
    +
    Differential.DifferentialPriority - Enum Class in com.technototes.library.util
    +
    +
    Enum for the priority of the differential.
    +
    +
    digital(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    digital(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    DigitalBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    DigitalBuilder(int) - Constructor for class com.technototes.library.hardware2.DigitalBuilder
    +
    +
    Don't use this in the future
    +
    +
    DigitalBuilder(DigitalChannel) - Constructor for class com.technototes.library.hardware2.DigitalBuilder
    +
    +
    Don't use this in the future
    +
    +
    DigitalBuilder(String) - Constructor for class com.technototes.library.hardware2.DigitalBuilder
    +
    +
    Don't use this in the future
    +
    +
    DigitalSensor - Class in com.technototes.library.hardware.sensor
    +
    +
    Class for digital sensors
    +
    +
    DigitalSensor(DigitalChannel) - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor
    +
    +
    Make a digital sensor
    +
    +
    DigitalSensor(String) - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor
    +
    +
    Make a digital sensor
    +
    +
    direction(DcMotorSimple.Direction) - Method in class com.technototes.library.hardware2.CRServoBuilder
    +
     
    +
    direction(DcMotorSimple.Direction) - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    direction(Servo.Direction) - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    disable() - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    disable() - Method in interface com.technototes.library.general.Enablable
    +
    +
    Disable the object
    +
    +
    disable() - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    +
     
    +
    disable() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    distance(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    DistanceBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    DistanceBuilder(DistanceSensor) - Constructor for class com.technototes.library.hardware2.DistanceBuilder
    +
     
    +
    DistanceBuilder(String) - Constructor for class com.technototes.library.hardware2.DistanceBuilder
    +
     
    +
    doubleSupplier - Variable in class com.technototes.library.control.AxisBase
    +
     
    +
    down - Variable in class com.technototes.library.control.GamepadDpad
    +
    +
    The objects for the dpad buttons
    +
    +
    dpad - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The dpad object
    +
    +
    dpadDown - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    dpadLeft - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    dpadRight - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    dpadUp - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    drive(double, double) - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    +
     
    +
    drive(double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
     
    +
    drive(double, double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
     
    +
    DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.subsystem.drivebase
    +
    +
    Class for DriveBase subsystems
    +
    +
    DrivebaseSubsystem(Motor<T>...) - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    +
    +
    Create a drivebase subsystem
    +
    +
    DrivebaseSubsystem(DoubleSupplier, Motor<T>...) - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    +
    +
    Create a drivebase subsystem
    +
    +
    driverGamepad - Variable in class com.technototes.library.structure.CommandOpMode
    +
    +
    Command gamepad objects
    +
    +
    DUCK - Static variable in class com.technototes.library.util.Characters
    +
     
    +
    DummyDevice<T> - Class in com.technototes.library.hardware
    +
    +
    This isn't worth actually doing.
    +
    +
    DummyDevice(T) - Constructor for class com.technototes.library.hardware.DummyDevice
    +
     
    +
    duringInit() - Element in annotation interface com.technototes.library.logger.LogConfig.Run
    +
    +
    Run the log during the init Period
    +
    +
    duringRun() - Element in annotation interface com.technototes.library.logger.LogConfig.Run
    +
    +
    Run the log during the teleop Period
    +
    +
    +

    E

    +
    +
    Enablable<T extends Enablable<T>> - Interface in com.technototes.library.general
    +
    +
    Interface for anything that can be enabled/disabled
    +
    +
    enable() - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    enable() - Method in interface com.technototes.library.general.Enablable
    +
    +
    Enable the object
    +
    +
    enable() - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    +
     
    +
    enable() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    +
    +
    Class for encoded motors
    +
    +
    EncodedMotor(String) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Make encoded motor, with the default encoder configured
    +
    +
    EncodedMotor(String, Encoder) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Make encoded motor
    +
    +
    EncodedMotor(T) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Make encoded motor, with the default encoder configured
    +
    +
    EncodedMotor(T, Encoder) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Make encoded motor
    +
    +
    EncodedMotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    +
    +
    Class for encoded motor groups
    +
    +
    EncodedMotorGroup(EncodedMotor<T>, Motor<T>...) - Constructor for class com.technototes.library.hardware.motor.EncodedMotorGroup
    +
    +
    Create an encoded motor groupM
    +
    +
    EncodedMotorSubsystem - Class in com.technototes.library.subsystem.motor
    +
    +
    Class for encoded motor subsystems
    +
    +
    EncodedMotorSubsystem(EncodedMotor<?>) - Constructor for class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    +
    +
    Create encoded motor subsystem
    +
    +
    Encoder - Interface in com.technototes.library.hardware.sensor.encoder
    +
    +
    Interfaces for encoders to use
    +
    +
    end() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Runs once when op mode is ended
    +
    +
    end(boolean) - Method in interface com.technototes.library.command.Command
    +
    +
    End the command
    +
    +
    end(boolean) - Method in class com.technototes.library.command.CommandGroup
    +
    +
    This stops the command group from executing
    +
    +
    END - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    +
     
    +
    Entry<T> - Class in com.technototes.library.logger.entry
    +
    +
    The root class for logging entries
    +
    +
    Entry(String, Supplier<T>, int) - Constructor for class com.technototes.library.logger.entry.Entry
    +
    +
    Create an entry with name, value, index
    +
    +
    execute() - Method in interface com.technototes.library.command.Command
    +
    +
    Execute the command
    +
    +
    execute() - Method in class com.technototes.library.command.CommandBase
    +
    +
    Deprecated.
    +
    Execute the command
    +
    +
    execute() - Method in class com.technototes.library.command.CommandGroup
    +
     
    +
    execute() - Method in class com.technototes.library.command.ConditionalCommand
    +
     
    +
    execute() - Method in class com.technototes.library.command.WaitCommand
    +
     
    +
    EXECUTING - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command is running normally
    +
    +
    expandedPWM() - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    expandedRange() - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    ExternalEncoder - Class in com.technototes.library.hardware.sensor.encoder
    +
    +
    A wrapper around an AnalogInput that enables "zeroing" for usefulness
    +
    +
    ExternalEncoder(AnalogInput) - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    +
    +
    Create an ExternalEncoder from an arbitrary AnalogInput
    +
    +
    ExternalEncoder(String) - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    +
    +
    Create an ExternalEncoder from an arbitrary AnalogInput device
    +
    +
    +

    F

    +
    +
    falseValue() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    +
    +
    Store the string when the annotated method returns false
    +
    +
    FINISHED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command has completed successfully
    +
    +
    flMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
    +
    Drive motors
    +
    +
    format() - Element in annotation interface com.technototes.library.logger.Log
    +
    +
    The format for the logged String
    +
    +
    format(Object) - Method in enum class com.technototes.library.util.Color
    +
    +
    Format the supplied object with the HTML to become this color
    +
    +
    format(String, Object...) - Method in enum class com.technototes.library.util.Color
    +
    +
    Format the supplied object with the HTML and a format String to become this color
    +
    +
    forward() - Method in class com.technototes.library.hardware2.CRServoBuilder
    +
     
    +
    forward() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    forward() - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    FORWARD - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    +
     
    +
    frMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
    +
    Drive motors
    +
    +
    +

    G

    +
    +
    gain(float) - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    +
     
    +
    GAMEPAD - Static variable in class com.technototes.library.util.Characters
    +
     
    +
    gamepad1 - Variable in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    gamepad2 - Variable in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    GamepadBase<T extends ButtonBase,U extends AxisBase> - Class in com.technototes.library.control
    +
    +
    A class to extend gamepads from, it does the internal processing for you.
    +
    +
    GamepadBase(Gamepad, Class<T>, Class<U>) - Constructor for class com.technototes.library.control.GamepadBase
    +
    +
    Creates a gamepad with these parameters
    +
    +
    GamepadBase.Axis - Enum Class in com.technototes.library.control
    +
    +
    Axis enum for all axis on gamepad
    +
    +
    GamepadBase.Button - Enum Class in com.technototes.library.control
    +
    +
    Button enum for all buttons on gamepad
    +
    +
    GamepadDpad<T extends ButtonBase> - Class in com.technototes.library.control
    +
    +
    A class for dpads
    +
    +
    GamepadDpad(T, T, T, T) - Constructor for class com.technototes.library.control.GamepadDpad
    +
    +
    Create dpad with 4 buttons
    +
    +
    GamepadStick<T extends AxisBase,U extends ButtonBase> - Class in com.technototes.library.control
    +
    +
    A class for gamepad sticks
    +
    +
    GamepadStick(T, T, U) - Constructor for class com.technototes.library.control.GamepadStick
    +
    +
    Make a gamepad stick
    +
    +
    get() - Method in interface com.technototes.library.command.Command
    +
    +
    Gets the current state of the command (Supplier<CommandState>)
    +
    +
    get() - Method in interface com.technototes.library.control.Binding
    +
     
    +
    get() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    get() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
     
    +
    get() - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Gets the *speed* of the motor when it's used as a DoubleSupplier
    +
    +
    get() - Method in class com.technototes.library.logger.entry.Entry
    +
     
    +
    get(Binding.Type) - Method in interface com.technototes.library.control.Binding
    +
    +
    Get this as boolean for the type
    +
    +
    get(Class<? extends OpMode>) - Static method in enum class com.technototes.library.util.Alliance
    +
    +
    Get the alliance set for the OpMode passed in, if it's set in the annotation
    +
    +
    getAllDeviceList() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    +
    +
    Deprecated.
    +
    getAllDevices() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    +
    +
    Deprecated.
    +
    Get all devices in group
    +
    +
    getAllDevices() - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    +
     
    +
    getAllDevices() - Method in class com.technototes.library.hardware.motor.MotorGroup
    +
     
    +
    getAllDevices() - Method in class com.technototes.library.hardware.servo.ServoGroup
    +
    +
    Deprecated.
    +
    getAngle() - Method in interface com.technototes.library.control.Stick
    +
    +
    Returns the angle of the stick
    +
    +
    getAngularOrientation() - Method in class com.technototes.library.hardware.sensor.IMU
    +
     
    +
    getAngularOrientation(AngleUnit) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Gets the Angular orientation of the IMU
    +
    +
    getAngularVelocity() - Method in class com.technototes.library.hardware.sensor.IMU
    +
     
    +
    getAngularVelocity(AngleUnit) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Gets the angular velocity (in default units)
    +
    +
    getAsBoolean() - Method in interface com.technototes.library.control.Binding
    +
     
    +
    getAsBoolean() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Same as isPressed()
    +
    +
    getAsButton() - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    getAsButton(double) - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    getAsDouble() - Method in class com.technototes.library.control.AxisBase
    +
    +
    Returns the double from the axis
    +
    +
    getAsDouble() - Method in interface com.technototes.library.hardware.Sensored
    +
    +
    Deprecated.
    +
    getAverage() - Method in class com.technototes.library.util.Differential
    +
    +
    Gets the current average of the two differential inputs, + equating to one of the outputs
    +
    +
    getAxis(GamepadBase.Axis) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns an axis
    +
    +
    getAxisAsBoolean(GamepadBase.Axis) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns an axis as boolean
    +
    +
    getAxisAsDouble(GamepadBase.Axis) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns an axis as double
    +
    +
    getButton(GamepadBase.Button) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns a button
    +
    +
    getButtonAsBoolean(GamepadBase.Button) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns a button as boolean (same as isPressed)
    +
    +
    getColor() - Method in enum class com.technototes.library.util.Alliance
    +
    +
    Get the alliance color (Red, Blue, or Black)
    +
    +
    getConnectionInfo() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    getCorrectedVelocity() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    getCurrent(Subsystem) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    This gets the command currently using the subsystem provided
    +
    +
    getCurrentPosition() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    getCurrentPosition() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    getCurrentSong() - Method in class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    getDefault(Subsystem) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Get the default command that is running on the subsystem provided
    +
    +
    getDefaultCommand() - Method in interface com.technototes.library.subsystem.Subsystem
    +
     
    +
    getDefaultType() - Method in interface com.technototes.library.control.Binding
    +
     
    +
    getDefaultType() - Method in class com.technototes.library.control.CommandBinding
    +
     
    +
    getDeviation() - Method in class com.technototes.library.util.Differential
    +
    +
    Gets the current deviation between the two differential inputs and the average, + equating to one of the outputs
    +
    +
    getDevice() - Method in class com.technototes.library.hardware.HardwareDevice
    +
    +
    Deprecated.
    +
    Get encapsulated device
    +
    +
    getDevice() - Method in class com.technototes.library.subsystem.DeviceSubsystem
    +
    +
    Get the devices for this subsystem
    +
    +
    getDeviceName() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    getDifferentialPriority() - Method in class com.technototes.library.util.Differential
    +
    +
    Gets the priority for the difference output.
    +
    +
    getDirection() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    getDistance() - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    +
     
    +
    getDistance(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    getDistance(DistanceUnit) - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    +
     
    +
    getDistance(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    +
    +
    Deprecated.
    +
    Get the value with a specified distance Unit
    +
    +
    getDistanceFromCenter() - Method in interface com.technototes.library.control.Stick
    +
    +
    Returns the stick's distance from the center
    +
    +
    getDpad() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns the Dpad object
    +
    +
    getEncoder() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Get the encoder object
    +
    +
    getFollowerist() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    +
    +
    Deprecated.
    +
    getFollowers() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    +
    +
    Deprecated.
    +
    Get the followers for the lead device
    +
    +
    getFollowers() - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    +
     
    +
    getFollowers() - Method in class com.technototes.library.hardware.motor.MotorGroup
    +
     
    +
    getFollowers() - Method in class com.technototes.library.hardware.servo.ServoGroup
    +
    +
    Deprecated.
    +
    getGamepad() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns the encapsulated gamepad
    +
    +
    getGyro() - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    +
    +
    Get the Gyro angle
    +
    +
    getHexValue() - Method in enum class com.technototes.library.util.Color
    +
    +
    Get the hex value
    +
    +
    getIndex() - Method in class com.technototes.library.logger.entry.Entry
    +
    +
    Get the index for the entry
    +
    +
    getInstance() - Static method in class com.technototes.library.command.CommandScheduler
    +
    +
    Get (or create) the singleton CommandScheduler object
    +
    +
    getInstance() - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    getInstance() - Method in class com.technototes.library.control.CommandButton
    +
     
    +
    getInstance() - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Return instance of class parameter
    +
    +
    getInverted() - Method in class com.technototes.library.control.ButtonBase
    +
     
    +
    getInverted() - Method in interface com.technototes.library.general.Invertable
    +
    +
    Get current inversion
    +
    +
    getInverted() - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Returns whether the motor is inverted.
    +
    +
    getInverted() - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    getLast() - Method in interface com.technototes.library.util.SmartConsumer
    +
     
    +
    getLeftStick() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns the left stick
    +
    +
    getLight() - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    getLogger() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Get the op mode's logger
    +
    +
    getManufacturer() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    getMap() - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
     
    +
    getMax(double...) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Get the max of supplied doubles
    +
    +
    getMax(int...) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Get the max of supplied ints
    +
    +
    getMaxAccel() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    getMaxAcceleration() - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    getMaxVel() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    getMaxVelocity() - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    getMultiplier() - Method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    +
     
    +
    getName() - Method in class com.technototes.library.logger.entry.Entry
    +
    +
    Get the name
    +
    +
    getOpModeRuntime() - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Gets the number of seconds that the opmode has been executing
    +
    +
    getOpModeRuntime() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Get the opmode runtime
    +
    +
    getOpModeState() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Get op mode state
    +
    +
    getPosition() - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder
    +
     
    +
    getPosition() - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    Get servo position
    +
    +
    getPosition() - Method in class com.technototes.library.subsystem.servo.ServoSubsystem
    +
    +
    Get subsystem servo position
    +
    +
    getPriority() - Method in class com.technototes.library.logger.entry.Entry
    +
    +
    Get Priority for the entry
    +
    +
    getProportion() - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    getRawVelocity() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    getRequirements() - Method in interface com.technototes.library.command.Command
    +
    +
    Return the subsystem requirements for this command
    +
    +
    getRightStick() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Returns the right stick
    +
    +
    getRuntime() - Method in interface com.technototes.library.command.Command
    +
    +
    Return the amount of time since the command was first initialized
    +
    +
    getScale(double...) - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    +
    +
    This will give you a *positive* value to scale the value to such that + the largest value of the list will be |1| (negative or positive).
    +
    +
    getSeconds() - Method in class com.technototes.library.command.WaitCommand
    +
     
    +
    getSensorValue() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Get the encoder position value
    +
    +
    getSensorValue() - Method in class com.technototes.library.hardware.sensor.AnalogSensor
    +
     
    +
    getSensorValue() - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    +
    +
    Get the sensor value (relative to the assigned zero)
    +
    +
    getSensorValue() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    getSensorValue() - Method in interface com.technototes.library.hardware.Sensored
    +
    +
    Deprecated.
    +
    Get the sensor value
    +
    +
    getSensorValue() - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    getServo() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    getSpeed() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Gets the power set for the motor
    +
    +
    getSpeed() - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Gets the power value for the motor
    +
    +
    getSpeed() - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    +
    +
    Override this one, I guess? Not sure how useful it is.
    +
    +
    getSpeed() - Method in class com.technototes.library.subsystem.motor.MotorSubsystem
    +
    +
    Get the speed of the motors in the subsystem
    +
    +
    getState() - Method in interface com.technototes.library.command.Command
    +
    +
    Return the command state: Probably don't use this
    +
    +
    getSuppliers() - Method in interface com.technototes.library.control.Binding
    +
     
    +
    getSuppliers() - Method in class com.technototes.library.control.CommandBinding
    +
     
    +
    getTargetPosition() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    getTargetTolerance() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    getTriggerThreshold() - Method in class com.technototes.library.control.AxisBase
    +
    +
    Gets the trigger threshold
    +
    +
    getUnit() - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    getUnit() - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    +
     
    +
    getUnit() - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    +
    +
    Deprecated.
    +
    Get the current distance unit
    +
    +
    getValue() - Method in class com.technototes.library.hardware.sensor.DigitalSensor
    +
    +
    Get the sensor value as a boolean
    +
    +
    getValue() - Method in class com.technototes.library.util.Integral
    +
    +
    Get the current accumulation
    +
    +
    getVelocity() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Get the power for the motor (Velocity, I guess?)
    +
    +
    getVersion() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    getVersion() - Static method in class com.technototes.library.RobotLibrary
    +
    +
    Get library version
    +
    +
    getVolume() - Method in class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    getXAxis() - Method in class com.technototes.library.control.GamepadDpad
    +
    +
    Return x axis double (treating dpad as stick)
    +
    +
    getXAxis() - Method in class com.technototes.library.control.GamepadStick
    +
     
    +
    getXAxis() - Method in interface com.technototes.library.control.Stick
    +
    +
    Return x axis double
    +
    +
    getXSupplier() - Method in interface com.technototes.library.control.Stick
    +
    +
    Return x axis supplier
    +
    +
    getYAxis() - Method in class com.technototes.library.control.GamepadDpad
    +
    +
    Return y axis double (treating dpad as stick)
    +
    +
    getYAxis() - Method in class com.technototes.library.control.GamepadStick
    +
     
    +
    getYAxis() - Method in interface com.technototes.library.control.Stick
    +
    +
    Return y axis double
    +
    +
    getYSupplier() - Method in interface com.technototes.library.control.Stick
    +
    +
    Return y axis supplier
    +
    +
    green() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get the RGB green of the sensor
    +
    +
    GREEN - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    gyroHeading() - Method in interface com.technototes.library.hardware.sensor.IGyro
    +
    +
    The heading (in default units)
    +
    +
    gyroHeading() - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Get gyro heading
    +
    +
    gyroHeading(AngleUnit) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Get the gyro heading in the provided units
    +
    +
    gyroHeadingInDegrees() - Method in interface com.technototes.library.hardware.sensor.IGyro
    +
    +
    The heading (in degrees)
    +
    +
    gyroHeadingInDegrees() - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Gets the gyro heading in degrees
    +
    +
    gyroHeadingInRadians() - Method in interface com.technototes.library.hardware.sensor.IGyro
    +
    +
    The heading (in radians)
    +
    +
    gyroHeadingInRadians() - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Gets the gyro heading in radians
    +
    +
    gyroSupplier - Variable in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    +
    +
    Override this to get the gyroscope heading.
    +
    +
    +

    H

    +
    +
    HardwareBuilder<T> - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    HardwareBuilder(int) - Constructor for class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    HardwareBuilder(String) - Constructor for class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    HardwareBuilder(T) - Constructor for class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in com.technototes.library.hardware
    +
    +
    Deprecated.
    +
    +
    HardwareDevice(String) - Constructor for class com.technototes.library.hardware.HardwareDevice
    +
    +
    Deprecated.
    +
    Make a hardware device with the string to get from hardwaremap
    +
    +
    HardwareDevice(T) - Constructor for class com.technototes.library.hardware.HardwareDevice
    +
    +
    Deprecated.
    +
    Make a hardware device
    +
    +
    HardwareDeviceGroup<T extends HardwareDevice> - Interface in com.technototes.library.hardware
    +
    +
    Deprecated.
    +
    +
    hardwareMap - Variable in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    hardwareMap - Static variable in class com.technototes.library.hardware.HardwareDevice
    +
    +
    Deprecated.
    +
    Hardware map object for stuff
    +
    +
    hsv() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get HSV as an int
    +
    +
    hsvArray() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
     
    +
    hue() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get HSV hue
    +
    +
    +

    I

    +
    +
    IColorSensor - Interface in com.technototes.library.hardware.sensor
    +
     
    +
    IDistanceSensor - Interface in com.technototes.library.hardware.sensor
    +
     
    +
    idle(DcMotor.ZeroPowerBehavior) - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    ignoreCancel() - Method in class com.technototes.library.command.CommandGroup
    +
    +
    Specify that this CommandGroup should NOT count cancellation as 'completed'
    +
    +
    IGyro - Interface in com.technototes.library.hardware.sensor
    +
    +
    An interface for a single-angle gyroscope
    +
    +
    ILightSensor - Interface in com.technototes.library.hardware.sensor
    +
     
    +
    imu(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    IMU - Class in com.technototes.library.hardware.sensor
    +
    +
    Class for the IMU (Inertial Movement Units) that implements the IGyro interface
    +
    +
    IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection) - Constructor for class com.technototes.library.hardware.sensor.IMU
    +
    +
    Make an imu
    +
    +
    IMU(IMU, IMU.Parameters) - Constructor for class com.technototes.library.hardware.sensor.IMU
    +
    +
    Make an imu
    +
    +
    IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection) - Constructor for class com.technototes.library.hardware.sensor.IMU
    +
    +
    Make an imu
    +
    +
    IMU(String, IMU.Parameters) - Constructor for class com.technototes.library.hardware.sensor.IMU
    +
    +
    Make an imu
    +
    +
    IMU.AxesSigns - Enum Class in com.technototes.library.hardware.sensor
    +
    +
    The direction of the axes signs when remapping the axes
    +
    +
    IMUBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    IMUBuilder(BNO055IMUImpl) - Constructor for class com.technototes.library.hardware2.IMUBuilder
    +
    +
    Deprecated
    +
    +
    IMUBuilder(String) - Constructor for class com.technototes.library.hardware2.IMUBuilder
    +
    +
    deprecated
    +
    +
    IMUBuilder.AxesSigns - Enum Class in com.technototes.library.hardware2
    +
    +
    This is duplicated in the IMU class
    +
    +
    incrementPosition(double) - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    index() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    +
    +
    Store index for this annotation (position in telemetry)
    +
    +
    index() - Element in annotation interface com.technototes.library.logger.Log
    +
    +
    Store index for this annotation (position in telemetry)
    +
    +
    index() - Element in annotation interface com.technototes.library.logger.Log.Number
    +
    +
    Store index for this annotation (position in telemetry)
    +
    +
    INIT - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    +
     
    +
    initEntries - Variable in class com.technototes.library.logger.Logger
    +
     
    +
    initialize() - Method in interface com.technototes.library.command.Command
    +
    +
    Init the command
    +
    +
    initialize() - Method in class com.technototes.library.command.CommandGroup
    +
    +
    Mark all commands in the group as not yet run
    +
    +
    initialize(IMU.Parameters) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Initialize the IMU
    +
    +
    INITIALIZING - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command is initializing after having been triggered
    +
    +
    initLoop() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Runs constantly when op mode is initialized, yet not started
    +
    +
    initMap(HardwareMap) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    initUpdate() - Method in class com.technototes.library.logger.Logger
    +
    +
    Update the logged init items in temeletry
    +
    +
    input() - Method in class com.technototes.library.hardware2.DigitalBuilder
    +
    +
    Don't use this in the future
    +
    +
    inRange(double) - Method in class com.technototes.library.util.Range
    +
    +
    Check if the value is in the range
    +
    +
    Integral - Class in com.technototes.library.util
    +
    +
    A simple Observation-based integral calculator over time
    +
    +
    Integral() - Constructor for class com.technototes.library.util.Integral
    +
    +
    Initialize it with a value of 0
    +
    +
    Integral(double) - Constructor for class com.technototes.library.util.Integral
    +
    +
    Initialize it with the value c
    +
    +
    INTERRUPTED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command is pending cancellation (but has not yet processed the cancellation)
    +
    +
    invert() - Method in interface com.technototes.library.general.Invertable
    +
    +
    Toggle inversion
    +
    +
    invert() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Invert the motor (toggle inversion)
    +
    +
    invert() - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Invert the motor (toggle inversion)
    +
    +
    invert() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    Invertable<T extends Invertable<T>> - Interface in com.technototes.library.general
    +
    +
    Interface for anything that can be inverted
    +
    +
    isAtPosition(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Is the motor at the specified position
    +
    +
    isAtTarget() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    isCancelled() - Method in interface com.technototes.library.command.Command
    +
    +
    Exactly what it says
    +
    +
    isDisabled() - Method in interface com.technototes.library.general.Enablable
    +
     
    +
    isEnabled() - Method in class com.technototes.library.control.ButtonBase
    +
     
    +
    isEnabled() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Is the gamepad (and all bound commands from it!) enabled?
    +
    +
    isEnabled() - Method in class com.technototes.library.control.GamepadDpad
    +
     
    +
    isEnabled() - Method in class com.technototes.library.control.GamepadStick
    +
     
    +
    isEnabled() - Method in interface com.technototes.library.general.Enablable
    +
     
    +
    isFinished() - Method in interface com.technototes.library.command.Command
    +
    +
    Return if the command is finished
    +
    +
    isFinished() - Method in class com.technototes.library.command.CommandBase
    +
    +
    Deprecated.
    +
    Is this command finished
    +
    +
    isFinished() - Method in class com.technototes.library.command.CommandGroup
    +
    +
    MUST IMPLEMENT IN SUBCLASSES:
    +
    +
    isFinished() - Method in class com.technototes.library.command.ConditionalCommand
    +
     
    +
    isFinished() - Method in class com.technototes.library.command.ParallelCommandGroup
    +
     
    +
    isFinished() - Method in class com.technototes.library.command.ParallelDeadlineGroup
    +
     
    +
    isFinished() - Method in class com.technototes.library.command.ParallelRaceGroup
    +
    +
    Is this finished?
    +
    +
    isFinished() - Method in class com.technototes.library.command.SequentialCommandGroup
    +
    +
    Returns if all the commands are finished
    +
    +
    isFinished() - Method in class com.technototes.library.command.WaitCommand
    +
     
    +
    isInverseToggled() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is untoggled
    +
    +
    isJustInverseToggled() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is just untoggled
    +
    +
    isJustPressed() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is just pressed
    +
    +
    isJustReleased() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is just released
    +
    +
    isJustToggled() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is just toggled
    +
    +
    isPreRelease() - Static method in class com.technototes.library.RobotLibrary
    +
    +
    Get if the library is a pre release
    +
    +
    isPressed() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is pressed
    +
    +
    isPrime(int) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Calculate if the supplied number is prime
    +
    +
    isReleased() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is released
    +
    +
    isRumbling() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Is the gamepad rumbling
    +
    +
    isRunning() - Method in interface com.technototes.library.command.Command
    +
    +
    Is the command in some state of running/started/finished/cancelled
    +
    +
    isState(CommandOpMode.OpModeState...) - Method in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    +
    +
    Check if other states are this state
    +
    +
    isToggled() - Method in class com.technototes.library.control.ButtonBase
    +
    +
    Returns if the button is toggled
    +
    +
    IterativeCommand - Class in com.technototes.library.command
    +
     
    +
    IterativeCommand(Function<Integer, Command>, int) - Constructor for class com.technototes.library.command.IterativeCommand
    +
    +
    iterative command for an int
    +
    +
    IterativeCommand(Function<Integer, Command>, int, BooleanSupplier) - Constructor for class com.technototes.library.command.IterativeCommand
    +
     
    +
    IterativeCommand(Function<Integer, Command>, BooleanSupplier) - Constructor for class com.technototes.library.command.IterativeCommand
    +
     
    +
    IterativeCommand(Function<T, Command>, T, T, Function<T, T>) - Constructor for class com.technototes.library.command.IterativeCommand
    +
    +
    iterative command for anything
    +
    +
    IterativeCommand(Function<T, Command>, T, T, Function<T, T>, BooleanSupplier) - Constructor for class com.technototes.library.command.IterativeCommand
    +
     
    +
    +

    J

    +
    +
    joystickDrive(double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
     
    +
    joystickDriveWithGyro(double, double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
     
    +
    justFinished() - Method in interface com.technototes.library.command.Command
    +
    +
    Is this command finished?
    +
    +
    justFinishedNoCancel() - Method in interface com.technototes.library.command.Command
    +
    +
    Is this command completed?
    +
    +
    justStarted() - Method in interface com.technototes.library.command.Command
    +
    +
    Has the command just be started?
    +
    +
    +

    L

    +
    +
    lastCommand - Variable in class com.technototes.library.command.SequentialCommandGroup
    +
     
    +
    led(boolean) - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    +
     
    +
    left - Variable in class com.technototes.library.control.GamepadDpad
    +
    +
    The objects for the dpad buttons
    +
    +
    LEFT_BUMPER - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    Left bumper button
    +
    +
    LEFT_STICK_BUTTON - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    Button when clicking the left stick
    +
    +
    LEFT_STICK_X - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Left stick's horizontal axis
    +
    +
    LEFT_STICK_Y - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Left stick's vertical axis
    +
    +
    LEFT_TRIGGER - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Left Trigger's axis
    +
    +
    leftBumper - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    leftSide - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    +
    +
    Drive motors
    +
    +
    leftStick - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The stick objects
    +
    +
    leftStickButton - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    leftStickX - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The axis objects
    +
    +
    leftStickY - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The axis objects
    +
    +
    leftTrigger - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The axis objects
    +
    +
    LIGHT_GRAY - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    LIME - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    Log - Annotation Interface in com.technototes.library.logger
    +
    +
    The root annotation for annotation logging, also doubles as a basic string log
    +
    +
    Log.Boolean - Annotation Interface in com.technototes.library.logger
    +
     
    +
    Log.Logs - Annotation Interface in com.technototes.library.logger
    +
     
    +
    Log.Number - Annotation Interface in com.technototes.library.logger
    +
    +
    Log a number
    +
    +
    LogConfig - Annotation Interface in com.technototes.library.logger
    +
    +
    Annotations for configuring Logs
    +
    +
    LogConfig.AllowList - Annotation Interface in com.technototes.library.logger
    +
    +
    Annotation for allowing Opmodes to log this item
    +
    +
    LogConfig.DenyList - Annotation Interface in com.technototes.library.logger
    +
    +
    Annotation for denying Opmodes to log this item
    +
    +
    LogConfig.Disabled - Annotation Interface in com.technototes.library.logger
    +
    +
    Annotation to completely disable the entry
    +
    +
    LogConfig.Run - Annotation Interface in com.technototes.library.logger
    +
    +
    Annotation for determining when logged item will be sent to Telemetry
    +
    +
    Loggable - Interface in com.technototes.library.logger
    +
    +
    All classes with annotations for logging must extend this all the way up the hierarchy up to the op mode
    +
    +
    Logger - Class in com.technototes.library.logger
    +
    +
    The class to manage logging
    +
    +
    Logger(OpMode) - Constructor for class com.technototes.library.logger.Logger
    +
    +
    Instantiate the logger
    +
    +
    +

    M

    +
    +
    MAGENTA - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    map - Static variable in interface com.technototes.library.util.SmartConsumer
    +
    +
    The map of values that have been consumed.
    +
    +
    map(double, double, double, double, double) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Scale a value originally between in_min and in_max to be the same ratio when mapped to + out_min and out_max.
    +
    +
    MapUtils - Class in com.technototes.library.util
    +
     
    +
    MapUtils() - Constructor for class com.technototes.library.util.MapUtils
    +
     
    +
    MathUtils - Class in com.technototes.library.util
    +
    +
    Class with various math functions
    +
    +
    MathUtils() - Constructor for class com.technototes.library.util.MathUtils
    +
     
    +
    max - Variable in class com.technototes.library.util.Range
    +
    +
    The maximum value of the range
    +
    +
    maxAcceleration - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    maxSpeed - Variable in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    +
    +
    Max speed
    +
    +
    maxVelocity - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    middle() - Method in class com.technototes.library.util.Range
    +
    +
    Get the 'middle' of the range
    +
    +
    min - Variable in class com.technototes.library.util.Range
    +
    +
    The minimum value of the range
    +
    +
    mode(DcMotor.RunMode) - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    mode(DigitalChannel.Mode) - Method in class com.technototes.library.hardware2.DigitalBuilder
    +
    +
    Don't use this in the future
    +
    +
    motor(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    motor(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    +
    +
    Class for motors
    +
    +
    Motor(String) - Constructor for class com.technototes.library.hardware.motor.Motor
    +
    +
    Create a motor
    +
    +
    Motor(T) - Constructor for class com.technototes.library.hardware.motor.Motor
    +
    +
    Create a motor
    +
    +
    MotorBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    MotorBuilder(int) - Constructor for class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    MotorBuilder(DcMotorEx) - Constructor for class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    MotorBuilder(String) - Constructor for class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    MotorEncoder - Class in com.technototes.library.hardware.sensor.encoder
    +
    +
    Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding + slot's motor direction
    +
    +
    MotorEncoder(DcMotorEx) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    MotorEncoder(DcMotorEx, ElapsedTime) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    MotorEncoder(EncodedMotor<DcMotorEx>) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    MotorEncoder(String) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    MotorEncoder.Direction - Enum Class in com.technototes.library.hardware.sensor.encoder
    +
     
    +
    MotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    +
    +
    Class for a group of motors
    +
    +
    MotorGroup(Motor<T>...) - Constructor for class com.technototes.library.hardware.motor.MotorGroup
    +
    +
    Make a motor group
    +
    +
    MotorSubsystem<T extends Motor<?>> - Class in com.technototes.library.subsystem.motor
    +
    +
    Class for motor subsystems
    +
    +
    MotorSubsystem(T) - Constructor for class com.technototes.library.subsystem.motor.MotorSubsystem
    +
    +
    Create motor subsystem
    +
    +
    MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED - Static variable in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    msStuckDetectStop - Variable in class com.technototes.library.structure.CommandOpMode
    +
    +
    Deprecated.
    +
    +
    +

    N

    +
    +
    name - Variable in class com.technototes.library.logger.entry.Entry
    +
    +
    The name of the Entry
    +
    +
    name() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    +
    +
    Store the name for this annotation to be be beside
    +
    +
    name() - Element in annotation interface com.technototes.library.logger.Log
    +
    +
    Store the name for this annotation to be be beside
    +
    +
    name() - Element in annotation interface com.technototes.library.logger.Log.Number
    +
    +
    Store the name for this annotation to be be beside
    +
    +
    NEUTRAL - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
     
    +
    NNN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Negative, Negative, Negative
    +
    +
    NNN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    NNP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Negative, Negative, Positive
    +
    +
    NNP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    NO_COLOR - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    NONE - Enum constant in enum class com.technototes.library.util.Alliance
    +
    +
    NO ALLIANCE SELECTED
    +
    +
    NONE_ACTIVE - Enum constant in enum class com.technototes.library.control.Binding.Type
    +
     
    +
    NPN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Negative, Positive, Negative
    +
    +
    NPN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    NPP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Negative, Positive, Positive
    +
    +
    NPP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    numberColor - Variable in class com.technototes.library.logger.entry.NumberEntry
    +
     
    +
    NumberEntry - Class in com.technototes.library.logger.entry
    +
     
    +
    NumberEntry(String, Supplier<Number>, int) - Constructor for class com.technototes.library.logger.entry.NumberEntry
    +
     
    +
    +

    O

    +
    +
    of(Pair<T, U>...) - Static method in class com.technototes.library.util.MapUtils
    +
     
    +
    of(T, T) - Static method in class com.technototes.library.util.Alliance.Selector
    +
    +
    Selector factory method
    +
    +
    offset - Variable in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    onlyIf(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    +
    +
    Runs this command only if the choiceCondition is met (i.e.
    +
    +
    onRange(double, double) - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    Set servo range
    +
    +
    onUnit(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    +
     
    +
    onUnit(DistanceUnit) - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    +
     
    +
    onUnit(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    +
    +
    Deprecated.
    +
    Set the distance unit
    +
    +
    ORANGE - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    output() - Method in class com.technototes.library.hardware2.DigitalBuilder
    +
    +
    Don't use this in the future
    +
    +
    +

    P

    +
    +
    ParallelCommandGroup - Class in com.technototes.library.command
    +
    +
    Command group to run commands in parallel until all of them finish
    +
    +
    ParallelCommandGroup(Command...) - Constructor for class com.technototes.library.command.ParallelCommandGroup
    +
    +
    Make parallel command group
    +
    +
    ParallelDeadlineGroup - Class in com.technototes.library.command
    +
    +
    Command group to run commands in parallel until one particular command completes
    +
    +
    ParallelDeadlineGroup(Command, Command...) - Constructor for class com.technototes.library.command.ParallelDeadlineGroup
    +
    +
    Make parallel deadline group
    +
    +
    ParallelRaceGroup - Class in com.technototes.library.command
    +
    +
    Command group to run commands in parallel until *one* is finished
    +
    +
    ParallelRaceGroup(Command...) - Constructor for class com.technototes.library.command.ParallelRaceGroup
    +
    +
    Make parallel race group
    +
    +
    parameter(Consumer<BNO055IMU.Parameters>) - Method in class com.technototes.library.hardware2.IMUBuilder
    +
    +
    Deprecated
    +
    +
    periodic() - Method in class com.technototes.library.control.ButtonBase
    +
     
    +
    periodic() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Run the periodic functions for the controller (if the controller is enabled)
    +
    +
    periodic() - Method in class com.technototes.library.control.GamepadDpad
    +
     
    +
    periodic() - Method in class com.technototes.library.control.GamepadStick
    +
     
    +
    periodic() - Method in interface com.technototes.library.general.Periodic
    +
    +
    The periodic function
    +
    +
    periodic() - Method in class com.technototes.library.subsystem.DeviceSubsystem
    +
     
    +
    periodic() - Method in interface com.technototes.library.subsystem.Subsystem
    +
     
    +
    Periodic - Interface in com.technototes.library.general
    +
    +
    An interface for classes to have the periodic function
    +
    +
    PINK - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    PNN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Positive, Negative, Negative
    +
    +
    PNN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    PNP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Positive, Negative, Positive
    +
    +
    PNP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    position(double) - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    positionThreshold - Variable in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Deadzone for going to positions with encoder
    +
    +
    PPN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Positive, Positive, Negative
    +
    +
    PPN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    PPP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Positive, Positive, Positive
    +
    +
    PPP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    deprecated
    +
    +
    priority - Variable in class com.technototes.library.logger.entry.Entry
    +
    +
    The priority (in the telemetry list) of the entry
    +
    +
    priority() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    +
    +
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    +
    +
    priority() - Element in annotation interface com.technototes.library.logger.Log.Number
    +
    +
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    +
    +
    priority() - Element in annotation interface com.technototes.library.logger.Log
    +
    +
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    +
    +
    product - Variable in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    propagate(double) - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    +
    +
    Deprecated.
    +
    Propagate actions across the followers
    +
    +
    propogate(double) - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    +
    +
    Deprecated.
    +
    +
    propogate(double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    +
     
    +
    propogate(double) - Method in class com.technototes.library.hardware.motor.MotorGroup
    +
     
    +
    propogate(double) - Method in class com.technototes.library.hardware.servo.ServoGroup
    +
    +
    Deprecated.
    +
    proportion - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    +
     
    +
    ps_circle - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the PS4 game controller
    +
    +
    PS_CIRCLE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    PS4 Circle (O) button
    +
    +
    ps_cross - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the PS4 game controller
    +
    +
    PS_CROSS - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    PS4 Cross (X) button
    +
    +
    ps_options - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the PS4 game controller
    +
    +
    PS_OPTIONS - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    PS4 Options button
    +
    +
    ps_share - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the PS4 game controller
    +
    +
    PS_SHARE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    PS4 Share button
    +
    +
    ps_square - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the PS4 game controller
    +
    +
    PS_SQUARE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    PS4 Square button
    +
    +
    ps_triangle - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the PS4 game controller
    +
    +
    PS_TRIANGLE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    PS4 Triangle button
    +
    +
    PURPLE - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    pwmRange(double, double) - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    pythag(double...) - Static method in class com.technototes.library.util.MathUtils
    +
    +
    Calculate pythagorean theorem of any number of sides
    +
    +
    +

    R

    +
    +
    raceWith(Command...) - Method in interface com.technototes.library.command.Command
    +
    +
    Runs all the commands in parallel (including this command) until one of them finishes
    +
    +
    radians() - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Set angle format to radians
    +
    +
    radians() - Method in class com.technototes.library.hardware2.IMUBuilder
    +
    +
    Deprecated
    +
    +
    range(double, double) - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    Range - Class in com.technototes.library.util
    +
    +
    Helper class for tracking a range
    +
    +
    Range(double, double) - Constructor for class com.technototes.library.util.Range
    +
    +
    Create a range with the given minimum and maximum
    +
    +
    raw() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    red() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get the RGB red of the sensor
    +
    +
    RED - Enum constant in enum class com.technototes.library.util.Alliance
    +
    +
    RED alliance selector
    +
    +
    RED - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    RED_SQUARE - Static variable in class com.technototes.library.util.Characters
    +
     
    +
    register() - Method in interface com.technototes.library.subsystem.Subsystem
    +
     
    +
    register(Periodic) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Register a periodic function to be run once each schedule loop
    +
    +
    remap(AxesOrder, IMUBuilder.AxesSigns) - Method in class com.technototes.library.hardware2.IMUBuilder
    +
    +
    Deprecated
    +
    +
    remapAxesAndSigns(AxesOrder, IMU.AxesSigns) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Remaps the axes for the IMU in the order and sign provided.
    +
    +
    remapLegacyAxes(AxesOrder, IMU.AxesSigns) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Remaps the axes for the BNO055 IMU in the order and sign provided + The SDK 8.1.1 added a new IMU class, which (delightfully) rotated + the X and Y axes around the Z axis by 90 degrees clock-wise (viewed from above) + If you have code that was using that layout, this is what you probably need to call.
    +
    +
    repeat(String, int) - Static method in class com.technototes.library.logger.Logger
    +
    +
    Repeat a String
    +
    +
    requestOpModeStop() - Method in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    requirementMap - Static variable in interface com.technototes.library.command.Command
    +
    +
    The Command to Required Subsystems lookup
    +
    +
    reset() - Static method in interface com.technototes.library.util.SmartConsumer
    +
     
    +
    RESET - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command has just be scheduled
    +
    +
    resetDeviceConfigurationForOpMode() - Method in class com.technototes.library.hardware.DummyDevice
    +
     
    +
    resetScheduler() - Static method in class com.technototes.library.command.CommandScheduler
    +
    +
    Alex had a comment "be careful with this" and he's not wrong.
    +
    +
    Rev2MDistanceSensor - Class in com.technototes.library.hardware.sensor
    +
    +
    Deprecated.
    +
    +
    Rev2MDistanceSensor(DistanceSensor) - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    +
    +
    Deprecated.
    +
    Create a range sensor
    +
    +
    Rev2MDistanceSensor(String) - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    +
    +
    Deprecated.
    +
    Create a range sensor
    +
    +
    reverse() - Method in class com.technototes.library.hardware2.CRServoBuilder
    +
     
    +
    reverse() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    reverse() - Method in class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    REVERSE - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    +
     
    +
    rgb() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
     
    +
    right - Variable in class com.technototes.library.control.GamepadDpad
    +
    +
    The objects for the dpad buttons
    +
    +
    RIGHT_BUMPER - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    Right bumper button
    +
    +
    RIGHT_STICK_BUTTON - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    Button which clicking the right stick
    +
    +
    RIGHT_STICK_X - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Right stick's horizontal axis
    +
    +
    RIGHT_STICK_Y - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Right stick's vertical axis
    +
    +
    RIGHT_TRIGGER - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Right Trigger's axis
    +
    +
    rightBumper - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    rightSide - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    +
    +
    Drive motors
    +
    +
    rightStick - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The stick objects
    +
    +
    rightStickButton - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    rightStickX - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The axis objects
    +
    +
    rightStickY - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The axis objects
    +
    +
    rightTrigger - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The axis objects
    +
    +
    rlMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
    +
    Drive motors
    +
    +
    RobotLibrary - Class in com.technototes.library
    +
    +
    Root class for the Robot Library (I will put important stuff here)
    +
    +
    RobotLibrary() - Constructor for class com.technototes.library.RobotLibrary
    +
     
    +
    rrMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
    +
    Drive motors
    +
    +
    rumble() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Rumble for about 1/8th of a second
    +
    +
    rumble(double) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Rumble the gamepad for 'seconds'
    +
    +
    rumbleBlip() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Run a single "RumbleBlip"
    +
    +
    rumbleBlips(int) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Run a bunch of "RumbleBlips"
    +
    +
    run() - Method in interface com.technototes.library.command.Command
    +
    +
    Run the commmand
    +
    +
    run() - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    This is invoked from inside the CommandOpMode method, during the opCode.
    +
    +
    RUN - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    +
     
    +
    runEntries - Variable in class com.technototes.library.logger.Logger
    +
     
    +
    runLoop() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Runs constantly when op mode is started
    +
    +
    runOpMode() - Method in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    runUpdate() - Method in class com.technototes.library.logger.Logger
    +
    +
    Update the logged run items in temeletry
    +
    +
    +

    S

    +
    +
    saturation() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get HSV saturation
    +
    +
    scale(double) - Method in class com.technototes.library.util.Range
    +
    +
    Scale the range by a given value
    +
    +
    scalePWM(double, double) - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    schedule(Command) - Method in class com.technototes.library.command.CommandGroup
    +
    +
    This should schedule the command as part of this command group, I think.
    +
    +
    schedule(Command) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to run
    +
    +
    schedule(Command) - Method in class com.technototes.library.command.ParallelCommandGroup
    +
     
    +
    schedule(Command) - Method in class com.technototes.library.command.ParallelDeadlineGroup
    +
    +
    Add another command to the group to be run while waiting for the 'deadline' command to finish
    +
    +
    schedule(Command) - Method in class com.technototes.library.command.ParallelRaceGroup
    +
    +
    Add one more command to the list of commands that will be run at the same time
    +
    +
    schedule(Command) - Method in class com.technototes.library.command.SequentialCommandGroup
    +
    +
    This allows you to append another command to the Sequential Command Group
    +
    +
    schedule(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule the command to run
    +
    +
    schedule(Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Register a command to be scheduled.
    +
    +
    schedule(BooleanSupplier, Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule the command to run over & over
    +
    +
    schedule(Consumer<Boolean>) - Method in class com.technototes.library.control.CommandButton
    +
     
    +
    schedule(Function<Boolean, Command>) - Method in class com.technototes.library.control.CommandButton
    +
     
    +
    schedule(Function<Double, Command>) - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    scheduleAfterOther(Command, Command) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule the 'other' command (the second one) when the 'dependency' command has + finished (but *not* been cancelled!).
    +
    +
    scheduleAfterOther(Command, Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule the 'other' command (the second one) when the 'dependency' command has + finished (but *not* been cancelled!) *and* 'additionalCondition' is true.
    +
    +
    scheduleDefault(Command, Subsystem) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule the default command for a given subsystem.
    +
    +
    scheduleDpad(BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleDpad(BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleForState(Command, CommandOpMode.OpModeState...) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to be run when the OpMode is one of the provided list of states.
    +
    +
    scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to be run when the OpMode is one of the provided list of states and the + 'supplier' boolean function is also true.
    +
    +
    scheduleInit(Command) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to be run recurringly during the 'Init' phase of an opmode.
    +
    +
    scheduleInit(Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to be run recurringly during the 'Init' phase of an opmode.
    +
    +
    scheduleJoystick(Command) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedules a command to be run during Run and End states, all the time.
    +
    +
    scheduleJoystick(Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedules a command to be run during Run and End states, all the time.
    +
    +
    scheduleLeftStick(BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleLeftStick(BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleOnce(Command) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to run
    +
    +
    scheduleOnceForState(Command, CommandOpMode.OpModeState) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule a command to run during a particular OpModeState
    +
    +
    schedulePressed(Function<DoubleSupplier, Command>) - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    scheduleRightStick(BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleRightStick(BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleStick(Stick, BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleStick(Stick, BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    +
     
    +
    scheduleWithOther(Command, Command) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule the 'other' command (the second one) when the 'dependency' command has + just started.
    +
    +
    scheduleWithOther(Command, Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Schedule the 'other' command (the second one) when the 'dependency' command has + just started *and* 'additionalCondition' is also true.
    +
    +
    select(Alliance) - Method in class com.technototes.library.util.Alliance.Selector
    +
    +
    Select the red or blue item based on the Alliance
    +
    +
    selectOf(Alliance, T, T) - Static method in class com.technototes.library.util.Alliance.Selector
    +
    +
    Based on Alliance, choose red or blue
    +
    +
    selectOf(T, T) - Method in enum class com.technototes.library.util.Alliance
    +
    +
    Select either 'a' or 'b' depending on alliance
    +
    +
    Selector(T, T) - Constructor for class com.technototes.library.util.Alliance.Selector
    +
    +
    Create a Selelector for red/blue
    +
    +
    Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in com.technototes.library.hardware.sensor
    +
    +
    Deprecated.
    +
    +
    Sensor(String) - Constructor for class com.technototes.library.hardware.sensor.Sensor
    +
    +
    Deprecated.
    +
    Create sensor
    +
    +
    Sensor(T) - Constructor for class com.technototes.library.hardware.sensor.Sensor
    +
    +
    Deprecated.
    +
    Create a sensor
    +
    +
    Sensored - Interface in com.technototes.library.hardware
    +
    +
    Deprecated.
    +
    +
    SequentialCommandGroup - Class in com.technototes.library.command
    +
    +
    A grouping command which runs a list of commands in sequence
    +
    +
    SequentialCommandGroup(Command...) - Constructor for class com.technototes.library.command.SequentialCommandGroup
    +
    +
    Make sequential command group.
    +
    +
    servo(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    servo(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    +
    +
    Deprecated
    +
    +
    Servo - Class in com.technototes.library.hardware.servo
    +
    +
    Deprecated.
    +
    +
    Servo(Servo) - Constructor for class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    Create servo object
    +
    +
    Servo(String) - Constructor for class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    Create servo object
    +
    +
    ServoBuilder - Class in com.technototes.library.hardware2
    +
    +
    TODO: Remove this.
    +
    +
    ServoBuilder(int) - Constructor for class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    ServoBuilder(Servo) - Constructor for class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    ServoBuilder(String) - Constructor for class com.technototes.library.hardware2.ServoBuilder
    +
     
    +
    ServoGroup - Class in com.technototes.library.hardware.servo
    +
    +
    Deprecated.
    +
    +
    ServoGroup(Servo...) - Constructor for class com.technototes.library.hardware.servo.ServoGroup
    +
    +
    Deprecated.
    +
    Create a servo group
    +
    +
    ServoProfiler - Class in com.technototes.library.hardware.servo
    +
     
    +
    ServoProfiler(Servo) - Constructor for class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    ServoProfiler.Constraints - Class in com.technototes.library.hardware.servo
    +
     
    +
    ServoSubsystem - Class in com.technototes.library.subsystem.servo
    +
    +
    Class for servo subsystems
    +
    +
    ServoSubsystem(Servo) - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem
    +
    +
    Create servo subsystem
    +
    +
    ServoSubsystem(Servo...) - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem
    +
     
    +
    set(double) - Method in class com.technototes.library.util.Integral
    +
    +
    Set the value to C
    +
    +
    setAverageOutput(double) - Method in class com.technototes.library.util.Differential
    +
    +
    Set the average of the differential.
    +
    +
    setConstraints(double, double, double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    setConstraints(ServoProfiler.Constraints) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    setDefaultCommand(Command) - Method in interface com.technototes.library.subsystem.Subsystem
    +
     
    +
    setDeviationOutput(double) - Method in class com.technototes.library.util.Differential
    +
    +
    Set the deviation of the differential.
    +
    +
    setDirection(MotorEncoder.Direction) - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
    +
    Allows you to set the direction of the counts and velocity without modifying the motor's direction state
    +
    +
    setEnabled(boolean) - Method in class com.technototes.library.control.ButtonBase
    +
     
    +
    setEnabled(boolean) - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Enable/disable the gamepad (and all potentially bound commands!)
    +
    +
    setEnabled(boolean) - Method in class com.technototes.library.control.GamepadDpad
    +
     
    +
    setEnabled(boolean) - Method in class com.technototes.library.control.GamepadStick
    +
     
    +
    setEnabled(boolean) - Method in interface com.technototes.library.general.Enablable
    +
    +
    Set whether or not the device is enabled
    +
    +
    setEncoder(Encoder) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Explicitly set the encoder for the motor
    +
    +
    setHeading(double) - Method in interface com.technototes.library.hardware.sensor.IGyro
    +
    +
    Sets the current heading (in default units)
    +
    +
    setHeading(double) - Method in class com.technototes.library.hardware.sensor.IMU
    +
    +
    Sets the current heading to be 'new heading'
    +
    +
    setIndex(int) - Method in class com.technototes.library.logger.entry.Entry
    +
    +
    Set index
    +
    +
    setInverted(boolean) - Method in class com.technototes.library.control.ButtonBase
    +
     
    +
    setInverted(boolean) - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    setInverted(boolean) - Method in class com.technototes.library.control.CommandButton
    +
     
    +
    setInverted(boolean) - Method in interface com.technototes.library.general.Invertable
    +
    +
    Set the inversion (true -> Is inverted, false -> Not inverted)
    +
    +
    setInverted(boolean) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Set the Inverted state for the motor.
    +
    +
    setInverted(boolean) - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Set the Inverted state for the motor.
    +
    +
    setInverted(boolean) - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    setLimits(double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
     
    +
    setLimits(double, double) - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Sets the min & max values for the motor power (still clipped to -1/1)
    +
    +
    setLimits(double, double) - Method in class com.technototes.library.util.Differential
    +
    +
    Set the limits for the differential
    +
    +
    setMaxSpeed(double) - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    +
    +
    Set the max speed for the subsystem
    +
    +
    setOpMode(CommandOpMode) - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Set the scheduler's opmode
    +
    +
    setOutputs(double, double) - Method in class com.technototes.library.util.Differential
    +
    +
    Set both outputs for the differential
    +
    +
    setPIDFCoeffecients(double, double, double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Configure the PIDF constants for the motor
    +
    +
    setPIDFCoeffecients(PIDFCoefficients) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Configure the PIDF constants for the motor
    +
    +
    setPosition(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Set the position of the motor
    +
    +
    setPosition(double) - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    Set servo position
    +
    +
    setPosition(double) - Method in class com.technototes.library.hardware.servo.ServoGroup
    +
    +
    Deprecated.
    +
    setPosition(double) - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    +
    +
    Set position for subsystem with existing max speed
    +
    +
    setPosition(double) - Method in class com.technototes.library.subsystem.servo.ServoSubsystem
    +
    +
    Set servo subsystem position
    +
    +
    setPosition(double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Set the power for the motor to try to get to the position specified.
    +
    +
    setPosition(double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    +
     
    +
    setPosition(double, double) - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    +
    +
    Set position for subsystem
    +
    +
    setPriority(int) - Method in class com.technototes.library.logger.entry.Entry
    +
    +
    Set's the priority for this log line (handy for telemetry overflow)
    +
    +
    setPriority(Differential.DifferentialPriority) - Method in class com.technototes.library.util.Differential
    +
    +
    Sets the priority for the differential.
    +
    +
    setRunMode(DcMotor.RunMode) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Set the runmode for the motor
    +
    +
    setServoRange(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    setSpeed(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Sets the (clipped) speed for the motor
    +
    +
    setSpeed(double) - Method in class com.technototes.library.hardware.motor.Motor
    +
    +
    Set speed of motor
    +
    +
    setSpeed(double) - Method in class com.technototes.library.hardware.motor.MotorGroup
    +
     
    +
    setSpeed(double) - Method in class com.technototes.library.subsystem.motor.MotorSubsystem
    +
    +
    Set the speed of the primary motors in subsystem
    +
    +
    setState(Command.CommandState) - Method in interface com.technototes.library.command.Command
    +
    +
    Set the command state: DEFINITELY DO NOT USE THIS!
    +
    +
    setTargetPosition(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    setTargetTolerance(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    setTriggerThreshold(double) - Method in class com.technototes.library.control.AxisBase
    +
    +
    Set threshold
    +
    +
    setTriggerThreshold(double) - Method in class com.technototes.library.control.CommandAxis
    +
     
    +
    setVelocity(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Set velocity of motor in tps
    +
    +
    setVelocity(double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    +
     
    +
    setVolume(float) - Method in class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.subsystem.drivebase
    +
    +
    Class for mecanum/xdrive drivebases
    +
    +
    SimpleMecanumDrivebaseSubsystem(Motor<T>, Motor<T>, Motor<T>, Motor<T>) - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
    +
    Create mecanum drivebase
    +
    +
    SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor<T>, Motor<T>, Motor<T>, Motor<T>) - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
    +
    Create mecanum drivebase
    +
    +
    sleep(double) - Method in interface com.technototes.library.command.Command
    +
    +
    Delay the command for some time
    +
    +
    sleep(DoubleSupplier) - Method in interface com.technototes.library.command.Command
    +
    +
    Delay the command for some time
    +
    +
    SmartConsumer<T> - Interface in com.technototes.library.util
    +
    +
    This is a functional interface, when 'accept' is invoked, will only invoke the 'consume' method + when a different value is provided.
    +
    +
    SOME_ACTIVE - Enum constant in enum class com.technototes.library.control.Binding.Type
    +
     
    +
    Speaker - Class in com.technototes.library.hardware
    +
    +
    Deprecated.
    +
    +
    Speaker(float, String...) - Constructor for class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    Speaker(String...) - Constructor for class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    start(String) - Method in class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    startAt(double) - Method in class com.technototes.library.hardware.servo.Servo
    +
    +
    Deprecated.
    +
    Set position for the servo and return this
    +
    +
    startAt(double) - Method in class com.technototes.library.hardware.servo.ServoGroup
    +
    +
    Deprecated.
    +
    STARTED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    +
    +
    The command has been triggered
    +
    +
    stateMap - Static variable in interface com.technototes.library.command.Command
    +
    +
    The Command to Current State of the Command lookup
    +
    +
    Stick - Interface in com.technototes.library.control
    +
    +
    Interface for objects that behave as sticks
    +
    +
    stickButton - Variable in class com.technototes.library.control.GamepadStick
    +
    +
    The objects for the stick button
    +
    +
    stop() - Method in class com.technototes.library.hardware.Speaker
    +
    +
    Deprecated.
    +
    stop() - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    +
     
    +
    stop() - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    +
     
    +
    stop() - Method in class com.technototes.library.subsystem.motor.MotorSubsystem
    +
     
    +
    stopRumble() - Method in class com.technototes.library.control.GamepadBase
    +
    +
    Stop rumbling on the gamepad
    +
    +
    StringEntry - Class in com.technototes.library.logger.entry
    +
     
    +
    StringEntry(String, Supplier<String>, int, String) - Constructor for class com.technototes.library.logger.entry.StringEntry
    +
     
    +
    Subsystem - Interface in com.technototes.library.subsystem
    +
     
    +
    supplier - Variable in class com.technototes.library.logger.entry.Entry
    +
    +
    The function called to get the value to display
    +
    +
    +

    T

    +
    +
    TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.subsystem.drivebase
    +
    +
    Class for drivebase subsystems
    +
    +
    TankDrivebaseSubsystem(Motor<T>, Motor<T>) - Constructor for class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    +
    +
    Create tank drivebase
    +
    +
    tare() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    +
    +
    Zero the encoder
    +
    +
    tare() - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    telemetry - Variable in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    terminate() - Method in class com.technototes.library.structure.CommandOpMode
    +
     
    +
    terminateOpMode() - Method in class com.technototes.library.command.CommandScheduler
    +
    +
    Forcefully halt the opmode
    +
    +
    timeMap - Static variable in interface com.technototes.library.command.Command
    +
    +
    The Command to Total Time Spent Running lookup
    +
    +
    toggle(Command, Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    For scheduling a pair of "opposite" commands for toggling when something + is or is not being toggled
    +
    +
    toggleEnabled() - Method in interface com.technototes.library.general.Enablable
    +
    +
    Toggle whether this object is enabled or not
    +
    +
    tolerance(int) - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    toString() - Method in class com.technototes.library.logger.entry.BooleanEntry
    +
     
    +
    toString() - Method in class com.technototes.library.logger.entry.Entry
    +
    +
    The String for the logged item
    +
    +
    toString() - Method in class com.technototes.library.logger.entry.NumberEntry
    +
     
    +
    toString() - Method in class com.technototes.library.logger.entry.StringEntry
    +
     
    +
    translateTargetPosition(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    trueValue() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    +
    +
    Store the string when the annotated method returns true
    +
    +
    +

    U

    +
    +
    universalLoop() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Runs constantly during all periods
    +
    +
    up - Variable in class com.technototes.library.control.GamepadDpad
    +
    +
    The objects for the dpad buttons
    +
    +
    update() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    +
     
    +
    update(double) - Method in class com.technototes.library.util.Integral
    +
    +
    Update the accumulated value for the number of seconds since last update
    +
    +
    uponInit() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Runs once when op mode is initialized
    +
    +
    uponStart() - Method in class com.technototes.library.structure.CommandOpMode
    +
    +
    Runs once when op mode is started
    +
    +
    +

    V

    +
    +
    value() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    +
    +
    Get HSV value (not entire HSV, just 'V')
    +
    +
    value() - Element in annotation interface com.technototes.library.logger.Log.Logs
    +
     
    +
    value() - Element in annotation interface com.technototes.library.logger.LogConfig.AllowList
    +
    +
    The allowed opmodes
    +
    +
    value() - Element in annotation interface com.technototes.library.logger.LogConfig.DenyList
    +
    +
    The denied opmodes
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.command.Command.CommandState
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.control.Binding.Type
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.util.Alliance
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.util.Color
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    valueOf(String) - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    values() - Static method in enum class com.technototes.library.command.Command.CommandState
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.control.Binding.Type
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.control.GamepadBase.Axis
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.util.Alliance
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.util.Color
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    values() - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    velocity(PIDFCoefficients) - Method in class com.technototes.library.hardware2.MotorBuilder
    +
     
    +
    +

    W

    +
    +
    WaitCommand - Class in com.technototes.library.command
    +
    +
    A command to do nothing but wait for a span of time.
    +
    +
    WaitCommand(double) - Constructor for class com.technototes.library.command.WaitCommand
    +
    +
    Create a wait command for a fixed number of seconds
    +
    +
    WaitCommand(DoubleSupplier) - Constructor for class com.technototes.library.command.WaitCommand
    +
    +
    Create a wait command for a number of seconds that can be calculated when the commannd is + triggered
    +
    +
    waitUntil(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    +
    +
    After this command, wait until the condition function is true
    +
    +
    whenInverseToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule the command to be run when the input has only stopped being toggled
    +
    +
    whenPressed(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run once the input is pressed.
    +
    +
    whenPressedReleased(Command, Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    For scheduling a pair commands for when the input is pressed and released.
    +
    +
    whenReleased(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run once the input is released.
    +
    +
    whenToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run when the input was just toggled + (From pressed to released, or released to pressed)
    +
    +
    whileInverseToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule the command to run over & over while the input is *not* changing + It will be canceled once the input is toggled.
    +
    +
    whilePressed(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run over & over while the input is pressed, + but once it's released, the command will be cancelled.
    +
    +
    whilePressedContinuous(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run over & over while the input is pressed
    +
    +
    whilePressedOnce(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run while the input is pressed, but only once, + and if the command takes so long that the input is released, the command + will be cancelled.
    +
    +
    whilePressedReleased(Command, Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    For scheduling a pair commands for while the input is pressed and released.
    +
    +
    whileReleased(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule a command to be run over & over while the input is released, + but once it's pressed, the command will be cancelled.
    +
    +
    whileReleasedOnce(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schdule the command to be run when the input is released, but only once!
    +
    +
    whileToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    +
    +
    Schedule the command to be run while the input is changing.
    +
    +
    WHITE - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    withTimeout(double) - Method in interface com.technototes.library.command.Command
    +
    +
    Runs this command until it either finishes, or the timeout has elapsed
    +
    +
    +

    X

    +
    +
    x - Variable in class com.technototes.library.logger.entry.Entry
    +
    +
    The index (in the list) of the entry
    +
    +
    xAxis - Variable in class com.technototes.library.control.GamepadStick
    +
    +
    The objects for the stick axis
    +
    +
    xbox_a - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the XBox game controller
    +
    +
    XBOX_A - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    XBox A button
    +
    +
    xbox_b - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the XBox game controller
    +
    +
    XBOX_B - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    XBox B button
    +
    +
    xbox_back - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the XBox game controller
    +
    +
    XBOX_BACK - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    XBox Back button
    +
    +
    xbox_start - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the XBox game controller
    +
    +
    XBOX_START - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    XBox Start button
    +
    +
    xbox_x - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the XBox game controller
    +
    +
    XBOX_X - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    XBox X button
    +
    +
    xbox_y - Variable in class com.technototes.library.control.GamepadBase
    +
    +
    The button objects for the XBox game controller
    +
    +
    XBOX_Y - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    +
    +
    XBox Y button
    +
    +
    +

    Y

    +
    +
    yAxis - Variable in class com.technototes.library.control.GamepadStick
    +
    +
    The objects for the stick axis
    +
    +
    YELLOW - Enum constant in enum class com.technototes.library.util.Color
    +
     
    +
    +

    Z

    +
    +
    zero() - Method in interface com.technototes.library.hardware.sensor.IGyro
    +
    +
    Zeroes the current heading (in default units)
    +
    +
    zero() - Method in class com.technototes.library.util.Integral
    +
    +
    Set the value to zero
    +
    +
    zeroEncoder() - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder
    +
    +
    zero the encoder
    +
    +
    zeroEncoder() - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    +
    +
    Set the current device value as "zero"
    +
    +
    zeroEncoder() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    +
     
    +
    +A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values
    +
    +
    + diff --git a/docs/TechnoLib/index.html b/docs/TechnoLib/index.html index 18b7b9fb..ebc040b2 100644 --- a/docs/TechnoLib/index.html +++ b/docs/TechnoLib/index.html @@ -1,212 +1,100 @@ - + - - - Overview (RobotLibrary API) - - - - - - - - - - - - - - -
    - - -
    - + + +Overview (RobotLibrary API) + + + + + + + + + + + + + + + + diff --git a/docs/TechnoLib/jquery-ui.overrides.css b/docs/TechnoLib/jquery-ui.overrides.css index bc437535..facf852c 100644 --- a/docs/TechnoLib/jquery-ui.overrides.css +++ b/docs/TechnoLib/jquery-ui.overrides.css @@ -29,7 +29,7 @@ a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #f8981d; - border: 1px solid #f8981d; + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; + border: 1px solid #F8981D; } diff --git a/docs/TechnoLib/member-search-index.js b/docs/TechnoLib/member-search-index.js index 73aca146..ec3f354c 100644 --- a/docs/TechnoLib/member-search-index.js +++ b/docs/TechnoLib/member-search-index.js @@ -1,2352 +1 @@ -memberSearchIndex = [ - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'a' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'A' }, - { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'accept(T)' }, - { - p: 'com.technototes.library.command', - c: 'CommandGroup', - l: 'addCommands(Command...)', - u: 'addCommands(com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'additionalInitConditions()' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'addRequirements(Subsystem...)', - u: 'addRequirements(com.technototes.library.subsystem.Subsystem...)', - }, - { - p: 'com.technototes.library.hardware', - c: 'Speaker', - l: 'addSongs(String...)', - u: 'addSongs(java.lang.String...)', - }, - { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'ALL_ACTIVE' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'alongWith(Command...)', - u: 'alongWith(com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'alpha()' }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'analog(int)' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'analog(String)', - u: 'analog(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'AnalogBuilder', - l: 'AnalogBuilder(AnalogSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogSensor)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'AnalogBuilder', - l: 'AnalogBuilder(int)', - u: '%3Cinit%3E(int)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'AnalogBuilder', - l: 'AnalogBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'AnalogSensor', - l: 'AnalogSensor(AnalogInput)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'AnalogSensor', - l: 'AnalogSensor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'andThen(Command...)', - u: 'andThen(com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'anyCancelled' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'apply(UnaryOperator)', - u: 'apply(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'TankDrivebaseSubsystem', - l: 'arcadeDrive(double, double)', - u: 'arcadeDrive(double,double)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'ColorDistanceSensor', l: 'argb()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'ColorSensor', l: 'argb()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'argb()' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'asConditional(BooleanSupplier)', - u: 'asConditional(java.util.function.BooleanSupplier)', - }, - { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'at(double)' }, - { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'AVERAGE' }, - { - p: 'com.technototes.library.control', - c: 'AxisBase', - l: 'AxisBase(DoubleSupplier)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'AxisBase', - l: 'AxisBase(DoubleSupplier, double)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier,double)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'axisInstance(DoubleSupplier)', - u: 'axisInstance(java.util.function.DoubleSupplier)', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'b' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'B' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'back' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'BACK' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'BLACK' }, - { p: 'com.technototes.library.util', c: 'Alliance', l: 'BLUE' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'BLUE' }, - { p: 'com.technototes.library.util', c: 'Characters', l: 'BLUE_CIRCLE' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'blue()' }, - { - p: 'com.technototes.library.logger.entry', - c: 'BooleanEntry', - l: 'BooleanEntry(String, Supplier, int, String, String, Color, String, String, Color, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String,java.lang.String,com.technototes.library.util.Color,java.lang.String,java.lang.String,com.technototes.library.util.Color,com.technototes.library.util.Color)', - }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'booleanSupplier' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'brake()' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'brake()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'brake()' }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'build()' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder', l: 'build()' }, - { - p: 'com.technototes.library.control', - c: 'ButtonBase', - l: 'ButtonBase(BooleanSupplier)', - u: '%3Cinit%3E(java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'buttonInstance(BooleanSupplier)', - u: 'buttonInstance(java.util.function.BooleanSupplier)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'bVal' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'bVal' }, - { - p: 'com.technototes.library.util', - c: 'Differential.DifferentialPriority', - l: 'calculateA(double, double, double, double)', - u: 'calculateA(double,double,double,double)', - }, - { - p: 'com.technototes.library.util', - c: 'Differential.DifferentialPriority', - l: 'calculateS(double, double, double, double)', - u: 'calculateS(double,double,double,double)', - }, - { p: 'com.technototes.library.command', c: 'Command', l: 'cancel()' }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'CANCELLED' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'cancelUpon(BooleanSupplier)', - u: 'cancelUpon(java.util.function.BooleanSupplier)', - }, - { p: 'com.technototes.library.logger', c: 'Logger', l: 'captionDivider' }, - { p: 'com.technototes.library.util', c: 'Characters', l: 'Characters()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.library.command', - c: 'ChoiceCommand', - l: 'ChoiceCommand(BooleanSupplier, Command)', - u: '%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'ChoiceCommand', - l: 'ChoiceCommand(Pair...)', - u: '%3Cinit%3E(android.util.Pair...)', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'circle' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'CIRCLE' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'clear()' }, - { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'close()' }, - { - p: 'com.technototes.library.util', - c: 'MathUtils', - l: 'closestTo(double, double...)', - u: 'closestTo(double,double...)', - }, - { - p: 'com.technototes.library.util', - c: 'MathUtils', - l: 'closestTo(double, int...)', - u: 'closestTo(double,int...)', - }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'coast()' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'coast()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'coast()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'codriverGamepad' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'color' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'color()' }, - { p: 'com.technototes.library.logger', c: 'Log', l: 'color()' }, - { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'color()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'color()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'color()' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'color(String)', - u: 'color(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ColorBuilder', - l: 'ColorBuilder(ColorSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ColorBuilder', - l: 'ColorBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'ColorDistanceSensor', - l: 'ColorDistanceSensor(ColorRangeSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'ColorDistanceSensor', - l: 'ColorDistanceSensor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'colorRange(String)', - u: 'colorRange(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ColorRangeBuilder', - l: 'ColorRangeBuilder(ColorRangeSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ColorRangeBuilder', - l: 'ColorRangeBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'ColorSensor', - l: 'ColorSensor(ColorSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'ColorSensor', - l: 'ColorSensor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandAxis', - l: 'CommandAxis(DoubleSupplier)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandAxis', - l: 'CommandAxis(DoubleSupplier, double)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier,double)', - }, - { p: 'com.technototes.library.command', c: 'CommandBase', l: 'CommandBase()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.library.control', - c: 'CommandBinding', - l: 'CommandBinding(Binding.Type, CommandInput...)', - u: '%3Cinit%3E(com.technototes.library.control.Binding.Type,com.technototes.library.control.CommandInput...)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandBinding', - l: 'CommandBinding(CommandInput...)', - u: '%3Cinit%3E(com.technototes.library.control.CommandInput...)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandButton', - l: 'CommandButton(BooleanSupplier)', - u: '%3Cinit%3E(java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'CommandGamepad(Gamepad)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandGroup', - l: 'CommandGroup(boolean, Command...)', - u: '%3Cinit%3E(boolean,com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'commandMap' }, - { - p: 'com.technototes.library.structure', - c: 'CommandOpMode', - l: 'CommandOpMode()', - u: '%3Cinit%3E()', - }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'completeBarColor()' }, - { - p: 'com.technototes.library.command', - c: 'ConditionalCommand', - l: 'ConditionalCommand(BooleanSupplier)', - u: '%3Cinit%3E(java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.command', - c: 'ConditionalCommand', - l: 'ConditionalCommand(BooleanSupplier, Command)', - u: '%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'ConditionalCommand', - l: 'ConditionalCommand(BooleanSupplier, Command, Command)', - u: '%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.util', - c: 'MathUtils', - l: 'constrain(double, double, double)', - u: 'constrain(double,double,double)', - }, - { - p: 'com.technototes.library.util', - c: 'MathUtils', - l: 'constrain(int, int, int)', - u: 'constrain(int,int,int)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler.Constraints', - l: 'Constraints(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'consume(T)' }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'countCancel' }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'countCancel()' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'create(Command, Subsystem...)', - u: 'create(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem...)', - }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'create(int)' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'create(String)', - u: 'create(java.lang.String)', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'cross' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'CROSS' }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'crServo(int)' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'crServo(String)', - u: 'crServo(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'CRServoBuilder', - l: 'CRServoBuilder(CRServo)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.CRServo)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'CRServoBuilder', - l: 'CRServoBuilder(int)', - u: '%3Cinit%3E(int)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'CRServoBuilder', - l: 'CRServoBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.library.util', c: 'Color', l: 'CYAN' }, - { p: 'com.technototes.library.util', c: 'Characters', l: 'CYCLE' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'DARK_GRAY' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'deadline(Command...)', - u: 'deadline(com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.control', c: 'AxisBase', l: 'DEFAULT_TRIGGER_THRESHOLD' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'degrees()' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder', l: 'degrees()' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDevice', l: 'device' }, - { p: 'com.technototes.library.subsystem', c: 'DeviceSubsystem', l: 'device' }, - { - p: 'com.technototes.library.subsystem', - c: 'DeviceSubsystem', - l: 'DeviceSubsystem(T)', - u: '%3Cinit%3E(T)', - }, - { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'DIFFERENCE' }, - { - p: 'com.technototes.library.util', - c: 'Differential', - l: 'Differential(DoubleConsumer, DoubleConsumer)', - u: '%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer)', - }, - { - p: 'com.technototes.library.util', - c: 'Differential', - l: 'Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority)', - u: '%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer,com.technototes.library.util.Differential.DifferentialPriority)', - }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'digital(int)' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'digital(String)', - u: 'digital(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'DigitalBuilder', - l: 'DigitalBuilder(DigitalChannel)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'DigitalBuilder', - l: 'DigitalBuilder(int)', - u: '%3Cinit%3E(int)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'DigitalBuilder', - l: 'DigitalBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'DigitalSensor', - l: 'DigitalSensor(DigitalChannel)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'DigitalSensor', - l: 'DigitalSensor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'CRServoBuilder', - l: 'direction(DcMotorSimple.Direction)', - u: 'direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'direction(DcMotorSimple.Direction)', - u: 'direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ServoBuilder', - l: 'direction(Servo.Direction)', - u: 'direction(com.qualcomm.robotcore.hardware.Servo.Direction)', - }, - { p: 'com.technototes.library.control', c: 'CommandGamepad', l: 'disable()' }, - { p: 'com.technototes.library.general', c: 'Enablable', l: 'disable()' }, - { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'disable()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'disable()' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'distance(String)', - u: 'distance(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'DistanceBuilder', - l: 'DistanceBuilder(DistanceSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'DistanceBuilder', - l: 'DistanceBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.library.control', c: 'AxisBase', l: 'doubleSupplier' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'down' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpad' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadDown' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadLeft' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadRight' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadUp' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'TankDrivebaseSubsystem', - l: 'drive(double, double)', - u: 'drive(double,double)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'drive(double, double, double)', - u: 'drive(double,double,double)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'drive(double, double, double, double)', - u: 'drive(double,double,double,double)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'DrivebaseSubsystem', - l: 'DrivebaseSubsystem(DoubleSupplier, Motor...)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor...)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'DrivebaseSubsystem', - l: 'DrivebaseSubsystem(Motor...)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)', - }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'driverGamepad' }, - { p: 'com.technototes.library.util', c: 'Characters', l: 'DUCK' }, - { - p: 'com.technototes.library.hardware', - c: 'DummyDevice', - l: 'DummyDevice(T)', - u: '%3Cinit%3E(T)', - }, - { p: 'com.technototes.library.logger', c: 'LogConfig.Run', l: 'duringInit()' }, - { p: 'com.technototes.library.logger', c: 'LogConfig.Run', l: 'duringRun()' }, - { p: 'com.technototes.library.control', c: 'CommandGamepad', l: 'enable()' }, - { p: 'com.technototes.library.general', c: 'Enablable', l: 'enable()' }, - { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'enable()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'enable()' }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'EncodedMotor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'EncodedMotor(String, Encoder)', - u: '%3Cinit%3E(java.lang.String,com.technototes.library.hardware.sensor.encoder.Encoder)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'EncodedMotor(T)', - u: '%3Cinit%3E(T)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'EncodedMotor(T, Encoder)', - u: '%3Cinit%3E(T,com.technototes.library.hardware.sensor.encoder.Encoder)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotorGroup', - l: 'EncodedMotorGroup(EncodedMotor, Motor...)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.Motor...)', - }, - { - p: 'com.technototes.library.subsystem.motor', - c: 'EncodedMotorSubsystem', - l: 'EncodedMotorSubsystem(EncodedMotor)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)', - }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'END' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'end()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'end(boolean)' }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'end(boolean)' }, - { - p: 'com.technototes.library.logger.entry', - c: 'Entry', - l: 'Entry(String, Supplier, int, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,com.technototes.library.util.Color)', - }, - { p: 'com.technototes.library.logger', c: 'Log', l: 'entryColor()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'execute()' }, - { p: 'com.technototes.library.command', c: 'CommandBase', l: 'execute()' }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'execute()' }, - { p: 'com.technototes.library.command', c: 'ConditionalCommand', l: 'execute()' }, - { p: 'com.technototes.library.command', c: 'WaitCommand', l: 'execute()' }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'EXECUTING' }, - { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'expandedPWM()' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'expandedRange()' }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'ExternalEncoder', - l: 'ExternalEncoder(AnalogInput)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'ExternalEncoder', - l: 'ExternalEncoder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'falseColor()' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'falseFormat()' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'falseValue()' }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'FINISHED' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'flMotor', - }, - { p: 'com.technototes.library.logger', c: 'Log', l: 'format()' }, - { - p: 'com.technototes.library.util', - c: 'Color', - l: 'format(Object)', - u: 'format(java.lang.Object)', - }, - { - p: 'com.technototes.library.util', - c: 'Color', - l: 'format(String, Object...)', - u: 'format(java.lang.String,java.lang.Object...)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder.Direction', - l: 'FORWARD', - }, - { p: 'com.technototes.library.hardware2', c: 'CRServoBuilder', l: 'forward()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'forward()' }, - { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'forward()' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'frMotor', - }, - { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'gain(float)' }, - { p: 'com.technototes.library.util', c: 'Characters', l: 'GAMEPAD' }, - { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'gamepad1' }, - { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'gamepad2' }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'GamepadBase(Gamepad, Class, Class)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad,java.lang.Class,java.lang.Class)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadDpad', - l: 'GamepadDpad(T, T, T, T)', - u: '%3Cinit%3E(T,T,T,T)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadStick', - l: 'GamepadStick(T, T, U)', - u: '%3Cinit%3E(T,T,U)', - }, - { p: 'com.technototes.library.command', c: 'Command', l: 'get()' }, - { p: 'com.technototes.library.control', c: 'Binding', l: 'get()' }, - { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'get()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'get()' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'get()' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'get()' }, - { - p: 'com.technototes.library.control', - c: 'Binding', - l: 'get(Binding.Type)', - u: 'get(com.technototes.library.control.Binding.Type)', - }, - { - p: 'com.technototes.library.util', - c: 'Alliance', - l: 'get(Class)', - u: 'get(java.lang.Class)', - }, - { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getAllDeviceList()' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getAllDevices()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'getAllDevices()' }, - { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'getAllDevices()' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'getAllDevices()' }, - { p: 'com.technototes.library.control', c: 'Stick', l: 'getAngle()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'getAngularOrientation()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'getAngularOrientation(AngleUnit)', - u: 'getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'getAngularVelocity()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'getAngularVelocity(AngleUnit)', - u: 'getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)', - }, - { p: 'com.technototes.library.control', c: 'Binding', l: 'getAsBoolean()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'getAsBoolean()' }, - { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'getAsButton()' }, - { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'getAsButton(double)' }, - { p: 'com.technototes.library.control', c: 'AxisBase', l: 'getAsDouble()' }, - { p: 'com.technototes.library.hardware', c: 'Sensored', l: 'getAsDouble()' }, - { p: 'com.technototes.library.util', c: 'Differential', l: 'getAverage()' }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'getAxis(GamepadBase.Axis)', - u: 'getAxis(com.technototes.library.control.GamepadBase.Axis)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'getAxisAsBoolean(GamepadBase.Axis)', - u: 'getAxisAsBoolean(com.technototes.library.control.GamepadBase.Axis)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'getAxisAsDouble(GamepadBase.Axis)', - u: 'getAxisAsDouble(com.technototes.library.control.GamepadBase.Axis)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'getButton(GamepadBase.Button)', - u: 'getButton(com.technototes.library.control.GamepadBase.Button)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase', - l: 'getButtonAsBoolean(GamepadBase.Button)', - u: 'getButtonAsBoolean(com.technototes.library.control.GamepadBase.Button)', - }, - { p: 'com.technototes.library.util', c: 'Alliance', l: 'getColor()' }, - { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getConnectionInfo()' }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'getCorrectedVelocity()', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'getCurrent(Subsystem)', - u: 'getCurrent(com.technototes.library.subsystem.Subsystem)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'getCurrentPosition()', - }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getCurrentPosition()' }, - { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'getCurrentSong()' }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'getDefault(Subsystem)', - u: 'getDefault(com.technototes.library.subsystem.Subsystem)', - }, - { p: 'com.technototes.library.subsystem', c: 'Subsystem', l: 'getDefaultCommand()' }, - { p: 'com.technototes.library.control', c: 'Binding', l: 'getDefaultType()' }, - { p: 'com.technototes.library.control', c: 'CommandBinding', l: 'getDefaultType()' }, - { p: 'com.technototes.library.util', c: 'Differential', l: 'getDeviation()' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDevice', l: 'getDevice()' }, - { p: 'com.technototes.library.subsystem', c: 'DeviceSubsystem', l: 'getDevice()' }, - { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getDeviceName()' }, - { p: 'com.technototes.library.util', c: 'Differential', l: 'getDifferentialPriority()' }, - { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'getDirection()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IDistanceSensor', l: 'getDistance()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'ColorDistanceSensor', - l: 'getDistance(DistanceUnit)', - u: 'getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IDistanceSensor', - l: 'getDistance(DistanceUnit)', - u: 'getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'Rev2MDistanceSensor', - l: 'getDistance(DistanceUnit)', - u: 'getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', - }, - { p: 'com.technototes.library.control', c: 'Stick', l: 'getDistanceFromCenter()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'getDouble()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getDpad()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getEncoder()' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getFollowerist()' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getFollowers()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'getFollowers()' }, - { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'getFollowers()' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'getFollowers()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getGamepad()' }, - { p: 'com.technototes.library.subsystem.drivebase', c: 'DrivebaseSubsystem', l: 'getGyro()' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'getHexValue()' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getIndex()' }, - { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'getInstance()' }, - { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'getInstance()' }, - { p: 'com.technototes.library.control', c: 'CommandButton', l: 'getInstance()' }, - { p: 'com.technototes.library.control', c: 'CommandInput', l: 'getInstance()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'getInverted()' }, - { p: 'com.technototes.library.general', c: 'Invertable', l: 'getInverted()' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'getInverted()' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'getInverted()' }, - { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'getLast()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getLeftStick()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'ColorDistanceSensor', l: 'getLight()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'getLogger()' }, - { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getManufacturer()' }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'getMap()' }, - { p: 'com.technototes.library.util', c: 'MathUtils', l: 'getMax(double...)' }, - { p: 'com.technototes.library.util', c: 'MathUtils', l: 'getMax(int...)' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getMaxAccel()' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler.Constraints', - l: 'getMaxAcceleration()', - }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getMaxVel()' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler.Constraints', - l: 'getMaxVelocity()', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder.Direction', - l: 'getMultiplier()', - }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getName()' }, - { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'getOpModeRuntime()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'getOpModeRuntime()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'getOpModeState()' }, - { p: 'com.technototes.library.hardware.sensor.encoder', c: 'Encoder', l: 'getPosition()' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'getPosition()' }, - { p: 'com.technototes.library.subsystem.servo', c: 'ServoSubsystem', l: 'getPosition()' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getPriority()' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler.Constraints', - l: 'getProportion()', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'getRawVelocity()', - }, - { p: 'com.technototes.library.command', c: 'Command', l: 'getRequirements()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getRightStick()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'getRuntime()' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'DrivebaseSubsystem', - l: 'getScale(double...)', - }, - { p: 'com.technototes.library.command', c: 'WaitCommand', l: 'getSeconds()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getSensorValue()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'AnalogSensor', l: 'getSensorValue()' }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'ExternalEncoder', - l: 'getSensorValue()', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'getSensorValue()', - }, - { p: 'com.technototes.library.hardware', c: 'Sensored', l: 'getSensorValue()' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'getSensorValue()' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getServo()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getSpeed()' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'getSpeed()' }, - { p: 'com.technototes.library.subsystem.drivebase', c: 'DrivebaseSubsystem', l: 'getSpeed()' }, - { p: 'com.technototes.library.subsystem.motor', c: 'MotorSubsystem', l: 'getSpeed()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'getState()' }, - { p: 'com.technototes.library.control', c: 'Binding', l: 'getSuppliers()' }, - { p: 'com.technototes.library.control', c: 'CommandBinding', l: 'getSuppliers()' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getTag()' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getTargetPosition()' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getTargetTolerance()' }, - { p: 'com.technototes.library.control', c: 'AxisBase', l: 'getTriggerThreshold()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'ColorDistanceSensor', l: 'getUnit()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IDistanceSensor', l: 'getUnit()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'Rev2MDistanceSensor', l: 'getUnit()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'DigitalSensor', l: 'getValue()' }, - { p: 'com.technototes.library.util', c: 'Integral', l: 'getValue()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getVelocity()' }, - { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getVersion()' }, - { p: 'com.technototes.library', c: 'RobotLibrary', l: 'getVersion()' }, - { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'getVolume()' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'getXAxis()' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'getXAxis()' }, - { p: 'com.technototes.library.control', c: 'Stick', l: 'getXAxis()' }, - { p: 'com.technototes.library.control', c: 'Stick', l: 'getXSupplier()' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'getYAxis()' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'getYAxis()' }, - { p: 'com.technototes.library.control', c: 'Stick', l: 'getYAxis()' }, - { p: 'com.technototes.library.control', c: 'Stick', l: 'getYSupplier()' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'GREEN' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'green()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'gyroHeading()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'gyroHeading()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'gyroHeading(AngleUnit)', - u: 'gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'gyroHeadingInDegrees()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'gyroHeadingInDegrees()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'gyroHeadingInRadians()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'gyroHeadingInRadians()' }, - { p: 'com.technototes.library.subsystem.drivebase', c: 'DrivebaseSubsystem', l: 'gyroSupplier' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'HardwareBuilder(int)', - u: '%3Cinit%3E(int)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'HardwareBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'HardwareBuilder(T)', - u: '%3Cinit%3E(T)', - }, - { - p: 'com.technototes.library.hardware', - c: 'HardwareDevice', - l: 'HardwareDevice(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware', - c: 'HardwareDevice', - l: 'HardwareDevice(T)', - u: '%3Cinit%3E(T)', - }, - { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'hardwareMap' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDevice', l: 'hardwareMap' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'hsv()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'hsvArray()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'hue()' }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'idle(DcMotor.ZeroPowerBehavior)', - u: 'idle(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', - }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'ignoreCancel()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'IMU(IMU, IMU.Parameters)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.robotcore.hardware.IMU.Parameters)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'imu(String)', - u: 'imu(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'IMU(String, IMU.Parameters)', - u: '%3Cinit%3E(java.lang.String,com.qualcomm.robotcore.hardware.IMU.Parameters)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)', - u: '%3Cinit%3E(java.lang.String,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'IMUBuilder', - l: 'IMUBuilder(BNO055IMUImpl)', - u: '%3Cinit%3E(com.qualcomm.hardware.bosch.BNO055IMUImpl)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'IMUBuilder', - l: 'IMUBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'incompleteBarColor()' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'incrementPosition(double)' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'index()' }, - { p: 'com.technototes.library.logger', c: 'Log', l: 'index()' }, - { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'index()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'index()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'index()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'INIT' }, - { p: 'com.technototes.library.logger', c: 'Logger', l: 'initEntries' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'initialize()' }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'initialize()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'initialize(IMU.Parameters)', - u: 'initialize(com.qualcomm.robotcore.hardware.IMU.Parameters)', - }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'INITIALIZING' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'initLoop()' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'initMap(HardwareMap)', - u: 'initMap(com.qualcomm.robotcore.hardware.HardwareMap)', - }, - { p: 'com.technototes.library.logger', c: 'Logger', l: 'initUpdate()' }, - { p: 'com.technototes.library.hardware2', c: 'DigitalBuilder', l: 'input()' }, - { p: 'com.technototes.library.util', c: 'Range', l: 'inRange(double)' }, - { p: 'com.technototes.library.util', c: 'Integral', l: 'Integral()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.library.util', - c: 'Integral', - l: 'Integral(double)', - u: '%3Cinit%3E(double)', - }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'INTERRUPTED' }, - { p: 'com.technototes.library.general', c: 'Invertable', l: 'invert()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'invert()' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'invert()' }, - { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'invert()' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'isAtPosition(double)' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'isAtTarget()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'isCancelled()' }, - { p: 'com.technototes.library.general', c: 'Enablable', l: 'isDisabled()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isEnabled()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'isEnabled()' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'isEnabled()' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'isEnabled()' }, - { p: 'com.technototes.library.general', c: 'Enablable', l: 'isEnabled()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'CommandBase', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'ConditionalCommand', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'ParallelCommandGroup', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'ParallelDeadlineGroup', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'ParallelRaceGroup', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'SequentialCommandGroup', l: 'isFinished()' }, - { p: 'com.technototes.library.command', c: 'WaitCommand', l: 'isFinished()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isInverseToggled()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustInverseToggled()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustPressed()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustReleased()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustToggled()' }, - { p: 'com.technototes.library', c: 'RobotLibrary', l: 'isPreRelease()' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isPressed()' }, - { p: 'com.technototes.library.util', c: 'MathUtils', l: 'isPrime(int)' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isReleased()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'isRumbling()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'isRunning()' }, - { - p: 'com.technototes.library.structure', - c: 'CommandOpMode.OpModeState', - l: 'isState(CommandOpMode.OpModeState...)', - u: 'isState(com.technototes.library.structure.CommandOpMode.OpModeState...)', - }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isToggled()' }, - { - p: 'com.technototes.library.command', - c: 'IterativeCommand', - l: 'IterativeCommand(Function, BooleanSupplier)', - u: '%3Cinit%3E(java.util.function.Function,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.command', - c: 'IterativeCommand', - l: 'IterativeCommand(Function, int)', - u: '%3Cinit%3E(java.util.function.Function,int)', - }, - { - p: 'com.technototes.library.command', - c: 'IterativeCommand', - l: 'IterativeCommand(Function, int, BooleanSupplier)', - u: '%3Cinit%3E(java.util.function.Function,int,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.command', - c: 'IterativeCommand', - l: 'IterativeCommand(Function, T, T, Function)', - u: '%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function)', - }, - { - p: 'com.technototes.library.command', - c: 'IterativeCommand', - l: 'IterativeCommand(Function, T, T, Function, BooleanSupplier)', - u: '%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'joystickDrive(double, double, double)', - u: 'joystickDrive(double,double,double)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'joystickDriveWithGyro(double, double, double, double)', - u: 'joystickDriveWithGyro(double,double,double,double)', - }, - { p: 'com.technototes.library.command', c: 'Command', l: 'justFinished()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'justFinishedNoCancel()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'justStarted()' }, - { p: 'com.technototes.library.command', c: 'SequentialCommandGroup', l: 'lastCommand' }, - { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'led(boolean)' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'left' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'LEFT_BUMPER' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'LEFT_STICK_BUTTON' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'LEFT_STICK_X' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'LEFT_STICK_Y' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'LEFT_TRIGGER' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftBumper' }, - { p: 'com.technototes.library.subsystem.drivebase', c: 'TankDrivebaseSubsystem', l: 'leftSide' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStick' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStickButton' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStickX' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStickY' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftTrigger' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'LIGHT_GRAY' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'LIME' }, - { - p: 'com.technototes.library.logger', - c: 'Logger', - l: 'Logger(OpMode)', - u: '%3Cinit%3E(com.qualcomm.robotcore.eventloop.opmode.OpMode)', - }, - { p: 'com.technototes.library.util', c: 'Color', l: 'MAGENTA' }, - { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'map' }, - { - p: 'com.technototes.library.util', - c: 'MathUtils', - l: 'map(double, double, double, double, double)', - u: 'map(double,double,double,double,double)', - }, - { p: 'com.technototes.library.util', c: 'MapUtils', l: 'MapUtils()', u: '%3Cinit%3E()' }, - { p: 'com.technototes.library.util', c: 'MathUtils', l: 'MathUtils()', u: '%3Cinit%3E()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'max' }, - { p: 'com.technototes.library.util', c: 'Range', l: 'max' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'max()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'max()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'max()' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler.Constraints', - l: 'maxAcceleration', - }, - { p: 'com.technototes.library.subsystem.motor', c: 'EncodedMotorSubsystem', l: 'maxSpeed' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler.Constraints', l: 'maxVelocity' }, - { p: 'com.technototes.library.util', c: 'Range', l: 'middle()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'min' }, - { p: 'com.technototes.library.util', c: 'Range', l: 'min' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'min()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'min()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'min()' }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'mode(DcMotor.RunMode)', - u: 'mode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'DigitalBuilder', - l: 'mode(DigitalChannel.Mode)', - u: 'mode(com.qualcomm.robotcore.hardware.DigitalChannel.Mode)', - }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'motor(int)' }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'motor(String)', - u: 'motor(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'Motor', - l: 'Motor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'Motor(T)', u: '%3Cinit%3E(T)' }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'MotorBuilder(DcMotorEx)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'MotorBuilder(int)', - u: '%3Cinit%3E(int)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'MotorBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'MotorEncoder(DcMotorEx)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'MotorEncoder(DcMotorEx, ElapsedTime)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx,com.qualcomm.robotcore.util.ElapsedTime)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'MotorEncoder(EncodedMotor)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'MotorEncoder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'MotorGroup', - l: 'MotorGroup(Motor...)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)', - }, - { - p: 'com.technototes.library.subsystem.motor', - c: 'MotorSubsystem', - l: 'MotorSubsystem(T)', - u: '%3Cinit%3E(T)', - }, - { - p: 'com.qualcomm.robotcore.eventloop.opmode', - c: 'CommandOpMode', - l: 'MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED', - }, - { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'msStuckDetectStop' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'name' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'name()' }, - { p: 'com.technototes.library.logger', c: 'Log', l: 'name()' }, - { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'name()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'name()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'name()' }, - { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'NEUTRAL' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NNN' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NNN' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NNP' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NNP' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'NO_COLOR' }, - { p: 'com.technototes.library.util', c: 'Alliance', l: 'NONE' }, - { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'NONE_ACTIVE' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NPN' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NPN' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NPP' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NPP' }, - { - p: 'com.technototes.library.logger.entry', - c: 'NumberBarEntry', - l: 'NumberBarEntry(String, Supplier, int, Number, Number, Number, Color, Color, Color, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.Number,java.lang.Number,java.lang.Number,com.technototes.library.util.Color,com.technototes.library.util.Color,com.technototes.library.util.Color,com.technototes.library.util.Color)', - }, - { p: 'com.technototes.library.logger.entry', c: 'NumberEntry', l: 'numberColor' }, - { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'numberColor()' }, - { - p: 'com.technototes.library.logger.entry', - c: 'NumberEntry', - l: 'NumberEntry(String, Supplier, int, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,com.technototes.library.util.Color)', - }, - { - p: 'com.technototes.library.logger.entry', - c: 'NumberEntry', - l: 'NumberEntry(String, Supplier, int, Color, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,com.technototes.library.util.Color,com.technototes.library.util.Color)', - }, - { - p: 'com.technototes.library.logger.entry', - c: 'NumberSliderEntry', - l: 'NumberSliderEntry(String, Supplier, int, Number, Number, Number, Color, Color, Color, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.Number,java.lang.Number,java.lang.Number,com.technototes.library.util.Color,com.technototes.library.util.Color,com.technototes.library.util.Color,com.technototes.library.util.Color)', - }, - { - p: 'com.technototes.library.util', - c: 'MapUtils', - l: 'of(Pair...)', - u: 'of(android.util.Pair...)', - }, - { p: 'com.technototes.library.util', c: 'Alliance.Selector', l: 'of(T, T)', u: 'of(T,T)' }, - { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'offset' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'onlyIf(BooleanSupplier)', - u: 'onlyIf(java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'Servo', - l: 'onRange(double, double)', - u: 'onRange(double,double)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'ColorDistanceSensor', - l: 'onUnit(DistanceUnit)', - u: 'onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IDistanceSensor', - l: 'onUnit(DistanceUnit)', - u: 'onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'Rev2MDistanceSensor', - l: 'onUnit(DistanceUnit)', - u: 'onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'options' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'OPTIONS' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'ORANGE' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'outline()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'outline()' }, - { p: 'com.technototes.library.hardware2', c: 'DigitalBuilder', l: 'output()' }, - { - p: 'com.technototes.library.command', - c: 'ParallelCommandGroup', - l: 'ParallelCommandGroup(Command...)', - u: '%3Cinit%3E(com.technototes.library.command.Command...)', - }, - { - p: 'com.technototes.library.command', - c: 'ParallelDeadlineGroup', - l: 'ParallelDeadlineGroup(Command, Command...)', - u: '%3Cinit%3E(com.technototes.library.command.Command,com.technototes.library.command.Command...)', - }, - { - p: 'com.technototes.library.command', - c: 'ParallelRaceGroup', - l: 'ParallelRaceGroup(Command...)', - u: '%3Cinit%3E(com.technototes.library.command.Command...)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'IMUBuilder', - l: 'parameter(Consumer)', - u: 'parameter(java.util.function.Consumer)', - }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'periodic()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'periodic()' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'periodic()' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'periodic()' }, - { p: 'com.technototes.library.general', c: 'Periodic', l: 'periodic()' }, - { p: 'com.technototes.library.subsystem', c: 'DeviceSubsystem', l: 'periodic()' }, - { p: 'com.technototes.library.subsystem', c: 'Subsystem', l: 'periodic()' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'PINK' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PNN' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PNN' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PNP' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PNP' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'position(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'positionThreshold' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PPN' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PPN' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PPP' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PPP' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'primary' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'priority' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'priority()' }, - { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'priority()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'priority()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'priority()' }, - { p: 'com.technototes.library.logger', c: 'Log', l: 'priority()' }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'product' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'propagate(double)' }, - { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'propogate(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'propogate(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'propogate(double)' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'propogate(double)' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler.Constraints', l: 'proportion' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'PURPLE' }, - { - p: 'com.technototes.library.hardware2', - c: 'ServoBuilder', - l: 'pwmRange(double, double)', - u: 'pwmRange(double,double)', - }, - { p: 'com.technototes.library.util', c: 'MathUtils', l: 'pythag(double...)' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'raceWith(Command...)', - u: 'raceWith(com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'radians()' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder', l: 'radians()' }, - { - p: 'com.technototes.library.hardware2', - c: 'ServoBuilder', - l: 'range(double, double)', - u: 'range(double,double)', - }, - { - p: 'com.technototes.library.util', - c: 'Range', - l: 'Range(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'raw()' }, - { p: 'com.technototes.library.util', c: 'Alliance', l: 'RED' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'RED' }, - { p: 'com.technototes.library.util', c: 'Characters', l: 'RED_SQUARE' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'red()' }, - { p: 'com.technototes.library.subsystem', c: 'Subsystem', l: 'register()' }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'register(Periodic)', - u: 'register(com.technototes.library.general.Periodic)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'IMUBuilder', - l: 'remap(AxesOrder, IMUBuilder.AxesSigns)', - u: 'remap(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware2.IMUBuilder.AxesSigns)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'remapAxesAndSigns(AxesOrder, IMU.AxesSigns)', - u: 'remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU', - l: 'remapLegacyAxes(AxesOrder, IMU.AxesSigns)', - u: 'remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)', - }, - { - p: 'com.technototes.library.logger', - c: 'Logger', - l: 'repeat(String, int)', - u: 'repeat(java.lang.String,int)', - }, - { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'requestOpModeStop()' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'requirementMap' }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'RESET' }, - { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'reset()' }, - { - p: 'com.technototes.library.hardware', - c: 'DummyDevice', - l: 'resetDeviceConfigurationForOpMode()', - }, - { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'resetScheduler()' }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'Rev2MDistanceSensor', - l: 'Rev2MDistanceSensor(DistanceSensor)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'Rev2MDistanceSensor', - l: 'Rev2MDistanceSensor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder.Direction', - l: 'REVERSE', - }, - { p: 'com.technototes.library.hardware2', c: 'CRServoBuilder', l: 'reverse()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'reverse()' }, - { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'reverse()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'rgb()' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'right' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'RIGHT_BUMPER' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'RIGHT_STICK_BUTTON' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'RIGHT_STICK_X' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'RIGHT_STICK_Y' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'RIGHT_TRIGGER' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightBumper' }, - { p: 'com.technototes.library.subsystem.drivebase', c: 'TankDrivebaseSubsystem', l: 'rightSide' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStick' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStickButton' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStickX' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStickY' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightTrigger' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'rlMotor', - }, - { p: 'com.technototes.library', c: 'RobotLibrary', l: 'RobotLibrary()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'rrMotor', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumble()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumble(double)' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumbleBlip()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumbleBlips(int)' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'RUN' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'run()' }, - { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'run()' }, - { p: 'com.technototes.library.logger', c: 'Logger', l: 'runEntries' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'runLoop()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'runOpMode()' }, - { p: 'com.technototes.library.logger', c: 'Logger', l: 'runUpdate()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'saturation()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'scale' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'scale()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberBar', l: 'scale()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'scale()' }, - { p: 'com.technototes.library.util', c: 'Range', l: 'scale(double)' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'Servo', - l: 'scalePWM(double, double)', - u: 'scalePWM(double,double)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'schedule(BooleanSupplier, Command)', - u: 'schedule(java.util.function.BooleanSupplier,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandGroup', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'ParallelCommandGroup', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'ParallelDeadlineGroup', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'ParallelRaceGroup', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'SequentialCommandGroup', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'schedule(Command)', - u: 'schedule(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'schedule(Command, BooleanSupplier)', - u: 'schedule(com.technototes.library.command.Command,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandButton', - l: 'schedule(Consumer)', - u: 'schedule(java.util.function.Consumer)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandButton', - l: 'schedule(Function)', - u: 'schedule(java.util.function.Function)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandAxis', - l: 'schedule(Function)', - u: 'schedule(java.util.function.Function)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleAfterOther(Command, Command)', - u: 'scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleAfterOther(Command, Command, BooleanSupplier)', - u: 'scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleDefault(Command, Subsystem)', - u: 'scheduleDefault(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleDpad(BiConsumer)', - u: 'scheduleDpad(java.util.function.BiConsumer)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleDpad(BiFunction)', - u: 'scheduleDpad(java.util.function.BiFunction)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...)', - u: 'scheduleForState(com.technototes.library.command.Command,java.util.function.BooleanSupplier,com.technototes.library.structure.CommandOpMode.OpModeState...)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleForState(Command, CommandOpMode.OpModeState...)', - u: 'scheduleForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState...)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleInit(Command)', - u: 'scheduleInit(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleInit(Command, BooleanSupplier)', - u: 'scheduleInit(com.technototes.library.command.Command,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleJoystick(Command)', - u: 'scheduleJoystick(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleJoystick(Command, BooleanSupplier)', - u: 'scheduleJoystick(com.technototes.library.command.Command,java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleLeftStick(BiConsumer)', - u: 'scheduleLeftStick(java.util.function.BiConsumer)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleLeftStick(BiFunction)', - u: 'scheduleLeftStick(java.util.function.BiFunction)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleOnce(Command)', - u: 'scheduleOnce(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleOnceForState(Command, CommandOpMode.OpModeState)', - u: 'scheduleOnceForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandAxis', - l: 'schedulePressed(Function)', - u: 'schedulePressed(java.util.function.Function)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleRightStick(BiConsumer)', - u: 'scheduleRightStick(java.util.function.BiConsumer)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleRightStick(BiFunction)', - u: 'scheduleRightStick(java.util.function.BiFunction)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleStick(Stick, BiConsumer)', - u: 'scheduleStick(com.technototes.library.control.Stick,java.util.function.BiConsumer)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandGamepad', - l: 'scheduleStick(Stick, BiFunction)', - u: 'scheduleStick(com.technototes.library.control.Stick,java.util.function.BiFunction)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleWithOther(Command, Command)', - u: 'scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'scheduleWithOther(Command, Command, BooleanSupplier)', - u: 'scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)', - }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'secondary' }, - { - p: 'com.technototes.library.util', - c: 'Alliance.Selector', - l: 'select(Alliance)', - u: 'select(com.technototes.library.util.Alliance)', - }, - { - p: 'com.technototes.library.util', - c: 'Alliance.Selector', - l: 'selectOf(Alliance, T, T)', - u: 'selectOf(com.technototes.library.util.Alliance,T,T)', - }, - { p: 'com.technototes.library.util', c: 'Alliance', l: 'selectOf(T, T)', u: 'selectOf(T,T)' }, - { - p: 'com.technototes.library.util', - c: 'Alliance.Selector', - l: 'Selector(T, T)', - u: '%3Cinit%3E(T,T)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'Sensor', - l: 'Sensor(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'Sensor', l: 'Sensor(T)', u: '%3Cinit%3E(T)' }, - { - p: 'com.technototes.library.command', - c: 'SequentialCommandGroup', - l: 'SequentialCommandGroup(Command...)', - u: '%3Cinit%3E(com.technototes.library.command.Command...)', - }, - { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'servo(int)' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'Servo', - l: 'Servo(Servo)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'HardwareBuilder', - l: 'servo(String)', - u: 'servo(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'Servo', - l: 'Servo(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ServoBuilder', - l: 'ServoBuilder(int)', - u: '%3Cinit%3E(int)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ServoBuilder', - l: 'ServoBuilder(Servo)', - u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'ServoBuilder', - l: 'ServoBuilder(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoGroup', - l: 'ServoGroup(Servo...)', - u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler', - l: 'ServoProfiler(Servo)', - u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo)', - }, - { - p: 'com.technototes.library.subsystem.servo', - c: 'ServoSubsystem', - l: 'ServoSubsystem(Servo)', - u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo)', - }, - { - p: 'com.technototes.library.subsystem.servo', - c: 'ServoSubsystem', - l: 'ServoSubsystem(Servo...)', - u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)', - }, - { p: 'com.technototes.library.util', c: 'Integral', l: 'set(double)' }, - { p: 'com.technototes.library.util', c: 'Differential', l: 'setAverageOutput(double)' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler', - l: 'setConstraints(double, double, double)', - u: 'setConstraints(double,double,double)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler', - l: 'setConstraints(ServoProfiler.Constraints)', - u: 'setConstraints(com.technototes.library.hardware.servo.ServoProfiler.Constraints)', - }, - { - p: 'com.technototes.library.subsystem', - c: 'Subsystem', - l: 'setDefaultCommand(Command)', - u: 'setDefaultCommand(com.technototes.library.command.Command)', - }, - { p: 'com.technototes.library.util', c: 'Differential', l: 'setDeviationOutput(double)' }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder', - l: 'setDirection(MotorEncoder.Direction)', - u: 'setDirection(com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction)', - }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'setEnabled(boolean)' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'setEnabled(boolean)' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'setEnabled(boolean)' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'setEnabled(boolean)' }, - { p: 'com.technototes.library.general', c: 'Enablable', l: 'setEnabled(boolean)' }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'setEncoder(Encoder)', - u: 'setEncoder(com.technototes.library.hardware.sensor.encoder.Encoder)', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'setHeading(double)' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'setHeading(double)' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'setIndex(int)' }, - { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'setInverted(boolean)' }, - { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'setInverted(boolean)' }, - { p: 'com.technototes.library.control', c: 'CommandButton', l: 'setInverted(boolean)' }, - { p: 'com.technototes.library.general', c: 'Invertable', l: 'setInverted(boolean)' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setInverted(boolean)' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'setInverted(boolean)' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'setInverted(boolean)' }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'setLimits(double, double)', - u: 'setLimits(double,double)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'Motor', - l: 'setLimits(double, double)', - u: 'setLimits(double,double)', - }, - { - p: 'com.technototes.library.util', - c: 'Differential', - l: 'setLimits(double, double)', - u: 'setLimits(double,double)', - }, - { - p: 'com.technototes.library.subsystem.motor', - c: 'EncodedMotorSubsystem', - l: 'setMaxSpeed(double)', - }, - { - p: 'com.technototes.library.command', - c: 'CommandScheduler', - l: 'setOpMode(CommandOpMode)', - u: 'setOpMode(com.technototes.library.structure.CommandOpMode)', - }, - { - p: 'com.technototes.library.util', - c: 'Differential', - l: 'setOutputs(double, double)', - u: 'setOutputs(double,double)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'setPIDFCoeffecients(double, double, double, double)', - u: 'setPIDFCoeffecients(double,double,double,double)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'setPIDFCoeffecients(PIDFCoefficients)', - u: 'setPIDFCoeffecients(com.qualcomm.robotcore.hardware.PIDFCoefficients)', - }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setPosition(double)' }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'setPosition(double)' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'setPosition(double)' }, - { - p: 'com.technototes.library.subsystem.motor', - c: 'EncodedMotorSubsystem', - l: 'setPosition(double)', - }, - { p: 'com.technototes.library.subsystem.servo', c: 'ServoSubsystem', l: 'setPosition(double)' }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'setPosition(double, double)', - u: 'setPosition(double,double)', - }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotorGroup', - l: 'setPosition(double, double)', - u: 'setPosition(double,double)', - }, - { - p: 'com.technototes.library.subsystem.motor', - c: 'EncodedMotorSubsystem', - l: 'setPosition(double, double)', - u: 'setPosition(double,double)', - }, - { - p: 'com.technototes.library.util', - c: 'Differential', - l: 'setPriority(Differential.DifferentialPriority)', - u: 'setPriority(com.technototes.library.util.Differential.DifferentialPriority)', - }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'setPriority(int)' }, - { - p: 'com.technototes.library.hardware.motor', - c: 'EncodedMotor', - l: 'setRunMode(DcMotor.RunMode)', - u: 'setRunMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', - }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'setServoRange(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setSpeed(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'setSpeed(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'setSpeed(double)' }, - { p: 'com.technototes.library.subsystem.motor', c: 'MotorSubsystem', l: 'setSpeed(double)' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'setState(Command.CommandState)', - u: 'setState(com.technototes.library.command.Command.CommandState)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler', - l: 'setTargetPosition(double)', - }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler', - l: 'setTargetTolerance(double)', - }, - { p: 'com.technototes.library.control', c: 'AxisBase', l: 'setTriggerThreshold(double)' }, - { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'setTriggerThreshold(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setVelocity(double)' }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'setVelocity(double)' }, - { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'setVolume(float)' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'share' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'SHARE' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor, Motor, Motor, Motor)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)', - }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'SimpleMecanumDrivebaseSubsystem(Motor, Motor, Motor, Motor)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)', - }, - { p: 'com.technototes.library.command', c: 'Command', l: 'sleep(double)' }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'sleep(DoubleSupplier)', - u: 'sleep(java.util.function.DoubleSupplier)', - }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'slider()' }, - { p: 'com.technototes.library.logger', c: 'Log.NumberSlider', l: 'sliderBackground()' }, - { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'SOME_ACTIVE' }, - { - p: 'com.technototes.library.hardware', - c: 'Speaker', - l: 'Speaker(float, String...)', - u: '%3Cinit%3E(float,java.lang.String...)', - }, - { - p: 'com.technototes.library.hardware', - c: 'Speaker', - l: 'Speaker(String...)', - u: '%3Cinit%3E(java.lang.String...)', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'square' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'SQUARE' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'start' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'START' }, - { - p: 'com.technototes.library.hardware', - c: 'Speaker', - l: 'start(String)', - u: 'start(java.lang.String)', - }, - { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'startAt(double)' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'startAt(double)' }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'STARTED' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'stateMap' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'stickButton' }, - { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'stop()' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'SimpleMecanumDrivebaseSubsystem', - l: 'stop()', - }, - { p: 'com.technototes.library.subsystem.drivebase', c: 'TankDrivebaseSubsystem', l: 'stop()' }, - { p: 'com.technototes.library.subsystem.motor', c: 'MotorSubsystem', l: 'stop()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'stopRumble()' }, - { - p: 'com.technototes.library.logger.entry', - c: 'StringEntry', - l: 'StringEntry(String, Supplier, int, Color, String, Color)', - u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,com.technototes.library.util.Color,java.lang.String,com.technototes.library.util.Color)', - }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'supplier' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'tag' }, - { - p: 'com.technototes.library.subsystem.drivebase', - c: 'TankDrivebaseSubsystem', - l: 'TankDrivebaseSubsystem(Motor, Motor)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)', - }, - { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'tare()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'tare()' }, - { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'telemetry' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'terminate()' }, - { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'terminateOpMode()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'tertiary' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'timeMap' }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'toggle(Command, Command)', - u: 'toggle(com.technototes.library.command.Command,com.technototes.library.command.Command)', - }, - { p: 'com.technototes.library.general', c: 'Enablable', l: 'toggleEnabled()' }, - { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'tolerance(int)' }, - { p: 'com.technototes.library.logger.entry', c: 'BooleanEntry', l: 'toString()' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'toString()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberBarEntry', l: 'toString()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberEntry', l: 'toString()' }, - { p: 'com.technototes.library.logger.entry', c: 'NumberSliderEntry', l: 'toString()' }, - { p: 'com.technototes.library.logger.entry', c: 'StringEntry', l: 'toString()' }, - { - p: 'com.technototes.library.hardware.servo', - c: 'ServoProfiler', - l: 'translateTargetPosition(double)', - }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'triangle' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'TRIANGLE' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'trueColor()' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'trueFormat()' }, - { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'trueValue()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'universalLoop()' }, - { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'up' }, - { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'update()' }, - { p: 'com.technototes.library.util', c: 'Integral', l: 'update(double)' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'uponInit()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'uponStart()' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'value()' }, - { p: 'com.technototes.library.logger', c: 'Log.Logs', l: 'value()' }, - { p: 'com.technototes.library.logger', c: 'LogConfig.Blacklist', l: 'value()' }, - { p: 'com.technototes.library.logger', c: 'LogConfig.Whitelist', l: 'value()' }, - { - p: 'com.technototes.library.command', - c: 'Command.CommandState', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.control', - c: 'Binding.Type', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase.Axis', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.control', - c: 'GamepadBase.Button', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder.Direction', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware.sensor', - c: 'IMU.AxesSigns', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.hardware2', - c: 'IMUBuilder.AxesSigns', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.structure', - c: 'CommandOpMode.OpModeState', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.util', - c: 'Alliance', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.util', - c: 'Color', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.library.util', - c: 'Differential.DifferentialPriority', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'values()' }, - { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'values()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'values()' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'values()' }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'MotorEncoder.Direction', - l: 'values()', - }, - { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'values()' }, - { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'values()' }, - { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'values()' }, - { p: 'com.technototes.library.util', c: 'Alliance', l: 'values()' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'values()' }, - { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'values()' }, - { - p: 'com.technototes.library.hardware2', - c: 'MotorBuilder', - l: 'velocity(PIDFCoefficients)', - u: 'velocity(com.qualcomm.robotcore.hardware.PIDFCoefficients)', - }, - { - p: 'com.technototes.library.command', - c: 'WaitCommand', - l: 'WaitCommand(double)', - u: '%3Cinit%3E(double)', - }, - { - p: 'com.technototes.library.command', - c: 'WaitCommand', - l: 'WaitCommand(DoubleSupplier)', - u: '%3Cinit%3E(java.util.function.DoubleSupplier)', - }, - { - p: 'com.technototes.library.command', - c: 'Command', - l: 'waitUntil(BooleanSupplier)', - u: 'waitUntil(java.util.function.BooleanSupplier)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whenInverseToggled(Command)', - u: 'whenInverseToggled(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whenPressed(Command)', - u: 'whenPressed(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whenPressedReleased(Command, Command)', - u: 'whenPressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whenReleased(Command)', - u: 'whenReleased(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whenToggled(Command)', - u: 'whenToggled(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whileInverseToggled(Command)', - u: 'whileInverseToggled(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whilePressed(Command)', - u: 'whilePressed(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whilePressedContinuous(Command)', - u: 'whilePressedContinuous(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whilePressedOnce(Command)', - u: 'whilePressedOnce(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whilePressedReleased(Command, Command)', - u: 'whilePressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whileReleased(Command)', - u: 'whileReleased(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whileReleasedOnce(Command)', - u: 'whileReleasedOnce(com.technototes.library.command.Command)', - }, - { - p: 'com.technototes.library.control', - c: 'CommandInput', - l: 'whileToggled(Command)', - u: 'whileToggled(com.technototes.library.command.Command)', - }, - { p: 'com.technototes.library.util', c: 'Color', l: 'WHITE' }, - { p: 'com.technototes.library.command', c: 'Command', l: 'withTimeout(double)' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'x' }, - { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'x' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'X' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'xAxis' }, - { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'y' }, - { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'Y' }, - { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'yAxis' }, - { p: 'com.technototes.library.util', c: 'Color', l: 'YELLOW' }, - { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'zero()' }, - { p: 'com.technototes.library.util', c: 'Integral', l: 'zero()' }, - { p: 'com.technototes.library.hardware.sensor.encoder', c: 'Encoder', l: 'zeroEncoder()' }, - { - p: 'com.technototes.library.hardware.sensor.encoder', - c: 'ExternalEncoder', - l: 'zeroEncoder()', - }, - { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'zeroEncoder()' }, -]; -updateSearchResults(); +memberSearchIndex = [{"p":"com.technototes.library.util","c":"SmartConsumer","l":"accept(T)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"addCommands(Command...)","u":"addCommands(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"additionalInitConditions()"},{"p":"com.technototes.library.command","c":"Command","l":"addRequirements(Subsystem...)","u":"addRequirements(com.technototes.library.subsystem.Subsystem...)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"addSongs(String...)","u":"addSongs(java.lang.String...)"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"ALL_ACTIVE"},{"p":"com.technototes.library.command","c":"Command","l":"alongWith(Command...)","u":"alongWith(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"alpha()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"analog(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"analog(String)","u":"analog(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"AnalogBuilder","l":"AnalogBuilder(AnalogSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogSensor)"},{"p":"com.technototes.library.hardware2","c":"AnalogBuilder","l":"AnalogBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"AnalogBuilder","l":"AnalogBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"AnalogSensor","l":"AnalogSensor(AnalogInput)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)"},{"p":"com.technototes.library.hardware.sensor","c":"AnalogSensor","l":"AnalogSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.command","c":"Command","l":"andThen(Command...)","u":"andThen(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"anyCancelled"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"apply(UnaryOperator)","u":"apply(java.util.function.UnaryOperator)"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"arcadeDrive(double, double)","u":"arcadeDrive(double,double)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"argb()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorSensor","l":"argb()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"argb()"},{"p":"com.technototes.library.command","c":"Command","l":"asConditional(BooleanSupplier)","u":"asConditional(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"at(double)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"AVERAGE"},{"p":"com.technototes.library.control","c":"AxisBase","l":"AxisBase(DoubleSupplier)","u":"%3Cinit%3E(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"AxisBase(DoubleSupplier, double)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,double)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"axisInstance(DoubleSupplier)","u":"axisInstance(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.util","c":"Color","l":"BLACK"},{"p":"com.technototes.library.util","c":"Alliance","l":"BLUE"},{"p":"com.technototes.library.util","c":"Color","l":"BLUE"},{"p":"com.technototes.library.util","c":"Characters","l":"BLUE_CIRCLE"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"blue()"},{"p":"com.technototes.library.logger.entry","c":"BooleanEntry","l":"BooleanEntry(String, Supplier, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String,java.lang.String)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"booleanSupplier"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"brake()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"brake()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"brake()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"build()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"build()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"ButtonBase(BooleanSupplier)","u":"%3Cinit%3E(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"buttonInstance(BooleanSupplier)","u":"buttonInstance(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"bVal"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"bVal"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"calculateA(double, double, double, double)","u":"calculateA(double,double,double,double)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"calculateS(double, double, double, double)","u":"calculateS(double,double,double,double)"},{"p":"com.technototes.library.command","c":"Command","l":"cancel()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"CANCELLED"},{"p":"com.technototes.library.command","c":"Command","l":"cancelUpon(BooleanSupplier)","u":"cancelUpon(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.logger","c":"Logger","l":"captionDivider"},{"p":"com.technototes.library.util","c":"Characters","l":"Characters()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.command","c":"ChoiceCommand","l":"ChoiceCommand(BooleanSupplier, Command)","u":"%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ChoiceCommand","l":"ChoiceCommand(Pair...)","u":"%3Cinit%3E(android.util.Pair...)"},{"p":"com.technototes.library.command","c":"Command","l":"clear()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"close()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"closestTo(double, double...)","u":"closestTo(double,double...)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"closestTo(double, int...)","u":"closestTo(double,int...)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"coast()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"coast()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"coast()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"codriverGamepad"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"color(String)","u":"color(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"ColorBuilder","l":"ColorBuilder(ColorSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)"},{"p":"com.technototes.library.hardware2","c":"ColorBuilder","l":"ColorBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"ColorDistanceSensor(ColorRangeSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"ColorDistanceSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"colorRange(String)","u":"colorRange(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"ColorRangeBuilder(ColorRangeSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"ColorRangeBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorSensor","l":"ColorSensor(ColorSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorSensor","l":"ColorSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"CommandAxis(DoubleSupplier)","u":"%3Cinit%3E(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"CommandAxis(DoubleSupplier, double)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,double)"},{"p":"com.technototes.library.command","c":"CommandBase","l":"CommandBase()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"CommandBinding(Binding.Type, CommandInput...)","u":"%3Cinit%3E(com.technototes.library.control.Binding.Type,com.technototes.library.control.CommandInput...)"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"CommandBinding(CommandInput...)","u":"%3Cinit%3E(com.technototes.library.control.CommandInput...)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"CommandButton(BooleanSupplier)","u":"%3Cinit%3E(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"CommandGamepad(Gamepad)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"CommandGroup(boolean, Command...)","u":"%3Cinit%3E(boolean,com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"commandMap"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"CommandOpMode()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"ConditionalCommand(BooleanSupplier)","u":"%3Cinit%3E(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"ConditionalCommand(BooleanSupplier, Command)","u":"%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"ConditionalCommand(BooleanSupplier, Command, Command)","u":"%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"constrain(double, double, double)","u":"constrain(double,double,double)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"constrain(int, int, int)","u":"constrain(int,int,int)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"Constraints(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"consume(T)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"countCancel"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"countCancel()"},{"p":"com.technototes.library.command","c":"Command","l":"create(Command, Subsystem...)","u":"create(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem...)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"create(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"create(String)","u":"create(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"crServo(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"crServo(String)","u":"crServo(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"CRServoBuilder(CRServo)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.CRServo)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"CRServoBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"CRServoBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.util","c":"Color","l":"CYAN"},{"p":"com.technototes.library.util","c":"Characters","l":"CYCLE"},{"p":"com.technototes.library.util","c":"Color","l":"DARK_GRAY"},{"p":"com.technototes.library.command","c":"Command","l":"deadline(Command...)","u":"deadline(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"DEFAULT_TRIGGER_THRESHOLD"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"degrees()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"degrees()"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"device"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"device"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"DeviceSubsystem(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"DIFFERENCE"},{"p":"com.technototes.library.util","c":"Differential","l":"Differential(DoubleConsumer, DoubleConsumer)","u":"%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer)"},{"p":"com.technototes.library.util","c":"Differential","l":"Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority)","u":"%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer,com.technototes.library.util.Differential.DifferentialPriority)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"digital(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"digital(String)","u":"digital(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"DigitalBuilder(DigitalChannel)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"DigitalBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"DigitalBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"DigitalSensor","l":"DigitalSensor(DigitalChannel)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)"},{"p":"com.technototes.library.hardware.sensor","c":"DigitalSensor","l":"DigitalSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"direction(DcMotorSimple.Direction)","u":"direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"direction(DcMotorSimple.Direction)","u":"direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"direction(Servo.Direction)","u":"direction(com.qualcomm.robotcore.hardware.Servo.Direction)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"disable()"},{"p":"com.technototes.library.general","c":"Enablable","l":"disable()"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"disable()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"disable()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"distance(String)","u":"distance(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"DistanceBuilder","l":"DistanceBuilder(DistanceSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)"},{"p":"com.technototes.library.hardware2","c":"DistanceBuilder","l":"DistanceBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"doubleSupplier"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"down"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpad"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadDown"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadLeft"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadRight"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadUp"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"drive(double, double)","u":"drive(double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"drive(double, double, double)","u":"drive(double,double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"drive(double, double, double, double)","u":"drive(double,double,double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"DrivebaseSubsystem(DoubleSupplier, Motor...)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"DrivebaseSubsystem(Motor...)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"driverGamepad"},{"p":"com.technototes.library.util","c":"Characters","l":"DUCK"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"DummyDevice(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.logger","c":"LogConfig.Run","l":"duringInit()"},{"p":"com.technototes.library.logger","c":"LogConfig.Run","l":"duringRun()"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"enable()"},{"p":"com.technototes.library.general","c":"Enablable","l":"enable()"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"enable()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"enable()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(String, Encoder)","u":"%3Cinit%3E(java.lang.String,com.technototes.library.hardware.sensor.encoder.Encoder)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(T, Encoder)","u":"%3Cinit%3E(T,com.technototes.library.hardware.sensor.encoder.Encoder)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"EncodedMotorGroup(EncodedMotor, Motor...)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"EncodedMotorSubsystem(EncodedMotor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"END"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"end()"},{"p":"com.technototes.library.command","c":"Command","l":"end(boolean)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"end(boolean)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"Entry(String, Supplier, int)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int)"},{"p":"com.technototes.library.command","c":"Command","l":"execute()"},{"p":"com.technototes.library.command","c":"CommandBase","l":"execute()"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"execute()"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"execute()"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"execute()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"EXECUTING"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"expandedPWM()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"expandedRange()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"ExternalEncoder(AnalogInput)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"ExternalEncoder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"falseValue()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"FINISHED"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"flMotor"},{"p":"com.technototes.library.logger","c":"Log","l":"format()"},{"p":"com.technototes.library.util","c":"Color","l":"format(Object)","u":"format(java.lang.Object)"},{"p":"com.technototes.library.util","c":"Color","l":"format(String, Object...)","u":"format(java.lang.String,java.lang.Object...)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"FORWARD"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"forward()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"forward()"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"forward()"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"frMotor"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"gain(float)"},{"p":"com.technototes.library.util","c":"Characters","l":"GAMEPAD"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"gamepad1"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"gamepad2"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"GamepadBase(Gamepad, Class, Class)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad,java.lang.Class,java.lang.Class)"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"GamepadDpad(T, T, T, T)","u":"%3Cinit%3E(T,T,T,T)"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"GamepadStick(T, T, U)","u":"%3Cinit%3E(T,T,U)"},{"p":"com.technototes.library.command","c":"Command","l":"get()"},{"p":"com.technototes.library.control","c":"Binding","l":"get()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"get()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"get()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"get()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"get()"},{"p":"com.technototes.library.control","c":"Binding","l":"get(Binding.Type)","u":"get(com.technototes.library.control.Binding.Type)"},{"p":"com.technototes.library.util","c":"Alliance","l":"get(Class)","u":"get(java.lang.Class)"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getAllDeviceList()"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getAllDevices()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"getAllDevices()"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"getAllDevices()"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"getAllDevices()"},{"p":"com.technototes.library.control","c":"Stick","l":"getAngle()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularOrientation()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularOrientation(AngleUnit)","u":"getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularVelocity()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularVelocity(AngleUnit)","u":"getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)"},{"p":"com.technototes.library.control","c":"Binding","l":"getAsBoolean()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"getAsBoolean()"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"getAsButton()"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"getAsButton(double)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"getAsDouble()"},{"p":"com.technototes.library.hardware","c":"Sensored","l":"getAsDouble()"},{"p":"com.technototes.library.util","c":"Differential","l":"getAverage()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getAxis(GamepadBase.Axis)","u":"getAxis(com.technototes.library.control.GamepadBase.Axis)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getAxisAsBoolean(GamepadBase.Axis)","u":"getAxisAsBoolean(com.technototes.library.control.GamepadBase.Axis)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getAxisAsDouble(GamepadBase.Axis)","u":"getAxisAsDouble(com.technototes.library.control.GamepadBase.Axis)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getButton(GamepadBase.Button)","u":"getButton(com.technototes.library.control.GamepadBase.Button)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getButtonAsBoolean(GamepadBase.Button)","u":"getButtonAsBoolean(com.technototes.library.control.GamepadBase.Button)"},{"p":"com.technototes.library.util","c":"Alliance","l":"getColor()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getConnectionInfo()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getCorrectedVelocity()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getCurrent(Subsystem)","u":"getCurrent(com.technototes.library.subsystem.Subsystem)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getCurrentPosition()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getCurrentPosition()"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"getCurrentSong()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getDefault(Subsystem)","u":"getDefault(com.technototes.library.subsystem.Subsystem)"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"getDefaultCommand()"},{"p":"com.technototes.library.control","c":"Binding","l":"getDefaultType()"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"getDefaultType()"},{"p":"com.technototes.library.util","c":"Differential","l":"getDeviation()"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"getDevice()"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"getDevice()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getDeviceName()"},{"p":"com.technototes.library.util","c":"Differential","l":"getDifferentialPriority()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getDirection()"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"getDistance()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"getDistance(DistanceUnit)","u":"getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"getDistance(DistanceUnit)","u":"getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"getDistance(DistanceUnit)","u":"getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.control","c":"Stick","l":"getDistanceFromCenter()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getDpad()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getEncoder()"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getFollowerist()"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getFollowers()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"getFollowers()"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"getFollowers()"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"getFollowers()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getGamepad()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"getGyro()"},{"p":"com.technototes.library.util","c":"Color","l":"getHexValue()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"getIndex()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getInstance()"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"getInstance()"},{"p":"com.technototes.library.control","c":"CommandButton","l":"getInstance()"},{"p":"com.technototes.library.control","c":"CommandInput","l":"getInstance()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"getInverted()"},{"p":"com.technototes.library.general","c":"Invertable","l":"getInverted()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"getInverted()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"getInverted()"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"getLast()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getLeftStick()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"getLight()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"getLogger()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getManufacturer()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"getMap()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"getMax(double...)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"getMax(int...)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getMaxAccel()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"getMaxAcceleration()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getMaxVel()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"getMaxVelocity()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"getMultiplier()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"getName()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getOpModeRuntime()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"getOpModeRuntime()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"getOpModeState()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"Encoder","l":"getPosition()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"getPosition()"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"getPosition()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"getPriority()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"getProportion()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getRawVelocity()"},{"p":"com.technototes.library.command","c":"Command","l":"getRequirements()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getRightStick()"},{"p":"com.technototes.library.command","c":"Command","l":"getRuntime()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"getScale(double...)"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"getSeconds()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.sensor","c":"AnalogSensor","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getSensorValue()"},{"p":"com.technototes.library.hardware","c":"Sensored","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getServo()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getSpeed()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"getSpeed()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"getSpeed()"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"getSpeed()"},{"p":"com.technototes.library.command","c":"Command","l":"getState()"},{"p":"com.technototes.library.control","c":"Binding","l":"getSuppliers()"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"getSuppliers()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getTargetPosition()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getTargetTolerance()"},{"p":"com.technototes.library.control","c":"AxisBase","l":"getTriggerThreshold()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"getUnit()"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"getUnit()"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"getUnit()"},{"p":"com.technototes.library.hardware.sensor","c":"DigitalSensor","l":"getValue()"},{"p":"com.technototes.library.util","c":"Integral","l":"getValue()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getVelocity()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getVersion()"},{"p":"com.technototes.library","c":"RobotLibrary","l":"getVersion()"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"getVolume()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"getXAxis()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"getXAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getXAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getXSupplier()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"getYAxis()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"getYAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getYAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getYSupplier()"},{"p":"com.technototes.library.util","c":"Color","l":"GREEN"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"green()"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"gyroHeading()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeading()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeading(AngleUnit)","u":"gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"gyroHeadingInDegrees()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeadingInDegrees()"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"gyroHeadingInRadians()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeadingInRadians()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"gyroSupplier"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"HardwareBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"HardwareBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"HardwareBuilder(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"HardwareDevice(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"HardwareDevice(T)","u":"%3Cinit%3E(T)"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"hardwareMap"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"hardwareMap"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"hsv()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"hsvArray()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"hue()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"idle(DcMotor.ZeroPowerBehavior)","u":"idle(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"ignoreCancel()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(IMU, IMU.Parameters)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.robotcore.hardware.IMU.Parameters)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"imu(String)","u":"imu(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(String, IMU.Parameters)","u":"%3Cinit%3E(java.lang.String,com.qualcomm.robotcore.hardware.IMU.Parameters)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)","u":"%3Cinit%3E(java.lang.String,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"IMUBuilder(BNO055IMUImpl)","u":"%3Cinit%3E(com.qualcomm.hardware.bosch.BNO055IMUImpl)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"IMUBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"incrementPosition(double)"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"index()"},{"p":"com.technototes.library.logger","c":"Log","l":"index()"},{"p":"com.technototes.library.logger","c":"Log.Number","l":"index()"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"INIT"},{"p":"com.technototes.library.logger","c":"Logger","l":"initEntries"},{"p":"com.technototes.library.command","c":"Command","l":"initialize()"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"initialize()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"initialize(IMU.Parameters)","u":"initialize(com.qualcomm.robotcore.hardware.IMU.Parameters)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"INITIALIZING"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"initLoop()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"initMap(HardwareMap)","u":"initMap(com.qualcomm.robotcore.hardware.HardwareMap)"},{"p":"com.technototes.library.logger","c":"Logger","l":"initUpdate()"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"input()"},{"p":"com.technototes.library.util","c":"Range","l":"inRange(double)"},{"p":"com.technototes.library.util","c":"Integral","l":"Integral()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.util","c":"Integral","l":"Integral(double)","u":"%3Cinit%3E(double)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"INTERRUPTED"},{"p":"com.technototes.library.general","c":"Invertable","l":"invert()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"invert()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"invert()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"invert()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"isAtPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"isAtTarget()"},{"p":"com.technototes.library.command","c":"Command","l":"isCancelled()"},{"p":"com.technototes.library.general","c":"Enablable","l":"isDisabled()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isEnabled()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"isEnabled()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"isEnabled()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"isEnabled()"},{"p":"com.technototes.library.general","c":"Enablable","l":"isEnabled()"},{"p":"com.technototes.library.command","c":"Command","l":"isFinished()"},{"p":"com.technototes.library.command","c":"CommandBase","l":"isFinished()"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ParallelCommandGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ParallelDeadlineGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ParallelRaceGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"isFinished()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isInverseToggled()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustInverseToggled()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustPressed()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustReleased()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustToggled()"},{"p":"com.technototes.library","c":"RobotLibrary","l":"isPreRelease()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isPressed()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"isPrime(int)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isReleased()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"isRumbling()"},{"p":"com.technototes.library.command","c":"Command","l":"isRunning()"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"isState(CommandOpMode.OpModeState...)","u":"isState(com.technototes.library.structure.CommandOpMode.OpModeState...)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isToggled()"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, BooleanSupplier)","u":"%3Cinit%3E(java.util.function.Function,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, int)","u":"%3Cinit%3E(java.util.function.Function,int)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, int, BooleanSupplier)","u":"%3Cinit%3E(java.util.function.Function,int,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, T, T, Function)","u":"%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, T, T, Function, BooleanSupplier)","u":"%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"joystickDrive(double, double, double)","u":"joystickDrive(double,double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"joystickDriveWithGyro(double, double, double, double)","u":"joystickDriveWithGyro(double,double,double,double)"},{"p":"com.technototes.library.command","c":"Command","l":"justFinished()"},{"p":"com.technototes.library.command","c":"Command","l":"justFinishedNoCancel()"},{"p":"com.technototes.library.command","c":"Command","l":"justStarted()"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"lastCommand"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"led(boolean)"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"left"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"LEFT_BUMPER"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"LEFT_STICK_BUTTON"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"LEFT_STICK_X"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"LEFT_STICK_Y"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"LEFT_TRIGGER"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftBumper"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"leftSide"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStick"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStickButton"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStickX"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStickY"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftTrigger"},{"p":"com.technototes.library.util","c":"Color","l":"LIGHT_GRAY"},{"p":"com.technototes.library.util","c":"Color","l":"LIME"},{"p":"com.technototes.library.logger","c":"Logger","l":"Logger(OpMode)","u":"%3Cinit%3E(com.qualcomm.robotcore.eventloop.opmode.OpMode)"},{"p":"com.technototes.library.util","c":"Color","l":"MAGENTA"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"map"},{"p":"com.technototes.library.util","c":"MathUtils","l":"map(double, double, double, double, double)","u":"map(double,double,double,double,double)"},{"p":"com.technototes.library.util","c":"MapUtils","l":"MapUtils()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"MathUtils()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.util","c":"Range","l":"max"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"maxAcceleration"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"maxSpeed"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"maxVelocity"},{"p":"com.technototes.library.util","c":"Range","l":"middle()"},{"p":"com.technototes.library.util","c":"Range","l":"min"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"mode(DcMotor.RunMode)","u":"mode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"mode(DigitalChannel.Mode)","u":"mode(com.qualcomm.robotcore.hardware.DigitalChannel.Mode)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"motor(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"motor(String)","u":"motor(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"Motor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"Motor(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"MotorBuilder(DcMotorEx)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"MotorBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"MotorBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(DcMotorEx)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(DcMotorEx, ElapsedTime)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx,com.qualcomm.robotcore.util.ElapsedTime)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(EncodedMotor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"MotorGroup(Motor...)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"MotorSubsystem(T)","u":"%3Cinit%3E(T)"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"msStuckDetectStop"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"name"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"name()"},{"p":"com.technototes.library.logger","c":"Log","l":"name()"},{"p":"com.technototes.library.logger","c":"Log.Number","l":"name()"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"NEUTRAL"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NNN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NNN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NNP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NNP"},{"p":"com.technototes.library.util","c":"Color","l":"NO_COLOR"},{"p":"com.technototes.library.util","c":"Alliance","l":"NONE"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"NONE_ACTIVE"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NPN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NPN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NPP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NPP"},{"p":"com.technototes.library.logger.entry","c":"NumberEntry","l":"numberColor"},{"p":"com.technototes.library.logger.entry","c":"NumberEntry","l":"NumberEntry(String, Supplier, int)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int)"},{"p":"com.technototes.library.util","c":"MapUtils","l":"of(Pair...)","u":"of(android.util.Pair...)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"of(T, T)","u":"of(T,T)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"offset"},{"p":"com.technototes.library.command","c":"Command","l":"onlyIf(BooleanSupplier)","u":"onlyIf(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"onRange(double, double)","u":"onRange(double,double)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"onUnit(DistanceUnit)","u":"onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"onUnit(DistanceUnit)","u":"onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"onUnit(DistanceUnit)","u":"onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.util","c":"Color","l":"ORANGE"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"output()"},{"p":"com.technototes.library.command","c":"ParallelCommandGroup","l":"ParallelCommandGroup(Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"ParallelDeadlineGroup","l":"ParallelDeadlineGroup(Command, Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command,com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"ParallelRaceGroup","l":"ParallelRaceGroup(Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"parameter(Consumer)","u":"parameter(java.util.function.Consumer)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"periodic()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"periodic()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"periodic()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"periodic()"},{"p":"com.technototes.library.general","c":"Periodic","l":"periodic()"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"periodic()"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"periodic()"},{"p":"com.technototes.library.util","c":"Color","l":"PINK"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PNN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PNN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PNP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PNP"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"position(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"positionThreshold"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PPN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PPN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PPP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PPP"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"priority"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"priority()"},{"p":"com.technototes.library.logger","c":"Log.Number","l":"priority()"},{"p":"com.technototes.library.logger","c":"Log","l":"priority()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"product"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"propagate(double)"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"proportion"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_circle"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_CIRCLE"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_cross"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_CROSS"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_options"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_OPTIONS"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_share"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_SHARE"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_square"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_SQUARE"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_triangle"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_TRIANGLE"},{"p":"com.technototes.library.util","c":"Color","l":"PURPLE"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"pwmRange(double, double)","u":"pwmRange(double,double)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"pythag(double...)"},{"p":"com.technototes.library.command","c":"Command","l":"raceWith(Command...)","u":"raceWith(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"radians()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"radians()"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"range(double, double)","u":"range(double,double)"},{"p":"com.technototes.library.util","c":"Range","l":"Range(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"raw()"},{"p":"com.technototes.library.util","c":"Alliance","l":"RED"},{"p":"com.technototes.library.util","c":"Color","l":"RED"},{"p":"com.technototes.library.util","c":"Characters","l":"RED_SQUARE"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"red()"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"register()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"register(Periodic)","u":"register(com.technototes.library.general.Periodic)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"remap(AxesOrder, IMUBuilder.AxesSigns)","u":"remap(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware2.IMUBuilder.AxesSigns)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"remapAxesAndSigns(AxesOrder, IMU.AxesSigns)","u":"remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"remapLegacyAxes(AxesOrder, IMU.AxesSigns)","u":"remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)"},{"p":"com.technototes.library.logger","c":"Logger","l":"repeat(String, int)","u":"repeat(java.lang.String,int)"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"requestOpModeStop()"},{"p":"com.technototes.library.command","c":"Command","l":"requirementMap"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"RESET"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"reset()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"resetDeviceConfigurationForOpMode()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"resetScheduler()"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"Rev2MDistanceSensor(DistanceSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"Rev2MDistanceSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"REVERSE"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"reverse()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"reverse()"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"reverse()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"rgb()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"right"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"RIGHT_BUMPER"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"RIGHT_STICK_BUTTON"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"RIGHT_STICK_X"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"RIGHT_STICK_Y"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"RIGHT_TRIGGER"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightBumper"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"rightSide"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStick"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStickButton"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStickX"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStickY"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightTrigger"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"rlMotor"},{"p":"com.technototes.library","c":"RobotLibrary","l":"RobotLibrary()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"rrMotor"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumble()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumble(double)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumbleBlip()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumbleBlips(int)"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"RUN"},{"p":"com.technototes.library.command","c":"Command","l":"run()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"run()"},{"p":"com.technototes.library.logger","c":"Logger","l":"runEntries"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"runLoop()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"runOpMode()"},{"p":"com.technototes.library.logger","c":"Logger","l":"runUpdate()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"saturation()"},{"p":"com.technototes.library.util","c":"Range","l":"scale(double)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"scalePWM(double, double)","u":"scalePWM(double,double)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"schedule(BooleanSupplier, Command)","u":"schedule(java.util.function.BooleanSupplier,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ParallelCommandGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ParallelDeadlineGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ParallelRaceGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"schedule(Command, BooleanSupplier)","u":"schedule(com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"schedule(Consumer)","u":"schedule(java.util.function.Consumer)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"schedule(Function)","u":"schedule(java.util.function.Function)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"schedule(Function)","u":"schedule(java.util.function.Function)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleAfterOther(Command, Command)","u":"scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleAfterOther(Command, Command, BooleanSupplier)","u":"scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleDefault(Command, Subsystem)","u":"scheduleDefault(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleDpad(BiConsumer)","u":"scheduleDpad(java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleDpad(BiFunction)","u":"scheduleDpad(java.util.function.BiFunction)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...)","u":"scheduleForState(com.technototes.library.command.Command,java.util.function.BooleanSupplier,com.technototes.library.structure.CommandOpMode.OpModeState...)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleForState(Command, CommandOpMode.OpModeState...)","u":"scheduleForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState...)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleInit(Command)","u":"scheduleInit(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleInit(Command, BooleanSupplier)","u":"scheduleInit(com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleJoystick(Command)","u":"scheduleJoystick(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleJoystick(Command, BooleanSupplier)","u":"scheduleJoystick(com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleLeftStick(BiConsumer)","u":"scheduleLeftStick(java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleLeftStick(BiFunction)","u":"scheduleLeftStick(java.util.function.BiFunction)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleOnce(Command)","u":"scheduleOnce(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleOnceForState(Command, CommandOpMode.OpModeState)","u":"scheduleOnceForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"schedulePressed(Function)","u":"schedulePressed(java.util.function.Function)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleRightStick(BiConsumer)","u":"scheduleRightStick(java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleRightStick(BiFunction)","u":"scheduleRightStick(java.util.function.BiFunction)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleStick(Stick, BiConsumer)","u":"scheduleStick(com.technototes.library.control.Stick,java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleStick(Stick, BiFunction)","u":"scheduleStick(com.technototes.library.control.Stick,java.util.function.BiFunction)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleWithOther(Command, Command)","u":"scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleWithOther(Command, Command, BooleanSupplier)","u":"scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"select(Alliance)","u":"select(com.technototes.library.util.Alliance)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"selectOf(Alliance, T, T)","u":"selectOf(com.technototes.library.util.Alliance,T,T)"},{"p":"com.technototes.library.util","c":"Alliance","l":"selectOf(T, T)","u":"selectOf(T,T)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"Selector(T, T)","u":"%3Cinit%3E(T,T)"},{"p":"com.technototes.library.hardware.sensor","c":"Sensor","l":"Sensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"Sensor","l":"Sensor(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"SequentialCommandGroup(Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"servo(int)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"Servo(Servo)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"servo(String)","u":"servo(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"Servo(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"ServoBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"ServoBuilder(Servo)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"ServoBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"ServoGroup(Servo...)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"ServoProfiler(Servo)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo)"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"ServoSubsystem(Servo)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo)"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"ServoSubsystem(Servo...)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)"},{"p":"com.technototes.library.util","c":"Integral","l":"set(double)"},{"p":"com.technototes.library.util","c":"Differential","l":"setAverageOutput(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setConstraints(double, double, double)","u":"setConstraints(double,double,double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setConstraints(ServoProfiler.Constraints)","u":"setConstraints(com.technototes.library.hardware.servo.ServoProfiler.Constraints)"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"setDefaultCommand(Command)","u":"setDefaultCommand(com.technototes.library.command.Command)"},{"p":"com.technototes.library.util","c":"Differential","l":"setDeviationOutput(double)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"setDirection(MotorEncoder.Direction)","u":"setDirection(com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"setEnabled(boolean)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"setEnabled(boolean)"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"setEnabled(boolean)"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"setEnabled(boolean)"},{"p":"com.technototes.library.general","c":"Enablable","l":"setEnabled(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setEncoder(Encoder)","u":"setEncoder(com.technototes.library.hardware.sensor.encoder.Encoder)"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"setHeading(double)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"setHeading(double)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"setIndex(int)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"setInverted(boolean)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"setInverted(boolean)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"setInverted(boolean)"},{"p":"com.technototes.library.general","c":"Invertable","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setLimits(double, double)","u":"setLimits(double,double)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"setLimits(double, double)","u":"setLimits(double,double)"},{"p":"com.technototes.library.util","c":"Differential","l":"setLimits(double, double)","u":"setLimits(double,double)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"setMaxSpeed(double)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"setOpMode(CommandOpMode)","u":"setOpMode(com.technototes.library.structure.CommandOpMode)"},{"p":"com.technototes.library.util","c":"Differential","l":"setOutputs(double, double)","u":"setOutputs(double,double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPIDFCoeffecients(double, double, double, double)","u":"setPIDFCoeffecients(double,double,double,double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPIDFCoeffecients(PIDFCoefficients)","u":"setPIDFCoeffecients(com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"setPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"setPosition(double)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"setPosition(double)"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"setPosition(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"com.technototes.library.util","c":"Differential","l":"setPriority(Differential.DifferentialPriority)","u":"setPriority(com.technototes.library.util.Differential.DifferentialPriority)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"setPriority(int)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setRunMode(DcMotor.RunMode)","u":"setRunMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setServoRange(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setSpeed(double)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"setSpeed(double)"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"setSpeed(double)"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"setSpeed(double)"},{"p":"com.technototes.library.command","c":"Command","l":"setState(Command.CommandState)","u":"setState(com.technototes.library.command.Command.CommandState)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setTargetPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setTargetTolerance(double)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"setTriggerThreshold(double)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"setTriggerThreshold(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setVelocity(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"setVelocity(double)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"setVolume(float)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor, Motor, Motor, Motor)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"SimpleMecanumDrivebaseSubsystem(Motor, Motor, Motor, Motor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)"},{"p":"com.technototes.library.command","c":"Command","l":"sleep(double)"},{"p":"com.technototes.library.command","c":"Command","l":"sleep(DoubleSupplier)","u":"sleep(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"SOME_ACTIVE"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"Speaker(float, String...)","u":"%3Cinit%3E(float,java.lang.String...)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"Speaker(String...)","u":"%3Cinit%3E(java.lang.String...)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"start(String)","u":"start(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"startAt(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"startAt(double)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"STARTED"},{"p":"com.technototes.library.command","c":"Command","l":"stateMap"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"stickButton"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"stop()"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"stop()"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"stop()"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"stop()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"stopRumble()"},{"p":"com.technototes.library.logger.entry","c":"StringEntry","l":"StringEntry(String, Supplier, int, String)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"supplier"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"TankDrivebaseSubsystem(Motor, Motor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"tare()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"tare()"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"telemetry"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"terminate()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"terminateOpMode()"},{"p":"com.technototes.library.command","c":"Command","l":"timeMap"},{"p":"com.technototes.library.control","c":"CommandInput","l":"toggle(Command, Command)","u":"toggle(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.general","c":"Enablable","l":"toggleEnabled()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"tolerance(int)"},{"p":"com.technototes.library.logger.entry","c":"BooleanEntry","l":"toString()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"toString()"},{"p":"com.technototes.library.logger.entry","c":"NumberEntry","l":"toString()"},{"p":"com.technototes.library.logger.entry","c":"StringEntry","l":"toString()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"translateTargetPosition(double)"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"trueValue()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"universalLoop()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"up"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"update()"},{"p":"com.technototes.library.util","c":"Integral","l":"update(double)"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"uponInit()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"uponStart()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"value()"},{"p":"com.technototes.library.logger","c":"Log.Logs","l":"value()"},{"p":"com.technototes.library.logger","c":"LogConfig.AllowList","l":"value()"},{"p":"com.technototes.library.logger","c":"LogConfig.DenyList","l":"value()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.util","c":"Alliance","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.util","c":"Color","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"values()"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"values()"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"values()"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"values()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"values()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"values()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"values()"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"values()"},{"p":"com.technototes.library.util","c":"Alliance","l":"values()"},{"p":"com.technototes.library.util","c":"Color","l":"values()"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"values()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"velocity(PIDFCoefficients)","u":"velocity(com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"WaitCommand(double)","u":"%3Cinit%3E(double)"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"WaitCommand(DoubleSupplier)","u":"%3Cinit%3E(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.command","c":"Command","l":"waitUntil(BooleanSupplier)","u":"waitUntil(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenInverseToggled(Command)","u":"whenInverseToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenPressed(Command)","u":"whenPressed(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenPressedReleased(Command, Command)","u":"whenPressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenReleased(Command)","u":"whenReleased(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenToggled(Command)","u":"whenToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileInverseToggled(Command)","u":"whileInverseToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressed(Command)","u":"whilePressed(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressedContinuous(Command)","u":"whilePressedContinuous(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressedOnce(Command)","u":"whilePressedOnce(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressedReleased(Command, Command)","u":"whilePressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileReleased(Command)","u":"whileReleased(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileReleasedOnce(Command)","u":"whileReleasedOnce(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileToggled(Command)","u":"whileToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.util","c":"Color","l":"WHITE"},{"p":"com.technototes.library.command","c":"Command","l":"withTimeout(double)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"x"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"xAxis"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_a"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_A"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_b"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_B"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_back"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_BACK"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_start"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_START"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_x"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_X"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_y"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_Y"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"yAxis"},{"p":"com.technototes.library.util","c":"Color","l":"YELLOW"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"zero()"},{"p":"com.technototes.library.util","c":"Integral","l":"zero()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"Encoder","l":"zeroEncoder()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"zeroEncoder()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"zeroEncoder()"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/TechnoLib/module-search-index.js b/docs/TechnoLib/module-search-index.js index a6f96499..0d59754f 100644 --- a/docs/TechnoLib/module-search-index.js +++ b/docs/TechnoLib/module-search-index.js @@ -1,2 +1 @@ -moduleSearchIndex = []; -updateSearchResults(); +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/TechnoLib/overview-summary.html b/docs/TechnoLib/overview-summary.html index db00b11a..7bc09700 100644 --- a/docs/TechnoLib/overview-summary.html +++ b/docs/TechnoLib/overview-summary.html @@ -1,27 +1,25 @@ - + - - - RobotLibrary API - - - - - - - - - - -
    - -

    index.html

    -
    - + + +RobotLibrary API + + + + + + + + + + +
    + +

    index.html

    +
    + diff --git a/docs/TechnoLib/overview-tree.html b/docs/TechnoLib/overview-tree.html index b7bc433e..541f2f17 100644 --- a/docs/TechnoLib/overview-tree.html +++ b/docs/TechnoLib/overview-tree.html @@ -1,1498 +1,306 @@ - + - - - Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    -
      -
    • - java.util.function.BooleanSupplier -
        -
      • - com.technototes.library.control.Binding<T> -
      • -
      • - com.technototes.library.control.CommandInput<T> -
      • -
      -
    • -
    • - java.util.function.DoubleSupplier -
        -
      • - com.technototes.library.hardware.Sensored -
          -
        • - com.technototes.library.hardware.sensor.encoder.Encoder -
        • -
        -
      • -
      -
    • -
    • - com.technototes.library.general.Enablable<T> -
        -
      • - com.technototes.library.control.Stick - (also extends com.technototes.library.general.Periodic) -
      • -
      -
    • -
    • - com.technototes.library.hardware.HardwareDeviceGroup<T> -
    • -
    • - com.technototes.library.hardware.sensor.IColorSensor -
    • -
    • - com.technototes.library.hardware.sensor.IDistanceSensor -
    • -
    • - com.technototes.library.hardware.sensor.IGyro -
    • -
    • - com.technototes.library.hardware.sensor.ILightSensor -
    • -
    • - com.technototes.library.general.Invertable<T> -
    • -
    • - com.technototes.library.logger.Loggable -
    • -
    • - com.technototes.library.general.Periodic -
        -
      • - com.technototes.library.control.Stick - (also extends com.technototes.library.general.Enablable<T>) -
      • -
      • - com.technototes.library.subsystem.Subsystem -
      • -
      -
    • -
    • - java.lang.Runnable -
        -
      • - com.technototes.library.command.Command - (also extends java.util.function.Supplier<T>) -
      • -
      -
    • -
    • - com.technototes.library.util.SmartConsumer<T> -
    • -
    • - java.util.function.Supplier<T> -
        -
      • - com.technototes.library.command.Command - (also extends java.lang.Runnable) -
      • -
      -
    • -
    -
    -
    -

    Annotation Interface Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - + + +Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Class Hierarchy

    + +
    +
    +

    Interface Hierarchy

    + +
    +
    +

    Annotation Interface Hierarchy

    + +
    +
    +

    Enum Class Hierarchy

    + +
    +
    +
    +
    + diff --git a/docs/TechnoLib/package-search-index.js b/docs/TechnoLib/package-search-index.js index a587d2d3..3d70a1b1 100644 --- a/docs/TechnoLib/package-search-index.js +++ b/docs/TechnoLib/package-search-index.js @@ -1,22 +1 @@ -packageSearchIndex = [ - { l: 'All Packages', u: 'allpackages-index.html' }, - { l: 'com.technototes.library' }, - { l: 'com.technototes.library.command' }, - { l: 'com.technototes.library.control' }, - { l: 'com.technototes.library.general' }, - { l: 'com.technototes.library.hardware' }, - { l: 'com.technototes.library.hardware.motor' }, - { l: 'com.technototes.library.hardware.sensor' }, - { l: 'com.technototes.library.hardware.sensor.encoder' }, - { l: 'com.technototes.library.hardware.servo' }, - { l: 'com.technototes.library.hardware2' }, - { l: 'com.technototes.library.logger' }, - { l: 'com.technototes.library.logger.entry' }, - { l: 'com.technototes.library.structure' }, - { l: 'com.technototes.library.subsystem' }, - { l: 'com.technototes.library.subsystem.drivebase' }, - { l: 'com.technototes.library.subsystem.motor' }, - { l: 'com.technototes.library.subsystem.servo' }, - { l: 'com.technototes.library.util' }, -]; -updateSearchResults(); +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.technototes.library"},{"l":"com.technototes.library.command"},{"l":"com.technototes.library.control"},{"l":"com.technototes.library.general"},{"l":"com.technototes.library.hardware"},{"l":"com.technototes.library.hardware.motor"},{"l":"com.technototes.library.hardware.sensor"},{"l":"com.technototes.library.hardware.sensor.encoder"},{"l":"com.technototes.library.hardware.servo"},{"l":"com.technototes.library.hardware2"},{"l":"com.technototes.library.logger"},{"l":"com.technototes.library.logger.entry"},{"l":"com.technototes.library.structure"},{"l":"com.technototes.library.subsystem"},{"l":"com.technototes.library.subsystem.drivebase"},{"l":"com.technototes.library.subsystem.motor"},{"l":"com.technototes.library.subsystem.servo"},{"l":"com.technototes.library.util"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/TechnoLib/script.js b/docs/TechnoLib/script.js index a6efd285..864989cf 100644 --- a/docs/TechnoLib/script.js +++ b/docs/TechnoLib/script.js @@ -29,106 +29,104 @@ var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); + createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); } function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); } function show(tableId, selected, columns) { - if (tableId !== selected) { - document - .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function (elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected).forEach(function (elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); } function updateTabs(tableId, selected) { - document - .querySelector('div#' + tableId + ' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex', 0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex', -1); - } - }); + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); } function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } } - } } -var updateSearchResults = function () {}; +var updateSearchResults = function() {}; function indexFilesLoaded() { - return ( - moduleSearchIndex && - packageSearchIndex && - typeSearchIndex && - memberSearchIndex && - tagSearchIndex - ); + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; } // Workaround for scroll position not being included in browser history (8249133) -document.addEventListener('DOMContentLoaded', function (e) { - var contentDiv = document.querySelector('div.flex-content'); - window.addEventListener('popstate', function (e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener('hashchange', function (e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener('scroll', function (e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function () { +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); } - }); - if (!location.hash) { - history.replaceState(contentDiv.scrollTop, document.title); - } }); diff --git a/docs/TechnoLib/search.js b/docs/TechnoLib/search.js index 3ba91721..db3b2f4a 100644 --- a/docs/TechnoLib/search.js +++ b/docs/TechnoLib/search.js @@ -23,354 +23,332 @@ * questions. */ -var noResult = { l: 'No results found' }; -var loading = { l: 'Loading search index...' }; -var catModules = 'Modules'; -var catPackages = 'Packages'; -var catTypes = 'Classes and Interfaces'; -var catMembers = 'Members'; -var catSearchTags = 'Search Tags'; -var highlight = '$&'; -var searchPattern = ''; -var fallbackPattern = ''; +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; var RANKING_THRESHOLD = 2; var NO_MATCH = 0xffff; var MIN_RESULTS = 3; var MAX_RESULTS = 500; -var UNNAMED = ''; +var UNNAMED = ""; function escapeHtml(str) { - return str.replace(//g, '>'); + return str.replace(//g, ">"); } function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight); - } - return highlighted; + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; } function getURLPrefix(ui) { - var urlPrefix = ''; - var slash = '/'; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function (index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); } - }); } - } - return urlPrefix; + return urlPrefix; } function createSearchPattern(term) { - var pattern = ''; - var isWordToken = false; - term - .replace(/,\s*/g, ', ') - .trim() - .split(/\s+/) - .forEach(function (w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; - } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === '') { - continue; + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += '([a-z0-9_$<>\\[\\]]*?)'; + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } } - } }); - return pattern; + return pattern; } function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); } var watermark = 'Search'; -$(function () { - var search = $('#search-input'); - var reset = $('#reset-button'); - search.val(''); - search.prop('disabled', false); - reset.prop('disabled', false); - search.val(watermark).addClass('watermark'); - search.blur(function () { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function () { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function () { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget('custom.catcomplete', $.ui.autocomplete, { - _create: function () { - this._super(); - this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); - }, - _renderMenu: function (ul, items) { - var rMenu = this; - var currentCategory = ''; - rMenu.menu.bindings = $(); - $.each(items, function (index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append('
  • ' + item.category + '
  • '); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr('aria-label', item.category + ' : ' + item.l); - li.attr('class', 'result-item'); - } else { - li.attr('aria-label', item.l); - li.attr('class', 'result-item'); - } +$(function() { + var search = $("#search-input"); + var reset = $("#reset-button"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } }); - }, - _renderItem: function (ul, item) { - var label = ''; - var matcher = createMatcher(escapeHtml(searchPattern), 'g'); - var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $('
  • ').appendTo(ul); - var div = $('
    ').appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html( - label + - ' (' + - item.h + - ')
    ' + - item.d + - '
    ', - ); - } else { - div.html(label + ' (' + item.h + ')'); - } - } else { - if (item.m) { - div.html(item.m + '/' + label); - } else { - div.html(label); - } + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + item.category + "
  • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
    " + + item.d + "
    "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; } - return li; - }, }); function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { - leftBoundaryMatch = 0; - } else if ( - '_' === input[index - 1] || - (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) - ) { - leftBoundaryMatch = 1; - } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf('('); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? '/' : '.'; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; } - } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) delta += match[i].length; - } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) delta += 5; - } - return leftBoundaryMatch + periferalMatch + delta / 200; + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + } function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === '') { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ''); - var fallbackMatcher = new RegExp(fallbackPattern, 'i'); + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ ranking: ranking, item: item }); + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); } - return newResults.length <= MAX_RESULTS; - }); - return newResults - .sort(function (e1, e2) { - return e1.ranking - e2.ranking; - }) - .map(function (e) { - return e.item; - }); + return []; } - return []; - } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher( - indexArray, - fallbackMatcher, - category, - nameFunc, - ); - result = result.concat( - secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - }), - ); + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } } - } - searchIndex(moduleSearchIndex, catModules, function (item) { - return item.l; - }); - searchIndex(packageSearchIndex, catPackages, function (item) { - return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function (item) { - return item.l; - }); + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); - if (!indexFilesLoaded()) { - updateSearchResults = function () { - doSearch(request, response); - }; - result.unshift(loading); - } else { - updateSearchResults = function () {}; - } - response(result); -} -$(function () { - $('#search-input').catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function (event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $('#search-input').empty(); - } - }, - autoFocus: true, - focus: function (event, ui) { - return false; - }, - position: { - collision: 'flip', - }, - select: function (event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += 'module-summary.html'; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + '.html'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + '.html' + '#'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search-input").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search-input").focus(); + } } - $('#search-input').focus(); - } - }, - }); + }); }); diff --git a/docs/TechnoLib/src-html/com/technototes/library/control/CommandAxis.html b/docs/TechnoLib/src-html/com/technototes/library/control/CommandAxis.html index afe55554..91a383bd 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/control/CommandAxis.html +++ b/docs/TechnoLib/src-html/com/technototes/library/control/CommandAxis.html @@ -17,60 +17,64 @@ 004import java.util.function.DoubleSupplier; 005import java.util.function.Function; 006 -007/** Class for command axis for the gamepad -008 * @author Alex Stedman -009 */ -010public class CommandAxis extends AxisBase implements CommandInput<CommandAxis> { -011 -012 /** Make a command axis -013 * -014 * @param supplier The axis supplier -015 */ -016 public CommandAxis(DoubleSupplier supplier) { -017 super(supplier); -018 } -019 -020 /** Make a command axis -021 * -022 * @param supplier The axis supplier -023 * @param threshold The threshold to trigger to make the axis behave as a button -024 */ -025 public CommandAxis(DoubleSupplier supplier, double threshold) { -026 super(supplier, threshold); -027 } -028 -029 @Override -030 public CommandAxis getInstance() { -031 return this; -032 } -033 -034 @Override -035 public CommandAxis setTriggerThreshold(double threshold) { -036 super.setTriggerThreshold(threshold); -037 return this; -038 } -039 -040 public CommandAxis schedulePressed(Function<DoubleSupplier, Command> f) { -041 return whilePressed(f.apply(this)); +007/** +008 * Class for command axis for the gamepad +009 * +010 * @author Alex Stedman +011 */ +012public class CommandAxis extends AxisBase implements CommandInput<CommandAxis> { +013 +014 /** +015 * Make a command axis +016 * +017 * @param supplier The axis supplier +018 */ +019 public CommandAxis(DoubleSupplier supplier) { +020 super(supplier); +021 } +022 +023 /** +024 * Make a command axis +025 * +026 * @param supplier The axis supplier +027 * @param threshold The threshold to trigger to make the axis behave as a button +028 */ +029 public CommandAxis(DoubleSupplier supplier, double threshold) { +030 super(supplier, threshold); +031 } +032 +033 @Override +034 public CommandAxis getInstance() { +035 return this; +036 } +037 +038 @Override +039 public CommandAxis setTriggerThreshold(double threshold) { +040 super.setTriggerThreshold(threshold); +041 return this; 042 } 043 -044 public CommandAxis schedule(Function<Double, Command> f) { -045 return schedule(f.apply(this.getAsDouble())); +044 public CommandAxis schedulePressed(Function<DoubleSupplier, Command> f) { +045 return whilePressed(f.apply(this)); 046 } 047 -048 @Override -049 public CommandAxis setInverted(boolean invert) { -050 return (CommandAxis) super.setInverted(invert); -051 } -052 -053 public CommandButton getAsButton() { -054 return new CommandButton(this); +048 public CommandAxis schedule(Function<Double, Command> f) { +049 return schedule(f.apply(this.getAsDouble())); +050 } +051 +052 @Override +053 public CommandAxis setInverted(boolean invert) { +054 return (CommandAxis) super.setInverted(invert); 055 } 056 -057 public CommandButton getAsButton(double threshold) { -058 return new CommandButton(() -> threshold >= 0 ? getAsDouble() >= threshold : getAsDouble() < threshold); +057 public CommandButton getAsButton() { +058 return new CommandButton(this); 059 } -060} +060 +061 public CommandButton getAsButton(double threshold) { +062 return new CommandButton(() -> (threshold >= 0) ? (getAsDouble() >= threshold) : (getAsDouble() < threshold)); +063 } +064} diff --git a/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Axis.html b/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Axis.html index db72be3c..397bb4eb 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Axis.html +++ b/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Axis.html @@ -35,11 +35,11 @@ 022 /** 023 * The button objects for the XBox game controller 024 */ -025 public T a, b, x, y, start, back; +025 public T xbox_a, xbox_b, xbox_x, xbox_y, xbox_start, xbox_back; 026 /** 027 * The button objects for the PS4 game controller 028 */ -029 public T cross, circle, square, triangle, share, options; +029 public T ps_cross, ps_circle, ps_square, ps_triangle, ps_share, ps_options; 030 /** 031 * The button objects for both the XBox and PS4 controllers 032 */ @@ -86,12 +86,12 @@ 073 dpad = new GamepadDpad<>(dpadUp, dpadDown, dpadLeft, dpadRight); 074 periodics = 075 new Periodic[] { -076 a, -077 b, -078 x, -079 y, -080 start, -081 back, +076 xbox_a, +077 xbox_b, +078 xbox_x, +079 xbox_y, +080 xbox_start, +081 xbox_back, 082 leftBumper, 083 rightBumper, 084 leftTrigger, @@ -102,12 +102,12 @@ 089 }; 090 enablables = 091 new Enablable[] { -092 a, -093 b, -094 x, -095 y, -096 start, -097 back, +092 xbox_a, +093 xbox_b, +094 xbox_x, +095 xbox_y, +096 xbox_start, +097 xbox_back, 098 leftBumper, 099 rightBumper, 100 leftTrigger, @@ -123,19 +123,19 @@ 110 throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { 111 // buttons 112 // a=new T(); -113 a = buttonInstance(() -> g.a); -114 b = buttonInstance(() -> g.b); -115 x = buttonInstance(() -> g.x); -116 y = buttonInstance(() -> g.y); -117 cross = a; -118 circle = b; -119 square = x; -120 triangle = y; +113 xbox_a = buttonInstance(() -> g.a); +114 xbox_b = buttonInstance(() -> g.b); +115 xbox_x = buttonInstance(() -> g.x); +116 xbox_y = buttonInstance(() -> g.y); +117 ps_cross = xbox_a; +118 ps_circle = xbox_b; +119 ps_square = xbox_x; +120 ps_triangle = xbox_y; 121 -122 start = buttonInstance(() -> g.start); -123 back = buttonInstance(() -> g.back); -124 share = back; -125 options = start; +122 xbox_start = buttonInstance(() -> g.start); +123 xbox_back = buttonInstance(() -> g.back); +124 ps_share = xbox_back; +125 ps_options = xbox_start; 126 127 // bumpers 128 leftBumper = buttonInstance(() -> g.left_bumper); @@ -171,51 +171,51 @@ 158 /** 159 * XBox A button 160 */ -161 A, +161 XBOX_A, 162 /** 163 * XBox B button 164 */ -165 B, +165 XBOX_B, 166 /** 167 * XBox X button 168 */ -169 X, +169 XBOX_X, 170 /** 171 * XBox Y button 172 */ -173 Y, +173 XBOX_Y, 174 /** 175 * PS4 Cross (X) button 176 */ -177 CROSS, +177 PS_CROSS, 178 /** 179 * PS4 Circle (O) button 180 */ -181 CIRCLE, +181 PS_CIRCLE, 182 /** 183 * PS4 Square button 184 */ -185 SQUARE, +185 PS_SQUARE, 186 /** 187 * PS4 Triangle button 188 */ -189 TRIANGLE, +189 PS_TRIANGLE, 190 /** 191 * PS4 Share button 192 */ -193 SHARE, +193 PS_SHARE, 194 /** 195 * PS4 Options button 196 */ -197 OPTIONS, +197 PS_OPTIONS, 198 /** -199 * PS4/XBox Start button +199 * XBox Start button 200 */ -201 START, +201 XBOX_START, 202 /** -203 * PS4/XBox Back button +203 * XBox Back button 204 */ -205 BACK, +205 XBOX_BACK, 206 /** 207 * Left bumper button 208 */ @@ -272,30 +272,30 @@ 259 */ 260 public T getButton(Button bu) { 261 switch (bu) { -262 case A: -263 return a; -264 case B: -265 return b; -266 case X: -267 return x; -268 case Y: -269 return y; -270 case CROSS: -271 return cross; -272 case CIRCLE: -273 return circle; -274 case SQUARE: -275 return square; -276 case TRIANGLE: -277 return triangle; -278 case SHARE: -279 return share; -280 case OPTIONS: -281 return options; -282 case BACK: -283 return back; -284 case START: -285 return start; +262 case XBOX_A: +263 return xbox_a; +264 case XBOX_B: +265 return xbox_b; +266 case XBOX_X: +267 return xbox_x; +268 case XBOX_Y: +269 return xbox_y; +270 case PS_CROSS: +271 return ps_cross; +272 case PS_CIRCLE: +273 return ps_circle; +274 case PS_SQUARE: +275 return ps_square; +276 case PS_TRIANGLE: +277 return ps_triangle; +278 case PS_SHARE: +279 return ps_share; +280 case PS_OPTIONS: +281 return ps_options; +282 case XBOX_BACK: +283 return xbox_back; +284 case XBOX_START: +285 return xbox_start; 286 case LEFT_BUMPER: 287 return leftBumper; 288 case RIGHT_BUMPER: diff --git a/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Button.html b/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Button.html index f96b066f..82cb5878 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Button.html +++ b/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.Button.html @@ -35,11 +35,11 @@ 022 /** 023 * The button objects for the XBox game controller 024 */ -025 public T a, b, x, y, start, back; +025 public T xbox_a, xbox_b, xbox_x, xbox_y, xbox_start, xbox_back; 026 /** 027 * The button objects for the PS4 game controller 028 */ -029 public T cross, circle, square, triangle, share, options; +029 public T ps_cross, ps_circle, ps_square, ps_triangle, ps_share, ps_options; 030 /** 031 * The button objects for both the XBox and PS4 controllers 032 */ @@ -86,12 +86,12 @@ 073 dpad = new GamepadDpad<>(dpadUp, dpadDown, dpadLeft, dpadRight); 074 periodics = 075 new Periodic[] { -076 a, -077 b, -078 x, -079 y, -080 start, -081 back, +076 xbox_a, +077 xbox_b, +078 xbox_x, +079 xbox_y, +080 xbox_start, +081 xbox_back, 082 leftBumper, 083 rightBumper, 084 leftTrigger, @@ -102,12 +102,12 @@ 089 }; 090 enablables = 091 new Enablable[] { -092 a, -093 b, -094 x, -095 y, -096 start, -097 back, +092 xbox_a, +093 xbox_b, +094 xbox_x, +095 xbox_y, +096 xbox_start, +097 xbox_back, 098 leftBumper, 099 rightBumper, 100 leftTrigger, @@ -123,19 +123,19 @@ 110 throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { 111 // buttons 112 // a=new T(); -113 a = buttonInstance(() -> g.a); -114 b = buttonInstance(() -> g.b); -115 x = buttonInstance(() -> g.x); -116 y = buttonInstance(() -> g.y); -117 cross = a; -118 circle = b; -119 square = x; -120 triangle = y; +113 xbox_a = buttonInstance(() -> g.a); +114 xbox_b = buttonInstance(() -> g.b); +115 xbox_x = buttonInstance(() -> g.x); +116 xbox_y = buttonInstance(() -> g.y); +117 ps_cross = xbox_a; +118 ps_circle = xbox_b; +119 ps_square = xbox_x; +120 ps_triangle = xbox_y; 121 -122 start = buttonInstance(() -> g.start); -123 back = buttonInstance(() -> g.back); -124 share = back; -125 options = start; +122 xbox_start = buttonInstance(() -> g.start); +123 xbox_back = buttonInstance(() -> g.back); +124 ps_share = xbox_back; +125 ps_options = xbox_start; 126 127 // bumpers 128 leftBumper = buttonInstance(() -> g.left_bumper); @@ -171,51 +171,51 @@ 158 /** 159 * XBox A button 160 */ -161 A, +161 XBOX_A, 162 /** 163 * XBox B button 164 */ -165 B, +165 XBOX_B, 166 /** 167 * XBox X button 168 */ -169 X, +169 XBOX_X, 170 /** 171 * XBox Y button 172 */ -173 Y, +173 XBOX_Y, 174 /** 175 * PS4 Cross (X) button 176 */ -177 CROSS, +177 PS_CROSS, 178 /** 179 * PS4 Circle (O) button 180 */ -181 CIRCLE, +181 PS_CIRCLE, 182 /** 183 * PS4 Square button 184 */ -185 SQUARE, +185 PS_SQUARE, 186 /** 187 * PS4 Triangle button 188 */ -189 TRIANGLE, +189 PS_TRIANGLE, 190 /** 191 * PS4 Share button 192 */ -193 SHARE, +193 PS_SHARE, 194 /** 195 * PS4 Options button 196 */ -197 OPTIONS, +197 PS_OPTIONS, 198 /** -199 * PS4/XBox Start button +199 * XBox Start button 200 */ -201 START, +201 XBOX_START, 202 /** -203 * PS4/XBox Back button +203 * XBox Back button 204 */ -205 BACK, +205 XBOX_BACK, 206 /** 207 * Left bumper button 208 */ @@ -272,30 +272,30 @@ 259 */ 260 public T getButton(Button bu) { 261 switch (bu) { -262 case A: -263 return a; -264 case B: -265 return b; -266 case X: -267 return x; -268 case Y: -269 return y; -270 case CROSS: -271 return cross; -272 case CIRCLE: -273 return circle; -274 case SQUARE: -275 return square; -276 case TRIANGLE: -277 return triangle; -278 case SHARE: -279 return share; -280 case OPTIONS: -281 return options; -282 case BACK: -283 return back; -284 case START: -285 return start; +262 case XBOX_A: +263 return xbox_a; +264 case XBOX_B: +265 return xbox_b; +266 case XBOX_X: +267 return xbox_x; +268 case XBOX_Y: +269 return xbox_y; +270 case PS_CROSS: +271 return ps_cross; +272 case PS_CIRCLE: +273 return ps_circle; +274 case PS_SQUARE: +275 return ps_square; +276 case PS_TRIANGLE: +277 return ps_triangle; +278 case PS_SHARE: +279 return ps_share; +280 case PS_OPTIONS: +281 return ps_options; +282 case XBOX_BACK: +283 return xbox_back; +284 case XBOX_START: +285 return xbox_start; 286 case LEFT_BUMPER: 287 return leftBumper; 288 case RIGHT_BUMPER: diff --git a/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.html b/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.html index ffbe3209..7a387cb3 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.html +++ b/docs/TechnoLib/src-html/com/technototes/library/control/GamepadBase.html @@ -35,11 +35,11 @@ 022 /** 023 * The button objects for the XBox game controller 024 */ -025 public T a, b, x, y, start, back; +025 public T xbox_a, xbox_b, xbox_x, xbox_y, xbox_start, xbox_back; 026 /** 027 * The button objects for the PS4 game controller 028 */ -029 public T cross, circle, square, triangle, share, options; +029 public T ps_cross, ps_circle, ps_square, ps_triangle, ps_share, ps_options; 030 /** 031 * The button objects for both the XBox and PS4 controllers 032 */ @@ -86,12 +86,12 @@ 073 dpad = new GamepadDpad<>(dpadUp, dpadDown, dpadLeft, dpadRight); 074 periodics = 075 new Periodic[] { -076 a, -077 b, -078 x, -079 y, -080 start, -081 back, +076 xbox_a, +077 xbox_b, +078 xbox_x, +079 xbox_y, +080 xbox_start, +081 xbox_back, 082 leftBumper, 083 rightBumper, 084 leftTrigger, @@ -102,12 +102,12 @@ 089 }; 090 enablables = 091 new Enablable[] { -092 a, -093 b, -094 x, -095 y, -096 start, -097 back, +092 xbox_a, +093 xbox_b, +094 xbox_x, +095 xbox_y, +096 xbox_start, +097 xbox_back, 098 leftBumper, 099 rightBumper, 100 leftTrigger, @@ -123,19 +123,19 @@ 110 throws InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException { 111 // buttons 112 // a=new T(); -113 a = buttonInstance(() -> g.a); -114 b = buttonInstance(() -> g.b); -115 x = buttonInstance(() -> g.x); -116 y = buttonInstance(() -> g.y); -117 cross = a; -118 circle = b; -119 square = x; -120 triangle = y; +113 xbox_a = buttonInstance(() -> g.a); +114 xbox_b = buttonInstance(() -> g.b); +115 xbox_x = buttonInstance(() -> g.x); +116 xbox_y = buttonInstance(() -> g.y); +117 ps_cross = xbox_a; +118 ps_circle = xbox_b; +119 ps_square = xbox_x; +120 ps_triangle = xbox_y; 121 -122 start = buttonInstance(() -> g.start); -123 back = buttonInstance(() -> g.back); -124 share = back; -125 options = start; +122 xbox_start = buttonInstance(() -> g.start); +123 xbox_back = buttonInstance(() -> g.back); +124 ps_share = xbox_back; +125 ps_options = xbox_start; 126 127 // bumpers 128 leftBumper = buttonInstance(() -> g.left_bumper); @@ -171,51 +171,51 @@ 158 /** 159 * XBox A button 160 */ -161 A, +161 XBOX_A, 162 /** 163 * XBox B button 164 */ -165 B, +165 XBOX_B, 166 /** 167 * XBox X button 168 */ -169 X, +169 XBOX_X, 170 /** 171 * XBox Y button 172 */ -173 Y, +173 XBOX_Y, 174 /** 175 * PS4 Cross (X) button 176 */ -177 CROSS, +177 PS_CROSS, 178 /** 179 * PS4 Circle (O) button 180 */ -181 CIRCLE, +181 PS_CIRCLE, 182 /** 183 * PS4 Square button 184 */ -185 SQUARE, +185 PS_SQUARE, 186 /** 187 * PS4 Triangle button 188 */ -189 TRIANGLE, +189 PS_TRIANGLE, 190 /** 191 * PS4 Share button 192 */ -193 SHARE, +193 PS_SHARE, 194 /** 195 * PS4 Options button 196 */ -197 OPTIONS, +197 PS_OPTIONS, 198 /** -199 * PS4/XBox Start button +199 * XBox Start button 200 */ -201 START, +201 XBOX_START, 202 /** -203 * PS4/XBox Back button +203 * XBox Back button 204 */ -205 BACK, +205 XBOX_BACK, 206 /** 207 * Left bumper button 208 */ @@ -272,30 +272,30 @@ 259 */ 260 public T getButton(Button bu) { 261 switch (bu) { -262 case A: -263 return a; -264 case B: -265 return b; -266 case X: -267 return x; -268 case Y: -269 return y; -270 case CROSS: -271 return cross; -272 case CIRCLE: -273 return circle; -274 case SQUARE: -275 return square; -276 case TRIANGLE: -277 return triangle; -278 case SHARE: -279 return share; -280 case OPTIONS: -281 return options; -282 case BACK: -283 return back; -284 case START: -285 return start; +262 case XBOX_A: +263 return xbox_a; +264 case XBOX_B: +265 return xbox_b; +266 case XBOX_X: +267 return xbox_x; +268 case XBOX_Y: +269 return xbox_y; +270 case PS_CROSS: +271 return ps_cross; +272 case PS_CIRCLE: +273 return ps_circle; +274 case PS_SQUARE: +275 return ps_square; +276 case PS_TRIANGLE: +277 return ps_triangle; +278 case PS_SHARE: +279 return ps_share; +280 case PS_OPTIONS: +281 return ps_options; +282 case XBOX_BACK: +283 return xbox_back; +284 case XBOX_START: +285 return xbox_start; 286 case LEFT_BUMPER: 287 return leftBumper; 288 case RIGHT_BUMPER: diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Boolean.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Boolean.html index 4a9a1d43..f7990aaa 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Boolean.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Boolean.html @@ -17,297 +17,112 @@ 004import static java.lang.annotation.ElementType.LOCAL_VARIABLE; 005import static java.lang.annotation.ElementType.METHOD; 006 -007import com.technototes.library.util.Color; -008import java.lang.annotation.Documented; -009import java.lang.annotation.ElementType; -010import java.lang.annotation.Repeatable; -011import java.lang.annotation.Retention; -012import java.lang.annotation.RetentionPolicy; -013import java.lang.annotation.Target; -014 -015/** The root annotation for annotation logging, also doubles as a basic string log -016 * @author Alex Stedman -017 */ -018@Documented -019@Repeatable(Log.Logs.class) -020@Retention(RetentionPolicy.RUNTIME) -021@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -022public @interface Log { -023 /** Store index for this annotation (position in telemetry) -024 * -025 * @return The index -026 */ -027 int index() default -1; -028 -029 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -030 * -031 * @return The priority -032 */ -033 int priority() default -1; -034 -035 /** Store the name for this annotation to be be beside -036 * -037 * @return The name as a string -038 */ -039 String name() default ""; -040 -041 /** The format for the logged String -042 * -043 * @return The format -044 */ -045 String format() default "%s"; -046 -047 /** The color for the entry -048 * -049 * @return The color -050 */ -051 Color entryColor() default Color.NO_COLOR; +007import java.lang.annotation.Documented; +008import java.lang.annotation.ElementType; +009import java.lang.annotation.Repeatable; +010import java.lang.annotation.Retention; +011import java.lang.annotation.RetentionPolicy; +012import java.lang.annotation.Target; +013 +014/** The root annotation for annotation logging, also doubles as a basic string log +015 * @author Alex Stedman +016 */ +017@Documented +018@Repeatable(Log.Logs.class) +019@Retention(RetentionPolicy.RUNTIME) +020@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +021public @interface Log { +022 /** Store index for this annotation (position in telemetry) +023 * +024 * @return The index +025 */ +026 int index() default -1; +027 +028 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +029 * +030 * @return The priority +031 */ +032 int priority() default -1; +033 +034 /** Store the name for this annotation to be be beside +035 * +036 * @return The name as a string +037 */ +038 String name() default ""; +039 +040 /** The format for the logged String +041 * +042 * @return The format +043 */ +044 String format() default "%s"; +045 +046 @Documented +047 @Retention(RetentionPolicy.RUNTIME) +048 @Target({ ElementType.FIELD, ElementType.METHOD }) +049 @interface Logs { +050 Log[] value(); +051 } 052 -053 /** The color for the tag for the entry +053 /** Log a number 054 * -055 * @return The color -056 */ -057 Color color() default Color.NO_COLOR; -058 -059 @Documented -060 @Retention(RetentionPolicy.RUNTIME) -061 @Target({ ElementType.FIELD, ElementType.METHOD }) -062 @interface Logs { -063 Log[] value(); -064 } -065 -066 /** Log a number -067 * -068 */ -069 @Retention(RetentionPolicy.RUNTIME) -070 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -071 @interface Number { -072 /** Store index for this annotation (position in telemetry) -073 * -074 * @return The index -075 */ -076 int index() default -1; +055 */ +056 @Retention(RetentionPolicy.RUNTIME) +057 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +058 @interface Number { +059 /** Store index for this annotation (position in telemetry) +060 * +061 * @return The index +062 */ +063 int index() default -1; +064 +065 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +066 * +067 * @return The priority +068 */ +069 int priority() default -1; +070 +071 /** Store the name for this annotation to be be beside +072 * +073 * @return The name as a string +074 */ +075 String name() default ""; +076 } 077 -078 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -079 * -080 * @return The priority -081 */ -082 int priority() default -1; -083 -084 /** Store the name for this annotation to be be beside -085 * -086 * @return The name as a string -087 */ -088 String name() default ""; -089 -090 /** The color for the tag for the number -091 * -092 * @return The color -093 */ -094 Color color() default Color.NO_COLOR; -095 -096 /** The color for the number -097 * -098 * @return The color -099 */ -100 Color numberColor() default Color.NO_COLOR; -101 } -102 -103 /** Log a number, but store it as a number bar -104 * -105 */ -106 @Retention(RetentionPolicy.RUNTIME) -107 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -108 @interface NumberBar { -109 /** Store index for this annotation (position in telemetry) -110 * -111 * @return The index -112 */ -113 int index() default -1; -114 -115 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -116 * -117 * @return The priority -118 */ -119 int priority() default -1; -120 -121 /** Store the min for the number bar to scale to -122 * -123 * @return The min -124 */ -125 double min() default -1; -126 -127 /** Store the max for the number bar to scale to -128 * -129 * @return The max -130 */ -131 double max() default 1; -132 -133 /** Store the scale for the number bar to scale to -134 * -135 * @return The scale -136 */ -137 double scale() default 0.1; -138 -139 /** Store the name for this annotation to be be beside -140 * -141 * @return The name as a string -142 */ -143 String name() default ""; -144 -145 /** The color for the tag for the bar -146 * -147 * @return The color -148 */ -149 Color color() default Color.NO_COLOR; -150 -151 /** The color for the filled in bar color -152 * -153 * @return The color -154 */ -155 Color completeBarColor() default Color.NO_COLOR; -156 -157 /** The color for the not filled in bar color -158 * -159 * @return The color -160 */ -161 Color incompleteBarColor() default Color.NO_COLOR; -162 -163 /** The color for the bar outlines -164 * -165 * @return The color -166 */ -167 Color outline() default Color.NO_COLOR; -168 } -169 -170 @Retention(RetentionPolicy.RUNTIME) -171 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -172 @interface NumberSlider { -173 /** Store index for this annotation (position in telemetry) -174 * -175 * @return The index -176 */ -177 int index() default -1; -178 -179 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -180 * -181 * @return The priority -182 */ -183 int priority() default -1; -184 -185 /** Store the min for the number bar to scale to -186 * -187 * @return The min -188 */ -189 double min() default -1; -190 -191 /** Store the max for the number bar to scale to -192 * -193 * @return The max -194 */ -195 double max() default 1; -196 -197 /** Store the scale for the number bar to scale to -198 * -199 * @return The scale -200 */ -201 double scale() default 0.1; -202 -203 /** Store the name for this annotation to be be beside -204 * -205 * @return The name as a string -206 */ -207 String name() default ""; -208 -209 /** The color for the tag for the slider -210 * -211 * @return The color -212 */ -213 Color color() default Color.NO_COLOR; -214 -215 /** The color for the slider background -216 * -217 * @return The color -218 */ -219 Color sliderBackground() default Color.NO_COLOR; -220 -221 /** The color for the slider outline -222 * -223 * @return The color -224 */ -225 Color outline() default Color.NO_COLOR; -226 -227 /** The color for the slider slide -228 * -229 * @return The color -230 */ -231 Color slider() default Color.NO_COLOR; -232 } -233 -234 @Retention(RetentionPolicy.RUNTIME) -235 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -236 @interface Boolean { -237 /** Store index for this annotation (position in telemetry) -238 * -239 * @return The index -240 */ -241 int index() default -1; -242 -243 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -244 * -245 * @return The priority -246 */ -247 int priority() default -1; -248 -249 /** Store the string when the annotated method returns true -250 * -251 * @return The string -252 */ -253 String trueValue() default "true"; -254 -255 /** The format for when the boolean returns true -256 * -257 * @return The String format -258 */ -259 String trueFormat() default "%s"; -260 -261 /** The color for the true String -262 * -263 * @return The color -264 */ -265 Color trueColor() default Color.NO_COLOR; -266 -267 /** Store the string when the annotated method returns false -268 * -269 * @return The string -270 */ -271 String falseValue() default "false"; -272 -273 /** The format for when the boolean returns false -274 * -275 * @return The String format -276 */ -277 String falseFormat() default "%s"; -278 -279 /** The color for the false String -280 * -281 * @return The color -282 */ -283 Color falseColor() default Color.NO_COLOR; -284 -285 /** Store the name for this annotation to be be beside -286 * -287 * @return The name as a string -288 */ -289 String name() default ""; -290 -291 /** The color for the tag for the boolean -292 * -293 * @return The color -294 */ -295 Color color() default Color.NO_COLOR; -296 } -297} +078 @Retention(RetentionPolicy.RUNTIME) +079 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +080 @interface Boolean { +081 /** Store index for this annotation (position in telemetry) +082 * +083 * @return The index +084 */ +085 int index() default -1; +086 +087 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +088 * +089 * @return The priority +090 */ +091 int priority() default -1; +092 +093 /** Store the string when the annotated method returns true +094 * +095 * @return The string +096 */ +097 String trueValue() default "true"; +098 +099 /** Store the string when the annotated method returns false +100 * +101 * @return The string +102 */ +103 String falseValue() default "false"; +104 +105 /** Store the name for this annotation to be be beside +106 * +107 * @return The name as a string +108 */ +109 String name() default ""; +110 +111 } +112} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Logs.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Logs.html index 7ee63816..921aede7 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Logs.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Logs.html @@ -17,297 +17,112 @@ 004import static java.lang.annotation.ElementType.LOCAL_VARIABLE; 005import static java.lang.annotation.ElementType.METHOD; 006 -007import com.technototes.library.util.Color; -008import java.lang.annotation.Documented; -009import java.lang.annotation.ElementType; -010import java.lang.annotation.Repeatable; -011import java.lang.annotation.Retention; -012import java.lang.annotation.RetentionPolicy; -013import java.lang.annotation.Target; -014 -015/** The root annotation for annotation logging, also doubles as a basic string log -016 * @author Alex Stedman -017 */ -018@Documented -019@Repeatable(Log.Logs.class) -020@Retention(RetentionPolicy.RUNTIME) -021@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -022public @interface Log { -023 /** Store index for this annotation (position in telemetry) -024 * -025 * @return The index -026 */ -027 int index() default -1; -028 -029 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -030 * -031 * @return The priority -032 */ -033 int priority() default -1; -034 -035 /** Store the name for this annotation to be be beside -036 * -037 * @return The name as a string -038 */ -039 String name() default ""; -040 -041 /** The format for the logged String -042 * -043 * @return The format -044 */ -045 String format() default "%s"; -046 -047 /** The color for the entry -048 * -049 * @return The color -050 */ -051 Color entryColor() default Color.NO_COLOR; +007import java.lang.annotation.Documented; +008import java.lang.annotation.ElementType; +009import java.lang.annotation.Repeatable; +010import java.lang.annotation.Retention; +011import java.lang.annotation.RetentionPolicy; +012import java.lang.annotation.Target; +013 +014/** The root annotation for annotation logging, also doubles as a basic string log +015 * @author Alex Stedman +016 */ +017@Documented +018@Repeatable(Log.Logs.class) +019@Retention(RetentionPolicy.RUNTIME) +020@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +021public @interface Log { +022 /** Store index for this annotation (position in telemetry) +023 * +024 * @return The index +025 */ +026 int index() default -1; +027 +028 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +029 * +030 * @return The priority +031 */ +032 int priority() default -1; +033 +034 /** Store the name for this annotation to be be beside +035 * +036 * @return The name as a string +037 */ +038 String name() default ""; +039 +040 /** The format for the logged String +041 * +042 * @return The format +043 */ +044 String format() default "%s"; +045 +046 @Documented +047 @Retention(RetentionPolicy.RUNTIME) +048 @Target({ ElementType.FIELD, ElementType.METHOD }) +049 @interface Logs { +050 Log[] value(); +051 } 052 -053 /** The color for the tag for the entry +053 /** Log a number 054 * -055 * @return The color -056 */ -057 Color color() default Color.NO_COLOR; -058 -059 @Documented -060 @Retention(RetentionPolicy.RUNTIME) -061 @Target({ ElementType.FIELD, ElementType.METHOD }) -062 @interface Logs { -063 Log[] value(); -064 } -065 -066 /** Log a number -067 * -068 */ -069 @Retention(RetentionPolicy.RUNTIME) -070 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -071 @interface Number { -072 /** Store index for this annotation (position in telemetry) -073 * -074 * @return The index -075 */ -076 int index() default -1; +055 */ +056 @Retention(RetentionPolicy.RUNTIME) +057 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +058 @interface Number { +059 /** Store index for this annotation (position in telemetry) +060 * +061 * @return The index +062 */ +063 int index() default -1; +064 +065 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +066 * +067 * @return The priority +068 */ +069 int priority() default -1; +070 +071 /** Store the name for this annotation to be be beside +072 * +073 * @return The name as a string +074 */ +075 String name() default ""; +076 } 077 -078 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -079 * -080 * @return The priority -081 */ -082 int priority() default -1; -083 -084 /** Store the name for this annotation to be be beside -085 * -086 * @return The name as a string -087 */ -088 String name() default ""; -089 -090 /** The color for the tag for the number -091 * -092 * @return The color -093 */ -094 Color color() default Color.NO_COLOR; -095 -096 /** The color for the number -097 * -098 * @return The color -099 */ -100 Color numberColor() default Color.NO_COLOR; -101 } -102 -103 /** Log a number, but store it as a number bar -104 * -105 */ -106 @Retention(RetentionPolicy.RUNTIME) -107 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -108 @interface NumberBar { -109 /** Store index for this annotation (position in telemetry) -110 * -111 * @return The index -112 */ -113 int index() default -1; -114 -115 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -116 * -117 * @return The priority -118 */ -119 int priority() default -1; -120 -121 /** Store the min for the number bar to scale to -122 * -123 * @return The min -124 */ -125 double min() default -1; -126 -127 /** Store the max for the number bar to scale to -128 * -129 * @return The max -130 */ -131 double max() default 1; -132 -133 /** Store the scale for the number bar to scale to -134 * -135 * @return The scale -136 */ -137 double scale() default 0.1; -138 -139 /** Store the name for this annotation to be be beside -140 * -141 * @return The name as a string -142 */ -143 String name() default ""; -144 -145 /** The color for the tag for the bar -146 * -147 * @return The color -148 */ -149 Color color() default Color.NO_COLOR; -150 -151 /** The color for the filled in bar color -152 * -153 * @return The color -154 */ -155 Color completeBarColor() default Color.NO_COLOR; -156 -157 /** The color for the not filled in bar color -158 * -159 * @return The color -160 */ -161 Color incompleteBarColor() default Color.NO_COLOR; -162 -163 /** The color for the bar outlines -164 * -165 * @return The color -166 */ -167 Color outline() default Color.NO_COLOR; -168 } -169 -170 @Retention(RetentionPolicy.RUNTIME) -171 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -172 @interface NumberSlider { -173 /** Store index for this annotation (position in telemetry) -174 * -175 * @return The index -176 */ -177 int index() default -1; -178 -179 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -180 * -181 * @return The priority -182 */ -183 int priority() default -1; -184 -185 /** Store the min for the number bar to scale to -186 * -187 * @return The min -188 */ -189 double min() default -1; -190 -191 /** Store the max for the number bar to scale to -192 * -193 * @return The max -194 */ -195 double max() default 1; -196 -197 /** Store the scale for the number bar to scale to -198 * -199 * @return The scale -200 */ -201 double scale() default 0.1; -202 -203 /** Store the name for this annotation to be be beside -204 * -205 * @return The name as a string -206 */ -207 String name() default ""; -208 -209 /** The color for the tag for the slider -210 * -211 * @return The color -212 */ -213 Color color() default Color.NO_COLOR; -214 -215 /** The color for the slider background -216 * -217 * @return The color -218 */ -219 Color sliderBackground() default Color.NO_COLOR; -220 -221 /** The color for the slider outline -222 * -223 * @return The color -224 */ -225 Color outline() default Color.NO_COLOR; -226 -227 /** The color for the slider slide -228 * -229 * @return The color -230 */ -231 Color slider() default Color.NO_COLOR; -232 } -233 -234 @Retention(RetentionPolicy.RUNTIME) -235 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -236 @interface Boolean { -237 /** Store index for this annotation (position in telemetry) -238 * -239 * @return The index -240 */ -241 int index() default -1; -242 -243 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -244 * -245 * @return The priority -246 */ -247 int priority() default -1; -248 -249 /** Store the string when the annotated method returns true -250 * -251 * @return The string -252 */ -253 String trueValue() default "true"; -254 -255 /** The format for when the boolean returns true -256 * -257 * @return The String format -258 */ -259 String trueFormat() default "%s"; -260 -261 /** The color for the true String -262 * -263 * @return The color -264 */ -265 Color trueColor() default Color.NO_COLOR; -266 -267 /** Store the string when the annotated method returns false -268 * -269 * @return The string -270 */ -271 String falseValue() default "false"; -272 -273 /** The format for when the boolean returns false -274 * -275 * @return The String format -276 */ -277 String falseFormat() default "%s"; -278 -279 /** The color for the false String -280 * -281 * @return The color -282 */ -283 Color falseColor() default Color.NO_COLOR; -284 -285 /** Store the name for this annotation to be be beside -286 * -287 * @return The name as a string -288 */ -289 String name() default ""; -290 -291 /** The color for the tag for the boolean -292 * -293 * @return The color -294 */ -295 Color color() default Color.NO_COLOR; -296 } -297} +078 @Retention(RetentionPolicy.RUNTIME) +079 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +080 @interface Boolean { +081 /** Store index for this annotation (position in telemetry) +082 * +083 * @return The index +084 */ +085 int index() default -1; +086 +087 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +088 * +089 * @return The priority +090 */ +091 int priority() default -1; +092 +093 /** Store the string when the annotated method returns true +094 * +095 * @return The string +096 */ +097 String trueValue() default "true"; +098 +099 /** Store the string when the annotated method returns false +100 * +101 * @return The string +102 */ +103 String falseValue() default "false"; +104 +105 /** Store the name for this annotation to be be beside +106 * +107 * @return The name as a string +108 */ +109 String name() default ""; +110 +111 } +112} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Number.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Number.html index 57a33226..f1ebb311 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Number.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.Number.html @@ -17,297 +17,112 @@ 004import static java.lang.annotation.ElementType.LOCAL_VARIABLE; 005import static java.lang.annotation.ElementType.METHOD; 006 -007import com.technototes.library.util.Color; -008import java.lang.annotation.Documented; -009import java.lang.annotation.ElementType; -010import java.lang.annotation.Repeatable; -011import java.lang.annotation.Retention; -012import java.lang.annotation.RetentionPolicy; -013import java.lang.annotation.Target; -014 -015/** The root annotation for annotation logging, also doubles as a basic string log -016 * @author Alex Stedman -017 */ -018@Documented -019@Repeatable(Log.Logs.class) -020@Retention(RetentionPolicy.RUNTIME) -021@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -022public @interface Log { -023 /** Store index for this annotation (position in telemetry) -024 * -025 * @return The index -026 */ -027 int index() default -1; -028 -029 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -030 * -031 * @return The priority -032 */ -033 int priority() default -1; -034 -035 /** Store the name for this annotation to be be beside -036 * -037 * @return The name as a string -038 */ -039 String name() default ""; -040 -041 /** The format for the logged String -042 * -043 * @return The format -044 */ -045 String format() default "%s"; -046 -047 /** The color for the entry -048 * -049 * @return The color -050 */ -051 Color entryColor() default Color.NO_COLOR; +007import java.lang.annotation.Documented; +008import java.lang.annotation.ElementType; +009import java.lang.annotation.Repeatable; +010import java.lang.annotation.Retention; +011import java.lang.annotation.RetentionPolicy; +012import java.lang.annotation.Target; +013 +014/** The root annotation for annotation logging, also doubles as a basic string log +015 * @author Alex Stedman +016 */ +017@Documented +018@Repeatable(Log.Logs.class) +019@Retention(RetentionPolicy.RUNTIME) +020@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +021public @interface Log { +022 /** Store index for this annotation (position in telemetry) +023 * +024 * @return The index +025 */ +026 int index() default -1; +027 +028 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +029 * +030 * @return The priority +031 */ +032 int priority() default -1; +033 +034 /** Store the name for this annotation to be be beside +035 * +036 * @return The name as a string +037 */ +038 String name() default ""; +039 +040 /** The format for the logged String +041 * +042 * @return The format +043 */ +044 String format() default "%s"; +045 +046 @Documented +047 @Retention(RetentionPolicy.RUNTIME) +048 @Target({ ElementType.FIELD, ElementType.METHOD }) +049 @interface Logs { +050 Log[] value(); +051 } 052 -053 /** The color for the tag for the entry +053 /** Log a number 054 * -055 * @return The color -056 */ -057 Color color() default Color.NO_COLOR; -058 -059 @Documented -060 @Retention(RetentionPolicy.RUNTIME) -061 @Target({ ElementType.FIELD, ElementType.METHOD }) -062 @interface Logs { -063 Log[] value(); -064 } -065 -066 /** Log a number -067 * -068 */ -069 @Retention(RetentionPolicy.RUNTIME) -070 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -071 @interface Number { -072 /** Store index for this annotation (position in telemetry) -073 * -074 * @return The index -075 */ -076 int index() default -1; +055 */ +056 @Retention(RetentionPolicy.RUNTIME) +057 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +058 @interface Number { +059 /** Store index for this annotation (position in telemetry) +060 * +061 * @return The index +062 */ +063 int index() default -1; +064 +065 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +066 * +067 * @return The priority +068 */ +069 int priority() default -1; +070 +071 /** Store the name for this annotation to be be beside +072 * +073 * @return The name as a string +074 */ +075 String name() default ""; +076 } 077 -078 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -079 * -080 * @return The priority -081 */ -082 int priority() default -1; -083 -084 /** Store the name for this annotation to be be beside -085 * -086 * @return The name as a string -087 */ -088 String name() default ""; -089 -090 /** The color for the tag for the number -091 * -092 * @return The color -093 */ -094 Color color() default Color.NO_COLOR; -095 -096 /** The color for the number -097 * -098 * @return The color -099 */ -100 Color numberColor() default Color.NO_COLOR; -101 } -102 -103 /** Log a number, but store it as a number bar -104 * -105 */ -106 @Retention(RetentionPolicy.RUNTIME) -107 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -108 @interface NumberBar { -109 /** Store index for this annotation (position in telemetry) -110 * -111 * @return The index -112 */ -113 int index() default -1; -114 -115 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -116 * -117 * @return The priority -118 */ -119 int priority() default -1; -120 -121 /** Store the min for the number bar to scale to -122 * -123 * @return The min -124 */ -125 double min() default -1; -126 -127 /** Store the max for the number bar to scale to -128 * -129 * @return The max -130 */ -131 double max() default 1; -132 -133 /** Store the scale for the number bar to scale to -134 * -135 * @return The scale -136 */ -137 double scale() default 0.1; -138 -139 /** Store the name for this annotation to be be beside -140 * -141 * @return The name as a string -142 */ -143 String name() default ""; -144 -145 /** The color for the tag for the bar -146 * -147 * @return The color -148 */ -149 Color color() default Color.NO_COLOR; -150 -151 /** The color for the filled in bar color -152 * -153 * @return The color -154 */ -155 Color completeBarColor() default Color.NO_COLOR; -156 -157 /** The color for the not filled in bar color -158 * -159 * @return The color -160 */ -161 Color incompleteBarColor() default Color.NO_COLOR; -162 -163 /** The color for the bar outlines -164 * -165 * @return The color -166 */ -167 Color outline() default Color.NO_COLOR; -168 } -169 -170 @Retention(RetentionPolicy.RUNTIME) -171 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -172 @interface NumberSlider { -173 /** Store index for this annotation (position in telemetry) -174 * -175 * @return The index -176 */ -177 int index() default -1; -178 -179 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -180 * -181 * @return The priority -182 */ -183 int priority() default -1; -184 -185 /** Store the min for the number bar to scale to -186 * -187 * @return The min -188 */ -189 double min() default -1; -190 -191 /** Store the max for the number bar to scale to -192 * -193 * @return The max -194 */ -195 double max() default 1; -196 -197 /** Store the scale for the number bar to scale to -198 * -199 * @return The scale -200 */ -201 double scale() default 0.1; -202 -203 /** Store the name for this annotation to be be beside -204 * -205 * @return The name as a string -206 */ -207 String name() default ""; -208 -209 /** The color for the tag for the slider -210 * -211 * @return The color -212 */ -213 Color color() default Color.NO_COLOR; -214 -215 /** The color for the slider background -216 * -217 * @return The color -218 */ -219 Color sliderBackground() default Color.NO_COLOR; -220 -221 /** The color for the slider outline -222 * -223 * @return The color -224 */ -225 Color outline() default Color.NO_COLOR; -226 -227 /** The color for the slider slide -228 * -229 * @return The color -230 */ -231 Color slider() default Color.NO_COLOR; -232 } -233 -234 @Retention(RetentionPolicy.RUNTIME) -235 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -236 @interface Boolean { -237 /** Store index for this annotation (position in telemetry) -238 * -239 * @return The index -240 */ -241 int index() default -1; -242 -243 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -244 * -245 * @return The priority -246 */ -247 int priority() default -1; -248 -249 /** Store the string when the annotated method returns true -250 * -251 * @return The string -252 */ -253 String trueValue() default "true"; -254 -255 /** The format for when the boolean returns true -256 * -257 * @return The String format -258 */ -259 String trueFormat() default "%s"; -260 -261 /** The color for the true String -262 * -263 * @return The color -264 */ -265 Color trueColor() default Color.NO_COLOR; -266 -267 /** Store the string when the annotated method returns false -268 * -269 * @return The string -270 */ -271 String falseValue() default "false"; -272 -273 /** The format for when the boolean returns false -274 * -275 * @return The String format -276 */ -277 String falseFormat() default "%s"; -278 -279 /** The color for the false String -280 * -281 * @return The color -282 */ -283 Color falseColor() default Color.NO_COLOR; -284 -285 /** Store the name for this annotation to be be beside -286 * -287 * @return The name as a string -288 */ -289 String name() default ""; -290 -291 /** The color for the tag for the boolean -292 * -293 * @return The color -294 */ -295 Color color() default Color.NO_COLOR; -296 } -297} +078 @Retention(RetentionPolicy.RUNTIME) +079 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +080 @interface Boolean { +081 /** Store index for this annotation (position in telemetry) +082 * +083 * @return The index +084 */ +085 int index() default -1; +086 +087 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +088 * +089 * @return The priority +090 */ +091 int priority() default -1; +092 +093 /** Store the string when the annotated method returns true +094 * +095 * @return The string +096 */ +097 String trueValue() default "true"; +098 +099 /** Store the string when the annotated method returns false +100 * +101 * @return The string +102 */ +103 String falseValue() default "false"; +104 +105 /** Store the name for this annotation to be be beside +106 * +107 * @return The name as a string +108 */ +109 String name() default ""; +110 +111 } +112} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberBar.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberBar.html deleted file mode 100644 index 15ec4e59..00000000 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberBar.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001package com.technototes.library.logger;
    -002
    -003import static java.lang.annotation.ElementType.FIELD;
    -004import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
    -005import static java.lang.annotation.ElementType.METHOD;
    -006
    -007import com.technototes.library.util.Color;
    -008import java.lang.annotation.Documented;
    -009import java.lang.annotation.ElementType;
    -010import java.lang.annotation.Repeatable;
    -011import java.lang.annotation.Retention;
    -012import java.lang.annotation.RetentionPolicy;
    -013import java.lang.annotation.Target;
    -014
    -015/** The root annotation for annotation logging, also doubles as a basic string log
    -016 * @author Alex Stedman
    -017 */
    -018@Documented
    -019@Repeatable(Log.Logs.class)
    -020@Retention(RetentionPolicy.RUNTIME)
    -021@Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -022public @interface Log {
    -023    /** Store index for this annotation (position in telemetry)
    -024     *
    -025     * @return The index
    -026     */
    -027    int index() default -1;
    -028
    -029    /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -030     *
    -031     * @return The priority
    -032     */
    -033    int priority() default -1;
    -034
    -035    /** Store the name for this annotation to be be beside
    -036     *
    -037     * @return The name as a string
    -038     */
    -039    String name() default "";
    -040
    -041    /** The format for the logged String
    -042     *
    -043     * @return The format
    -044     */
    -045    String format() default "%s";
    -046
    -047    /** The color for the entry
    -048     *
    -049     * @return The color
    -050     */
    -051    Color entryColor() default Color.NO_COLOR;
    -052
    -053    /** The color for the tag for the entry
    -054     *
    -055     * @return The color
    -056     */
    -057    Color color() default Color.NO_COLOR;
    -058
    -059    @Documented
    -060    @Retention(RetentionPolicy.RUNTIME)
    -061    @Target({ ElementType.FIELD, ElementType.METHOD })
    -062    @interface Logs {
    -063        Log[] value();
    -064    }
    -065
    -066    /** Log a number
    -067     *
    -068     */
    -069    @Retention(RetentionPolicy.RUNTIME)
    -070    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -071    @interface Number {
    -072        /** Store index for this annotation (position in telemetry)
    -073         *
    -074         * @return The index
    -075         */
    -076        int index() default -1;
    -077
    -078        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -079         *
    -080         * @return The priority
    -081         */
    -082        int priority() default -1;
    -083
    -084        /** Store the name for this annotation to be be beside
    -085         *
    -086         * @return The name as a string
    -087         */
    -088        String name() default "";
    -089
    -090        /** The color for the tag for the number
    -091         *
    -092         * @return The color
    -093         */
    -094        Color color() default Color.NO_COLOR;
    -095
    -096        /** The color for the number
    -097         *
    -098         * @return The color
    -099         */
    -100        Color numberColor() default Color.NO_COLOR;
    -101    }
    -102
    -103    /** Log a number, but store it as a number bar
    -104     *
    -105     */
    -106    @Retention(RetentionPolicy.RUNTIME)
    -107    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -108    @interface NumberBar {
    -109        /** Store index for this annotation (position in telemetry)
    -110         *
    -111         * @return The index
    -112         */
    -113        int index() default -1;
    -114
    -115        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -116         *
    -117         * @return The priority
    -118         */
    -119        int priority() default -1;
    -120
    -121        /** Store the min for the number bar to scale to
    -122         *
    -123         * @return The min
    -124         */
    -125        double min() default -1;
    -126
    -127        /** Store the max for the number bar to scale to
    -128         *
    -129         * @return The max
    -130         */
    -131        double max() default 1;
    -132
    -133        /** Store the scale for the number bar to scale to
    -134         *
    -135         * @return The scale
    -136         */
    -137        double scale() default 0.1;
    -138
    -139        /** Store the name for this annotation to be be beside
    -140         *
    -141         * @return The name as a string
    -142         */
    -143        String name() default "";
    -144
    -145        /** The color for the tag for the bar
    -146         *
    -147         * @return The color
    -148         */
    -149        Color color() default Color.NO_COLOR;
    -150
    -151        /** The color for the filled in bar color
    -152         *
    -153         * @return The color
    -154         */
    -155        Color completeBarColor() default Color.NO_COLOR;
    -156
    -157        /** The color for the not filled in bar color
    -158         *
    -159         * @return The color
    -160         */
    -161        Color incompleteBarColor() default Color.NO_COLOR;
    -162
    -163        /** The color for the bar outlines
    -164         *
    -165         * @return The color
    -166         */
    -167        Color outline() default Color.NO_COLOR;
    -168    }
    -169
    -170    @Retention(RetentionPolicy.RUNTIME)
    -171    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -172    @interface NumberSlider {
    -173        /** Store index for this annotation (position in telemetry)
    -174         *
    -175         * @return The index
    -176         */
    -177        int index() default -1;
    -178
    -179        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -180         *
    -181         * @return The priority
    -182         */
    -183        int priority() default -1;
    -184
    -185        /** Store the min for the number bar to scale to
    -186         *
    -187         * @return The min
    -188         */
    -189        double min() default -1;
    -190
    -191        /** Store the max for the number bar to scale to
    -192         *
    -193         * @return The max
    -194         */
    -195        double max() default 1;
    -196
    -197        /** Store the scale for the number bar to scale to
    -198         *
    -199         * @return The scale
    -200         */
    -201        double scale() default 0.1;
    -202
    -203        /** Store the name for this annotation to be be beside
    -204         *
    -205         * @return The name as a string
    -206         */
    -207        String name() default "";
    -208
    -209        /** The color for the tag for the slider
    -210         *
    -211         * @return The color
    -212         */
    -213        Color color() default Color.NO_COLOR;
    -214
    -215        /** The color for the slider background
    -216         *
    -217         * @return The color
    -218         */
    -219        Color sliderBackground() default Color.NO_COLOR;
    -220
    -221        /** The color for the slider outline
    -222         *
    -223         * @return The color
    -224         */
    -225        Color outline() default Color.NO_COLOR;
    -226
    -227        /** The color for the slider slide
    -228         *
    -229         * @return The color
    -230         */
    -231        Color slider() default Color.NO_COLOR;
    -232    }
    -233
    -234    @Retention(RetentionPolicy.RUNTIME)
    -235    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -236    @interface Boolean {
    -237        /** Store index for this annotation (position in telemetry)
    -238         *
    -239         * @return The index
    -240         */
    -241        int index() default -1;
    -242
    -243        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -244         *
    -245         * @return The priority
    -246         */
    -247        int priority() default -1;
    -248
    -249        /** Store the string when the annotated method returns true
    -250         *
    -251         * @return The string
    -252         */
    -253        String trueValue() default "true";
    -254
    -255        /** The format for when the boolean returns true
    -256         *
    -257         * @return The String format
    -258         */
    -259        String trueFormat() default "%s";
    -260
    -261        /** The color for the true String
    -262         *
    -263         * @return The color
    -264         */
    -265        Color trueColor() default Color.NO_COLOR;
    -266
    -267        /** Store the string when the annotated method returns false
    -268         *
    -269         * @return The string
    -270         */
    -271        String falseValue() default "false";
    -272
    -273        /** The format for when the boolean returns false
    -274         *
    -275         * @return The String format
    -276         */
    -277        String falseFormat() default "%s";
    -278
    -279        /** The color for the false String
    -280         *
    -281         * @return The color
    -282         */
    -283        Color falseColor() default Color.NO_COLOR;
    -284
    -285        /** Store the name for this annotation to be be beside
    -286         *
    -287         * @return The name as a string
    -288         */
    -289        String name() default "";
    -290
    -291        /** The color for the tag for the boolean
    -292         *
    -293         * @return The color
    -294         */
    -295        Color color() default Color.NO_COLOR;
    -296    }
    -297}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberSlider.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberSlider.html deleted file mode 100644 index 9601b5ef..00000000 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.NumberSlider.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001package com.technototes.library.logger;
    -002
    -003import static java.lang.annotation.ElementType.FIELD;
    -004import static java.lang.annotation.ElementType.LOCAL_VARIABLE;
    -005import static java.lang.annotation.ElementType.METHOD;
    -006
    -007import com.technototes.library.util.Color;
    -008import java.lang.annotation.Documented;
    -009import java.lang.annotation.ElementType;
    -010import java.lang.annotation.Repeatable;
    -011import java.lang.annotation.Retention;
    -012import java.lang.annotation.RetentionPolicy;
    -013import java.lang.annotation.Target;
    -014
    -015/** The root annotation for annotation logging, also doubles as a basic string log
    -016 * @author Alex Stedman
    -017 */
    -018@Documented
    -019@Repeatable(Log.Logs.class)
    -020@Retention(RetentionPolicy.RUNTIME)
    -021@Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -022public @interface Log {
    -023    /** Store index for this annotation (position in telemetry)
    -024     *
    -025     * @return The index
    -026     */
    -027    int index() default -1;
    -028
    -029    /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -030     *
    -031     * @return The priority
    -032     */
    -033    int priority() default -1;
    -034
    -035    /** Store the name for this annotation to be be beside
    -036     *
    -037     * @return The name as a string
    -038     */
    -039    String name() default "";
    -040
    -041    /** The format for the logged String
    -042     *
    -043     * @return The format
    -044     */
    -045    String format() default "%s";
    -046
    -047    /** The color for the entry
    -048     *
    -049     * @return The color
    -050     */
    -051    Color entryColor() default Color.NO_COLOR;
    -052
    -053    /** The color for the tag for the entry
    -054     *
    -055     * @return The color
    -056     */
    -057    Color color() default Color.NO_COLOR;
    -058
    -059    @Documented
    -060    @Retention(RetentionPolicy.RUNTIME)
    -061    @Target({ ElementType.FIELD, ElementType.METHOD })
    -062    @interface Logs {
    -063        Log[] value();
    -064    }
    -065
    -066    /** Log a number
    -067     *
    -068     */
    -069    @Retention(RetentionPolicy.RUNTIME)
    -070    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -071    @interface Number {
    -072        /** Store index for this annotation (position in telemetry)
    -073         *
    -074         * @return The index
    -075         */
    -076        int index() default -1;
    -077
    -078        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -079         *
    -080         * @return The priority
    -081         */
    -082        int priority() default -1;
    -083
    -084        /** Store the name for this annotation to be be beside
    -085         *
    -086         * @return The name as a string
    -087         */
    -088        String name() default "";
    -089
    -090        /** The color for the tag for the number
    -091         *
    -092         * @return The color
    -093         */
    -094        Color color() default Color.NO_COLOR;
    -095
    -096        /** The color for the number
    -097         *
    -098         * @return The color
    -099         */
    -100        Color numberColor() default Color.NO_COLOR;
    -101    }
    -102
    -103    /** Log a number, but store it as a number bar
    -104     *
    -105     */
    -106    @Retention(RetentionPolicy.RUNTIME)
    -107    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -108    @interface NumberBar {
    -109        /** Store index for this annotation (position in telemetry)
    -110         *
    -111         * @return The index
    -112         */
    -113        int index() default -1;
    -114
    -115        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -116         *
    -117         * @return The priority
    -118         */
    -119        int priority() default -1;
    -120
    -121        /** Store the min for the number bar to scale to
    -122         *
    -123         * @return The min
    -124         */
    -125        double min() default -1;
    -126
    -127        /** Store the max for the number bar to scale to
    -128         *
    -129         * @return The max
    -130         */
    -131        double max() default 1;
    -132
    -133        /** Store the scale for the number bar to scale to
    -134         *
    -135         * @return The scale
    -136         */
    -137        double scale() default 0.1;
    -138
    -139        /** Store the name for this annotation to be be beside
    -140         *
    -141         * @return The name as a string
    -142         */
    -143        String name() default "";
    -144
    -145        /** The color for the tag for the bar
    -146         *
    -147         * @return The color
    -148         */
    -149        Color color() default Color.NO_COLOR;
    -150
    -151        /** The color for the filled in bar color
    -152         *
    -153         * @return The color
    -154         */
    -155        Color completeBarColor() default Color.NO_COLOR;
    -156
    -157        /** The color for the not filled in bar color
    -158         *
    -159         * @return The color
    -160         */
    -161        Color incompleteBarColor() default Color.NO_COLOR;
    -162
    -163        /** The color for the bar outlines
    -164         *
    -165         * @return The color
    -166         */
    -167        Color outline() default Color.NO_COLOR;
    -168    }
    -169
    -170    @Retention(RetentionPolicy.RUNTIME)
    -171    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -172    @interface NumberSlider {
    -173        /** Store index for this annotation (position in telemetry)
    -174         *
    -175         * @return The index
    -176         */
    -177        int index() default -1;
    -178
    -179        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -180         *
    -181         * @return The priority
    -182         */
    -183        int priority() default -1;
    -184
    -185        /** Store the min for the number bar to scale to
    -186         *
    -187         * @return The min
    -188         */
    -189        double min() default -1;
    -190
    -191        /** Store the max for the number bar to scale to
    -192         *
    -193         * @return The max
    -194         */
    -195        double max() default 1;
    -196
    -197        /** Store the scale for the number bar to scale to
    -198         *
    -199         * @return The scale
    -200         */
    -201        double scale() default 0.1;
    -202
    -203        /** Store the name for this annotation to be be beside
    -204         *
    -205         * @return The name as a string
    -206         */
    -207        String name() default "";
    -208
    -209        /** The color for the tag for the slider
    -210         *
    -211         * @return The color
    -212         */
    -213        Color color() default Color.NO_COLOR;
    -214
    -215        /** The color for the slider background
    -216         *
    -217         * @return The color
    -218         */
    -219        Color sliderBackground() default Color.NO_COLOR;
    -220
    -221        /** The color for the slider outline
    -222         *
    -223         * @return The color
    -224         */
    -225        Color outline() default Color.NO_COLOR;
    -226
    -227        /** The color for the slider slide
    -228         *
    -229         * @return The color
    -230         */
    -231        Color slider() default Color.NO_COLOR;
    -232    }
    -233
    -234    @Retention(RetentionPolicy.RUNTIME)
    -235    @Target(value = { FIELD, LOCAL_VARIABLE, METHOD })
    -236    @interface Boolean {
    -237        /** Store index for this annotation (position in telemetry)
    -238         *
    -239         * @return The index
    -240         */
    -241        int index() default -1;
    -242
    -243        /** Store priority for this log entry (to pick the most wanted entry over others with same index)
    -244         *
    -245         * @return The priority
    -246         */
    -247        int priority() default -1;
    -248
    -249        /** Store the string when the annotated method returns true
    -250         *
    -251         * @return The string
    -252         */
    -253        String trueValue() default "true";
    -254
    -255        /** The format for when the boolean returns true
    -256         *
    -257         * @return The String format
    -258         */
    -259        String trueFormat() default "%s";
    -260
    -261        /** The color for the true String
    -262         *
    -263         * @return The color
    -264         */
    -265        Color trueColor() default Color.NO_COLOR;
    -266
    -267        /** Store the string when the annotated method returns false
    -268         *
    -269         * @return The string
    -270         */
    -271        String falseValue() default "false";
    -272
    -273        /** The format for when the boolean returns false
    -274         *
    -275         * @return The String format
    -276         */
    -277        String falseFormat() default "%s";
    -278
    -279        /** The color for the false String
    -280         *
    -281         * @return The color
    -282         */
    -283        Color falseColor() default Color.NO_COLOR;
    -284
    -285        /** Store the name for this annotation to be be beside
    -286         *
    -287         * @return The name as a string
    -288         */
    -289        String name() default "";
    -290
    -291        /** The color for the tag for the boolean
    -292         *
    -293         * @return The color
    -294         */
    -295        Color color() default Color.NO_COLOR;
    -296    }
    -297}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.html index b7356acb..d90faa60 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Log.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/Log.html @@ -17,297 +17,112 @@ 004import static java.lang.annotation.ElementType.LOCAL_VARIABLE; 005import static java.lang.annotation.ElementType.METHOD; 006 -007import com.technototes.library.util.Color; -008import java.lang.annotation.Documented; -009import java.lang.annotation.ElementType; -010import java.lang.annotation.Repeatable; -011import java.lang.annotation.Retention; -012import java.lang.annotation.RetentionPolicy; -013import java.lang.annotation.Target; -014 -015/** The root annotation for annotation logging, also doubles as a basic string log -016 * @author Alex Stedman -017 */ -018@Documented -019@Repeatable(Log.Logs.class) -020@Retention(RetentionPolicy.RUNTIME) -021@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -022public @interface Log { -023 /** Store index for this annotation (position in telemetry) -024 * -025 * @return The index -026 */ -027 int index() default -1; -028 -029 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -030 * -031 * @return The priority -032 */ -033 int priority() default -1; -034 -035 /** Store the name for this annotation to be be beside -036 * -037 * @return The name as a string -038 */ -039 String name() default ""; -040 -041 /** The format for the logged String -042 * -043 * @return The format -044 */ -045 String format() default "%s"; -046 -047 /** The color for the entry -048 * -049 * @return The color -050 */ -051 Color entryColor() default Color.NO_COLOR; +007import java.lang.annotation.Documented; +008import java.lang.annotation.ElementType; +009import java.lang.annotation.Repeatable; +010import java.lang.annotation.Retention; +011import java.lang.annotation.RetentionPolicy; +012import java.lang.annotation.Target; +013 +014/** The root annotation for annotation logging, also doubles as a basic string log +015 * @author Alex Stedman +016 */ +017@Documented +018@Repeatable(Log.Logs.class) +019@Retention(RetentionPolicy.RUNTIME) +020@Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +021public @interface Log { +022 /** Store index for this annotation (position in telemetry) +023 * +024 * @return The index +025 */ +026 int index() default -1; +027 +028 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +029 * +030 * @return The priority +031 */ +032 int priority() default -1; +033 +034 /** Store the name for this annotation to be be beside +035 * +036 * @return The name as a string +037 */ +038 String name() default ""; +039 +040 /** The format for the logged String +041 * +042 * @return The format +043 */ +044 String format() default "%s"; +045 +046 @Documented +047 @Retention(RetentionPolicy.RUNTIME) +048 @Target({ ElementType.FIELD, ElementType.METHOD }) +049 @interface Logs { +050 Log[] value(); +051 } 052 -053 /** The color for the tag for the entry +053 /** Log a number 054 * -055 * @return The color -056 */ -057 Color color() default Color.NO_COLOR; -058 -059 @Documented -060 @Retention(RetentionPolicy.RUNTIME) -061 @Target({ ElementType.FIELD, ElementType.METHOD }) -062 @interface Logs { -063 Log[] value(); -064 } -065 -066 /** Log a number -067 * -068 */ -069 @Retention(RetentionPolicy.RUNTIME) -070 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -071 @interface Number { -072 /** Store index for this annotation (position in telemetry) -073 * -074 * @return The index -075 */ -076 int index() default -1; +055 */ +056 @Retention(RetentionPolicy.RUNTIME) +057 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +058 @interface Number { +059 /** Store index for this annotation (position in telemetry) +060 * +061 * @return The index +062 */ +063 int index() default -1; +064 +065 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +066 * +067 * @return The priority +068 */ +069 int priority() default -1; +070 +071 /** Store the name for this annotation to be be beside +072 * +073 * @return The name as a string +074 */ +075 String name() default ""; +076 } 077 -078 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -079 * -080 * @return The priority -081 */ -082 int priority() default -1; -083 -084 /** Store the name for this annotation to be be beside -085 * -086 * @return The name as a string -087 */ -088 String name() default ""; -089 -090 /** The color for the tag for the number -091 * -092 * @return The color -093 */ -094 Color color() default Color.NO_COLOR; -095 -096 /** The color for the number -097 * -098 * @return The color -099 */ -100 Color numberColor() default Color.NO_COLOR; -101 } -102 -103 /** Log a number, but store it as a number bar -104 * -105 */ -106 @Retention(RetentionPolicy.RUNTIME) -107 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -108 @interface NumberBar { -109 /** Store index for this annotation (position in telemetry) -110 * -111 * @return The index -112 */ -113 int index() default -1; -114 -115 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -116 * -117 * @return The priority -118 */ -119 int priority() default -1; -120 -121 /** Store the min for the number bar to scale to -122 * -123 * @return The min -124 */ -125 double min() default -1; -126 -127 /** Store the max for the number bar to scale to -128 * -129 * @return The max -130 */ -131 double max() default 1; -132 -133 /** Store the scale for the number bar to scale to -134 * -135 * @return The scale -136 */ -137 double scale() default 0.1; -138 -139 /** Store the name for this annotation to be be beside -140 * -141 * @return The name as a string -142 */ -143 String name() default ""; -144 -145 /** The color for the tag for the bar -146 * -147 * @return The color -148 */ -149 Color color() default Color.NO_COLOR; -150 -151 /** The color for the filled in bar color -152 * -153 * @return The color -154 */ -155 Color completeBarColor() default Color.NO_COLOR; -156 -157 /** The color for the not filled in bar color -158 * -159 * @return The color -160 */ -161 Color incompleteBarColor() default Color.NO_COLOR; -162 -163 /** The color for the bar outlines -164 * -165 * @return The color -166 */ -167 Color outline() default Color.NO_COLOR; -168 } -169 -170 @Retention(RetentionPolicy.RUNTIME) -171 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -172 @interface NumberSlider { -173 /** Store index for this annotation (position in telemetry) -174 * -175 * @return The index -176 */ -177 int index() default -1; -178 -179 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -180 * -181 * @return The priority -182 */ -183 int priority() default -1; -184 -185 /** Store the min for the number bar to scale to -186 * -187 * @return The min -188 */ -189 double min() default -1; -190 -191 /** Store the max for the number bar to scale to -192 * -193 * @return The max -194 */ -195 double max() default 1; -196 -197 /** Store the scale for the number bar to scale to -198 * -199 * @return The scale -200 */ -201 double scale() default 0.1; -202 -203 /** Store the name for this annotation to be be beside -204 * -205 * @return The name as a string -206 */ -207 String name() default ""; -208 -209 /** The color for the tag for the slider -210 * -211 * @return The color -212 */ -213 Color color() default Color.NO_COLOR; -214 -215 /** The color for the slider background -216 * -217 * @return The color -218 */ -219 Color sliderBackground() default Color.NO_COLOR; -220 -221 /** The color for the slider outline -222 * -223 * @return The color -224 */ -225 Color outline() default Color.NO_COLOR; -226 -227 /** The color for the slider slide -228 * -229 * @return The color -230 */ -231 Color slider() default Color.NO_COLOR; -232 } -233 -234 @Retention(RetentionPolicy.RUNTIME) -235 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -236 @interface Boolean { -237 /** Store index for this annotation (position in telemetry) -238 * -239 * @return The index -240 */ -241 int index() default -1; -242 -243 /** Store priority for this log entry (to pick the most wanted entry over others with same index) -244 * -245 * @return The priority -246 */ -247 int priority() default -1; -248 -249 /** Store the string when the annotated method returns true -250 * -251 * @return The string -252 */ -253 String trueValue() default "true"; -254 -255 /** The format for when the boolean returns true -256 * -257 * @return The String format -258 */ -259 String trueFormat() default "%s"; -260 -261 /** The color for the true String -262 * -263 * @return The color -264 */ -265 Color trueColor() default Color.NO_COLOR; -266 -267 /** Store the string when the annotated method returns false -268 * -269 * @return The string -270 */ -271 String falseValue() default "false"; -272 -273 /** The format for when the boolean returns false -274 * -275 * @return The String format -276 */ -277 String falseFormat() default "%s"; -278 -279 /** The color for the false String -280 * -281 * @return The color -282 */ -283 Color falseColor() default Color.NO_COLOR; -284 -285 /** Store the name for this annotation to be be beside -286 * -287 * @return The name as a string -288 */ -289 String name() default ""; -290 -291 /** The color for the tag for the boolean -292 * -293 * @return The color -294 */ -295 Color color() default Color.NO_COLOR; -296 } -297} +078 @Retention(RetentionPolicy.RUNTIME) +079 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) +080 @interface Boolean { +081 /** Store index for this annotation (position in telemetry) +082 * +083 * @return The index +084 */ +085 int index() default -1; +086 +087 /** Store priority for this log entry (to pick the most wanted entry over others with same index) +088 * +089 * @return The priority +090 */ +091 int priority() default -1; +092 +093 /** Store the string when the annotated method returns true +094 * +095 * @return The string +096 */ +097 String trueValue() default "true"; +098 +099 /** Store the string when the annotated method returns false +100 * +101 * @return The string +102 */ +103 String falseValue() default "false"; +104 +105 /** Store the name for this annotation to be be beside +106 * +107 * @return The name as a string +108 */ +109 String name() default ""; +110 +111 } +112} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Blacklist.html b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.AllowList.html similarity index 96% rename from docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Blacklist.html rename to docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.AllowList.html index 6441f4be..190a68b5 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Blacklist.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.AllowList.html @@ -4,7 +4,7 @@ Source code - + @@ -45,26 +45,26 @@ 032 boolean duringInit() default false; 033 } 034 -035 /** Annotation for Whitelisting Opmodes to log this item +035 /** Annotation for allowing Opmodes to log this item 036 * 037 */ 038 @Retention(RetentionPolicy.RUNTIME) 039 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -040 @interface Whitelist { -041 /** The whitelisted opmodes +040 @interface AllowList { +041 /** The allowed opmodes 042 * 043 * @return Opmode Classes 044 */ 045 Class<?>[] value(); 046 } 047 -048 /** Annotation for Blacklisting Opmodes to log this item +048 /** Annotation for denying Opmodes to log this item 049 * 050 */ 051 @Retention(RetentionPolicy.RUNTIME) 052 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -053 @interface Blacklist { -054 /** The blacklisted opmodes +053 @interface DenyList { +054 /** The denied opmodes 055 * 056 * @return Opmode Classes 057 */ diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Whitelist.html b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.DenyList.html similarity index 96% rename from docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Whitelist.html rename to docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.DenyList.html index 0abba31c..ad893587 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Whitelist.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.DenyList.html @@ -4,7 +4,7 @@ Source code - + @@ -45,26 +45,26 @@ 032 boolean duringInit() default false; 033 } 034 -035 /** Annotation for Whitelisting Opmodes to log this item +035 /** Annotation for allowing Opmodes to log this item 036 * 037 */ 038 @Retention(RetentionPolicy.RUNTIME) 039 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -040 @interface Whitelist { -041 /** The whitelisted opmodes +040 @interface AllowList { +041 /** The allowed opmodes 042 * 043 * @return Opmode Classes 044 */ 045 Class<?>[] value(); 046 } 047 -048 /** Annotation for Blacklisting Opmodes to log this item +048 /** Annotation for denying Opmodes to log this item 049 * 050 */ 051 @Retention(RetentionPolicy.RUNTIME) 052 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -053 @interface Blacklist { -054 /** The blacklisted opmodes +053 @interface DenyList { +054 /** The denied opmodes 055 * 056 * @return Opmode Classes 057 */ diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Disabled.html b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Disabled.html index 83a4001a..9280604e 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Disabled.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Disabled.html @@ -45,26 +45,26 @@ 032 boolean duringInit() default false; 033 } 034 -035 /** Annotation for Whitelisting Opmodes to log this item +035 /** Annotation for allowing Opmodes to log this item 036 * 037 */ 038 @Retention(RetentionPolicy.RUNTIME) 039 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -040 @interface Whitelist { -041 /** The whitelisted opmodes +040 @interface AllowList { +041 /** The allowed opmodes 042 * 043 * @return Opmode Classes 044 */ 045 Class<?>[] value(); 046 } 047 -048 /** Annotation for Blacklisting Opmodes to log this item +048 /** Annotation for denying Opmodes to log this item 049 * 050 */ 051 @Retention(RetentionPolicy.RUNTIME) 052 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -053 @interface Blacklist { -054 /** The blacklisted opmodes +053 @interface DenyList { +054 /** The denied opmodes 055 * 056 * @return Opmode Classes 057 */ diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Run.html b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Run.html index 206f810c..b40f8d2d 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Run.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.Run.html @@ -45,26 +45,26 @@ 032 boolean duringInit() default false; 033 } 034 -035 /** Annotation for Whitelisting Opmodes to log this item +035 /** Annotation for allowing Opmodes to log this item 036 * 037 */ 038 @Retention(RetentionPolicy.RUNTIME) 039 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -040 @interface Whitelist { -041 /** The whitelisted opmodes +040 @interface AllowList { +041 /** The allowed opmodes 042 * 043 * @return Opmode Classes 044 */ 045 Class<?>[] value(); 046 } 047 -048 /** Annotation for Blacklisting Opmodes to log this item +048 /** Annotation for denying Opmodes to log this item 049 * 050 */ 051 @Retention(RetentionPolicy.RUNTIME) 052 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -053 @interface Blacklist { -054 /** The blacklisted opmodes +053 @interface DenyList { +054 /** The denied opmodes 055 * 056 * @return Opmode Classes 057 */ diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.html b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.html index 38073f2d..18385b64 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/LogConfig.html @@ -45,26 +45,26 @@ 032 boolean duringInit() default false; 033 } 034 -035 /** Annotation for Whitelisting Opmodes to log this item +035 /** Annotation for allowing Opmodes to log this item 036 * 037 */ 038 @Retention(RetentionPolicy.RUNTIME) 039 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -040 @interface Whitelist { -041 /** The whitelisted opmodes +040 @interface AllowList { +041 /** The allowed opmodes 042 * 043 * @return Opmode Classes 044 */ 045 Class<?>[] value(); 046 } 047 -048 /** Annotation for Blacklisting Opmodes to log this item +048 /** Annotation for denying Opmodes to log this item 049 * 050 */ 051 @Retention(RetentionPolicy.RUNTIME) 052 @Target(value = { FIELD, LOCAL_VARIABLE, METHOD }) -053 @interface Blacklist { -054 /** The blacklisted opmodes +053 @interface DenyList { +054 /** The denied opmodes 055 * 056 * @return Opmode Classes 057 */ diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/Logger.html b/docs/TechnoLib/src-html/com/technototes/library/logger/Logger.html index 8559cd8d..8b511079 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/Logger.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/Logger.html @@ -16,316 +16,274 @@ 003import com.qualcomm.robotcore.eventloop.opmode.OpMode; 004import com.technototes.library.logger.entry.BooleanEntry; 005import com.technototes.library.logger.entry.Entry; -006import com.technototes.library.logger.entry.NumberBarEntry; -007import com.technototes.library.logger.entry.NumberEntry; -008import com.technototes.library.logger.entry.NumberSliderEntry; -009import com.technototes.library.logger.entry.StringEntry; -010import java.lang.annotation.Annotation; -011import java.lang.reflect.Field; -012import java.lang.reflect.InvocationTargetException; -013import java.lang.reflect.Method; -014import java.sql.Array; -015import java.util.ArrayList; -016import java.util.Arrays; -017import java.util.LinkedHashSet; -018import java.util.List; -019import java.util.Set; -020import java.util.function.BooleanSupplier; -021import java.util.function.DoubleSupplier; -022import java.util.function.IntSupplier; -023import java.util.function.Supplier; -024import org.firstinspires.ftc.robotcore.external.Telemetry; -025 -026/** -027 * The class to manage logging -028 * -029 * @author Alex Stedman -030 */ -031public class Logger { -032 -033 public Entry<?>[] runEntries; -034 public Entry<?>[] initEntries; -035 private final Set<Entry<?>> unindexedRunEntries; -036 private final Set<Entry<?>> unindexedInitEntries; -037 private final Telemetry telemetry; -038 private final OpMode opMode; -039 /** -040 * The divider between the tag and the entry for telemetry (default ':') -041 */ -042 public char captionDivider = ':'; -043 -044 /** -045 * Instantiate the logger -046 * -047 * @param op The OpMode class -048 */ -049 public Logger(OpMode op) { -050 opMode = op; -051 telemetry = op.telemetry; -052 telemetry.setDisplayFormat(Telemetry.DisplayFormat.HTML); -053 unindexedRunEntries = new LinkedHashSet<>(); -054 unindexedInitEntries = new LinkedHashSet<>(); -055 configure(op); -056 runEntries = generate(unindexedRunEntries); -057 initEntries = generate(unindexedInitEntries); -058 } -059 -060 private void configure(Object root) { -061 for (Field field : root.getClass().getFields()) { -062 try { -063 Object o = field.get(root); -064 if (isFieldAllowed(field)) { -065 if (o instanceof Loggable) { -066 configure(o); -067 } else if ( -068 field.isAnnotationPresent(Log.class) || -069 field.isAnnotationPresent(Log.Number.class) || -070 field.isAnnotationPresent(Log.NumberSlider.class) || -071 field.isAnnotationPresent(Log.NumberBar.class) || -072 field.isAnnotationPresent(Log.Boolean.class) -073 ) { -074 if (field.getType().isPrimitive() || o instanceof String) { -075 set(field.getDeclaredAnnotations(), field, root); -076 System.out.println("prim"); -077 } else if (getCustom(o) != null) { -078 set(field.getDeclaredAnnotations(), getCustom(o)); -079 System.out.println("cust"); -080 } -081 } -082 } -083 } catch (IllegalAccessException ignored) { -084 System.out.println("reeeeeeeeeeeeeeeeeeee"); -085 } -086 } -087 for (Method m : root.getClass().getMethods()) { -088 set(m.getDeclaredAnnotations(), m, root); -089 } -090 } -091 -092 // TODO make list and do sort with comparators -093 // I wish this had a comment describing what Alex thinks it's doing, -094 // I *think* it'strying to set the 'indexed' entries to their preferred locations -095 // then filling in the gaps with unindexed or lower priority entries. -096 // That bottom loop is also quite slow, but we're talking about 0-20 entries, so performance -097 // is probably irrelevant... -098 private Entry<?>[] generate(Set<Entry<?>> a) { -099 Entry<?>[] returnEntry = new Entry[a.size()]; -100 List<Entry<?>> unindexed = new ArrayList<>(); -101 for (Entry<?> e : a) { -102 int index = e.getIndex(); -103 if (index >= 0 && index < returnEntry.length) { -104 Entry<?> other = returnEntry[index]; -105 if (other == null) { -106 returnEntry[index] = e; -107 } else { -108 if (e.getPriority() > other.getPriority()) { -109 unindexed.add(other); -110 returnEntry[index] = e; -111 } else { -112 unindexed.add(e); -113 } -114 } -115 } else { -116 unindexed.add(e); +006import com.technototes.library.logger.entry.NumberEntry; +007import com.technototes.library.logger.entry.StringEntry; +008import java.lang.annotation.Annotation; +009import java.lang.reflect.Field; +010import java.lang.reflect.InvocationTargetException; +011import java.lang.reflect.Method; +012import java.util.ArrayList; +013import java.util.Arrays; +014import java.util.LinkedHashSet; +015import java.util.List; +016import java.util.Set; +017import java.util.function.BooleanSupplier; +018import java.util.function.DoubleSupplier; +019import java.util.function.IntSupplier; +020import java.util.function.Supplier; +021import org.firstinspires.ftc.robotcore.external.Telemetry; +022 +023/** +024 * The class to manage logging +025 * +026 * @author Alex Stedman +027 */ +028public class Logger { +029 +030 public Entry<?>[] runEntries; +031 public Entry<?>[] initEntries; +032 private final Set<Entry<?>> unindexedRunEntries; +033 private final Set<Entry<?>> unindexedInitEntries; +034 private final Telemetry telemetry; +035 private final OpMode opMode; +036 /** +037 * The divider between the tag and the entry for telemetry (default ':') +038 */ +039 public char captionDivider = ':'; +040 +041 /** +042 * Instantiate the logger +043 * +044 * @param op The OpMode class +045 */ +046 public Logger(OpMode op) { +047 opMode = op; +048 telemetry = op.telemetry; +049 telemetry.setDisplayFormat(Telemetry.DisplayFormat.HTML); +050 unindexedRunEntries = new LinkedHashSet<>(); +051 unindexedInitEntries = new LinkedHashSet<>(); +052 configure(op); +053 runEntries = generate(unindexedRunEntries); +054 initEntries = generate(unindexedInitEntries); +055 } +056 +057 private void configure(Object root) { +058 for (Field field : root.getClass().getFields()) { +059 try { +060 Object o = field.get(root); +061 if (isFieldAllowed(field)) { +062 if (o instanceof Loggable) { +063 configure(o); +064 } else if ( +065 field.isAnnotationPresent(Log.class) || +066 field.isAnnotationPresent(Log.Number.class) || +067 field.isAnnotationPresent(Log.Boolean.class) +068 ) { +069 if (field.getType().isPrimitive() || o instanceof String) { +070 set(field.getDeclaredAnnotations(), field, root); +071 System.out.println("prim"); +072 } else if (getCustom(o) != null) { +073 set(field.getDeclaredAnnotations(), getCustom(o)); +074 System.out.println("cust"); +075 } +076 } +077 } +078 } catch (IllegalAccessException ignored) { +079 System.out.println("reeeeeeeeeeeeeeeeeeee"); +080 } +081 } +082 for (Method m : root.getClass().getMethods()) { +083 set(m.getDeclaredAnnotations(), m, root); +084 } +085 } +086 +087 // TODO make list and do sort with comparators +088 // I wish this had a comment describing what Alex thinks it's doing, +089 // I *think* it'strying to set the 'indexed' entries to their preferred locations +090 // then filling in the gaps with unindexed or lower priority entries. +091 // That bottom loop is also quite slow, but we're talking about 0-20 entries, so performance +092 // is probably irrelevant... +093 private Entry<?>[] generate(Set<Entry<?>> a) { +094 Entry<?>[] returnEntry = new Entry[a.size()]; +095 List<Entry<?>> unindexed = new ArrayList<>(); +096 for (Entry<?> e : a) { +097 int index = e.getIndex(); +098 if (index >= 0 && index < returnEntry.length) { +099 Entry<?> other = returnEntry[index]; +100 if (other == null) { +101 returnEntry[index] = e; +102 } else { +103 if (e.getPriority() > other.getPriority()) { +104 unindexed.add(other); +105 returnEntry[index] = e; +106 } else { +107 unindexed.add(e); +108 } +109 } +110 } else { +111 unindexed.add(e); +112 } +113 } +114 for (int i = 0; unindexed.size() > 0; i++) { +115 if (returnEntry[i] == null) { +116 returnEntry[i] = unindexed.remove(0); 117 } 118 } -119 for (int i = 0; unindexed.size() > 0; i++) { -120 if (returnEntry[i] == null) { -121 returnEntry[i] = unindexed.remove(0); -122 } -123 } -124 return returnEntry; -125 } -126 -127 private void update(Entry<?>[] choice) { -128 try { -129 for (int i = 0; i < choice.length; i++) { -130 telemetry.addLine( -131 (i > 9 ? i + "| " : i + " | ") + -132 (choice[i] == null ? "" : choice[i].getTag().replace('`', captionDivider) + choice[i].toString()) -133 ); -134 } -135 telemetry.update(); -136 } catch (Exception ignored) {} -137 } -138 -139 /** -140 * Update the logged run items in temeletry -141 */ -142 public void runUpdate() { -143 update(runEntries); -144 } -145 -146 /** -147 * Update the logged init items in temeletry -148 */ -149 public void initUpdate() { -150 update(initEntries); -151 } -152 -153 private void set(Annotation[] a, Method m, Object root) { -154 set( -155 a, -156 () -> { -157 try { -158 return m.invoke(root); -159 } catch (IllegalAccessException | InvocationTargetException e) { -160 e.printStackTrace(); -161 } -162 return null; -163 } -164 ); -165 } -166 -167 private void set(Annotation[] a, Field m, Object root) { -168 set( -169 a, -170 () -> { -171 try { -172 return m.get(root); -173 } catch (IllegalAccessException e) { -174 e.printStackTrace(); -175 } -176 return null; -177 } -178 ); -179 } -180 -181 @SuppressWarnings({ "unchecked" }) -182 private void set(Annotation[] a, Supplier<?> m) { -183 boolean init = false, run = true; -184 Entry<?> e = null; -185 for (Annotation as : a) { -186 if (as instanceof Log.NumberSlider) { -187 e = -188 new NumberSliderEntry( -189 ((Log.NumberSlider) as).name(), -190 (Supplier<Number>) m, -191 ((Log.NumberSlider) as).index(), -192 ((Log.NumberSlider) as).min(), -193 ((Log.NumberSlider) as).max(), -194 ((Log.NumberSlider) as).scale(), -195 ((Log.NumberSlider) as).color(), -196 ((Log.NumberSlider) as).sliderBackground(), -197 ((Log.NumberSlider) as).outline(), -198 ((Log.NumberSlider) as).slider() -199 ); -200 e.setPriority(((Log.NumberSlider) as).priority()); -201 } else if (as instanceof Log.NumberBar) { -202 e = -203 new NumberBarEntry( -204 ((Log.NumberBar) as).name(), -205 (Supplier<Number>) m, -206 ((Log.NumberBar) as).index(), -207 ((Log.NumberBar) as).min(), -208 ((Log.NumberBar) as).max(), -209 ((Log.NumberBar) as).scale(), -210 ((Log.NumberBar) as).color(), -211 ((Log.NumberBar) as).completeBarColor(), -212 ((Log.NumberBar) as).outline(), -213 ((Log.NumberBar) as).incompleteBarColor() -214 ); -215 e.setPriority(((Log.NumberBar) as).priority()); -216 } else if (as instanceof Log.Number) { -217 e = -218 new NumberEntry( -219 ((Log.Number) as).name(), -220 (Supplier<Number>) m, -221 ((Log.Number) as).index(), -222 ((Log.Number) as).color(), -223 ((Log.Number) as).numberColor() -224 ); -225 e.setPriority(((Log.Number) as).priority()); -226 } else if (as instanceof Log) { -227 e = -228 new StringEntry( -229 ((Log) as).name(), -230 (Supplier<String>) m, -231 ((Log) as).index(), -232 ((Log) as).color(), -233 ((Log) as).format(), -234 ((Log) as).entryColor() -235 ); -236 e.setPriority(((Log) as).priority()); -237 } else if (as instanceof Log.Boolean) { -238 e = -239 new BooleanEntry( -240 ((Log.Boolean) as).name(), -241 (Supplier<Boolean>) m, -242 ((Log.Boolean) as).index(), -243 ((Log.Boolean) as).trueValue(), -244 ((Log.Boolean) as).falseValue(), -245 ((Log.Boolean) as).color(), -246 ((Log.Boolean) as).trueFormat(), -247 ((Log.Boolean) as).falseFormat(), -248 ((Log.Boolean) as).trueColor(), -249 ((Log.Boolean) as).falseColor() -250 ); -251 e.setPriority(((Log.Boolean) as).priority()); -252 } else if (as instanceof LogConfig.Run) { -253 init = ((LogConfig.Run) as).duringInit(); -254 run = ((LogConfig.Run) as).duringRun(); -255 } -256 } -257 if (e != null) { -258 if (init) { -259 unindexedInitEntries.add(e); -260 } -261 if (run) { -262 unindexedRunEntries.add(e); -263 } -264 } -265 } -266 -267 /** -268 * Repeat a String -269 * -270 * @param s The String to repeat -271 * @param num The amount of times to repeat the String -272 * @return The String s repeated num times -273 */ -274 public static String repeat(String s, int num) { -275 if (num > 100) { -276 System.err.println("One of the entries is too long, make sure your scaling is correct"); -277 num = 100; -278 } -279 return num > 0 ? repeat(s, num - 1) + s : ""; -280 } -281 -282 private static Supplier<?> getCustom(Object o) { -283 if (o instanceof Supplier) { -284 return (Supplier<?>) o; -285 } else if (o instanceof BooleanSupplier) { -286 return ((BooleanSupplier) o)::getAsBoolean; -287 } else if (o instanceof IntSupplier) { -288 return ((IntSupplier) o)::getAsInt; -289 } else if (o instanceof DoubleSupplier) { -290 return ((DoubleSupplier) o)::getAsDouble; -291 } else if (o instanceof Integer) { -292 return () -> (Integer) o; -293 } else if (o instanceof Double) { -294 return () -> (Double) o; -295 } else if (o instanceof Boolean) { -296 return () -> (Boolean) o; -297 } else { -298 return null; -299 } -300 } -301 -302 private boolean isFieldAllowed(Field f) { -303 if (f.isAnnotationPresent(LogConfig.Whitelist.class)) { -304 if (!Arrays.asList(f.getAnnotation(LogConfig.Whitelist.class).value()).contains(opMode.getClass())) { -305 return false; -306 } -307 } -308 if (f.isAnnotationPresent(LogConfig.Blacklist.class)) { -309 if (Arrays.asList(f.getAnnotation(LogConfig.Blacklist.class).value()).contains(opMode.getClass())) { -310 return false; -311 } -312 } -313 return !f.isAnnotationPresent(LogConfig.Disabled.class); -314 } -315} +119 return returnEntry; +120 } +121 +122 private void update(Entry<?>[] choice) { +123 try { +124 for (Entry<?> item : choice) { +125 // telemetry.addLine( +126 // (i > 9 ? i + "| " : i + " | ") + +127 // (choice[i] == null ? "" : choice[i].getTag().replace('`', captionDivider) + choice[i].toString()) +128 // ); +129 // All teh fancy HTML stuff gets in the way of the FTC Dashboard graph +130 telemetry.addData(item.getName(), item.get()); +131 } +132 telemetry.update(); +133 } catch (Exception ignored) {} +134 } +135 +136 /** +137 * Update the logged run items in temeletry +138 */ +139 public void runUpdate() { +140 update(runEntries); +141 } +142 +143 /** +144 * Update the logged init items in temeletry +145 */ +146 public void initUpdate() { +147 update(initEntries); +148 } +149 +150 private void set(Annotation[] a, Method m, Object root) { +151 set( +152 a, +153 () -> { +154 try { +155 return m.invoke(root); +156 } catch (IllegalAccessException | InvocationTargetException e) { +157 e.printStackTrace(); +158 } +159 return null; +160 } +161 ); +162 } +163 +164 private void set(Annotation[] a, Field m, Object root) { +165 set( +166 a, +167 () -> { +168 try { +169 return m.get(root); +170 } catch (IllegalAccessException e) { +171 e.printStackTrace(); +172 } +173 return null; +174 } +175 ); +176 } +177 +178 @SuppressWarnings({ "unchecked" }) +179 private void set(Annotation[] a, Supplier<?> m) { +180 boolean init = false, run = true; +181 Entry<?> e = null; +182 for (Annotation as : a) { +183 if (as instanceof Log.Number) { +184 e = +185 new NumberEntry( +186 ((Log.Number) as).name(), +187 (Supplier<Number>) m, +188 ((Log.Number) as).index() +189 ); +190 e.setPriority(((Log.Number) as).priority()); +191 } else if (as instanceof Log) { +192 e = +193 new StringEntry( +194 ((Log) as).name(), +195 (Supplier<String>) m, +196 ((Log) as).index(), +197 ((Log) as).format() +198 ); +199 e.setPriority(((Log) as).priority()); +200 } else if (as instanceof Log.Boolean) { +201 e = +202 new BooleanEntry( +203 ((Log.Boolean) as).name(), +204 (Supplier<Boolean>) m, +205 ((Log.Boolean) as).index(), +206 ((Log.Boolean) as).trueValue(), +207 ((Log.Boolean) as).falseValue() +208 ); +209 e.setPriority(((Log.Boolean) as).priority()); +210 } else if (as instanceof LogConfig.Run) { +211 init = ((LogConfig.Run) as).duringInit(); +212 run = ((LogConfig.Run) as).duringRun(); +213 } +214 } +215 if (e != null) { +216 if (init) { +217 unindexedInitEntries.add(e); +218 } +219 if (run) { +220 unindexedRunEntries.add(e); +221 } +222 } +223 } +224 +225 /** +226 * Repeat a String +227 * +228 * @param s The String to repeat +229 * @param num The amount of times to repeat the String +230 * @return The String s repeated num times +231 */ +232 public static String repeat(String s, int num) { +233 if (num > 100) { +234 System.err.println("One of the entries is too long, make sure your scaling is correct"); +235 num = 100; +236 } +237 return num > 0 ? repeat(s, num - 1) + s : ""; +238 } +239 +240 private static Supplier<?> getCustom(Object o) { +241 if (o instanceof Supplier) { +242 return (Supplier<?>) o; +243 } else if (o instanceof BooleanSupplier) { +244 return ((BooleanSupplier) o)::getAsBoolean; +245 } else if (o instanceof IntSupplier) { +246 return ((IntSupplier) o)::getAsInt; +247 } else if (o instanceof DoubleSupplier) { +248 return ((DoubleSupplier) o)::getAsDouble; +249 } else if (o instanceof Integer) { +250 return () -> (Integer) o; +251 } else if (o instanceof Double) { +252 return () -> (Double) o; +253 } else if (o instanceof Boolean) { +254 return () -> (Boolean) o; +255 } else { +256 return null; +257 } +258 } +259 +260 private boolean isFieldAllowed(Field f) { +261 if (f.isAnnotationPresent(LogConfig.AllowList.class)) { +262 if (!Arrays.asList(f.getAnnotation(LogConfig.AllowList.class).value()).contains(opMode.getClass())) { +263 return false; +264 } +265 } +266 if (f.isAnnotationPresent(LogConfig.DenyList.class)) { +267 if (Arrays.asList(f.getAnnotation(LogConfig.DenyList.class).value()).contains(opMode.getClass())) { +268 return false; +269 } +270 } +271 return !f.isAnnotationPresent(LogConfig.Disabled.class); +272 } +273} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/BooleanEntry.html b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/BooleanEntry.html index ef1975ae..fdf389e0 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/BooleanEntry.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/BooleanEntry.html @@ -18,30 +18,25 @@ 005 006public class BooleanEntry extends Entry<Boolean> { 007 -008 private StringEntry trueEntry, falseEntry; +008 private String trueEntry, falseEntry; 009 010 public BooleanEntry( 011 String n, 012 Supplier<Boolean> s, 013 int index, 014 String wt, -015 String wf, -016 Color c, -017 String tf, -018 String ff, -019 Color tc, -020 Color fc -021 ) { -022 super(n, s, index, c); -023 trueEntry = new StringEntry("", () -> wt, -1, Color.NO_COLOR, tf, tc); -024 falseEntry = new StringEntry("", () -> wf, -1, Color.NO_COLOR, ff, fc); +015 String wf +016 ) { +017 super(n, s, index); +018 trueEntry = wt; +019 falseEntry = wf; +020 } +021 +022 @Override +023 public String toString() { +024 return (get() ? trueEntry : falseEntry); 025 } -026 -027 @Override -028 public String toString() { -029 return (get() ? trueEntry : falseEntry).get(); -030 } -031} +026} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/Entry.html b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/Entry.html index 88f035c8..86b7e984 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/Entry.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/Entry.html @@ -13,131 +13,110 @@
    001package com.technototes.library.logger.entry;
     002
    -003import com.technototes.library.util.Color;
    -004import java.util.function.Supplier;
    -005
    -006/**
    -007 * The root class for logging entries
    -008 *
    -009 * @param <T> The type of value being stored by the entry
    -010 * @author Alex Stedman
    -011 */
    -012public abstract class Entry<T> implements Supplier<T> {
    -013
    -014    /**
    -015     * The index (in the list) of the entry
    -016     */
    -017    protected int x;
    -018    /**
    -019     * The priority (in the telemetry list) of the entry
    -020     */
    -021    protected int priority;
    -022    /**
    -023     * The function called to get the value to display
    -024     */
    -025    protected Supplier<T> supplier;
    -026    /**
    -027     * The name of the Entry
    -028     */
    -029    protected String name;
    +003import java.util.function.Supplier;
    +004
    +005/**
    +006 * The root class for logging entries
    +007 *
    +008 * @param <T> The type of value being stored by the entry
    +009 * @author Alex Stedman
    +010 */
    +011public abstract class Entry<T> implements Supplier<T> {
    +012
    +013    /**
    +014     * The index (in the list) of the entry
    +015     */
    +016    protected int x;
    +017    /**
    +018     * The priority (in the telemetry list) of the entry
    +019     */
    +020    protected int priority;
    +021    /**
    +022     * The function called to get the value to display
    +023     */
    +024    protected Supplier<T> supplier;
    +025    /**
    +026     * The name of the Entry
    +027     */
    +028    protected String name;
    +029
     030    /**
    -031     * String to use a 'header' (calculated from name and color)
    -032     */
    -033    protected String tag;
    -034    /**
    -035     * Color to display
    +031     * Create an entry with name, value, index
    +032     *
    +033     * @param n     Name of the entry
    +034     * @param s     Value function to display
    +035     * @param index Index of the entry
     036     */
    -037    protected Color color;
    -038
    -039    /**
    -040     * Create an entry with name, value, index, and color
    -041     *
    -042     * @param n     Name of the entry
    -043     * @param s     Value function to display
    -044     * @param index Index of the entry
    -045     * @param c     Color to display
    -046     */
    -047    public Entry(String n, Supplier<T> s, int index, Color c) {
    -048        x = index;
    -049        supplier = s;
    -050        name = n;
    -051        color = c;
    -052        tag = (name.equals("") ? " " : color.format(name) + " ` ");
    -053    }
    -054
    -055    /**
    -056     * Set's the priority for this log line (handy for telemetry overflow)
    -057     *
    -058     * @param p The priority
    -059     * @return Self (for chaining)
    -060     */
    -061    public Entry<T> setPriority(int p) {
    -062        priority = p;
    -063        return this;
    -064    }
    -065
    -066    @Override
    -067    public T get() {
    -068        return supplier.get();
    -069    }
    -070
    -071    /**
    -072     * The String for the logged item
    -073     *
    -074     * @return The String
    -075     */
    -076    @Override
    -077    public String toString() {
    -078        return supplier.get().toString();
    -079    }
    -080
    -081    /**
    -082     * The tag for the entry
    -083     *
    -084     * @return The tag
    -085     */
    -086    public String getTag() {
    -087        return tag;
    -088    }
    -089
    -090    /**
    -091     * Get the name (unformatted tag)
    -092     *
    -093     * @return The name
    -094     */
    -095    public String getName() {
    -096        return name;
    -097    }
    -098
    -099    /**
    -100     * Get the index for the entry
    -101     *
    -102     * @return The index
    -103     */
    -104    public int getIndex() {
    -105        return x;
    -106    }
    -107
    -108    /**
    -109     * Set index
    -110     *
    -111     * @param i New index
    -112     * @return this
    -113     */
    -114    public Entry setIndex(int i) {
    -115        x = i;
    -116        return this;
    -117    }
    -118
    -119    /**
    -120     * Get Priority for the entry
    -121     *
    -122     * @return The priority
    -123     */
    -124    public int getPriority() {
    -125        return priority;
    -126    }
    -127}
    +037    public Entry(String n, Supplier<T> s, int index) {
    +038        x = index;
    +039        supplier = s;
    +040        name = n;
    +041    }
    +042
    +043    /**
    +044     * Set's the priority for this log line (handy for telemetry overflow)
    +045     *
    +046     * @param p The priority
    +047     * @return Self (for chaining)
    +048     */
    +049    public Entry<T> setPriority(int p) {
    +050        priority = p;
    +051        return this;
    +052    }
    +053
    +054    @Override
    +055    public T get() {
    +056        return supplier.get();
    +057    }
    +058
    +059    /**
    +060     * The String for the logged item
    +061     *
    +062     * @return The String
    +063     */
    +064    @Override
    +065    public String toString() {
    +066        return supplier.get().toString();
    +067    }
    +068
    +069    /**
    +070     * Get the name
    +071     *
    +072     * @return The name
    +073     */
    +074    public String getName() {
    +075        return name;
    +076    }
    +077
    +078    /**
    +079     * Get the index for the entry
    +080     *
    +081     * @return The index
    +082     */
    +083    public int getIndex() {
    +084        return x;
    +085    }
    +086
    +087    /**
    +088     * Set index
    +089     *
    +090     * @param i New index
    +091     * @return this
    +092     */
    +093    public Entry setIndex(int i) {
    +094        x = i;
    +095        return this;
    +096    }
    +097
    +098    /**
    +099     * Get Priority for the entry
    +100     *
    +101     * @return The priority
    +102     */
    +103    public int getPriority() {
    +104        return priority;
    +105    }
    +106}
     
     
     
    diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberBarEntry.html b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberBarEntry.html
    deleted file mode 100644
    index f570a936..00000000
    --- a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberBarEntry.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -
    -Source code
    -
    -
    -
    -
    -
    -
    -
    -
    -
    001package com.technototes.library.logger.entry;
    -002
    -003import com.technototes.library.logger.Logger;
    -004import com.technototes.library.util.Color;
    -005import java.util.function.Supplier;
    -006
    -007public class NumberBarEntry extends NumberSliderEntry {
    -008
    -009    // primary is bar color, secondary is outline, tertiary is incomplete bar
    -010    public NumberBarEntry(
    -011        String n,
    -012        Supplier<Number> s,
    -013        int x,
    -014        Number mi,
    -015        Number ma,
    -016        Number sc,
    -017        Color c,
    -018        Color pri,
    -019        Color sec,
    -020        Color tert
    -021    ) {
    -022        super(n, s, x, mi, ma, sc, c, pri, sec, tert);
    -023    }
    -024
    -025    @Override
    -026    public String toString() {
    -027        StringBuilder r = new StringBuilder(secondary.format("["));
    -028        int totalAmt = (int) ((max() - min()) / scale());
    -029        int fullAmt = (int) (Math.round((getDouble() - min()) / scale()));
    -030        r.append(primary.format(Logger.repeat("█", fullAmt + 1)));
    -031        r.append(tertiary.format(Logger.repeat("━", totalAmt - fullAmt)));
    -032        r.append(secondary.format("]"));
    -033        return r.toString();
    -034    }
    -035}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberEntry.html b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberEntry.html index 26d11f3e..994637e7 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberEntry.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberEntry.html @@ -20,21 +20,16 @@ 007 008 protected Color numberColor; 009 -010 public NumberEntry(String n, Supplier<Number> s, int x, Color c, Color num) { -011 super(n, s, x, c); -012 numberColor = num; -013 } +010 public NumberEntry(String n, Supplier<Number> s, int x) { +011 super(n, s, x); +012 } +013 014 -015 public NumberEntry(String n, Supplier<Number> s, int x, Color c) { -016 super(n, s, x, c); -017 numberColor = Color.NO_COLOR; +015 @Override +016 public String toString() { +017 return numberColor.format(get()); 018 } -019 -020 @Override -021 public String toString() { -022 return numberColor.format(get()); -023 } -024} +019} diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberSliderEntry.html b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberSliderEntry.html deleted file mode 100644 index ad0b866e..00000000 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/NumberSliderEntry.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001package com.technototes.library.logger.entry;
    -002
    -003import com.technototes.library.logger.Logger;
    -004import com.technototes.library.util.Color;
    -005import java.util.function.Supplier;
    -006
    -007public class NumberSliderEntry extends NumberEntry {
    -008
    -009    protected Number min, max, scale;
    -010    protected Color primary, secondary, tertiary;
    -011
    -012    public NumberSliderEntry(
    -013        String n,
    -014        Supplier<Number> s,
    -015        int x,
    -016        Number mi,
    -017        Number ma,
    -018        Number sc,
    -019        Color c,
    -020        Color pr,
    -021        Color sec,
    -022        Color tert
    -023    ) {
    -024        super(n, s, x, c);
    -025        min = mi;
    -026        max = ma;
    -027        scale = sc;
    -028        primary = pr;
    -029        secondary = sec;
    -030        tertiary = tert;
    -031    }
    -032
    -033    public double min() {
    -034        return min.doubleValue();
    -035    }
    -036
    -037    public double max() {
    -038        return max.doubleValue();
    -039    }
    -040
    -041    public double scale() {
    -042        return scale.doubleValue();
    -043    }
    -044
    -045    public double getDouble() {
    -046        return get().doubleValue();
    -047    }
    -048
    -049    @Override
    -050    public String toString() {
    -051        StringBuilder r = new StringBuilder(secondary.format("["));
    -052        int totalAmt = (int) ((max() - min()) / scale());
    -053        int fullAmt = (int) (Math.round((getDouble() - min()) / scale()));
    -054        r.append(tertiary.format(Logger.repeat("━", fullAmt)));
    -055        r.append(primary.format("█"));
    -056        r.append(tertiary.format(Logger.repeat("━", totalAmt - fullAmt)));
    -057        r.append(secondary.format("]"));
    -058        return r.toString();
    -059    }
    -060}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/StringEntry.html b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/StringEntry.html index ce76bd07..6d7f5d67 100644 --- a/docs/TechnoLib/src-html/com/technototes/library/logger/entry/StringEntry.html +++ b/docs/TechnoLib/src-html/com/technototes/library/logger/entry/StringEntry.html @@ -13,25 +13,22 @@
    001package com.technototes.library.logger.entry;
     002
    -003import com.technototes.library.util.Color;
    -004import java.util.function.Supplier;
    -005
    -006public class StringEntry extends Entry<String> {
    -007
    -008    private String format;
    -009    private Color entryColor;
    -010
    -011    public StringEntry(String n, Supplier<String> s, int x, Color c, String f, Color ec) {
    -012        super(n, s, x, c);
    -013        format = f;
    -014        entryColor = ec;
    -015    }
    -016
    -017    @Override
    -018    public String toString() {
    -019        return entryColor.format(format, get());
    -020    }
    -021}
    +003import java.util.function.Supplier;
    +004
    +005public class StringEntry extends Entry<String> {
    +006
    +007    private String format;
    +008
    +009    public StringEntry(String n, Supplier<String> s, int x, String f) {
    +010        super(n, s, x);
    +011        format = f;
    +012    }
    +013
    +014    @Override
    +015    public String toString() {
    +016        return String.format(format, get());
    +017    }
    +018}
     
     
     
    diff --git a/docs/TechnoLib/stylesheet.css b/docs/TechnoLib/stylesheet.css
    index 236a306f..4a576bd2 100644
    --- a/docs/TechnoLib/stylesheet.css
    +++ b/docs/TechnoLib/stylesheet.css
    @@ -12,89 +12,86 @@
      */
     
     body {
    -  background-color: #ffffff;
    -  color: #353833;
    -  font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
    -  font-size: 14px;
    -  margin: 0;
    -  padding: 0;
    -  height: 100%;
    -  width: 100%;
    +    background-color:#ffffff;
    +    color:#353833;
    +    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
    +    font-size:14px;
    +    margin:0;
    +    padding:0;
    +    height:100%;
    +    width:100%;
     }
     iframe {
    -  margin: 0;
    -  padding: 0;
    -  height: 100%;
    -  width: 100%;
    -  overflow-y: scroll;
    -  border: none;
    -}
    -a:link,
    -a:visited {
    -  text-decoration: none;
    -  color: #4a6782;
    -}
    -a[href]:hover,
    -a[href]:focus {
    -  text-decoration: none;
    -  color: #bb7a2a;
    +    margin:0;
    +    padding:0;
    +    height:100%;
    +    width:100%;
    +    overflow-y:scroll;
    +    border:none;
    +}
    +a:link, a:visited {
    +    text-decoration:none;
    +    color:#4A6782;
    +}
    +a[href]:hover, a[href]:focus {
    +    text-decoration:none;
    +    color:#bb7a2a;
     }
     a[name] {
    -  color: #353833;
    +    color:#353833;
     }
     pre {
    -  font-family: 'DejaVu Sans Mono', monospace;
    -  font-size: 14px;
    +    font-family:'DejaVu Sans Mono', monospace;
    +    font-size:14px;
     }
     h1 {
    -  font-size: 20px;
    +    font-size:20px;
     }
     h2 {
    -  font-size: 18px;
    +    font-size:18px;
     }
     h3 {
    -  font-size: 16px;
    +    font-size:16px;
     }
     h4 {
    -  font-size: 15px;
    +    font-size:15px;
     }
     h5 {
    -  font-size: 14px;
    +    font-size:14px;
     }
     h6 {
    -  font-size: 13px;
    +    font-size:13px;
     }
     ul {
    -  list-style-type: disc;
    +    list-style-type:disc;
     }
    -code,
    -tt {
    -  font-family: 'DejaVu Sans Mono', monospace;
    +code, tt {
    +    font-family:'DejaVu Sans Mono', monospace;
     }
     :not(h1, h2, h3, h4, h5, h6) > code,
     :not(h1, h2, h3, h4, h5, h6) > tt {
    -  font-size: 14px;
    -  padding-top: 4px;
    -  margin-top: 8px;
    -  line-height: 1.4em;
    +    font-size:14px;
    +    padding-top:4px;
    +    margin-top:8px;
    +    line-height:1.4em;
     }
     dt code {
    -  font-family: 'DejaVu Sans Mono', monospace;
    -  font-size: 14px;
    -  padding-top: 4px;
    +    font-family:'DejaVu Sans Mono', monospace;
    +    font-size:14px;
    +    padding-top:4px;
     }
     .summary-table dt code {
    -  font-family: 'DejaVu Sans Mono', monospace;
    -  font-size: 14px;
    -  vertical-align: top;
    -  padding-top: 4px;
    +    font-family:'DejaVu Sans Mono', monospace;
    +    font-size:14px;
    +    vertical-align:top;
    +    padding-top:4px;
     }
     sup {
    -  font-size: 8px;
    +    font-size:8px;
     }
     button {
    -  font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
    -  font-size: 14px;
    +    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
    +    font-size: 14px;
     }
     /*
      * Styles for HTML generated by javadoc.
    @@ -106,654 +103,596 @@ button {
      * Styles for document title and copyright.
      */
     .clear {
    -  clear: both;
    -  height: 0;
    -  overflow: hidden;
    +    clear:both;
    +    height:0;
    +    overflow:hidden;
     }
     .about-language {
    -  float: right;
    -  padding: 0 21px 8px 8px;
    -  font-size: 11px;
    -  margin-top: -9px;
    -  height: 2.9em;
    +    float:right;
    +    padding:0 21px 8px 8px;
    +    font-size:11px;
    +    margin-top:-9px;
    +    height:2.9em;
     }
     .legal-copy {
    -  margin-left: 0.5em;
    +    margin-left:.5em;
     }
     .tab {
    -  background-color: #0066ff;
    -  color: #ffffff;
    -  padding: 8px;
    -  width: 5em;
    -  font-weight: bold;
    +    background-color:#0066FF;
    +    color:#ffffff;
    +    padding:8px;
    +    width:5em;
    +    font-weight:bold;
     }
     /*
      * Styles for navigation bar.
      */
     @media screen {
    -  .flex-box {
    -    position: fixed;
    -    display: flex;
    -    flex-direction: column;
    -    height: 100%;
    -    width: 100%;
    -  }
    -  .flex-header {
    -    flex: 0 0 auto;
    -  }
    -  .flex-content {
    -    flex: 1 1 auto;
    -    overflow-y: auto;
    -  }
    +    .flex-box {
    +        position:fixed;
    +        display:flex;
    +        flex-direction:column;
    +        height: 100%;
    +        width: 100%;
    +    }
    +    .flex-header {
    +        flex: 0 0 auto;
    +    }
    +    .flex-content {
    +        flex: 1 1 auto;
    +        overflow-y: auto;
    +    }
     }
     .top-nav {
    -  background-color: #4d7a97;
    -  color: #ffffff;
    -  float: left;
    -  padding: 0;
    -  width: 100%;
    -  clear: right;
    -  min-height: 2.8em;
    -  padding-top: 10px;
    -  overflow: hidden;
    -  font-size: 12px;
    +    background-color:#4D7A97;
    +    color:#FFFFFF;
    +    float:left;
    +    padding:0;
    +    width:100%;
    +    clear:right;
    +    min-height:2.8em;
    +    padding-top:10px;
    +    overflow:hidden;
    +    font-size:12px;
     }
     .sub-nav {
    -  background-color: #dee3e9;
    -  float: left;
    -  width: 100%;
    -  overflow: hidden;
    -  font-size: 12px;
    +    background-color:#dee3e9;
    +    float:left;
    +    width:100%;
    +    overflow:hidden;
    +    font-size:12px;
     }
     .sub-nav div {
    -  clear: left;
    -  float: left;
    -  padding: 0 0 5px 6px;
    -  text-transform: uppercase;
    +    clear:left;
    +    float:left;
    +    padding:0 0 5px 6px;
    +    text-transform:uppercase;
     }
     .sub-nav .nav-list {
    -  padding-top: 5px;
    +    padding-top:5px;
     }
     ul.nav-list {
    -  display: block;
    -  margin: 0 25px 0 0;
    -  padding: 0;
    +    display:block;
    +    margin:0 25px 0 0;
    +    padding:0;
     }
     ul.sub-nav-list {
    -  float: left;
    -  margin: 0 25px 0 0;
    -  padding: 0;
    +    float:left;
    +    margin:0 25px 0 0;
    +    padding:0;
     }
     ul.nav-list li {
    -  list-style: none;
    -  float: left;
    -  padding: 5px 6px;
    -  text-transform: uppercase;
    +    list-style:none;
    +    float:left;
    +    padding: 5px 6px;
    +    text-transform:uppercase;
     }
     .sub-nav .nav-list-search {
    -  float: right;
    -  margin: 0 0 0 0;
    -  padding: 5px 6px;
    -  clear: none;
    +    float:right;
    +    margin:0 0 0 0;
    +    padding:5px 6px;
    +    clear:none;
     }
     .nav-list-search label {
    -  position: relative;
    -  right: -16px;
    +    position:relative;
    +    right:-16px;
     }
     ul.sub-nav-list li {
    -  list-style: none;
    -  float: left;
    -  padding-top: 10px;
    +    list-style:none;
    +    float:left;
    +    padding-top:10px;
     }
    -.top-nav a:link,
    -.top-nav a:active,
    -.top-nav a:visited {
    -  color: #ffffff;
    -  text-decoration: none;
    -  text-transform: uppercase;
    +.top-nav a:link, .top-nav a:active, .top-nav a:visited {
    +    color:#FFFFFF;
    +    text-decoration:none;
    +    text-transform:uppercase;
     }
     .top-nav a:hover {
    -  text-decoration: none;
    -  color: #bb7a2a;
    -  text-transform: uppercase;
    +    text-decoration:none;
    +    color:#bb7a2a;
    +    text-transform:uppercase;
     }
     .nav-bar-cell1-rev {
    -  background-color: #f8981d;
    -  color: #253441;
    -  margin: auto 5px;
    +    background-color:#F8981D;
    +    color:#253441;
    +    margin: auto 5px;
     }
     .skip-nav {
    -  position: absolute;
    -  top: auto;
    -  left: -9999px;
    -  overflow: hidden;
    +    position:absolute;
    +    top:auto;
    +    left:-9999px;
    +    overflow:hidden;
     }
     /*
      * Hide navigation links and search box in print layout
      */
     @media print {
    -  ul.nav-list,
    -  div.sub-nav {
    -    display: none;
    -  }
    +    ul.nav-list, div.sub-nav  {
    +        display:none;
    +    }
     }
     /*
      * Styles for page header and footer.
      */
     .title {
    -  color: #2c4557;
    -  margin: 10px 0;
    +    color:#2c4557;
    +    margin:10px 0;
     }
     .sub-title {
    -  margin: 5px 0 0 0;
    +    margin:5px 0 0 0;
     }
     .header ul {
    -  margin: 0 0 15px 0;
    -  padding: 0;
    +    margin:0 0 15px 0;
    +    padding:0;
     }
    -.header ul li,
    -.footer ul li {
    -  list-style: none;
    -  font-size: 13px;
    +.header ul li, .footer ul li {
    +    list-style:none;
    +    font-size:13px;
     }
     /*
      * Styles for headings.
      */
     body.class-declaration-page .summary h2,
     body.class-declaration-page .details h2,
    -body.class-use-page h2,
    -body.module-declaration-page .block-list h2 {
    -  font-style: italic;
    -  padding: 0;
    -  margin: 15px 0;
    +body.class-use-page  h2,
    +body.module-declaration-page  .block-list h2 {
    +    font-style: italic;
    +    padding:0;
    +    margin:15px 0;
     }
     body.class-declaration-page .summary h3,
     body.class-declaration-page .details h3,
     body.class-declaration-page .summary .inherited-list h2 {
    -  background-color: #dee3e9;
    -  border: 1px solid #d0d9e0;
    -  margin: 0 0 6px -8px;
    -  padding: 7px 5px;
    +    background-color:#dee3e9;
    +    border:1px solid #d0d9e0;
    +    margin:0 0 6px -8px;
    +    padding:7px 5px;
     }
     /*
      * Styles for page layout containers.
      */
     main {
    -  clear: both;
    -  padding: 10px 20px;
    -  position: relative;
    +    clear:both;
    +    padding:10px 20px;
    +    position:relative;
     }
     dl.notes > dt {
    -  font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
    -  font-size: 12px;
    -  font-weight: bold;
    -  margin: 10px 0 0 0;
    -  color: #4e4e4e;
    +    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
    +    font-size:12px;
    +    font-weight:bold;
    +    margin:10px 0 0 0;
    +    color:#4E4E4E;
     }
     dl.notes > dd {
    -  margin: 5px 10px 10px 0;
    -  font-size: 14px;
    -  font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif;
    +    margin:5px 10px 10px 0;
    +    font-size:14px;
    +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
     }
     dl.name-value > dt {
    -  margin-left: 1px;
    -  font-size: 1.1em;
    -  display: inline;
    -  font-weight: bold;
    +    margin-left:1px;
    +    font-size:1.1em;
    +    display:inline;
    +    font-weight:bold;
     }
     dl.name-value > dd {
    -  margin: 0 0 0 1px;
    -  font-size: 1.1em;
    -  display: inline;
    +    margin:0 0 0 1px;
    +    font-size:1.1em;
    +    display:inline;
     }
     /*
      * Styles for lists.
      */
     li.circle {
    -  list-style: circle;
    +    list-style:circle;
     }
     ul.horizontal li {
    -  display: inline;
    -  font-size: 0.9em;
    +    display:inline;
    +    font-size:0.9em;
     }
     div.inheritance {
    -  margin: 0;
    -  padding: 0;
    +    margin:0;
    +    padding:0;
     }
     div.inheritance div.inheritance {
    -  margin-left: 2em;
    +    margin-left:2em;
     }
     ul.block-list,
     ul.details-list,
     ul.member-list,
     ul.summary-list {
    -  margin: 10px 0 10px 0;
    -  padding: 0;
    +    margin:10px 0 10px 0;
    +    padding:0;
     }
     ul.block-list > li,
     ul.details-list > li,
     ul.member-list > li,
     ul.summary-list > li {
    -  list-style: none;
    -  margin-bottom: 15px;
    -  line-height: 1.4;
    +    list-style:none;
    +    margin-bottom:15px;
    +    line-height:1.4;
     }
    -.summary-table dl,
    -.summary-table dl dt,
    -.summary-table dl dd {
    -  margin-top: 0;
    -  margin-bottom: 1px;
    +.summary-table dl, .summary-table dl dt, .summary-table dl dd {
    +    margin-top:0;
    +    margin-bottom:1px;
     }
    -ul.see-list,
    -ul.see-list-long {
    -  padding-left: 0;
    -  list-style: none;
    +ul.see-list, ul.see-list-long {
    +    padding-left: 0;
    +    list-style: none;
     }
     ul.see-list li {
    -  display: inline;
    +    display: inline;
     }
     ul.see-list li:not(:last-child):after,
     ul.see-list-long li:not(:last-child):after {
    -  content: ', ';
    -  white-space: pre-wrap;
    +    content: ", ";
    +    white-space: pre-wrap;
     }
     /*
      * Styles for tables.
      */
    -.summary-table,
    -.details-table {
    -  width: 100%;
    -  border-spacing: 0;
    -  border-left: 1px solid #eee;
    -  border-right: 1px solid #eee;
    -  border-bottom: 1px solid #eee;
    -  padding: 0;
    +.summary-table, .details-table {
    +    width:100%;
    +    border-spacing:0;
    +    border-left:1px solid #EEE;
    +    border-right:1px solid #EEE;
    +    border-bottom:1px solid #EEE;
    +    padding:0;
     }
     .caption {
    -  position: relative;
    -  text-align: left;
    -  background-repeat: no-repeat;
    -  color: #253441;
    -  font-weight: bold;
    -  clear: none;
    -  overflow: hidden;
    -  padding: 0;
    -  padding-top: 10px;
    -  padding-left: 1px;
    -  margin: 0;
    -  white-space: pre;
    -}
    -.caption a:link,
    -.caption a:visited {
    -  color: #1f389c;
    +    position:relative;
    +    text-align:left;
    +    background-repeat:no-repeat;
    +    color:#253441;
    +    font-weight:bold;
    +    clear:none;
    +    overflow:hidden;
    +    padding:0;
    +    padding-top:10px;
    +    padding-left:1px;
    +    margin:0;
    +    white-space:pre;
    +}
    +.caption a:link, .caption a:visited {
    +    color:#1f389c;
     }
     .caption a:hover,
     .caption a:active {
    -  color: #ffffff;
    +    color:#FFFFFF;
     }
     .caption span {
    -  white-space: nowrap;
    -  padding-top: 5px;
    -  padding-left: 12px;
    -  padding-right: 12px;
    -  padding-bottom: 7px;
    -  display: inline-block;
    -  float: left;
    -  background-color: #f8981d;
    -  border: none;
    -  height: 16px;
    +    white-space:nowrap;
    +    padding-top:5px;
    +    padding-left:12px;
    +    padding-right:12px;
    +    padding-bottom:7px;
    +    display:inline-block;
    +    float:left;
    +    background-color:#F8981D;
    +    border: none;
    +    height:16px;
     }
     div.table-tabs {
    -  padding: 10px 0 0 1px;
    -  margin: 0;
    +    padding:10px 0 0 1px;
    +    margin:0;
     }
     div.table-tabs > button {
    -  border: none;
    -  cursor: pointer;
    -  padding: 5px 12px 7px 12px;
    -  font-weight: bold;
    -  margin-right: 3px;
    +   border: none;
    +   cursor: pointer;
    +   padding: 5px 12px 7px 12px;
    +   font-weight: bold;
    +   margin-right: 3px;
     }
     div.table-tabs > button.active-table-tab {
    -  background: #f8981d;
    -  color: #253441;
    +   background: #F8981D;
    +   color: #253441;
     }
     div.table-tabs > button.table-tab {
    -  background: #4d7a97;
    -  color: #ffffff;
    +   background: #4D7A97;
    +   color: #FFFFFF;
     }
     .two-column-summary {
    -  display: grid;
    -  grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    +    display: grid;
    +    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
     }
     .three-column-summary {
    -  display: grid;
    -  grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
    +    display: grid;
    +    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
     }
     .four-column-summary {
    -  display: grid;
    -  grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(
    -      10%,
    -      auto
    -    );
    +    display: grid;
    +    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
     }
     @media screen and (max-width: 600px) {
    -  .two-column-summary {
    -    display: grid;
    -    grid-template-columns: 1fr;
    -  }
    +    .two-column-summary {
    +        display: grid;
    +        grid-template-columns: 1fr;
    +    }
     }
     @media screen and (max-width: 800px) {
    -  .three-column-summary {
    -    display: grid;
    -    grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
    -  }
    -  .three-column-summary .col-last {
    -    grid-column-end: span 2;
    -  }
    +    .three-column-summary {
    +        display: grid;
    +        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
    +    }
    +    .three-column-summary .col-last {
    +        grid-column-end: span 2;
    +    }
     }
     @media screen and (max-width: 1000px) {
    -  .four-column-summary {
    -    display: grid;
    -    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    -  }
    -}
    -.summary-table > div,
    -.details-table > div {
    -  text-align: left;
    -  padding: 8px 3px 3px 7px;
    -}
    -.col-first,
    -.col-second,
    -.col-last,
    -.col-constructor-name,
    -.col-summary-item-name {
    -  vertical-align: top;
    -  padding-right: 0;
    -  padding-top: 8px;
    -  padding-bottom: 3px;
    +    .four-column-summary {
    +        display: grid;
    +        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
    +    }
    +}
    +.summary-table > div, .details-table > div {
    +    text-align:left;
    +    padding: 8px 3px 3px 7px;
    +}
    +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name {
    +    vertical-align:top;
    +    padding-right:0;
    +    padding-top:8px;
    +    padding-bottom:3px;
     }
     .table-header {
    -  background: #dee3e9;
    -  font-weight: bold;
    -}
    -.col-first,
    -.col-first {
    -  font-size: 13px;
    -}
    -.col-second,
    -.col-second,
    -.col-last,
    -.col-constructor-name,
    -.col-summary-item-name,
    -.col-last {
    -  font-size: 13px;
    +    background:#dee3e9;
    +    font-weight: bold;
     }
    -.col-first,
    -.col-second,
    -.col-constructor-name {
    -  vertical-align: top;
    -  overflow: auto;
    +.col-first, .col-first {
    +    font-size:13px;
    +}
    +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last {
    +    font-size:13px;
    +}
    +.col-first, .col-second, .col-constructor-name {
    +    vertical-align:top;
    +    overflow: auto;
     }
     .col-last {
    -  white-space: normal;
    -}
    -.col-first a:link,
    -.col-first a:visited,
    -.col-second a:link,
    -.col-second a:visited,
    -.col-first a:link,
    -.col-first a:visited,
    -.col-second a:link,
    -.col-second a:visited,
    -.col-constructor-name a:link,
    -.col-constructor-name a:visited,
    -.col-summary-item-name a:link,
    -.col-summary-item-name a:visited,
    -.constant-values-container a:link,
    -.constant-values-container a:visited,
    -.all-classes-container a:link,
    -.all-classes-container a:visited,
    -.all-packages-container a:link,
    -.all-packages-container a:visited {
    -  font-weight: bold;
    +    white-space:normal;
    +}
    +.col-first a:link, .col-first a:visited,
    +.col-second a:link, .col-second a:visited,
    +.col-first a:link, .col-first a:visited,
    +.col-second a:link, .col-second a:visited,
    +.col-constructor-name a:link, .col-constructor-name a:visited,
    +.col-summary-item-name a:link, .col-summary-item-name a:visited,
    +.constant-values-container a:link, .constant-values-container a:visited,
    +.all-classes-container a:link, .all-classes-container a:visited,
    +.all-packages-container a:link, .all-packages-container a:visited {
    +    font-weight:bold;
     }
     .table-sub-heading-color {
    -  background-color: #eeeeff;
    +    background-color:#EEEEFF;
     }
    -.even-row-color,
    -.even-row-color .table-header {
    -  background-color: #ffffff;
    +.even-row-color, .even-row-color .table-header {
    +    background-color:#FFFFFF;
     }
    -.odd-row-color,
    -.odd-row-color .table-header {
    -  background-color: #eeeeef;
    +.odd-row-color, .odd-row-color .table-header {
    +    background-color:#EEEEEF;
     }
     /*
      * Styles for contents.
      */
     .deprecated-content {
    -  margin: 0;
    -  padding: 10px 0;
    +    margin:0;
    +    padding:10px 0;
     }
     div.block {
    -  font-size: 14px;
    -  font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif;
    +    font-size:14px;
    +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
     }
     .col-last div {
    -  padding-top: 0;
    +    padding-top:0;
     }
     .col-last a {
    -  padding-bottom: 3px;
    +    padding-bottom:3px;
     }
     .module-signature,
     .package-signature,
     .type-signature,
     .member-signature {
    -  font-family: 'DejaVu Sans Mono', monospace;
    -  font-size: 14px;
    -  margin: 14px 0;
    -  white-space: pre-wrap;
    +    font-family:'DejaVu Sans Mono', monospace;
    +    font-size:14px;
    +    margin:14px 0;
    +    white-space: pre-wrap;
     }
     .module-signature,
     .package-signature,
     .type-signature {
    -  margin-top: 0;
    +    margin-top: 0;
     }
     .member-signature .type-parameters-long,
     .member-signature .parameters,
     .member-signature .exceptions {
    -  display: inline-block;
    -  vertical-align: top;
    -  white-space: pre;
    +    display: inline-block;
    +    vertical-align: top;
    +    white-space: pre;
     }
     .member-signature .type-parameters {
    -  white-space: normal;
    +    white-space: normal;
     }
     /*
      * Styles for formatting effect.
      */
     .source-line-no {
    -  color: green;
    -  padding: 0 30px 0 0;
    +    color:green;
    +    padding:0 30px 0 0;
     }
     h1.hidden {
    -  visibility: hidden;
    -  overflow: hidden;
    -  font-size: 10px;
    +    visibility:hidden;
    +    overflow:hidden;
    +    font-size:10px;
     }
     .block {
    -  display: block;
    -  margin: 0 10px 5px 0;
    -  color: #474747;
    -}
    -.deprecated-label,
    -.descfrm-type-label,
    -.implementation-label,
    -.member-name-label,
    -.member-name-link,
    -.module-label-in-package,
    -.module-label-in-type,
    -.override-specify-label,
    -.package-label-in-type,
    -.package-hierarchy-label,
    -.type-name-label,
    -.type-name-link,
    -.search-tag-link,
    -.preview-label {
    -  font-weight: bold;
    -}
    -.deprecation-comment,
    -.help-footnote,
    -.preview-comment {
    -  font-style: italic;
    +    display:block;
    +    margin:0 10px 5px 0;
    +    color:#474747;
    +}
    +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link,
    +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type,
    +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label {
    +    font-weight:bold;
    +}
    +.deprecation-comment, .help-footnote, .preview-comment {
    +    font-style:italic;
     }
     .deprecation-block {
    -  font-size: 14px;
    -  font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif;
    -  border-style: solid;
    -  border-width: thin;
    -  border-radius: 10px;
    -  padding: 10px;
    -  margin-bottom: 10px;
    -  margin-right: 10px;
    -  display: inline-block;
    +    font-size:14px;
    +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
    +    border-style:solid;
    +    border-width:thin;
    +    border-radius:10px;
    +    padding:10px;
    +    margin-bottom:10px;
    +    margin-right:10px;
    +    display:inline-block;
     }
     .preview-block {
    -  font-size: 14px;
    -  font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif;
    -  border-style: solid;
    -  border-width: thin;
    -  border-radius: 10px;
    -  padding: 10px;
    -  margin-bottom: 10px;
    -  margin-right: 10px;
    -  display: inline-block;
    +    font-size:14px;
    +    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
    +    border-style:solid;
    +    border-width:thin;
    +    border-radius:10px;
    +    padding:10px;
    +    margin-bottom:10px;
    +    margin-right:10px;
    +    display:inline-block;
     }
     div.block div.deprecation-comment {
    -  font-style: normal;
    +    font-style:normal;
     }
     /*
      * Styles specific to HTML5 elements.
      */
    -main,
    -nav,
    -header,
    -footer,
    -section {
    -  display: block;
    +main, nav, header, footer, section {
    +    display:block;
     }
     /*
      * Styles for javadoc search.
      */
     .ui-autocomplete-category {
    -  font-weight: bold;
    -  font-size: 15px;
    -  padding: 7px 0 7px 3px;
    -  background-color: #4d7a97;
    -  color: #ffffff;
    +    font-weight:bold;
    +    font-size:15px;
    +    padding:7px 0 7px 3px;
    +    background-color:#4D7A97;
    +    color:#FFFFFF;
     }
     .result-item {
    -  font-size: 13px;
    +    font-size:13px;
     }
     .ui-autocomplete {
    -  max-height: 85%;
    -  max-width: 65%;
    -  overflow-y: scroll;
    -  overflow-x: scroll;
    -  white-space: nowrap;
    -  box-shadow:
    -    0 3px 6px rgba(0, 0, 0, 0.16),
    -    0 3px 6px rgba(0, 0, 0, 0.23);
    +    max-height:85%;
    +    max-width:65%;
    +    overflow-y:scroll;
    +    overflow-x:scroll;
    +    white-space:nowrap;
    +    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
     }
     ul.ui-autocomplete {
    -  position: fixed;
    -  z-index: 999999;
    -  background-color: #ffffff;
    +    position:fixed;
    +    z-index:999999;
    +    background-color: #FFFFFF;
     }
    -ul.ui-autocomplete li {
    -  float: left;
    -  clear: both;
    -  width: 100%;
    +ul.ui-autocomplete  li {
    +    float:left;
    +    clear:both;
    +    width:100%;
     }
     .result-highlight {
    -  font-weight: bold;
    +    font-weight:bold;
     }
     .ui-autocomplete .result-item {
    -  font-size: inherit;
    +    font-size: inherit;
     }
     #search-input {
    -  background-image: url('resources/glass.png');
    -  background-size: 13px;
    -  background-repeat: no-repeat;
    -  background-position: 2px 3px;
    -  padding-left: 20px;
    -  position: relative;
    -  right: -18px;
    -  width: 400px;
    +    background-image:url('resources/glass.png');
    +    background-size:13px;
    +    background-repeat:no-repeat;
    +    background-position:2px 3px;
    +    padding-left:20px;
    +    position:relative;
    +    right:-18px;
    +    width:400px;
     }
     #reset-button {
    -  background-color: rgb(255, 255, 255);
    -  background-image: url('resources/x.png');
    -  background-position: center;
    -  background-repeat: no-repeat;
    -  background-size: 12px;
    -  border: 0 none;
    -  width: 16px;
    -  height: 16px;
    -  position: relative;
    -  left: -4px;
    -  top: -4px;
    -  font-size: 0px;
    +    background-color: rgb(255,255,255);
    +    background-image:url('resources/x.png');
    +    background-position:center;
    +    background-repeat:no-repeat;
    +    background-size:12px;
    +    border:0 none;
    +    width:16px;
    +    height:16px;
    +    position:relative;
    +    left:-4px;
    +    top:-4px;
    +    font-size:0px;
     }
     .watermark {
    -  color: #545454;
    +    color:#545454;
     }
     .search-tag-desc-result {
    -  font-style: italic;
    -  font-size: 11px;
    +    font-style:italic;
    +    font-size:11px;
     }
     .search-tag-holder-result {
    -  font-style: italic;
    -  font-size: 12px;
    +    font-style:italic;
    +    font-size:12px;
     }
     .search-tag-result:target {
    -  background-color: yellow;
    +    background-color:yellow;
     }
     .module-graph span {
    -  display: none;
    -  position: absolute;
    +    display:none;
    +    position:absolute;
     }
     .module-graph:hover span {
    -  display: block;
    -  margin: -100px 0 0 100px;
    -  z-index: 1;
    +    display:block;
    +    margin: -100px 0 0 100px;
    +    z-index: 1;
     }
     .inherited-list {
    -  margin: 10px 0 10px 0;
    +    margin: 10px 0 10px 0;
     }
     section.class-description {
    -  line-height: 1.4;
    -}
    -.summary section[class$='-summary'],
    -.details section[class$='-details'],
    -.class-uses .detail,
    -.serialized-class-details {
    -  padding: 0px 20px 5px 10px;
    -  border: 1px solid #ededed;
    -  background-color: #f8f8f8;
    -}
    -.inherited-list,
    -section[class$='-details'] .detail {
    -  padding: 0 0 5px 8px;
    -  background-color: #ffffff;
    -  border: none;
    +    line-height: 1.4;
    +}
    +.summary section[class$="-summary"], .details section[class$="-details"],
    +.class-uses .detail, .serialized-class-details {
    +    padding: 0px 20px 5px 10px;
    +    border: 1px solid #ededed;
    +    background-color: #f8f8f8;
    +}
    +.inherited-list, section[class$="-details"] .detail {
    +    padding:0 0 5px 8px;
    +    background-color:#ffffff;
    +    border:none;
     }
     .vertical-separator {
    -  padding: 0 5px;
    +    padding: 0 5px;
     }
     ul.help-section-list {
    -  margin: 0;
    +    margin: 0;
     }
     ul.help-subtoc > li {
       display: inline-block;
    @@ -761,34 +700,32 @@ ul.help-subtoc > li {
       font-size: smaller;
     }
     ul.help-subtoc > li::before {
    -  content: '\2022';
    -  padding-right: 2px;
    +  content: "\2022" ;
    +  padding-right:2px;
     }
     span.help-note {
    -  font-style: italic;
    +    font-style: italic;
     }
     /*
      * Indicator icon for external links.
      */
    -main a[href*="://"]::after
    -{
    -  content: '';
    -  display: inline-block;
    -  background-image: url('data:image/svg+xml; utf8, \
    +main a[href*="://"]::after {
    +    content:"";
    +    display:inline-block;
    +    background-image:url('data:image/svg+xml; utf8, \
           \
             \
           ');
    -  background-size: 100% 100%;
    -  width: 7px;
    -  height: 7px;
    -  margin-left: 2px;
    -  margin-bottom: 4px;
    +    background-size:100% 100%;
    +    width:7px;
    +    height:7px;
    +    margin-left:2px;
    +    margin-bottom:4px;
     }
     main a[href*="://"]:hover::after,
    -main a[href*="://"]:focus::after
    -{
    -  background-image: url('data:image/svg+xml; utf8, \
    +main a[href*="://"]:focus::after {
    +    background-image:url('data:image/svg+xml; utf8, \
           \
             \
    @@ -817,135 +754,116 @@ main a[href*="://"]:focus::after
     table.borderless,
     table.plain,
     table.striped {
    -  margin-top: 10px;
    -  margin-bottom: 10px;
    +    margin-top: 10px;
    +    margin-bottom: 10px;
     }
     table.borderless > caption,
     table.plain > caption,
     table.striped > caption {
    -  font-weight: bold;
    -  font-size: smaller;
    +    font-weight: bold;
    +    font-size: smaller;
     }
    -table.borderless th,
    -table.borderless td,
    -table.plain th,
    -table.plain td,
    -table.striped th,
    -table.striped td {
    -  padding: 2px 5px;
    +table.borderless th, table.borderless td,
    +table.plain th, table.plain td,
    +table.striped th, table.striped td {
    +    padding: 2px 5px;
     }
     table.borderless,
    -table.borderless > thead > tr > th,
    -table.borderless > tbody > tr > th,
    -table.borderless > tr > th,
    -table.borderless > thead > tr > td,
    -table.borderless > tbody > tr > td,
    -table.borderless > tr > td {
    -  border: none;
    -}
    -table.borderless > thead > tr,
    -table.borderless > tbody > tr,
    -table.borderless > tr {
    -  background-color: transparent;
    +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
    +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
    +    border: none;
    +}
    +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
    +    background-color: transparent;
     }
     table.plain {
    -  border-collapse: collapse;
    -  border: 1px solid black;
    -}
    -table.plain > thead > tr,
    -table.plain > tbody tr,
    -table.plain > tr {
    -  background-color: transparent;
    -}
    -table.plain > thead > tr > th,
    -table.plain > tbody > tr > th,
    -table.plain > tr > th,
    -table.plain > thead > tr > td,
    -table.plain > tbody > tr > td,
    -table.plain > tr > td {
    -  border: 1px solid black;
    +    border-collapse: collapse;
    +    border: 1px solid black;
    +}
    +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
    +    background-color: transparent;
    +}
    +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
    +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
    +    border: 1px solid black;
     }
     table.striped {
    -  border-collapse: collapse;
    -  border: 1px solid black;
    +    border-collapse: collapse;
    +    border: 1px solid black;
     }
     table.striped > thead {
    -  background-color: #e3e3e3;
    +    background-color: #E3E3E3;
     }
    -table.striped > thead > tr > th,
    -table.striped > thead > tr > td {
    -  border: 1px solid black;
    +table.striped > thead > tr > th, table.striped > thead > tr > td {
    +    border: 1px solid black;
     }
     table.striped > tbody > tr:nth-child(even) {
    -  background-color: #eee;
    +    background-color: #EEE
     }
     table.striped > tbody > tr:nth-child(odd) {
    -  background-color: #fff;
    +    background-color: #FFF
     }
    -table.striped > tbody > tr > th,
    -table.striped > tbody > tr > td {
    -  border-left: 1px solid black;
    -  border-right: 1px solid black;
    +table.striped > tbody > tr > th, table.striped > tbody > tr > td {
    +    border-left: 1px solid black;
    +    border-right: 1px solid black;
     }
     table.striped > tbody > tr > th {
    -  font-weight: normal;
    +    font-weight: normal;
     }
     /**
      * Tweak font sizes and paddings for small screens.
      */
     @media screen and (max-width: 1050px) {
    -  #search-input {
    -    width: 300px;
    -  }
    +    #search-input {
    +        width: 300px;
    +    }
     }
     @media screen and (max-width: 800px) {
    -  #search-input {
    -    width: 200px;
    -  }
    -  .top-nav,
    -  .bottom-nav {
    -    font-size: 11px;
    -    padding-top: 6px;
    -  }
    -  .sub-nav {
    -    font-size: 11px;
    -  }
    -  .about-language {
    -    padding-right: 16px;
    -  }
    -  ul.nav-list li,
    -  .sub-nav .nav-list-search {
    -    padding: 6px;
    -  }
    -  ul.sub-nav-list li {
    -    padding-top: 5px;
    -  }
    -  main {
    -    padding: 10px;
    -  }
    -  .summary section[class$='-summary'],
    -  .details section[class$='-details'],
    -  .class-uses .detail,
    -  .serialized-class-details {
    -    padding: 0 8px 5px 8px;
    -  }
    -  body {
    -    -webkit-text-size-adjust: none;
    -  }
    +    #search-input {
    +        width: 200px;
    +    }
    +    .top-nav,
    +    .bottom-nav {
    +        font-size: 11px;
    +        padding-top: 6px;
    +    }
    +    .sub-nav {
    +        font-size: 11px;
    +    }
    +    .about-language {
    +        padding-right: 16px;
    +    }
    +    ul.nav-list li,
    +    .sub-nav .nav-list-search {
    +        padding: 6px;
    +    }
    +    ul.sub-nav-list li {
    +        padding-top: 5px;
    +    }
    +    main {
    +        padding: 10px;
    +    }
    +    .summary section[class$="-summary"], .details section[class$="-details"],
    +    .class-uses .detail, .serialized-class-details {
    +        padding: 0 8px 5px 8px;
    +    }
    +    body {
    +        -webkit-text-size-adjust: none;
    +    }
     }
     @media screen and (max-width: 500px) {
    -  #search-input {
    -    width: 150px;
    -  }
    -  .top-nav,
    -  .bottom-nav {
    -    font-size: 10px;
    -  }
    -  .sub-nav {
    -    font-size: 10px;
    -  }
    -  .about-language {
    -    font-size: 10px;
    -    padding-right: 12px;
    -  }
    +    #search-input {
    +        width: 150px;
    +    }
    +    .top-nav,
    +    .bottom-nav {
    +        font-size: 10px;
    +    }
    +    .sub-nav {
    +        font-size: 10px;
    +    }
    +    .about-language {
    +        font-size: 10px;
    +        padding-right: 12px;
    +    }
     }
    diff --git a/docs/TechnoLib/tag-search-index.js b/docs/TechnoLib/tag-search-index.js
    index c559e8b6..f2a440c7 100644
    --- a/docs/TechnoLib/tag-search-index.js
    +++ b/docs/TechnoLib/tag-search-index.js
    @@ -1,2 +1 @@
    -tagSearchIndex = [{ l: 'Constant Field Values', h: '', u: 'constant-values.html' }];
    -updateSearchResults();
    +tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"}];updateSearchResults();
    \ No newline at end of file
    diff --git a/docs/TechnoLib/type-search-index.js b/docs/TechnoLib/type-search-index.js
    index c88a966d..bfa37814 100644
    --- a/docs/TechnoLib/type-search-index.js
    +++ b/docs/TechnoLib/type-search-index.js
    @@ -1,118 +1 @@
    -typeSearchIndex = [
    -  { l: 'All Classes and Interfaces', u: 'allclasses-index.html' },
    -  { p: 'com.technototes.library.util', l: 'Alliance' },
    -  { p: 'com.technototes.library.hardware2', l: 'AnalogBuilder' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'AnalogSensor' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'IMU.AxesSigns' },
    -  { p: 'com.technototes.library.hardware2', l: 'IMUBuilder.AxesSigns' },
    -  { p: 'com.technototes.library.control', l: 'GamepadBase.Axis' },
    -  { p: 'com.technototes.library.control', l: 'AxisBase' },
    -  { p: 'com.technototes.library.control', l: 'Binding' },
    -  { p: 'com.technototes.library.logger', l: 'LogConfig.Blacklist' },
    -  { p: 'com.technototes.library.util', l: 'Alliance.Blue' },
    -  { p: 'com.technototes.library.logger', l: 'Log.Boolean' },
    -  { p: 'com.technototes.library.logger.entry', l: 'BooleanEntry' },
    -  { p: 'com.technototes.library.control', l: 'GamepadBase.Button' },
    -  { p: 'com.technototes.library.control', l: 'ButtonBase' },
    -  { p: 'com.technototes.library.util', l: 'Characters' },
    -  { p: 'com.technototes.library.command', l: 'ChoiceCommand' },
    -  { p: 'com.technototes.library.util', l: 'Color' },
    -  { p: 'com.technototes.library.hardware2', l: 'ColorBuilder' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'ColorDistanceSensor' },
    -  { p: 'com.technototes.library.hardware2', l: 'ColorRangeBuilder' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'ColorSensor' },
    -  { p: 'com.technototes.library.command', l: 'Command' },
    -  { p: 'com.technototes.library.control', l: 'CommandAxis' },
    -  { p: 'com.technototes.library.command', l: 'CommandBase' },
    -  { p: 'com.technototes.library.control', l: 'CommandBinding' },
    -  { p: 'com.technototes.library.control', l: 'CommandButton' },
    -  { p: 'com.technototes.library.control', l: 'CommandGamepad' },
    -  { p: 'com.technototes.library.command', l: 'CommandGroup' },
    -  { p: 'com.technototes.library.control', l: 'CommandInput' },
    -  { p: 'com.technototes.library.structure', l: 'CommandOpMode' },
    -  { p: 'com.technototes.library.command', l: 'CommandScheduler' },
    -  { p: 'com.technototes.library.command', l: 'Command.CommandState' },
    -  { p: 'com.technototes.library.command', l: 'ConditionalCommand' },
    -  { p: 'com.technototes.library.hardware.servo', l: 'ServoProfiler.Constraints' },
    -  { p: 'com.technototes.library.hardware2', l: 'CRServoBuilder' },
    -  { p: 'com.technototes.library.subsystem', l: 'DeviceSubsystem' },
    -  { p: 'com.technototes.library.util', l: 'Differential' },
    -  { p: 'com.technototes.library.util', l: 'Differential.DifferentialPriority' },
    -  { p: 'com.technototes.library.hardware2', l: 'DigitalBuilder' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'DigitalSensor' },
    -  { p: 'com.technototes.library.hardware.sensor.encoder', l: 'MotorEncoder.Direction' },
    -  { p: 'com.technototes.library.logger', l: 'LogConfig.Disabled' },
    -  { p: 'com.technototes.library.hardware2', l: 'DistanceBuilder' },
    -  { p: 'com.technototes.library.subsystem.drivebase', l: 'DrivebaseSubsystem' },
    -  { p: 'com.technototes.library.hardware', l: 'DummyDevice' },
    -  { p: 'com.technototes.library.general', l: 'Enablable' },
    -  { p: 'com.technototes.library.hardware.motor', l: 'EncodedMotor' },
    -  { p: 'com.technototes.library.hardware.motor', l: 'EncodedMotorGroup' },
    -  { p: 'com.technototes.library.subsystem.motor', l: 'EncodedMotorSubsystem' },
    -  { p: 'com.technototes.library.hardware.sensor.encoder', l: 'Encoder' },
    -  { p: 'com.technototes.library.logger.entry', l: 'Entry' },
    -  { p: 'com.technototes.library.hardware.sensor.encoder', l: 'ExternalEncoder' },
    -  { p: 'com.technototes.library.control', l: 'GamepadBase' },
    -  { p: 'com.technototes.library.control', l: 'GamepadDpad' },
    -  { p: 'com.technototes.library.control', l: 'GamepadStick' },
    -  { p: 'com.technototes.library.hardware2', l: 'HardwareBuilder' },
    -  { p: 'com.technototes.library.hardware', l: 'HardwareDevice' },
    -  { p: 'com.technototes.library.hardware', l: 'HardwareDeviceGroup' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'IColorSensor' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'IDistanceSensor' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'IGyro' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'ILightSensor' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'IMU' },
    -  { p: 'com.technototes.library.hardware2', l: 'IMUBuilder' },
    -  { p: 'com.technototes.library.util', l: 'Integral' },
    -  { p: 'com.technototes.library.general', l: 'Invertable' },
    -  { p: 'com.technototes.library.command', l: 'IterativeCommand' },
    -  { p: 'com.technototes.library.logger', l: 'Log' },
    -  { p: 'com.technototes.library.logger', l: 'LogConfig' },
    -  { p: 'com.technototes.library.logger', l: 'Loggable' },
    -  { p: 'com.technototes.library.logger', l: 'Logger' },
    -  { p: 'com.technototes.library.logger', l: 'Log.Logs' },
    -  { p: 'com.technototes.library.util', l: 'MapUtils' },
    -  { p: 'com.technototes.library.util', l: 'MathUtils' },
    -  { p: 'com.technototes.library.hardware.motor', l: 'Motor' },
    -  { p: 'com.technototes.library.hardware2', l: 'MotorBuilder' },
    -  { p: 'com.technototes.library.hardware.sensor.encoder', l: 'MotorEncoder' },
    -  { p: 'com.technototes.library.hardware.motor', l: 'MotorGroup' },
    -  { p: 'com.technototes.library.subsystem.motor', l: 'MotorSubsystem' },
    -  { p: 'com.technototes.library.logger', l: 'Log.Number' },
    -  { p: 'com.technototes.library.logger', l: 'Log.NumberBar' },
    -  { p: 'com.technototes.library.logger.entry', l: 'NumberBarEntry' },
    -  { p: 'com.technototes.library.logger.entry', l: 'NumberEntry' },
    -  { p: 'com.technototes.library.logger', l: 'Log.NumberSlider' },
    -  { p: 'com.technototes.library.logger.entry', l: 'NumberSliderEntry' },
    -  { p: 'com.technototes.library.structure', l: 'CommandOpMode.OpModeState' },
    -  { p: 'com.technototes.library.command', l: 'ParallelCommandGroup' },
    -  { p: 'com.technototes.library.command', l: 'ParallelDeadlineGroup' },
    -  { p: 'com.technototes.library.command', l: 'ParallelRaceGroup' },
    -  { p: 'com.technototes.library.general', l: 'Periodic' },
    -  { p: 'com.technototes.library.util', l: 'Range' },
    -  { p: 'com.technototes.library.util', l: 'Alliance.Red' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'Rev2MDistanceSensor' },
    -  { p: 'com.technototes.library', l: 'RobotLibrary' },
    -  { p: 'com.technototes.library.logger', l: 'LogConfig.Run' },
    -  { p: 'com.technototes.library.util', l: 'Alliance.Selector' },
    -  { p: 'com.technototes.library.hardware.sensor', l: 'Sensor' },
    -  { p: 'com.technototes.library.hardware', l: 'Sensored' },
    -  { p: 'com.technototes.library.command', l: 'SequentialCommandGroup' },
    -  { p: 'com.technototes.library.hardware.servo', l: 'Servo' },
    -  { p: 'com.technototes.library.hardware2', l: 'ServoBuilder' },
    -  { p: 'com.technototes.library.hardware.servo', l: 'ServoGroup' },
    -  { p: 'com.technototes.library.hardware.servo', l: 'ServoProfiler' },
    -  { p: 'com.technototes.library.subsystem.servo', l: 'ServoSubsystem' },
    -  { p: 'com.technototes.library.subsystem.drivebase', l: 'SimpleMecanumDrivebaseSubsystem' },
    -  { p: 'com.technototes.library.util', l: 'SmartConsumer' },
    -  { p: 'com.technototes.library.hardware', l: 'Speaker' },
    -  { p: 'com.technototes.library.control', l: 'Stick' },
    -  { p: 'com.technototes.library.logger.entry', l: 'StringEntry' },
    -  { p: 'com.technototes.library.subsystem', l: 'Subsystem' },
    -  { p: 'com.technototes.library.subsystem.drivebase', l: 'TankDrivebaseSubsystem' },
    -  { p: 'com.technototes.library.control', l: 'Binding.Type' },
    -  { p: 'com.technototes.library.command', l: 'WaitCommand' },
    -  { p: 'com.technototes.library.logger', l: 'LogConfig.Whitelist' },
    -];
    -updateSearchResults();
    +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.technototes.library.util","l":"Alliance"},{"p":"com.technototes.library.logger","l":"LogConfig.AllowList"},{"p":"com.technototes.library.hardware2","l":"AnalogBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"AnalogSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IMU.AxesSigns"},{"p":"com.technototes.library.hardware2","l":"IMUBuilder.AxesSigns"},{"p":"com.technototes.library.control","l":"GamepadBase.Axis"},{"p":"com.technototes.library.control","l":"AxisBase"},{"p":"com.technototes.library.control","l":"Binding"},{"p":"com.technototes.library.util","l":"Alliance.Blue"},{"p":"com.technototes.library.logger","l":"Log.Boolean"},{"p":"com.technototes.library.logger.entry","l":"BooleanEntry"},{"p":"com.technototes.library.control","l":"GamepadBase.Button"},{"p":"com.technototes.library.control","l":"ButtonBase"},{"p":"com.technototes.library.util","l":"Characters"},{"p":"com.technototes.library.command","l":"ChoiceCommand"},{"p":"com.technototes.library.util","l":"Color"},{"p":"com.technototes.library.hardware2","l":"ColorBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"ColorDistanceSensor"},{"p":"com.technototes.library.hardware2","l":"ColorRangeBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"ColorSensor"},{"p":"com.technototes.library.command","l":"Command"},{"p":"com.technototes.library.control","l":"CommandAxis"},{"p":"com.technototes.library.command","l":"CommandBase"},{"p":"com.technototes.library.control","l":"CommandBinding"},{"p":"com.technototes.library.control","l":"CommandButton"},{"p":"com.technototes.library.control","l":"CommandGamepad"},{"p":"com.technototes.library.command","l":"CommandGroup"},{"p":"com.technototes.library.control","l":"CommandInput"},{"p":"com.technototes.library.structure","l":"CommandOpMode"},{"p":"com.technototes.library.command","l":"CommandScheduler"},{"p":"com.technototes.library.command","l":"Command.CommandState"},{"p":"com.technototes.library.command","l":"ConditionalCommand"},{"p":"com.technototes.library.hardware.servo","l":"ServoProfiler.Constraints"},{"p":"com.technototes.library.hardware2","l":"CRServoBuilder"},{"p":"com.technototes.library.logger","l":"LogConfig.DenyList"},{"p":"com.technototes.library.subsystem","l":"DeviceSubsystem"},{"p":"com.technototes.library.util","l":"Differential"},{"p":"com.technototes.library.util","l":"Differential.DifferentialPriority"},{"p":"com.technototes.library.hardware2","l":"DigitalBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"DigitalSensor"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"MotorEncoder.Direction"},{"p":"com.technototes.library.logger","l":"LogConfig.Disabled"},{"p":"com.technototes.library.hardware2","l":"DistanceBuilder"},{"p":"com.technototes.library.subsystem.drivebase","l":"DrivebaseSubsystem"},{"p":"com.technototes.library.hardware","l":"DummyDevice"},{"p":"com.technototes.library.general","l":"Enablable"},{"p":"com.technototes.library.hardware.motor","l":"EncodedMotor"},{"p":"com.technototes.library.hardware.motor","l":"EncodedMotorGroup"},{"p":"com.technototes.library.subsystem.motor","l":"EncodedMotorSubsystem"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"Encoder"},{"p":"com.technototes.library.logger.entry","l":"Entry"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"ExternalEncoder"},{"p":"com.technototes.library.control","l":"GamepadBase"},{"p":"com.technototes.library.control","l":"GamepadDpad"},{"p":"com.technototes.library.control","l":"GamepadStick"},{"p":"com.technototes.library.hardware2","l":"HardwareBuilder"},{"p":"com.technototes.library.hardware","l":"HardwareDevice"},{"p":"com.technototes.library.hardware","l":"HardwareDeviceGroup"},{"p":"com.technototes.library.hardware.sensor","l":"IColorSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IDistanceSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IGyro"},{"p":"com.technototes.library.hardware.sensor","l":"ILightSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IMU"},{"p":"com.technototes.library.hardware2","l":"IMUBuilder"},{"p":"com.technototes.library.util","l":"Integral"},{"p":"com.technototes.library.general","l":"Invertable"},{"p":"com.technototes.library.command","l":"IterativeCommand"},{"p":"com.technototes.library.logger","l":"Log"},{"p":"com.technototes.library.logger","l":"LogConfig"},{"p":"com.technototes.library.logger","l":"Loggable"},{"p":"com.technototes.library.logger","l":"Logger"},{"p":"com.technototes.library.logger","l":"Log.Logs"},{"p":"com.technototes.library.util","l":"MapUtils"},{"p":"com.technototes.library.util","l":"MathUtils"},{"p":"com.technototes.library.hardware.motor","l":"Motor"},{"p":"com.technototes.library.hardware2","l":"MotorBuilder"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"MotorEncoder"},{"p":"com.technototes.library.hardware.motor","l":"MotorGroup"},{"p":"com.technototes.library.subsystem.motor","l":"MotorSubsystem"},{"p":"com.technototes.library.logger","l":"Log.Number"},{"p":"com.technototes.library.logger.entry","l":"NumberEntry"},{"p":"com.technototes.library.structure","l":"CommandOpMode.OpModeState"},{"p":"com.technototes.library.command","l":"ParallelCommandGroup"},{"p":"com.technototes.library.command","l":"ParallelDeadlineGroup"},{"p":"com.technototes.library.command","l":"ParallelRaceGroup"},{"p":"com.technototes.library.general","l":"Periodic"},{"p":"com.technototes.library.util","l":"Range"},{"p":"com.technototes.library.util","l":"Alliance.Red"},{"p":"com.technototes.library.hardware.sensor","l":"Rev2MDistanceSensor"},{"p":"com.technototes.library","l":"RobotLibrary"},{"p":"com.technototes.library.logger","l":"LogConfig.Run"},{"p":"com.technototes.library.util","l":"Alliance.Selector"},{"p":"com.technototes.library.hardware.sensor","l":"Sensor"},{"p":"com.technototes.library.hardware","l":"Sensored"},{"p":"com.technototes.library.command","l":"SequentialCommandGroup"},{"p":"com.technototes.library.hardware.servo","l":"Servo"},{"p":"com.technototes.library.hardware2","l":"ServoBuilder"},{"p":"com.technototes.library.hardware.servo","l":"ServoGroup"},{"p":"com.technototes.library.hardware.servo","l":"ServoProfiler"},{"p":"com.technototes.library.subsystem.servo","l":"ServoSubsystem"},{"p":"com.technototes.library.subsystem.drivebase","l":"SimpleMecanumDrivebaseSubsystem"},{"p":"com.technototes.library.util","l":"SmartConsumer"},{"p":"com.technototes.library.hardware","l":"Speaker"},{"p":"com.technototes.library.control","l":"Stick"},{"p":"com.technototes.library.logger.entry","l":"StringEntry"},{"p":"com.technototes.library.subsystem","l":"Subsystem"},{"p":"com.technototes.library.subsystem.drivebase","l":"TankDrivebaseSubsystem"},{"p":"com.technototes.library.control","l":"Binding.Type"},{"p":"com.technototes.library.command","l":"WaitCommand"}];updateSearchResults();
    \ No newline at end of file
    diff --git a/docs/Vision/allclasses-index.html b/docs/Vision/allclasses-index.html
    index b45450bf..71dfe5d5 100644
    --- a/docs/Vision/allclasses-index.html
    +++ b/docs/Vision/allclasses-index.html
    @@ -1,136 +1,84 @@
    -
    +
     
    -  
    -    
    -    All Classes and Interfaces (Vision API)
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -    
    -  
    -  
    -    
    -    
    -    
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    Classes
    -
    -
    Class
    -
    Description
    -
    - Camera<T - extends org.openftc.easyopencv.OpenCvCamera,U - extends com.qualcomm.robotcore.hardware.HardwareDevice> -
    -
    -
    - This is an OpenCVCamera interface using the FTC SDK camera hardware -
    -
    - -
    -
    This is a Camera for use with a phone's internal camera
    -
    - -
    -
    - A vision streaming pipeline to enable vision processing during an opmode -
    -
    - -
    -
    - A webcam device interface that allows you to switch between multiple cameras! -
    -
    -
    - Webcam -
    -
    -
    Acquire webcamera is just a quit constructor away :)
    -
    -
    -
    -
    -
    -
    - + + +All Classes and Interfaces (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes and Interfaces

    +
    +
    +
    Classes
    +
    +
    Class
    +
    Description
    +
    Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice>
    +
    +
    This is an OpenCVCamera interface using the FTC SDK camera hardware
    +
    + +
    +
    This is a Camera for use with a phone's internal camera
    +
    + +
    +
    A vision streaming pipeline to enable vision processing during an opmode
    +
    + +
    +
    A webcam device interface that allows you to switch between multiple cameras!
    +
    + +
    +
    Acquire webcamera is just a quit constructor away :)
    +
    +
    +
    +
    +
    +
    + diff --git a/docs/Vision/allpackages-index.html b/docs/Vision/allpackages-index.html index 4bb32373..8d98dc33 100644 --- a/docs/Vision/allpackages-index.html +++ b/docs/Vision/allpackages-index.html @@ -1,80 +1,66 @@ - + - - - All Packages (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Packages

    -
    -
    Package Summary
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    -
    -
    - + + +All Packages (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Packages

    +
    +
    Package Summary
    + +
    +
    +
    + diff --git a/docs/Vision/deprecated-list.html b/docs/Vision/deprecated-list.html index f8cef183..86b1821d 100644 --- a/docs/Vision/deprecated-list.html +++ b/docs/Vision/deprecated-list.html @@ -1,84 +1,74 @@ - + - - - Deprecated List (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Deprecated API

    -

    Contents

    - -
    - -
    -
    -
    - + + +Deprecated List (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Deprecated API

    +

    Contents

    + +
    + +
    +
    +
    + diff --git a/docs/Vision/help-doc.html b/docs/Vision/help-doc.html index c5e91762..23a3c98b 100644 --- a/docs/Vision/help-doc.html +++ b/docs/Vision/help-doc.html @@ -1,261 +1,181 @@ - + - - - API Help (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    - Starting from the Overview page, you can browse the - documentation using the links in each page, and in the navigation bar at the top of each - page. The Index and Search box allow you to navigate to - specific declarations and summary pages, including: - All Packages, - All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    - The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    - The Overview page is the front page of this API document - and provides a list of all packages with a summary for each. This page can also - contain an overall description of the set of packages. -

    -
    -
    -

    Package

    -

    - Each package has a page that contains a list of its classes and interfaces, with a - summary for each. These pages may contain the following categories: -

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    - Each class, interface, nested class and nested interface has its own separate page. - Each of these pages has three sections consisting of a declaration and description, - member summary tables, and detailed member descriptions. Entries in each of these - sections are omitted if they are empty or not applicable. -

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    - Note: Annotation interfaces have required and - optional elements, but not methods. Only enum classes have enum constants. The - components of a record class are displayed as part of the declaration of the record - class. Properties are a feature of JavaFX. -

    -

    - The summary entries are alphabetical, while the detailed descriptions are in the - order they appear in the source code. This preserves the logical groupings - established by the programmer. -

    -
    -
    -

    Other Files

    -

    - Packages and modules may contain pages with additional information related to the - declarations nearby. -

    -
    -
    -

    Tree (Class Hierarchy)

    -

    - There is a Class Hierarchy page for all packages, - plus a hierarchy for each package. Each hierarchy page contains a list of classes - and a list of interfaces. Classes are organized by inheritance structure starting - with java.lang.Object. Interfaces do not inherit from - java.lang.Object. -

    -
      -
    • - When viewing the Overview page, clicking on TREE displays the hierarchy for all - packages. -
    • -
    • - When viewing a particular package, class or interface page, clicking on TREE - displays the hierarchy for only that package. -
    • -
    -
    -
    -

    Deprecated API

    -

    - The Deprecated API page lists all of the API that - have been deprecated. A deprecated API is not recommended for use, generally due to - shortcomings, and a replacement API is usually given. Deprecated APIs may be removed - in future implementations. -

    -
    -
    -

    All Packages

    -

    - The All Packages page contains an alphabetic - index of all packages contained in the documentation. -

    -
    -
    -

    All Classes and Interfaces

    -

    - The All Classes and Interfaces page contains an - alphabetic index of all classes and interfaces contained in the documentation, - including annotation interfaces, enum classes, and record classes. -

    -
    -
    -

    Index

    -

    - The Index contains an alphabetic index of all classes, - interfaces, constructors, methods, and fields in the documentation, as well as - summary pages such as All Packages, - All Classes and Interfaces. -

    -
    -
    -
    - This help file applies to API documentation generated by the standard doclet. -
    -
    -
    - + + +API Help (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
    +
    +
    +

    Kinds of Pages

    +The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    +

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    +
    +
    +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

    +
      +
    • Interfaces
    • +
    • Classes
    • +
    • Enum Classes
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Interfaces
    • +
    +
    +
    +

    Class or Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

    +
      +
    • Class Inheritance Diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class or Interface Declaration
    • +
    • Class or Interface Description
    • +
    +
    +
      +
    • Nested Class Summary
    • +
    • Enum Constant Summary
    • +
    • Field Summary
    • +
    • Property Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    +

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
    +
    +

    Other Files

    +

    Packages and modules may contain pages with additional information related to the declarations nearby.

    +
    +
    +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • +
    +
    +
    +

    Deprecated API

    +

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    +
    +
    +

    All Packages

    +

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    +
    +
    +

    All Classes and Interfaces

    +

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    +
    +
    +

    Index

    +

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    +
    +
    +
    +This help file applies to API documentation generated by the standard doclet.
    +
    +
    + diff --git a/docs/Vision/index-all.html b/docs/Vision/index-all.html index 09df77c7..f8693534 100644 --- a/docs/Vision/index-all.html +++ b/docs/Vision/index-all.html @@ -1,916 +1,262 @@ - + - - - Index (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    - C G I O P R S W 
    All Classes and Interfaces|All Packages -

    C

    -
    -
    - camera - - Variable in class com.technototes.vision.subsystem.PipelineSubsystem -
    -
    -
    The Camera object this subsystem is processing frames from
    -
    -
    - Camera<T - extends org.openftc.easyopencv.OpenCvCamera,U - extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in - com.technototes.vision.hardware -
    -
    -
    - This is an OpenCVCamera interface using the FTC SDK camera hardware -
    -
    -
    - Camera(String) - - Constructor for class com.technototes.vision.hardware.Camera -
    -
    -
    Create a Camera device from the HardwareDevice provided
    -
    -
    - Camera(U) - - Constructor for class com.technototes.vision.hardware.Camera -
    -
    -
    Create a Camera device from the HardwareDevice provided
    -
    -
    - closeCameraDevice() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - com.technototes.vision.hardware - - package com.technototes.vision.hardware -
    -
     
    -
    - com.technototes.vision.subsystem - - package com.technototes.vision.subsystem -
    -
     
    -
    - createCamera() - - Method in class com.technototes.vision.hardware.InternalCamera -
    -
    -
    Create an OpenCvInternalCamera from this Camera
    -
    -
    - createCamera() - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Get the switchable webcam object to use with your pipeline
    -
    -
    - createCamera() - - Method in class com.technototes.vision.hardware.Webcam -
    -
    -
    - Create an OpenCvWebcam, which can then be used in your vision pipeline -
    -
    -
    -

    G

    -
    -
    - getActiveCamera() - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Get the currently selected camera
    -
    -
    - getCameraDirection() - - Method in class com.technototes.vision.hardware.InternalCamera -
    -
    -
    Get which internal camera is being used
    -
    -
    - getCurrentPipelineMaxFps() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - getDevice() - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
    -
    -
    Get the Camera device that frames are being processed from
    -
    -
    - getFps() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - getFrameBitmap(Continuation<? extends Consumer<Bitmap>>) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - getFrameCount() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - getOpenCvCamera() - - Method in class com.technototes.vision.hardware.Camera -
    -
    -
    get the camera created
    -
    -
    - getOverheadTimeMs() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - getPipelineTimeMs() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - getTotalFrameTimeMs() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    -

    I

    -
    -
    - InternalCamera - - Class in - com.technototes.vision.hardware -
    -
    -
    This is a Camera for use with a phone's internal camera
    -
    -
    - InternalCamera() - - Constructor for class com.technototes.vision.hardware.InternalCamera -
    -
    -
    Create the front-facing internal camera
    -
    -
    - InternalCamera(OpenCvInternalCamera.CameraDirection) - - Constructor for class com.technototes.vision.hardware.InternalCamera -
    -
    -
    - Create a camera (using the one on the phone for the CameraDirection) -
    -
    -
    -

    O

    -
    -
    - openCameraDevice() - - Method in class com.technototes.vision.hardware.Camera -
    -
    -
    Deprecated.
    -
    -
    - openCameraDeviceAsync(Runnable) - - Method in class com.technototes.vision.hardware.Camera -
    -
    -
    - Invokes the Runnable's run() method when the camera has been opened. -
    -
    -
    - openCameraDeviceAsync(Runnable, IntConsumer) - - Method in class com.technototes.vision.hardware.Camera -
    -
    -
    - Invokes the Runnable's run() method when the camera has been opened, and calls the - IntConsumer's accept() method if an error occurs -
    -
    -
    - openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - openCvCamera - - Variable in class com.technototes.vision.hardware.Camera -
    -
    -
    This is the OpenCvCamera object created
    -
    -
    -

    P

    -
    -
    - pauseViewport() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - PipelineSubsystem - - Class in - com.technototes.vision.subsystem -
    -
    -
    - A vision streaming pipeline to enable vision processing during an opmode -
    -
    -
    - PipelineSubsystem(Camera) - - Constructor for class com.technototes.vision.subsystem.PipelineSubsystem -
    -
    -
    Create the subsystem with the Camera provided
    -
    -
    -

    R

    -
    -
    - resumeViewport() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    -

    S

    -
    -
    - setActiveCamera(Webcam) - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Set the active camera (and return it!)
    -
    -
    - setActiveCamera(String) - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Set the active camera (and return it!)
    -
    -
    - setActiveCamera(WebcamName) - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Set the active camera (and return it!)
    -
    -
    - setPipeline(OpenCvPipeline) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - setViewportRenderer(OpenCvCamera.ViewportRenderer) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - showFpsMeterOnViewport(boolean) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - startRecordingPipeline(PipelineRecordingParameters) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - startStreaming(int, int) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - startStreaming(int, int) - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
    -
    -
    This begins streaming frames from the camera
    -
    -
    - startStreaming(int, int, OpenCvCameraRotation) - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - startStreaming(int, int, OpenCvCameraRotation) - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
    -
    -
    This begins streaming frames from the camera
    -
    -
    - stopRecordingPipeline() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - stopStreaming() - - Method in class com.technototes.vision.hardware.Camera -
    -
     
    -
    - stopStreaming() - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
    -
    -
    Stop frame processing
    -
    -
    - SwitchableWebcam - - Class in - com.technototes.vision.hardware -
    -
    -
    - A webcam device interface that allows you to switch between multiple cameras! -
    -
    -
    - SwitchableWebcam(Webcam...) - - Constructor for class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    - Constructor that takes already-created Webcam's so they can be accessed through the - switchable interface -
    -
    -
    - SwitchableWebcam(String...) - - Constructor for class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Constructor to create the switchable webcam object
    -
    -
    - SwitchableWebcam(WebcamName...) - - Constructor for class com.technototes.vision.hardware.SwitchableWebcam -
    -
    -
    Constructor to create the switchable webcam object
    -
    -
    -

    W

    -
    -
    - Webcam - - Class in - com.technototes.vision.hardware -
    -
    -
    Acquire webcamera is just a quit constructor away :)
    -
    -
    - Webcam(String) - - Constructor for class com.technototes.vision.hardware.Webcam -
    -
    -
    - Create a webcam device configured on the device with the given name -
    -
    -
    - Webcam(WebcamName) - - Constructor for class com.technototes.vision.hardware.Webcam -
    -
    -
    TODO: I'm not sure where WebcamName comes from.
    -
    -
    - C G I O P R S W 
    All Classes and Interfaces|All Packages -
    -
    -
    - + + +Index (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    +C G I O P R S W 
    All Classes and Interfaces|All Packages +

    C

    +
    +
    camera - Variable in class com.technototes.vision.subsystem.PipelineSubsystem
    +
    +
    The Camera object this subsystem is processing frames from
    +
    +
    Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in com.technototes.vision.hardware
    +
    +
    This is an OpenCVCamera interface using the FTC SDK camera hardware
    +
    +
    Camera(String) - Constructor for class com.technototes.vision.hardware.Camera
    +
    +
    Create a Camera device from the HardwareDevice provided
    +
    +
    Camera(U) - Constructor for class com.technototes.vision.hardware.Camera
    +
    +
    Create a Camera device from the HardwareDevice provided
    +
    +
    closeCameraDevice() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    com.technototes.vision.hardware - package com.technototes.vision.hardware
    +
     
    +
    com.technototes.vision.subsystem - package com.technototes.vision.subsystem
    +
     
    +
    createCamera() - Method in class com.technototes.vision.hardware.InternalCamera
    +
    +
    Create an OpenCvInternalCamera from this Camera
    +
    +
    createCamera() - Method in class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Get the switchable webcam object to use with your pipeline
    +
    +
    createCamera() - Method in class com.technototes.vision.hardware.Webcam
    +
    +
    Create an OpenCvWebcam, which can then be used in your vision pipeline
    +
    +
    +

    G

    +
    +
    getActiveCamera() - Method in class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Get the currently selected camera
    +
    +
    getCameraDirection() - Method in class com.technototes.vision.hardware.InternalCamera
    +
    +
    Get which internal camera is being used
    +
    +
    getCurrentPipelineMaxFps() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    getDevice() - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    +
    +
    Get the Camera device that frames are being processed from
    +
    +
    getFps() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    getFrameBitmap(Continuation<? extends Consumer<Bitmap>>) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    getFrameCount() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    getOpenCvCamera() - Method in class com.technototes.vision.hardware.Camera
    +
    +
    get the camera created
    +
    +
    getOverheadTimeMs() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    getPipelineTimeMs() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    getTotalFrameTimeMs() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    +

    I

    +
    +
    InternalCamera - Class in com.technototes.vision.hardware
    +
    +
    This is a Camera for use with a phone's internal camera
    +
    +
    InternalCamera() - Constructor for class com.technototes.vision.hardware.InternalCamera
    +
    +
    Create the front-facing internal camera
    +
    +
    InternalCamera(OpenCvInternalCamera.CameraDirection) - Constructor for class com.technototes.vision.hardware.InternalCamera
    +
    +
    Create a camera (using the one on the phone for the CameraDirection)
    +
    +
    +

    O

    +
    +
    openCameraDevice() - Method in class com.technototes.vision.hardware.Camera
    +
    +
    Deprecated.
    +
    +
    openCameraDeviceAsync(Runnable) - Method in class com.technototes.vision.hardware.Camera
    +
    +
    Invokes the Runnable's run() method when the camera has been opened.
    +
    +
    openCameraDeviceAsync(Runnable, IntConsumer) - Method in class com.technototes.vision.hardware.Camera
    +
    +
    Invokes the Runnable's run() method when the camera has been opened, + and calls the IntConsumer's accept() method if an error occurs
    +
    +
    openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    openCvCamera - Variable in class com.technototes.vision.hardware.Camera
    +
    +
    This is the OpenCvCamera object created
    +
    +
    +

    P

    +
    +
    pauseViewport() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    PipelineSubsystem - Class in com.technototes.vision.subsystem
    +
    +
    A vision streaming pipeline to enable vision processing during an opmode
    +
    +
    PipelineSubsystem(Camera) - Constructor for class com.technototes.vision.subsystem.PipelineSubsystem
    +
    +
    Create the subsystem with the Camera provided
    +
    +
    +

    R

    +
    +
    resumeViewport() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    +

    S

    +
    +
    setActiveCamera(Webcam) - Method in class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Set the active camera (and return it!)
    +
    +
    setActiveCamera(String) - Method in class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Set the active camera (and return it!)
    +
    +
    setActiveCamera(WebcamName) - Method in class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Set the active camera (and return it!)
    +
    +
    setPipeline(OpenCvPipeline) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    setViewportRenderer(OpenCvCamera.ViewportRenderer) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    showFpsMeterOnViewport(boolean) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    startRecordingPipeline(PipelineRecordingParameters) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    startStreaming(int, int) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    startStreaming(int, int) - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    +
    +
    This begins streaming frames from the camera
    +
    +
    startStreaming(int, int, OpenCvCameraRotation) - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    startStreaming(int, int, OpenCvCameraRotation) - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    +
    +
    This begins streaming frames from the camera
    +
    +
    stopRecordingPipeline() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    stopStreaming() - Method in class com.technototes.vision.hardware.Camera
    +
     
    +
    stopStreaming() - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    +
    +
    Stop frame processing
    +
    +
    SwitchableWebcam - Class in com.technototes.vision.hardware
    +
    +
    A webcam device interface that allows you to switch between multiple cameras!
    +
    +
    SwitchableWebcam(Webcam...) - Constructor for class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Constructor that takes already-created Webcam's so they can be accessed + through the switchable interface
    +
    +
    SwitchableWebcam(String...) - Constructor for class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Constructor to create the switchable webcam object
    +
    +
    SwitchableWebcam(WebcamName...) - Constructor for class com.technototes.vision.hardware.SwitchableWebcam
    +
    +
    Constructor to create the switchable webcam object
    +
    +
    +

    W

    +
    +
    Webcam - Class in com.technototes.vision.hardware
    +
    +
    Acquire webcamera is just a quit constructor away :)
    +
    +
    Webcam(String) - Constructor for class com.technototes.vision.hardware.Webcam
    +
    +
    Create a webcam device configured on the device with the given name
    +
    +
    Webcam(WebcamName) - Constructor for class com.technototes.vision.hardware.Webcam
    +
    +
    TODO: I'm not sure where WebcamName comes from.
    +
    +
    +C G I O P R S W 
    All Classes and Interfaces|All Packages
    +
    +
    + diff --git a/docs/Vision/index.html b/docs/Vision/index.html index 70a53db1..3add7e80 100644 --- a/docs/Vision/index.html +++ b/docs/Vision/index.html @@ -1,86 +1,68 @@ - + - - - Overview (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Vision API

    -
    -
    -
    Packages
    -
    -
    Package
    -
    Description
    - -
    -   -
    - -
    -   -
    -
    -
    -
    -
    -
    - + + +Overview (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Vision API

    +
    +
    +
    Packages
    + +
    +
    +
    +
    + diff --git a/docs/Vision/jquery-ui.overrides.css b/docs/Vision/jquery-ui.overrides.css index bc437535..facf852c 100644 --- a/docs/Vision/jquery-ui.overrides.css +++ b/docs/Vision/jquery-ui.overrides.css @@ -29,7 +29,7 @@ a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #f8981d; - border: 1px solid #f8981d; + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; + border: 1px solid #F8981D; } diff --git a/docs/Vision/member-search-index.js b/docs/Vision/member-search-index.js index f63548dc..c18770de 100644 --- a/docs/Vision/member-search-index.js +++ b/docs/Vision/member-search-index.js @@ -1,177 +1 @@ -memberSearchIndex = [ - { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'camera' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'Camera(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'Camera(U)', u: '%3Cinit%3E(U)' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'closeCameraDevice()' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener)', - u: 'closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener)', - }, - { p: 'com.technototes.vision.hardware', c: 'InternalCamera', l: 'createCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'SwitchableWebcam', l: 'createCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'Webcam', l: 'createCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'SwitchableWebcam', l: 'getActiveCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'InternalCamera', l: 'getCameraDirection()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getCurrentPipelineMaxFps()' }, - { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'getDevice()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getFps()' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'getFrameBitmap(Continuation>)', - u: 'getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getFrameCount()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getOpenCvCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getOverheadTimeMs()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getPipelineTimeMs()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getTotalFrameTimeMs()' }, - { - p: 'com.technototes.vision.hardware', - c: 'InternalCamera', - l: 'InternalCamera()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.vision.hardware', - c: 'InternalCamera', - l: 'InternalCamera(OpenCvInternalCamera.CameraDirection)', - u: '%3Cinit%3E(org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'openCameraDevice()' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener)', - u: 'openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'openCameraDeviceAsync(Runnable)', - u: 'openCameraDeviceAsync(java.lang.Runnable)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'openCameraDeviceAsync(Runnable, IntConsumer)', - u: 'openCameraDeviceAsync(java.lang.Runnable,java.util.function.IntConsumer)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'openCvCamera' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'pauseViewport()' }, - { - p: 'com.technototes.vision.subsystem', - c: 'PipelineSubsystem', - l: 'PipelineSubsystem(Camera)', - u: '%3Cinit%3E(com.technototes.vision.hardware.Camera)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'resumeViewport()' }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'setActiveCamera(String)', - u: 'setActiveCamera(java.lang.String)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'setActiveCamera(Webcam)', - u: 'setActiveCamera(com.technototes.vision.hardware.Webcam)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'setActiveCamera(WebcamName)', - u: 'setActiveCamera(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'setPipeline(OpenCvPipeline)', - u: 'setPipeline(org.openftc.easyopencv.OpenCvPipeline)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'setViewportRenderer(OpenCvCamera.ViewportRenderer)', - u: 'setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy)', - u: 'setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'showFpsMeterOnViewport(boolean)' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'startRecordingPipeline(PipelineRecordingParameters)', - u: 'startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'startStreaming(int, int)', - u: 'startStreaming(int,int)', - }, - { - p: 'com.technototes.vision.subsystem', - c: 'PipelineSubsystem', - l: 'startStreaming(int, int)', - u: 'startStreaming(int,int)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'startStreaming(int, int, OpenCvCameraRotation)', - u: 'startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)', - }, - { - p: 'com.technototes.vision.subsystem', - c: 'PipelineSubsystem', - l: 'startStreaming(int, int, OpenCvCameraRotation)', - u: 'startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'stopRecordingPipeline()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'stopStreaming()' }, - { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'stopStreaming()' }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'SwitchableWebcam(String...)', - u: '%3Cinit%3E(java.lang.String...)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'SwitchableWebcam(Webcam...)', - u: '%3Cinit%3E(com.technototes.vision.hardware.Webcam...)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'SwitchableWebcam(WebcamName...)', - u: '%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName...)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Webcam', - l: 'Webcam(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Webcam', - l: 'Webcam(WebcamName)', - u: '%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)', - }, -]; -updateSearchResults(); +memberSearchIndex = [{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"camera"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"Camera(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"Camera(U)","u":"%3Cinit%3E(U)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"closeCameraDevice()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener)","u":"closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener)"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"createCamera()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"createCamera()"},{"p":"com.technototes.vision.hardware","c":"Webcam","l":"createCamera()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"getActiveCamera()"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"getCameraDirection()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getCurrentPipelineMaxFps()"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"getDevice()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getFps()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getFrameBitmap(Continuation>)","u":"getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getFrameCount()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getOpenCvCamera()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getOverheadTimeMs()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getPipelineTimeMs()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getTotalFrameTimeMs()"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"InternalCamera()","u":"%3Cinit%3E()"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"InternalCamera(OpenCvInternalCamera.CameraDirection)","u":"%3Cinit%3E(org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDevice()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener)","u":"openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDeviceAsync(Runnable)","u":"openCameraDeviceAsync(java.lang.Runnable)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDeviceAsync(Runnable, IntConsumer)","u":"openCameraDeviceAsync(java.lang.Runnable,java.util.function.IntConsumer)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCvCamera"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"pauseViewport()"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"PipelineSubsystem(Camera)","u":"%3Cinit%3E(com.technototes.vision.hardware.Camera)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"resumeViewport()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"setActiveCamera(String)","u":"setActiveCamera(java.lang.String)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"setActiveCamera(Webcam)","u":"setActiveCamera(com.technototes.vision.hardware.Webcam)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"setActiveCamera(WebcamName)","u":"setActiveCamera(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"setPipeline(OpenCvPipeline)","u":"setPipeline(org.openftc.easyopencv.OpenCvPipeline)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"setViewportRenderer(OpenCvCamera.ViewportRenderer)","u":"setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy)","u":"setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"showFpsMeterOnViewport(boolean)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"startRecordingPipeline(PipelineRecordingParameters)","u":"startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"startStreaming(int, int)","u":"startStreaming(int,int)"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"startStreaming(int, int)","u":"startStreaming(int,int)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"startStreaming(int, int, OpenCvCameraRotation)","u":"startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"startStreaming(int, int, OpenCvCameraRotation)","u":"startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"stopRecordingPipeline()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"stopStreaming()"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"stopStreaming()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"SwitchableWebcam(String...)","u":"%3Cinit%3E(java.lang.String...)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"SwitchableWebcam(Webcam...)","u":"%3Cinit%3E(com.technototes.vision.hardware.Webcam...)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"SwitchableWebcam(WebcamName...)","u":"%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName...)"},{"p":"com.technototes.vision.hardware","c":"Webcam","l":"Webcam(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.vision.hardware","c":"Webcam","l":"Webcam(WebcamName)","u":"%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/Vision/module-search-index.js b/docs/Vision/module-search-index.js index a6f96499..0d59754f 100644 --- a/docs/Vision/module-search-index.js +++ b/docs/Vision/module-search-index.js @@ -1,2 +1 @@ -moduleSearchIndex = []; -updateSearchResults(); +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/Vision/overview-summary.html b/docs/Vision/overview-summary.html index dcf83320..34041fef 100644 --- a/docs/Vision/overview-summary.html +++ b/docs/Vision/overview-summary.html @@ -1,27 +1,25 @@ - + - - - Vision API - - - - - - - - - - -
    - -

    index.html

    -
    - + + +Vision API + + + + + + + + + + +
    + +

    index.html

    +
    + diff --git a/docs/Vision/overview-tree.html b/docs/Vision/overview-tree.html index e677c81b..7d279c47 100644 --- a/docs/Vision/overview-tree.html +++ b/docs/Vision/overview-tree.html @@ -1,139 +1,83 @@ - + - - - Class Hierarchy (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For All Packages

    - Package Hierarchies: - -
    -
    -

    Class Hierarchy

    -
      -
    • - java.lang.Object -
        -
      • - com.technototes.library.hardware.HardwareDevice<T> -
          -
        • - com.technototes.vision.hardware.Camera<T,U> (implements org.openftc.easyopencv.OpenCvCamera) - -
        • -
        -
      • -
      • - com.technototes.vision.subsystem.PipelineSubsystem - (implements com.technototes.library.subsystem.Subsystem) -
      • -
      -
    • -
    -
    -
    -
    -
    - + + +Class Hierarchy (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchy For All Packages

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    +
      +
    • java.lang.Object +
        +
      • com.technototes.library.hardware.HardwareDevice<T> +
          +
        • com.technototes.vision.hardware.Camera<T,U> (implements org.openftc.easyopencv.OpenCvCamera) + +
        • +
        +
      • +
      • com.technototes.vision.subsystem.PipelineSubsystem (implements com.technototes.library.subsystem.Subsystem)
      • +
      +
    • +
    +
    +
    +
    +
    + diff --git a/docs/Vision/package-search-index.js b/docs/Vision/package-search-index.js index d142fd68..8b461665 100644 --- a/docs/Vision/package-search-index.js +++ b/docs/Vision/package-search-index.js @@ -1,6 +1 @@ -packageSearchIndex = [ - { l: 'All Packages', u: 'allpackages-index.html' }, - { l: 'com.technototes.vision.hardware' }, - { l: 'com.technototes.vision.subsystem' }, -]; -updateSearchResults(); +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.technototes.vision.hardware"},{"l":"com.technototes.vision.subsystem"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/Vision/script.js b/docs/Vision/script.js index a6efd285..864989cf 100644 --- a/docs/Vision/script.js +++ b/docs/Vision/script.js @@ -29,106 +29,104 @@ var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); + createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); } function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); } function show(tableId, selected, columns) { - if (tableId !== selected) { - document - .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function (elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected).forEach(function (elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); } function updateTabs(tableId, selected) { - document - .querySelector('div#' + tableId + ' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex', 0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex', -1); - } - }); + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); } function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } } - } } -var updateSearchResults = function () {}; +var updateSearchResults = function() {}; function indexFilesLoaded() { - return ( - moduleSearchIndex && - packageSearchIndex && - typeSearchIndex && - memberSearchIndex && - tagSearchIndex - ); + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; } // Workaround for scroll position not being included in browser history (8249133) -document.addEventListener('DOMContentLoaded', function (e) { - var contentDiv = document.querySelector('div.flex-content'); - window.addEventListener('popstate', function (e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener('hashchange', function (e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener('scroll', function (e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function () { +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); } - }); - if (!location.hash) { - history.replaceState(contentDiv.scrollTop, document.title); - } }); diff --git a/docs/Vision/search.js b/docs/Vision/search.js index 3ba91721..db3b2f4a 100644 --- a/docs/Vision/search.js +++ b/docs/Vision/search.js @@ -23,354 +23,332 @@ * questions. */ -var noResult = { l: 'No results found' }; -var loading = { l: 'Loading search index...' }; -var catModules = 'Modules'; -var catPackages = 'Packages'; -var catTypes = 'Classes and Interfaces'; -var catMembers = 'Members'; -var catSearchTags = 'Search Tags'; -var highlight = '$&'; -var searchPattern = ''; -var fallbackPattern = ''; +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; var RANKING_THRESHOLD = 2; var NO_MATCH = 0xffff; var MIN_RESULTS = 3; var MAX_RESULTS = 500; -var UNNAMED = ''; +var UNNAMED = ""; function escapeHtml(str) { - return str.replace(//g, '>'); + return str.replace(//g, ">"); } function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight); - } - return highlighted; + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; } function getURLPrefix(ui) { - var urlPrefix = ''; - var slash = '/'; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function (index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); } - }); } - } - return urlPrefix; + return urlPrefix; } function createSearchPattern(term) { - var pattern = ''; - var isWordToken = false; - term - .replace(/,\s*/g, ', ') - .trim() - .split(/\s+/) - .forEach(function (w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; - } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === '') { - continue; + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += '([a-z0-9_$<>\\[\\]]*?)'; + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } } - } }); - return pattern; + return pattern; } function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); } var watermark = 'Search'; -$(function () { - var search = $('#search-input'); - var reset = $('#reset-button'); - search.val(''); - search.prop('disabled', false); - reset.prop('disabled', false); - search.val(watermark).addClass('watermark'); - search.blur(function () { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function () { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function () { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget('custom.catcomplete', $.ui.autocomplete, { - _create: function () { - this._super(); - this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); - }, - _renderMenu: function (ul, items) { - var rMenu = this; - var currentCategory = ''; - rMenu.menu.bindings = $(); - $.each(items, function (index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append('
  • ' + item.category + '
  • '); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr('aria-label', item.category + ' : ' + item.l); - li.attr('class', 'result-item'); - } else { - li.attr('aria-label', item.l); - li.attr('class', 'result-item'); - } +$(function() { + var search = $("#search-input"); + var reset = $("#reset-button"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } }); - }, - _renderItem: function (ul, item) { - var label = ''; - var matcher = createMatcher(escapeHtml(searchPattern), 'g'); - var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $('
  • ').appendTo(ul); - var div = $('
    ').appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html( - label + - ' (' + - item.h + - ')
    ' + - item.d + - '
    ', - ); - } else { - div.html(label + ' (' + item.h + ')'); - } - } else { - if (item.m) { - div.html(item.m + '/' + label); - } else { - div.html(label); - } + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
  • " + item.category + "
  • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
  • ").appendTo(ul); + var div = $("
    ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
    " + + item.d + "
    "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; } - return li; - }, }); function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { - leftBoundaryMatch = 0; - } else if ( - '_' === input[index - 1] || - (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) - ) { - leftBoundaryMatch = 1; - } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf('('); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? '/' : '.'; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; } - } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) delta += match[i].length; - } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) delta += 5; - } - return leftBoundaryMatch + periferalMatch + delta / 200; + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + } function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === '') { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ''); - var fallbackMatcher = new RegExp(fallbackPattern, 'i'); + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ ranking: ranking, item: item }); + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); } - return newResults.length <= MAX_RESULTS; - }); - return newResults - .sort(function (e1, e2) { - return e1.ranking - e2.ranking; - }) - .map(function (e) { - return e.item; - }); + return []; } - return []; - } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher( - indexArray, - fallbackMatcher, - category, - nameFunc, - ); - result = result.concat( - secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - }), - ); + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } } - } - searchIndex(moduleSearchIndex, catModules, function (item) { - return item.l; - }); - searchIndex(packageSearchIndex, catPackages, function (item) { - return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function (item) { - return item.l; - }); + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); - if (!indexFilesLoaded()) { - updateSearchResults = function () { - doSearch(request, response); - }; - result.unshift(loading); - } else { - updateSearchResults = function () {}; - } - response(result); -} -$(function () { - $('#search-input').catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function (event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $('#search-input').empty(); - } - }, - autoFocus: true, - focus: function (event, ui) { - return false; - }, - position: { - collision: 'flip', - }, - select: function (event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += 'module-summary.html'; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + '.html'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + '.html' + '#'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search-input").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search-input").focus(); + } } - $('#search-input').focus(); - } - }, - }); + }); }); diff --git a/docs/Vision/stylesheet.css b/docs/Vision/stylesheet.css index 236a306f..4a576bd2 100644 --- a/docs/Vision/stylesheet.css +++ b/docs/Vision/stylesheet.css @@ -12,89 +12,86 @@ */ body { - background-color: #ffffff; - color: #353833; - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; - margin: 0; - padding: 0; - height: 100%; - width: 100%; + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; } iframe { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overflow-y: scroll; - border: none; -} -a:link, -a:visited { - text-decoration: none; - color: #4a6782; -} -a[href]:hover, -a[href]:focus { - text-decoration: none; - color: #bb7a2a; + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; } a[name] { - color: #353833; + color:#353833; } pre { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; } h1 { - font-size: 20px; + font-size:20px; } h2 { - font-size: 18px; + font-size:18px; } h3 { - font-size: 16px; + font-size:16px; } h4 { - font-size: 15px; + font-size:15px; } h5 { - font-size: 14px; + font-size:14px; } h6 { - font-size: 13px; + font-size:13px; } ul { - list-style-type: disc; + list-style-type:disc; } -code, -tt { - font-family: 'DejaVu Sans Mono', monospace; +code, tt { + font-family:'DejaVu Sans Mono', monospace; } :not(h1, h2, h3, h4, h5, h6) > code, :not(h1, h2, h3, h4, h5, h6) > tt { - font-size: 14px; - padding-top: 4px; - margin-top: 8px; - line-height: 1.4em; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; } dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - padding-top: 4px; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; } .summary-table dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - vertical-align: top; - padding-top: 4px; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; } sup { - font-size: 8px; + font-size:8px; } button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; } /* * Styles for HTML generated by javadoc. @@ -106,654 +103,596 @@ button { * Styles for document title and copyright. */ .clear { - clear: both; - height: 0; - overflow: hidden; + clear:both; + height:0; + overflow:hidden; } .about-language { - float: right; - padding: 0 21px 8px 8px; - font-size: 11px; - margin-top: -9px; - height: 2.9em; + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; } .legal-copy { - margin-left: 0.5em; + margin-left:.5em; } .tab { - background-color: #0066ff; - color: #ffffff; - padding: 8px; - width: 5em; - font-weight: bold; + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; } /* * Styles for navigation bar. */ @media screen { - .flex-box { - position: fixed; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } } .top-nav { - background-color: #4d7a97; - color: #ffffff; - float: left; - padding: 0; - width: 100%; - clear: right; - min-height: 2.8em; - padding-top: 10px; - overflow: hidden; - font-size: 12px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; } .sub-nav { - background-color: #dee3e9; - float: left; - width: 100%; - overflow: hidden; - font-size: 12px; + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; } .sub-nav div { - clear: left; - float: left; - padding: 0 0 5px 6px; - text-transform: uppercase; + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; } .sub-nav .nav-list { - padding-top: 5px; + padding-top:5px; } ul.nav-list { - display: block; - margin: 0 25px 0 0; - padding: 0; + display:block; + margin:0 25px 0 0; + padding:0; } ul.sub-nav-list { - float: left; - margin: 0 25px 0 0; - padding: 0; + float:left; + margin:0 25px 0 0; + padding:0; } ul.nav-list li { - list-style: none; - float: left; - padding: 5px 6px; - text-transform: uppercase; + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; } .sub-nav .nav-list-search { - float: right; - margin: 0 0 0 0; - padding: 5px 6px; - clear: none; + float:right; + margin:0 0 0 0; + padding:5px 6px; + clear:none; } .nav-list-search label { - position: relative; - right: -16px; + position:relative; + right:-16px; } ul.sub-nav-list li { - list-style: none; - float: left; - padding-top: 10px; + list-style:none; + float:left; + padding-top:10px; } -.top-nav a:link, -.top-nav a:active, -.top-nav a:visited { - color: #ffffff; - text-decoration: none; - text-transform: uppercase; +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; } .top-nav a:hover { - text-decoration: none; - color: #bb7a2a; - text-transform: uppercase; + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; } .nav-bar-cell1-rev { - background-color: #f8981d; - color: #253441; - margin: auto 5px; + background-color:#F8981D; + color:#253441; + margin: auto 5px; } .skip-nav { - position: absolute; - top: auto; - left: -9999px; - overflow: hidden; + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; } /* * Hide navigation links and search box in print layout */ @media print { - ul.nav-list, - div.sub-nav { - display: none; - } + ul.nav-list, div.sub-nav { + display:none; + } } /* * Styles for page header and footer. */ .title { - color: #2c4557; - margin: 10px 0; + color:#2c4557; + margin:10px 0; } .sub-title { - margin: 5px 0 0 0; + margin:5px 0 0 0; } .header ul { - margin: 0 0 15px 0; - padding: 0; + margin:0 0 15px 0; + padding:0; } -.header ul li, -.footer ul li { - list-style: none; - font-size: 13px; +.header ul li, .footer ul li { + list-style:none; + font-size:13px; } /* * Styles for headings. */ body.class-declaration-page .summary h2, body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding: 0; - margin: 15px 0; +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; } body.class-declaration-page .summary h3, body.class-declaration-page .details h3, body.class-declaration-page .summary .inherited-list h2 { - background-color: #dee3e9; - border: 1px solid #d0d9e0; - margin: 0 0 6px -8px; - padding: 7px 5px; + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; } /* * Styles for page layout containers. */ main { - clear: both; - padding: 10px 20px; - position: relative; + clear:both; + padding:10px 20px; + position:relative; } dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: bold; - margin: 10px 0 0 0; - color: #4e4e4e; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; } dl.notes > dd { - margin: 5px 10px 10px 0; - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + margin:5px 10px 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } dl.name-value > dt { - margin-left: 1px; - font-size: 1.1em; - display: inline; - font-weight: bold; + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; } dl.name-value > dd { - margin: 0 0 0 1px; - font-size: 1.1em; - display: inline; + margin:0 0 0 1px; + font-size:1.1em; + display:inline; } /* * Styles for lists. */ li.circle { - list-style: circle; + list-style:circle; } ul.horizontal li { - display: inline; - font-size: 0.9em; + display:inline; + font-size:0.9em; } div.inheritance { - margin: 0; - padding: 0; + margin:0; + padding:0; } div.inheritance div.inheritance { - margin-left: 2em; + margin-left:2em; } ul.block-list, ul.details-list, ul.member-list, ul.summary-list { - margin: 10px 0 10px 0; - padding: 0; + margin:10px 0 10px 0; + padding:0; } ul.block-list > li, ul.details-list > li, ul.member-list > li, ul.summary-list > li { - list-style: none; - margin-bottom: 15px; - line-height: 1.4; + list-style:none; + margin-bottom:15px; + line-height:1.4; } -.summary-table dl, -.summary-table dl dt, -.summary-table dl dd { - margin-top: 0; - margin-bottom: 1px; +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; } -ul.see-list, -ul.see-list-long { - padding-left: 0; - list-style: none; +ul.see-list, ul.see-list-long { + padding-left: 0; + list-style: none; } ul.see-list li { - display: inline; + display: inline; } ul.see-list li:not(:last-child):after, ul.see-list-long li:not(:last-child):after { - content: ', '; - white-space: pre-wrap; + content: ", "; + white-space: pre-wrap; } /* * Styles for tables. */ -.summary-table, -.details-table { - width: 100%; - border-spacing: 0; - border-left: 1px solid #eee; - border-right: 1px solid #eee; - border-bottom: 1px solid #eee; - padding: 0; +.summary-table, .details-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; + padding:0; } .caption { - position: relative; - text-align: left; - background-repeat: no-repeat; - color: #253441; - font-weight: bold; - clear: none; - overflow: hidden; - padding: 0; - padding-top: 10px; - padding-left: 1px; - margin: 0; - white-space: pre; -} -.caption a:link, -.caption a:visited { - color: #1f389c; + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0; + padding-top:10px; + padding-left:1px; + margin:0; + white-space:pre; +} +.caption a:link, .caption a:visited { + color:#1f389c; } .caption a:hover, .caption a:active { - color: #ffffff; + color:#FFFFFF; } .caption span { - white-space: nowrap; - padding-top: 5px; - padding-left: 12px; - padding-right: 12px; - padding-bottom: 7px; - display: inline-block; - float: left; - background-color: #f8981d; - border: none; - height: 16px; + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; } div.table-tabs { - padding: 10px 0 0 1px; - margin: 0; + padding:10px 0 0 1px; + margin:0; } div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; } div.table-tabs > button.active-table-tab { - background: #f8981d; - color: #253441; + background: #F8981D; + color: #253441; } div.table-tabs > button.table-tab { - background: #4d7a97; - color: #ffffff; + background: #4D7A97; + color: #FFFFFF; } .two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); } .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); } .four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( - 10%, - auto - ); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); } @media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } } @media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } } @media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, -.details-table > div { - text-align: left; - padding: 8px 3px 3px 7px; -} -.col-first, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name { - vertical-align: top; - padding-right: 0; - padding-top: 8px; - padding-bottom: 3px; + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; } .table-header { - background: #dee3e9; - font-weight: bold; -} -.col-first, -.col-first { - font-size: 13px; -} -.col-second, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name, -.col-last { - font-size: 13px; + background:#dee3e9; + font-weight: bold; } -.col-first, -.col-second, -.col-constructor-name { - vertical-align: top; - overflow: auto; +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; } .col-last { - white-space: normal; -} -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-constructor-name a:link, -.col-constructor-name a:visited, -.col-summary-item-name a:link, -.col-summary-item-name a:visited, -.constant-values-container a:link, -.constant-values-container a:visited, -.all-classes-container a:link, -.all-classes-container a:visited, -.all-packages-container a:link, -.all-packages-container a:visited { - font-weight: bold; + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { + font-weight:bold; } .table-sub-heading-color { - background-color: #eeeeff; + background-color:#EEEEFF; } -.even-row-color, -.even-row-color .table-header { - background-color: #ffffff; +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; } -.odd-row-color, -.odd-row-color .table-header { - background-color: #eeeeef; +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; } /* * Styles for contents. */ .deprecated-content { - margin: 0; - padding: 10px 0; + margin:0; + padding:10px 0; } div.block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } .col-last div { - padding-top: 0; + padding-top:0; } .col-last a { - padding-bottom: 3px; + padding-bottom:3px; } .module-signature, .package-signature, .type-signature, .member-signature { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - margin: 14px 0; - white-space: pre-wrap; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; } .module-signature, .package-signature, .type-signature { - margin-top: 0; + margin-top: 0; } .member-signature .type-parameters-long, .member-signature .parameters, .member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; + display: inline-block; + vertical-align: top; + white-space: pre; } .member-signature .type-parameters { - white-space: normal; + white-space: normal; } /* * Styles for formatting effect. */ .source-line-no { - color: green; - padding: 0 30px 0 0; + color:green; + padding:0 30px 0 0; } h1.hidden { - visibility: hidden; - overflow: hidden; - font-size: 10px; + visibility:hidden; + overflow:hidden; + font-size:10px; } .block { - display: block; - margin: 0 10px 5px 0; - color: #474747; -} -.deprecated-label, -.descfrm-type-label, -.implementation-label, -.member-name-label, -.member-name-link, -.module-label-in-package, -.module-label-in-type, -.override-specify-label, -.package-label-in-type, -.package-hierarchy-label, -.type-name-label, -.type-name-link, -.search-tag-link, -.preview-label { - font-weight: bold; -} -.deprecation-comment, -.help-footnote, -.preview-comment { - font-style: italic; + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; } .deprecation-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; } .preview-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; } div.block div.deprecation-comment { - font-style: normal; + font-style:normal; } /* * Styles specific to HTML5 elements. */ -main, -nav, -header, -footer, -section { - display: block; +main, nav, header, footer, section { + display:block; } /* * Styles for javadoc search. */ .ui-autocomplete-category { - font-weight: bold; - font-size: 15px; - padding: 7px 0 7px 3px; - background-color: #4d7a97; - color: #ffffff; + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; } .result-item { - font-size: 13px; + font-size:13px; } .ui-autocomplete { - max-height: 85%; - max-width: 65%; - overflow-y: scroll; - overflow-x: scroll; - white-space: nowrap; - box-shadow: - 0 3px 6px rgba(0, 0, 0, 0.16), - 0 3px 6px rgba(0, 0, 0, 0.23); + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); } ul.ui-autocomplete { - position: fixed; - z-index: 999999; - background-color: #ffffff; + position:fixed; + z-index:999999; + background-color: #FFFFFF; } -ul.ui-autocomplete li { - float: left; - clear: both; - width: 100%; +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; } .result-highlight { - font-weight: bold; + font-weight:bold; } .ui-autocomplete .result-item { - font-size: inherit; + font-size: inherit; } #search-input { - background-image: url('resources/glass.png'); - background-size: 13px; - background-repeat: no-repeat; - background-position: 2px 3px; - padding-left: 20px; - position: relative; - right: -18px; - width: 400px; + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; + width:400px; } #reset-button { - background-color: rgb(255, 255, 255); - background-image: url('resources/x.png'); - background-position: center; - background-repeat: no-repeat; - background-size: 12px; - border: 0 none; - width: 16px; - height: 16px; - position: relative; - left: -4px; - top: -4px; - font-size: 0px; + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:16px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; } .watermark { - color: #545454; + color:#545454; } .search-tag-desc-result { - font-style: italic; - font-size: 11px; + font-style:italic; + font-size:11px; } .search-tag-holder-result { - font-style: italic; - font-size: 12px; + font-style:italic; + font-size:12px; } .search-tag-result:target { - background-color: yellow; + background-color:yellow; } .module-graph span { - display: none; - position: absolute; + display:none; + position:absolute; } .module-graph:hover span { - display: block; - margin: -100px 0 0 100px; - z-index: 1; + display:block; + margin: -100px 0 0 100px; + z-index: 1; } .inherited-list { - margin: 10px 0 10px 0; + margin: 10px 0 10px 0; } section.class-description { - line-height: 1.4; -} -.summary section[class$='-summary'], -.details section[class$='-details'], -.class-uses .detail, -.serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, -section[class$='-details'] .detail { - padding: 0 0 5px 8px; - background-color: #ffffff; - border: none; + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; } .vertical-separator { - padding: 0 5px; + padding: 0 5px; } ul.help-section-list { - margin: 0; + margin: 0; } ul.help-subtoc > li { display: inline-block; @@ -761,34 +700,32 @@ ul.help-subtoc > li { font-size: smaller; } ul.help-subtoc > li::before { - content: '\2022'; - padding-right: 2px; + content: "\2022" ; + padding-right:2px; } span.help-note { - font-style: italic; + font-style: italic; } /* * Indicator icon for external links. */ -main a[href*="://"]::after -{ - content: ''; - display: inline-block; - background-image: url('data:image/svg+xml; utf8, \ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ \ \ '); - background-size: 100% 100%; - width: 7px; - height: 7px; - margin-left: 2px; - margin-bottom: 4px; + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; } main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after -{ - background-image: url('data:image/svg+xml; utf8, \ +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ \ \ @@ -817,135 +754,116 @@ main a[href*="://"]:focus::after table.borderless, table.plain, table.striped { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } table.borderless > caption, table.plain > caption, table.striped > caption { - font-weight: bold; - font-size: smaller; + font-weight: bold; + font-size: smaller; } -table.borderless th, -table.borderless td, -table.plain th, -table.plain td, -table.striped th, -table.striped td { - padding: 2px 5px; +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; } table.borderless, -table.borderless > thead > tr > th, -table.borderless > tbody > tr > th, -table.borderless > tr > th, -table.borderless > thead > tr > td, -table.borderless > tbody > tr > td, -table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, -table.borderless > tbody > tr, -table.borderless > tr { - background-color: transparent; +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; } table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, -table.plain > tbody tr, -table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, -table.plain > tbody > tr > th, -table.plain > tr > th, -table.plain > thead > tr > td, -table.plain > tbody > tr > td, -table.plain > tr > td { - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; } table.striped { - border-collapse: collapse; - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; } table.striped > thead { - background-color: #e3e3e3; + background-color: #E3E3E3; } -table.striped > thead > tr > th, -table.striped > thead > tr > td { - border: 1px solid black; +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; } table.striped > tbody > tr:nth-child(even) { - background-color: #eee; + background-color: #EEE } table.striped > tbody > tr:nth-child(odd) { - background-color: #fff; + background-color: #FFF } -table.striped > tbody > tr > th, -table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; } table.striped > tbody > tr > th { - font-weight: normal; + font-weight: normal; } /** * Tweak font sizes and paddings for small screens. */ @media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } + #search-input { + width: 300px; + } } @media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$='-summary'], - .details section[class$='-details'], - .class-uses .detail, - .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } } @media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } } diff --git a/docs/Vision/tag-search-index.js b/docs/Vision/tag-search-index.js index 8f19e1f9..0367dae6 100644 --- a/docs/Vision/tag-search-index.js +++ b/docs/Vision/tag-search-index.js @@ -1,2 +1 @@ -tagSearchIndex = []; -updateSearchResults(); +tagSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/Vision/type-search-index.js b/docs/Vision/type-search-index.js index 7b85e10a..f0bb9b4c 100644 --- a/docs/Vision/type-search-index.js +++ b/docs/Vision/type-search-index.js @@ -1,9 +1 @@ -typeSearchIndex = [ - { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, - { p: 'com.technototes.vision.hardware', l: 'Camera' }, - { p: 'com.technototes.vision.hardware', l: 'InternalCamera' }, - { p: 'com.technototes.vision.subsystem', l: 'PipelineSubsystem' }, - { p: 'com.technototes.vision.hardware', l: 'SwitchableWebcam' }, - { p: 'com.technototes.vision.hardware', l: 'Webcam' }, -]; -updateSearchResults(); +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.technototes.vision.hardware","l":"Camera"},{"p":"com.technototes.vision.hardware","l":"InternalCamera"},{"p":"com.technototes.vision.subsystem","l":"PipelineSubsystem"},{"p":"com.technototes.vision.hardware","l":"SwitchableWebcam"},{"p":"com.technototes.vision.hardware","l":"Webcam"}];updateSearchResults(); \ No newline at end of file From 5d778db7773f91b5e7e02a86c6a804bc6e4be185 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 19 Nov 2023 11:02:34 -0800 Subject: [PATCH 06/47] Updated prettier, formatted stuff --- .../com/technototes/library/logger/Log.java | 1 - .../technototes/library/logger/Logger.java | 15 +- .../library/logger/entry/BooleanEntry.java | 8 +- .../library/logger/entry/NumberEntry.java | 1 - docs/Path/allclasses-index.html | 1248 +- docs/Path/allpackages-index.html | 170 +- docs/Path/help-doc.html | 437 +- docs/Path/index-all.html | 7753 ++++++- docs/Path/index.html | 189 +- docs/Path/jquery-ui.overrides.css | 6 +- docs/Path/member-search-index.js | 1564 +- docs/Path/module-search-index.js | 3 +- docs/Path/overview-summary.html | 48 +- docs/Path/overview-tree.html | 1421 +- docs/Path/package-search-index.js | 11 +- docs/Path/script.js | 156 +- docs/Path/search.js | 608 +- docs/Path/serialized-form.html | 227 +- docs/Path/stylesheet.css | 1092 +- docs/Path/tag-search-index.js | 3 +- docs/Path/type-search-index.js | 89 +- docs/TechnoLib/allclasses-index.html | 1939 +- docs/TechnoLib/allpackages-index.html | 268 +- docs/TechnoLib/constant-values.html | 349 +- docs/TechnoLib/deprecated-list.html | 311 +- docs/TechnoLib/help-doc.html | 451 +- docs/TechnoLib/index-all.html | 17322 +++++++++++++--- docs/TechnoLib/index.html | 308 +- docs/TechnoLib/jquery-ui.overrides.css | 6 +- docs/TechnoLib/member-search-index.js | 2291 +- docs/TechnoLib/module-search-index.js | 3 +- docs/TechnoLib/overview-summary.html | 48 +- docs/TechnoLib/overview-tree.html | 1752 +- docs/TechnoLib/package-search-index.js | 23 +- docs/TechnoLib/script.js | 156 +- docs/TechnoLib/search.js | 608 +- docs/TechnoLib/stylesheet.css | 1092 +- docs/TechnoLib/tag-search-index.js | 3 +- docs/TechnoLib/type-search-index.js | 115 +- docs/Vision/allclasses-index.html | 216 +- docs/Vision/allpackages-index.html | 142 +- docs/Vision/deprecated-list.html | 154 +- docs/Vision/help-doc.html | 438 +- docs/Vision/index-all.html | 1174 +- docs/Vision/index.html | 150 +- docs/Vision/jquery-ui.overrides.css | 6 +- docs/Vision/member-search-index.js | 178 +- docs/Vision/module-search-index.js | 3 +- docs/Vision/overview-summary.html | 48 +- docs/Vision/overview-tree.html | 218 +- docs/Vision/package-search-index.js | 7 +- docs/Vision/script.js | 156 +- docs/Vision/search.js | 608 +- docs/Vision/stylesheet.css | 1092 +- docs/Vision/tag-search-index.js | 3 +- docs/Vision/type-search-index.js | 10 +- package.json | 2 +- 57 files changed, 36391 insertions(+), 10309 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java index 67d61546..d734833d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Log.java @@ -107,6 +107,5 @@ * @return The name as a string */ String name() default ""; - } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index 693fabee..9bfef275 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -181,21 +181,10 @@ private void set(Annotation[] a, Supplier m) { Entry e = null; for (Annotation as : a) { if (as instanceof Log.Number) { - e = - new NumberEntry( - ((Log.Number) as).name(), - (Supplier) m, - ((Log.Number) as).index() - ); + e = new NumberEntry(((Log.Number) as).name(), (Supplier) m, ((Log.Number) as).index()); e.setPriority(((Log.Number) as).priority()); } else if (as instanceof Log) { - e = - new StringEntry( - ((Log) as).name(), - (Supplier) m, - ((Log) as).index(), - ((Log) as).format() - ); + e = new StringEntry(((Log) as).name(), (Supplier) m, ((Log) as).index(), ((Log) as).format()); e.setPriority(((Log) as).priority()); } else if (as instanceof Log.Boolean) { e = diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java index e6521b76..4a221789 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/BooleanEntry.java @@ -7,13 +7,7 @@ public class BooleanEntry extends Entry { private String trueEntry, falseEntry; - public BooleanEntry( - String n, - Supplier s, - int index, - String wt, - String wf - ) { + public BooleanEntry(String n, Supplier s, int index, String wt, String wf) { super(n, s, index); trueEntry = wt; falseEntry = wf; diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java index 72b01293..b08f1f1f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/entry/NumberEntry.java @@ -11,7 +11,6 @@ public NumberEntry(String n, Supplier s, int x) { super(n, s, x); } - @Override public String toString() { return numberColor.format(get()); diff --git a/docs/Path/allclasses-index.html b/docs/Path/allclasses-index.html index 3a2573d4..6a44fed8 100644 --- a/docs/Path/allclasses-index.html +++ b/docs/Path/allclasses-index.html @@ -1,257 +1,995 @@ - + - - -All Classes and Interfaces (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    -
    IMU axes signs in the order XYZ (after remapping).
    -
    - -
    -
    Various utility functions for the BNO055 IMU.
    -
    - -
     
    - -
     
    - -
     
    - -
    -
    Set of helper functions for drawing Road Runner paths and trajectories on dashboard canvases.
    -
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
    -
    Utility functions for log files.
    -
    - -
    -
    Collection of utilites for interacting with Lynx modules.
    -
    - -
    -
    Parsed representation of a Lynx module firmware version.
    -
    - -
    -
    Exception indicating an outdated Lynx firmware version.
    -
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
    -
    Various regression utilities.
    -
    - -
    -
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    -
    - -
    -
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    -
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    -
    -
    -
    -
    -
    -
    - + + + All Classes and Interfaces (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes and Interfaces

    +
    +
    +
    + +
    +
    +
    +
    Class
    +
    Description
    +
    + AxesSigns +
    +
    +
    IMU axes signs in the order XYZ (after remapping).
    +
    + +
    +
    Various utility functions for the BNO055 IMU.
    +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +
    + Set of helper functions for drawing Road Runner paths and trajectories on + dashboard canvases. +
    +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +
    Utility functions for log files.
    +
    + +
    +
    Collection of utilites for interacting with Lynx modules.
    +
    + +
    +
    Parsed representation of a Lynx module firmware version.
    +
    + +
    +
    Exception indicating an outdated Lynx firmware version.
    +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +
    Various regression utilities.
    +
    + +
    +
    + Feedforward parameter estimates from the ramp regression and additional summary + statistics +
    +
    + +
    +
    + Feedforward parameter estimates from the ramp regression and additional summary + statistics +
    +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    + +
    +   +
    +
    +
    +
    +
    +
    +
    + diff --git a/docs/Path/allpackages-index.html b/docs/Path/allpackages-index.html index 387f5c74..18ff0e7a 100644 --- a/docs/Path/allpackages-index.html +++ b/docs/Path/allpackages-index.html @@ -1,73 +1,101 @@ - + - - -All Packages (Path API) - - - - - - - - - - - - - - -
    - - -
    - + + + All Packages (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Packages

    +
    +
    Package Summary
    + +
    +
    +
    + diff --git a/docs/Path/help-doc.html b/docs/Path/help-doc.html index a2e7a2eb..5d7423c3 100644 --- a/docs/Path/help-doc.html +++ b/docs/Path/help-doc.html @@ -1,180 +1,261 @@ - + - - -API Help (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    -Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    -The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    -
    -
    -

    Package

    -

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    -

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    -
    -
    -

    Other Files

    -

    Packages and modules may contain pages with additional information related to the declarations nearby.

    -
    -
    -

    Tree (Class Hierarchy)

    -

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    -
      -
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • -
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • -
    -
    -
    -

    Serialized Form

    -

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

    -
    -
    -

    All Packages

    -

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    -
    -
    -

    All Classes and Interfaces

    -

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    -
    -
    -

    Index

    -

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    -
    -
    -
    -This help file applies to API documentation generated by the standard doclet.
    -
    -
    - + + + API Help (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    + Starting from the Overview page, you can browse the + documentation using the links in each page, and in the navigation bar at the top of each + page. The Index and Search box allow you to navigate to + specific declarations and summary pages, including: + All Packages, + All Classes and Interfaces + +
    +
    +
    +

    Kinds of Pages

    + The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    +

    + The Overview page is the front page of this API document + and provides a list of all packages with a summary for each. This page can also + contain an overall description of the set of packages. +

    +
    +
    +

    Package

    +

    + Each package has a page that contains a list of its classes and interfaces, with a + summary for each. These pages may contain the following categories: +

    +
      +
    • Interfaces
    • +
    • Classes
    • +
    • Enum Classes
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Interfaces
    • +
    +
    +
    +

    Class or Interface

    +

    + Each class, interface, nested class and nested interface has its own separate page. + Each of these pages has three sections consisting of a declaration and description, + member summary tables, and detailed member descriptions. Entries in each of these + sections are omitted if they are empty or not applicable. +

    +
      +
    • Class Inheritance Diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class or Interface Declaration
    • +
    • Class or Interface Description
    • +
    +
    +
      +
    • Nested Class Summary
    • +
    • Enum Constant Summary
    • +
    • Field Summary
    • +
    • Property Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    + Note: Annotation interfaces have required and + optional elements, but not methods. Only enum classes have enum constants. The + components of a record class are displayed as part of the declaration of the record + class. Properties are a feature of JavaFX. +

    +

    + The summary entries are alphabetical, while the detailed descriptions are in the + order they appear in the source code. This preserves the logical groupings + established by the programmer. +

    +
    +
    +

    Other Files

    +

    + Packages and modules may contain pages with additional information related to the + declarations nearby. +

    +
    +
    +

    Tree (Class Hierarchy)

    +

    + There is a Class Hierarchy page for all packages, + plus a hierarchy for each package. Each hierarchy page contains a list of classes + and a list of interfaces. Classes are organized by inheritance structure starting + with java.lang.Object. Interfaces do not inherit from + java.lang.Object. +

    +
      +
    • + When viewing the Overview page, clicking on TREE displays the hierarchy for all + packages. +
    • +
    • + When viewing a particular package, class or interface page, clicking on TREE + displays the hierarchy for only that package. +
    • +
    +
    +
    +

    Serialized Form

    +

    + Each serializable or externalizable class has a description of its serialization + fields and methods. This information is of interest to those who implement rather + than use the API. While there is no link in the navigation bar, you can get to this + information by going to any serialized class and clicking "Serialized Form" in the + "See Also" section of the class description. +

    +
    +
    +

    All Packages

    +

    + The All Packages page contains an alphabetic + index of all packages contained in the documentation. +

    +
    +
    +

    All Classes and Interfaces

    +

    + The All Classes and Interfaces page contains an + alphabetic index of all classes and interfaces contained in the documentation, + including annotation interfaces, enum classes, and record classes. +

    +
    +
    +

    Index

    +

    + The Index contains an alphabetic index of all classes, + interfaces, constructors, methods, and fields in the documentation, as well as + summary pages such as All Packages, + All Classes and Interfaces. +

    +
    +
    +
    + This help file applies to API documentation generated by the standard doclet. +
    +
    +
    + diff --git a/docs/Path/index-all.html b/docs/Path/index-all.html index d31da351..d3ff9630 100644 --- a/docs/Path/index-all.html +++ b/docs/Path/index-all.html @@ -1,1155 +1,6602 @@ - + - - -Index (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form -

    A

    -
    -
    AccelResult(double, double) - Constructor for class com.technototes.path.util.RegressionUtil.AccelResult
    -
     
    -
    addDisplacementMarker(double, double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addDisplacementMarker(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addDisplacementMarker(DisplacementProducer, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addDisplacementMarker(MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addSpatialMarker(Vector2d, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addTemporalMarker(double, double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addTemporalMarker(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addTemporalMarker(MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addTemporalMarker(TimeProducer, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    addTrajectory(Trajectory) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    AxesSigns - Enum Class in com.technototes.path.util
    -
    -
    IMU axes signs in the order XYZ (after remapping).
    -
    -
    AXIAL_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    -

    B

    -
    -
    back(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    batteryVoltageSensor - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    BNO055IMUUtil - Class in com.technototes.path.util
    -
    -
    Various utility functions for the BNO055 IMU.
    -
    -
    BNO055IMUUtil() - Constructor for class com.technototes.path.util.BNO055IMUUtil
    -
     
    -
    build() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    bVal - Variable in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    -

    C

    -
    -
    COLOR_ACTIVE_TRAJECTORY - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    COLOR_ACTIVE_TURN - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    COLOR_ACTIVE_WAIT - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    COLOR_INACTIVE_TRAJECTORY - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    COLOR_INACTIVE_TURN - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    COLOR_INACTIVE_WAIT - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    com.technototes.path.command - package com.technototes.path.command
    -
     
    -
    com.technototes.path.geometry - package com.technototes.path.geometry
    -
     
    -
    com.technototes.path.subsystem - package com.technototes.path.subsystem
    -
     
    -
    com.technototes.path.trajectorysequence - package com.technototes.path.trajectorysequence
    -
     
    -
    com.technototes.path.trajectorysequence.sequencesegment - package com.technototes.path.trajectorysequence.sequencesegment
    -
     
    -
    com.technototes.path.util - package com.technototes.path.util
    -
     
    -
    compareTo(LynxModuleUtil.LynxFirmwareVersion) - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    ConfigurablePose - Class in com.technototes.path.geometry
    -
     
    -
    ConfigurablePose() - Constructor for class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    ConfigurablePose(double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    ConfigurablePose(double, double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    ConfigurablePose(Pose2d) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    ConfigurablePose(Vector2d) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    ConfigurablePose(Vector2d, double) - Constructor for class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    ConfigurablePoseD - Class in com.technototes.path.geometry
    -
     
    -
    ConfigurablePoseD() - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    ConfigurablePoseD(double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    ConfigurablePoseD(double, double, double) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    ConfigurablePoseD(Pose2d) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    ConfigurablePoseD(Vector2d) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    ConfigurablePoseD(Vector2d, double) - Constructor for class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    ConfigurableVector - Class in com.technototes.path.geometry
    -
     
    -
    ConfigurableVector() - Constructor for class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    ConfigurableVector(double, double) - Constructor for class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    ConfigurableVector(Vector2d) - Constructor for class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    CROSS_TRACK_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    -

    D

    -
    -
    DashboardUtil - Class in com.technototes.path.util
    -
    -
    Set of helper functions for drawing Road Runner paths and trajectories on dashboard canvases.
    -
    -
    DashboardUtil() - Constructor for class com.technototes.path.util.DashboardUtil
    -
     
    -
    DeadWheelConstants - Interface in com.technototes.path.subsystem
    -
     
    -
    DeadWheelConstants.EncoderOverflow - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    DeadWheelConstants.ForwardOffset - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    DeadWheelConstants.GearRatio - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    DeadWheelConstants.LateralDistance - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    DeadWheelConstants.TicksPerRev - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    DeadWheelConstants.WheelRadius - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    DistanceSensorLocalizer - Class in com.technototes.path.subsystem
    -
     
    -
    DistanceSensorLocalizer(IGyro, Map<IDistanceSensor, Pose2d>) - Constructor for class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    DO_DASH - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    drawPoseHistory(Canvas, List<Pose2d>) - Static method in class com.technototes.path.util.DashboardUtil
    -
     
    -
    drawRobot(Canvas, Pose2d) - Static method in class com.technototes.path.util.DashboardUtil
    -
     
    -
    drawSampledPath(Canvas, Path) - Static method in class com.technototes.path.util.DashboardUtil
    -
     
    -
    drawSampledPath(Canvas, Path, double) - Static method in class com.technototes.path.util.DashboardUtil
    -
     
    -
    duration() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    -
     
    -
    -

    E

    -
    -
    EmptySequenceException - Exception in com.technototes.path.trajectorysequence
    -
     
    -
    EmptySequenceException() - Constructor for exception com.technototes.path.trajectorysequence.EmptySequenceException
    -
     
    -
    encoderOverflow - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    encoderTicksToInches(double) - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    encoderTicksToInches(double, double, double, double) - Static method in interface com.technototes.path.subsystem.DeadWheelConstants
    -
     
    -
    encoderTicksToInches(double, double, double, double) - Static method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    encoderTicksToInches(double, double, double, double) - Static method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    end() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    -
     
    -
    end(boolean) - Method in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    end(boolean) - Method in class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    end(boolean) - Method in class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    eng - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    ensureMinimumFirmwareVersion(HardwareMap) - Static method in class com.technototes.path.util.LynxModuleUtil
    -
    -
    Ensure all of the Lynx modules attached to the robot satisfy the minimum requirement.
    -
    -
    equals(Object) - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    execute() - Method in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    execute() - Method in class com.technototes.path.command.ResetGyroCommand
    -
     
    -
    execute() - Method in class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    execute() - Method in class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    -

    F

    -
    -
    fitAccelData(List<Double>, List<Double>, List<Double>, RegressionUtil.RampResult, File) - Static method in class com.technototes.path.util.RegressionUtil
    -
    -
    Run regression to compute acceleration feedforward.
    -
    -
    fitRampData(List<Double>, List<Double>, List<Double>, boolean, File) - Static method in class com.technototes.path.util.RegressionUtil
    -
    -
    Run regression to compute velocity and static feedforward from ramp test data.
    -
    -
    FOLLOW_TRAJECTORY - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    -
     
    -
    followTrajectory(Trajectory) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    followTrajectory(Trajectory) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    followTrajectoryAsync(Trajectory) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    followTrajectoryAsync(Trajectory) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    followTrajectorySequence(TrajectorySequence) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    followTrajectorySequence(TrajectorySequence) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    followTrajectorySequenceAsync(TrajectorySequence) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    followTrajectorySequenceAsync(TrajectorySequence) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    followTrajectorySequenceAsync(TrajectorySequence) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    forward(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    forwardOffset - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    frontEncoder - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    -

    G

    -
    -
    GEAR_RATIO - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    GEAR_RATIO - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    gearRatio - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    get(int) - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    -
     
    -
    getAccelerationConstraint(double) - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getAccelerationConstraint(double) - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getBoolean(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.DeadWheelConstants
    -
     
    -
    getBoolean(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getBoolean(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getConstant() - Method in interface com.technototes.path.subsystem.DeadWheelConstants
    -
     
    -
    getConstant() - Method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getConstant() - Method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getDouble(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.DeadWheelConstants
    -
     
    -
    getDouble(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getDouble(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getDuration() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    -
     
    -
    getEndPose() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    -
     
    -
    getExternalHeadingVelocity() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getExternalHeadingVelocity() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getFirmwareVersion(LynxModule) - Static method in class com.technototes.path.util.LynxModuleUtil
    -
    -
    Retrieve and parse Lynx module firmware version.
    -
    -
    getGearRatio() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    getHeading() - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    getHeading() - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    getHeading() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    getInt(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getInt(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getLastError() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getLastError() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getLastPoseError() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    getLogFile(String) - Static method in class com.technototes.path.util.LoggingUtil
    -
    -
    Obtain a log file with the provided name
    -
    -
    getMarkers() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    -
     
    -
    getMotionProfile() - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    -
     
    -
    getMotorVelocityF(double) - Static method in interface com.technototes.path.subsystem.DeadWheelConstants
    -
     
    -
    getMotorVelocityF(double) - Static method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getMotorVelocityF(double) - Static method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getPID(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getPID(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getPIDF(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    getPIDF(Class<? extends Annotation>) - Method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    getPoseEstimate() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    getPoseVelocity() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    getRadians() - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    getRawExternalHeading() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getRawExternalHeading() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getStartPose() - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    -
     
    -
    getTicksPerRev() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    getTotalRotation() - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    -
     
    -
    getTrajectory() - Method in class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment
    -
     
    -
    getVelocityConstraint(double, double, double) - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getVelocityConstraint(double, double, double) - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getWheelPositions() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getWheelPositions() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getWheelPositions() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    getWheelRadius() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    getWheelVelocities() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    getWheelVelocities() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    getWheelVelocities() - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    getX() - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    getY() - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    gyroOffset - Variable in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    -

    H

    -
    -
    heading - Variable in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    heading - Variable in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    HEADING_PID - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    HEADING_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    -

    I

    -
    -
    IDLE - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    -
     
    -
    imu - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    initialize() - Method in class com.technototes.path.command.RegenerativeTrajectoryCommand
    -
     
    -
    initialize() - Method in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
     
    -
    initialize() - Method in class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    initialize() - Method in class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    isBusy() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    isBusy() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    isBusy() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    isFinished() - Method in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    isFinished() - Method in class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    isFinished() - Method in class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    -

    K

    -
    -
    kA - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    kA - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    kA - Variable in class com.technototes.path.util.RegressionUtil.AccelResult
    -
     
    -
    kStatic - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    kStatic - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    kStatic - Variable in class com.technototes.path.util.RegressionUtil.RampResult
    -
     
    -
    kV - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    kV - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    kV - Variable in class com.technototes.path.util.RegressionUtil.RampResult
    -
     
    -
    -

    L

    -
    -
    LATERAL_MULTIPLIER - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    LATERAL_MULTIPLIER - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    lateralDistance - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    leftEncoder - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    leftFront - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    leftRear - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    lineTo(Vector2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineToConstantHeading(Vector2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineToLinearHeading(Pose2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineToSplineHeading(Pose2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    LoggingUtil - Class in com.technototes.path.util
    -
    -
    Utility functions for log files.
    -
    -
    LoggingUtil() - Constructor for class com.technototes.path.util.LoggingUtil
    -
     
    -
    LynxFirmwareVersion(int, int, int) - Constructor for class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    LynxFirmwareVersionException(String) - Constructor for exception com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersionException
    -
     
    -
    LynxModuleUtil - Class in com.technototes.path.util
    -
    -
    Collection of utilites for interacting with Lynx modules.
    -
    -
    LynxModuleUtil() - Constructor for class com.technototes.path.util.LynxModuleUtil
    -
     
    -
    LynxModuleUtil.LynxFirmwareVersion - Class in com.technototes.path.util
    -
    -
    Parsed representation of a Lynx module firmware version.
    -
    -
    LynxModuleUtil.LynxFirmwareVersionException - Exception in com.technototes.path.util
    -
    -
    Exception indicating an outdated Lynx firmware version.
    -
    -
    -

    M

    -
    -
    major - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    mapPose(Function<Pose2d, T>) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mapPose(Function<Pose2d, T>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mapVec(Function<Vector2d, T>) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    mapX(Function<Double, T>) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    mapY(Function<Double, T>) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    MAX_ACCEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    MAX_ACCEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    MAX_ANG_ACCEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    MAX_ANG_ACCEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    MAX_ANG_VEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    MAX_ANG_VEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    MAX_RPM - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    MAX_RPM - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    MAX_VEL - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    MAX_VEL - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    MecanumConstants - Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.GearRatio - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.HeadPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.KA - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.KStatic - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.KV - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.LateralMult - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.MaxAccel - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.MaxAngleAccel - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.MaxAngleVelo - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.MaxRPM - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.MaxVelo - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.MotorVeloPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.OmegaWeight - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.PoseLimit - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.TicksPerRev - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.TrackWidth - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.TransPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.UseDriveEncoder - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.VXWeight - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.VYWeight - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.WheelBase - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumConstants.WheelRadius - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    MecanumDriveCommand - Class in com.technototes.path.command
    -
     
    -
    MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier) - Constructor for class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    minor - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    mirrorOverX(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mirrorOverX(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mirrorOverY(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mirrorOverY(Pose2d) - Static method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    MOTOR_VELO_PID - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    MOTOR_VELO_PID - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    motors - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    mutateHeading(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mutateHeading(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mutatePose(UnaryOperator<Pose2d>) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mutatePose(UnaryOperator<Pose2d>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mutateVec(UnaryOperator<Vector2d>) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mutateVec(UnaryOperator<Vector2d>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mutateVec(UnaryOperator<Vector2d>) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    mutateX(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mutateX(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mutateX(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    mutateY(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    mutateY(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    mutateY(UnaryOperator<Double>) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    -

    N

    -
    -
    NNN - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    NNP - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    NPN - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    NPP - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    -

    O

    -
    -
    OMEGA_WEIGHT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    OMEGA_WEIGHT - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    -

    P

    -
    -
    PathingMecanumDrivebaseSubsystem - Class in com.technototes.path.subsystem
    -
     
    -
    PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, IMU, MecanumConstants) - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, IMU, MecanumConstants, Localizer) - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    PathingMecanumDrivebaseSubsystem.Mode - Enum Class in com.technototes.path.subsystem
    -
     
    -
    PNN - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    PNP - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    POSE_HISTORY_LIMIT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    POSE_HISTORY_LIMIT - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    POSE_HISTORY_LIMIT - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    PPN - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    PPP - Enum constant in enum class com.technototes.path.util.AxesSigns
    -
     
    -
    -

    R

    -
    -
    r - Variable in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    RampResult(double, double, double) - Constructor for class com.technototes.path.util.RegressionUtil.RampResult
    -
     
    -
    RegenerativeTrajectoryCommand - Class in com.technototes.path.command
    -
     
    -
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    -
     
    -
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    -
     
    -
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    -
     
    -
    RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand
    -
     
    -
    RegenerativeTrajectorySequenceCommand - Class in com.technototes.path.command
    -
     
    -
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
     
    -
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectorySequenceBuilder>, TrajectorySequence>) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
     
    -
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
     
    -
    RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier<TrajectorySequence>) - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
     
    -
    RegressionUtil - Class in com.technototes.path.util
    -
    -
    Various regression utilities.
    -
    -
    RegressionUtil() - Constructor for class com.technototes.path.util.RegressionUtil
    -
     
    -
    RegressionUtil.AccelResult - Class in com.technototes.path.util
    -
    -
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    -
    -
    RegressionUtil.RampResult - Class in com.technototes.path.util
    -
    -
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    -
    -
    remapAxes(BNO055IMU, AxesOrder, AxesSigns) - Static method in class com.technototes.path.util.BNO055IMUUtil
    -
    -
    Remap BNO055 IMU axes and signs.
    -
    -
    resetAccelConstraint() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    resetConstraints() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    ResetGyroCommand - Class in com.technototes.path.command
    -
     
    -
    ResetGyroCommand(PathingMecanumDrivebaseSubsystem) - Constructor for class com.technototes.path.command.ResetGyroCommand
    -
     
    -
    resetTurnConstraint() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    resetVelConstraint() - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    rightEncoder - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    rightFront - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    rightRear - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    ROAD_RUNNER_FOLDER - Static variable in class com.technototes.path.util.LoggingUtil
    -
     
    -
    rpmToVelocity(double, double, double) - Static method in interface com.technototes.path.subsystem.DeadWheelConstants
    -
     
    -
    rpmToVelocity(double, double, double) - Static method in interface com.technototes.path.subsystem.MecanumConstants
    -
     
    -
    rpmToVelocity(double, double, double) - Static method in interface com.technototes.path.subsystem.TankConstants
    -
     
    -
    rSquare - Variable in class com.technototes.path.util.RegressionUtil.AccelResult
    -
     
    -
    rSquare - Variable in class com.technototes.path.util.RegressionUtil.RampResult
    -
     
    -
    RUN_USING_ENCODER - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    RUN_USING_ENCODER - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    -

    S

    -
    -
    SequenceSegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    -
     
    -
    SequenceSegment(double, Pose2d, Pose2d, List<TrajectoryMarker>) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    -
     
    -
    set(double, double) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    set(double, double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    set(double, double) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    set(double, double, double) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    set(double, double, double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    set(Pose2d) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    set(Pose2d) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    set(Vector2d) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    set(Vector2d) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    set(Vector2d) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    set(Vector2d, double) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    set(Vector2d, double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    setAccelConstraint(TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    setGyroOffset(double) - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    setHeading(double) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    setHeading(double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    setMode(DcMotor.RunMode) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    setMode(DcMotor.RunMode) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    setMotorPowers(double, double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    setMotorPowers(double, double, double, double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    setPoseEstimate(Pose2d) - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    setReversed(boolean) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    setTangent(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    setTurnConstraint(double, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    setVelConstraint(TrajectoryVelocityConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    setWeightedDrivePower(Pose2d) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    setWeightedDrivePower(Pose2d) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    setX(double) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    setX(double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    setX(double) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    setY(double) - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    setY(double) - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    setY(double) - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    size() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    -
     
    -
    speed - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    splineTo(Vector2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineToConstantHeading(Vector2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineToLinearHeading(Pose2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineToSplineHeading(Pose2d, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    start() - Method in class com.technototes.path.trajectorysequence.TrajectorySequence
    -
     
    -
    stop() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    strafeLeft(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    strafeRight(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    strafeTo(Vector2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    subsystem - Variable in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    subsystem - Variable in class com.technototes.path.command.ResetGyroCommand
    -
     
    -
    subsystem - Variable in class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    subsystem - Variable in class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    -

    T

    -
    -
    TankConstants - Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.AxialPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.CrossPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.GearRatio - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.HeadPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.KA - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.KStatic - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.KV - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.LateralMult - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.MaxAccel - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.MaxAngleAccel - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.MaxAngleVelo - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.MaxRPM - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.MaxVelo - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.MotorVeloPID - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.OmegaWeight - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.PoseLimit - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.TicksPerRev - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.TrackWidth - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.UseDriveEncoder - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.VXWeight - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankConstants.WheelRadius - Annotation Interface in com.technototes.path.subsystem
    -
     
    -
    TankDrivebaseSubsystem - Class in com.technototes.path.subsystem
    -
     
    -
    TankDrivebaseSubsystem(EncodedMotorGroup<DcMotorEx>, EncodedMotorGroup<DcMotorEx>, IMU, TankConstants, Localizer) - Constructor for class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    ThreeDeadWheelLocalizer - Class in com.technototes.path.subsystem
    -
     
    -
    ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants) - Constructor for class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    TICKS_PER_REV - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    TICKS_PER_REV - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    ticksPerRev - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    toPose() - Method in class com.technototes.path.geometry.ConfigurablePose
    -
     
    -
    toPose() - Method in class com.technototes.path.geometry.ConfigurablePoseD
    -
     
    -
    toString() - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
     
    -
    toVec() - Method in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    TRACK_WIDTH - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    TRACK_WIDTH - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    trajectory - Variable in class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    trajectory - Variable in class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    trajectoryBuilder(Pose2d) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    trajectoryBuilder(Pose2d) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    trajectoryBuilder(Pose2d, boolean) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    trajectoryBuilder(Pose2d, boolean) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    trajectoryBuilder(Pose2d, double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    trajectoryBuilder(Pose2d, double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    TrajectoryCommand - Class in com.technototes.path.command
    -
     
    -
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory) - Constructor for class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - Constructor for class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) - Constructor for class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, T) - Constructor for class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) - Constructor for class com.technototes.path.command.TrajectoryCommand
    -
     
    -
    TrajectorySegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    -
     
    -
    TrajectorySegment(Trajectory) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment
    -
     
    -
    TrajectorySequence - Class in com.technototes.path.trajectorysequence
    -
     
    -
    TrajectorySequence(List<SequenceSegment>) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequence
    -
     
    -
    trajectorySequenceBuilder() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    trajectorySequenceBuilder(Pose2d) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    trajectorySequenceBuilder(Pose2d) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    TrajectorySequenceBuilder - Class in com.technototes.path.trajectorysequence
    -
     
    -
    TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    TrajectorySequenceCommand - Class in com.technototes.path.command
    -
     
    -
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, TrajectorySequenceBuilder>, TrajectorySequence>) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, TrajectorySequence>, T) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier<TrajectorySequence>) - Constructor for class com.technototes.path.command.TrajectorySequenceCommand
    -
     
    -
    TrajectorySequenceRunner - Class in com.technototes.path.trajectorysequence
    -
     
    -
    TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients) - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    trajFunc - Variable in class com.technototes.path.command.RegenerativeTrajectoryCommand
    -
     
    -
    trajFunc - Variable in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
     
    -
    TRANSLATIONAL_PID - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    turn(double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    turn(double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    turn(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    turn(double, double, double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    TURN - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    -
     
    -
    turnAsync(double) - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    turnAsync(double) - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    TurnSegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    -
     
    -
    TurnSegment(Pose2d, double, MotionProfile, List<TrajectoryMarker>) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    -
     
    -
    -

    U

    -
    -
    UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    update() - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    update() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    update() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    update(Pose2d) - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer
    -
     
    -
    update(Pose2d, Pose2d) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
     
    -
    -

    V

    -
    -
    valueOf(String) - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.path.util.AxesSigns
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    values() - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.path.util.AxesSigns
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    VX_WEIGHT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    VX_WEIGHT - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    VY_WEIGHT - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    -

    W

    -
    -
    waitForIdle() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    waitForIdle() - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    waitSeconds(double) - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
     
    -
    WaitSegment - Class in com.technototes.path.trajectorysequence.sequencesegment
    -
     
    -
    WaitSegment(Pose2d, double, List<TrajectoryMarker>) - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.WaitSegment
    -
     
    -
    WHEEL_BASE - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    WHEEL_RADIUS - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    WHEEL_RADIUS - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
     
    -
    wheelRadius - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
     
    -
    -

    X

    -
    -
    x - Variable in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    x - Variable in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    -

    Y

    -
    -
    y - Variable in class com.technototes.path.command.MecanumDriveCommand
    -
     
    -
    y - Variable in class com.technototes.path.geometry.ConfigurableVector
    -
     
    -
    -

    Z

    -
    -
    zeroExternalHeading() - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
     
    -
    -A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form
    -
    -
    - + + + Index (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    + A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form +

    A

    +
    +
    + AccelResult(double, double) + - Constructor for class com.technototes.path.util.RegressionUtil.AccelResult +
    +
     
    +
    + addDisplacementMarker(double, double, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addDisplacementMarker(double, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addDisplacementMarker(DisplacementProducer, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addDisplacementMarker(MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addSpatialMarker(Vector2d, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addTemporalMarker(double, double, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addTemporalMarker(double, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addTemporalMarker(MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addTemporalMarker(TimeProducer, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + addTrajectory(Trajectory) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + AxesSigns + - Enum Class in + com.technototes.path.util +
    +
    +
    IMU axes signs in the order XYZ (after remapping).
    +
    +
    + AXIAL_PID + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    +

    B

    +
    +
    + back(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + batteryVoltageSensor + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + BNO055IMUUtil + - Class in + com.technototes.path.util +
    +
    +
    Various utility functions for the BNO055 IMU.
    +
    +
    + BNO055IMUUtil() + - Constructor for class com.technototes.path.util.BNO055IMUUtil +
    +
     
    +
    + build() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + bVal + - Variable in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    +

    C

    +
    +
    + COLOR_ACTIVE_TRAJECTORY + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + COLOR_ACTIVE_TURN + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + COLOR_ACTIVE_WAIT + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + COLOR_INACTIVE_TRAJECTORY + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + COLOR_INACTIVE_TURN + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + COLOR_INACTIVE_WAIT + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + com.technototes.path.command + - package com.technototes.path.command +
    +
     
    +
    + com.technototes.path.geometry + - package com.technototes.path.geometry +
    +
     
    +
    + com.technototes.path.subsystem + - package com.technototes.path.subsystem +
    +
     
    +
    + com.technototes.path.trajectorysequence + - package com.technototes.path.trajectorysequence +
    +
     
    +
    + com.technototes.path.trajectorysequence.sequencesegment + - package com.technototes.path.trajectorysequence.sequencesegment +
    +
     
    +
    + com.technototes.path.util + - package com.technototes.path.util +
    +
     
    +
    + compareTo(LynxModuleUtil.LynxFirmwareVersion) + - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + ConfigurablePose + - Class in + com.technototes.path.geometry +
    +
     
    +
    + ConfigurablePose() + - Constructor for class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + ConfigurablePose(double, double) + - Constructor for class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + ConfigurablePose(double, double, double) + - Constructor for class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + ConfigurablePose(Pose2d) + - Constructor for class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + ConfigurablePose(Vector2d) + - Constructor for class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + ConfigurablePose(Vector2d, double) + - Constructor for class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + ConfigurablePoseD + - Class in + com.technototes.path.geometry +
    +
     
    +
    + ConfigurablePoseD() + - Constructor for class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + ConfigurablePoseD(double, double) + - Constructor for class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + ConfigurablePoseD(double, double, double) + - Constructor for class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + ConfigurablePoseD(Pose2d) + - Constructor for class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + ConfigurablePoseD(Vector2d) + - Constructor for class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + ConfigurablePoseD(Vector2d, double) + - Constructor for class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + ConfigurableVector + - Class in + com.technototes.path.geometry +
    +
     
    +
    + ConfigurableVector() + - Constructor for class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + ConfigurableVector(double, double) + - Constructor for class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + ConfigurableVector(Vector2d) + - Constructor for class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + CROSS_TRACK_PID + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    +

    D

    +
    +
    + DashboardUtil + - Class in + com.technototes.path.util +
    +
    +
    + Set of helper functions for drawing Road Runner paths and trajectories on dashboard + canvases. +
    +
    +
    + DashboardUtil() + - Constructor for class com.technototes.path.util.DashboardUtil +
    +
     
    +
    + DeadWheelConstants + - Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DeadWheelConstants.EncoderOverflow + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DeadWheelConstants.ForwardOffset + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DeadWheelConstants.GearRatio + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DeadWheelConstants.LateralDistance + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DeadWheelConstants.TicksPerRev + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DeadWheelConstants.WheelRadius + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + DistanceSensorLocalizer + - Class in + com.technototes.path.subsystem +
    +
     
    +
    + DistanceSensorLocalizer(IGyro, Map<IDistanceSensor, Pose2d>) + - Constructor for class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + DO_DASH + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + drawPoseHistory(Canvas, List<Pose2d>) + - Static method in class com.technototes.path.util.DashboardUtil +
    +
     
    +
    + drawRobot(Canvas, Pose2d) + - Static method in class com.technototes.path.util.DashboardUtil +
    +
     
    +
    + drawSampledPath(Canvas, Path) + - Static method in class com.technototes.path.util.DashboardUtil +
    +
     
    +
    + drawSampledPath(Canvas, Path, double) + - Static method in class com.technototes.path.util.DashboardUtil +
    +
     
    +
    + duration() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequence +
    +
     
    +
    +

    E

    +
    +
    + EmptySequenceException + - Exception in + com.technototes.path.trajectorysequence +
    +
     
    +
    + EmptySequenceException() + - Constructor for exception com.technototes.path.trajectorysequence.EmptySequenceException +
    +
     
    +
    + encoderOverflow + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + encoderTicksToInches(double) + - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + encoderTicksToInches(double, double, double, double) + - Static method in interface com.technototes.path.subsystem.DeadWheelConstants +
    +
     
    +
    + encoderTicksToInches(double, double, double, double) + - Static method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + encoderTicksToInches(double, double, double, double) + - Static method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + end() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequence +
    +
     
    +
    + end(boolean) + - Method in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + end(boolean) + - Method in class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + end(boolean) + - Method in class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + eng + - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + ensureMinimumFirmwareVersion(HardwareMap) + - Static method in class com.technototes.path.util.LynxModuleUtil +
    +
    +
    + Ensure all of the Lynx modules attached to the robot satisfy the minimum + requirement. +
    +
    +
    + equals(Object) + - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + execute() + - Method in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + execute() + - Method in class com.technototes.path.command.ResetGyroCommand +
    +
     
    +
    + execute() + - Method in class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + execute() + - Method in class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    +

    F

    +
    +
    + fitAccelData(List<Double>, List<Double>, List<Double>, + RegressionUtil.RampResult, File) + - Static method in class com.technototes.path.util.RegressionUtil +
    +
    +
    Run regression to compute acceleration feedforward.
    +
    +
    + fitRampData(List<Double>, List<Double>, List<Double>, boolean, + File) + - Static method in class com.technototes.path.util.RegressionUtil +
    +
    +
    + Run regression to compute velocity and static feedforward from ramp test data. +
    +
    +
    + FOLLOW_TRAJECTORY + - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode +
    +
     
    +
    + followTrajectory(Trajectory) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + followTrajectory(Trajectory) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + followTrajectoryAsync(Trajectory) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + followTrajectoryAsync(Trajectory) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + followTrajectorySequence(TrajectorySequence) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + followTrajectorySequence(TrajectorySequence) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + followTrajectorySequenceAsync(TrajectorySequence) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + followTrajectorySequenceAsync(TrajectorySequence) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + followTrajectorySequenceAsync(TrajectorySequence) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + forward(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + forwardOffset + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + frontEncoder + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    +

    G

    +
    +
    + GEAR_RATIO + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + GEAR_RATIO + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + gearRatio + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + get(int) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequence +
    +
     
    +
    + getAccelerationConstraint(double) + - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getAccelerationConstraint(double) + - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getBoolean(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.DeadWheelConstants +
    +
     
    +
    + getBoolean(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getBoolean(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getConstant() + - Method in interface com.technototes.path.subsystem.DeadWheelConstants +
    +
     
    +
    + getConstant() + - Method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getConstant() + - Method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getDouble(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.DeadWheelConstants +
    +
     
    +
    + getDouble(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getDouble(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getDuration() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment +
    +
     
    +
    + getEndPose() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment +
    +
     
    +
    + getExternalHeadingVelocity() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getExternalHeadingVelocity() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getFirmwareVersion(LynxModule) + - Static method in class com.technototes.path.util.LynxModuleUtil +
    +
    +
    Retrieve and parse Lynx module firmware version.
    +
    +
    + getGearRatio() + - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + getHeading() + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + getHeading() + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + getHeading() + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + getInt(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getInt(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getLastError() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getLastError() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getLastPoseError() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + getLogFile(String) + - Static method in class com.technototes.path.util.LoggingUtil +
    +
    +
    Obtain a log file with the provided name
    +
    +
    + getMarkers() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment +
    +
     
    +
    + getMotionProfile() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment +
    +
     
    +
    + getMotorVelocityF(double) + - Static method in interface com.technototes.path.subsystem.DeadWheelConstants +
    +
     
    +
    + getMotorVelocityF(double) + - Static method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getMotorVelocityF(double) + - Static method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getPID(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getPID(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getPIDF(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + getPIDF(Class<? extends Annotation>) + - Method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + getPoseEstimate() + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + getPoseVelocity() + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + getRadians() + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + getRawExternalHeading() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getRawExternalHeading() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getStartPose() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment +
    +
     
    +
    + getTicksPerRev() + - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + getTotalRotation() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment +
    +
     
    +
    + getTrajectory() + - Method in class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment +
    +
     
    +
    + getVelocityConstraint(double, double, double) + - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getVelocityConstraint(double, double, double) + - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getWheelPositions() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getWheelPositions() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getWheelPositions() + - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + getWheelRadius() + - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + getWheelVelocities() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + getWheelVelocities() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + getWheelVelocities() + - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + getX() + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + getY() + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + gyroOffset + - Variable in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    +

    H

    +
    +
    + heading + - Variable in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + heading + - Variable in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + HEADING_PID + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + HEADING_PID + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    +

    I

    +
    +
    + IDLE + - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode +
    +
     
    +
    + imu + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + initialize() + - Method in class com.technototes.path.command.RegenerativeTrajectoryCommand +
    +
     
    +
    + initialize() + - Method in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand +
    +
     
    +
    + initialize() + - Method in class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + initialize() + - Method in class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + isBusy() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + isBusy() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + isBusy() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + isFinished() + - Method in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + isFinished() + - Method in class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + isFinished() + - Method in class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    +

    K

    +
    +
    + kA + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + kA + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + kA + - Variable in class com.technototes.path.util.RegressionUtil.AccelResult +
    +
     
    +
    + kStatic + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + kStatic + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + kStatic + - Variable in class com.technototes.path.util.RegressionUtil.RampResult +
    +
     
    +
    + kV + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + kV + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + kV + - Variable in class com.technototes.path.util.RegressionUtil.RampResult +
    +
     
    +
    +

    L

    +
    +
    + LATERAL_MULTIPLIER + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + LATERAL_MULTIPLIER + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + lateralDistance + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + leftEncoder + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + leftFront + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + leftRear + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + lineTo(Vector2d) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineToConstantHeading(Vector2d) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineToLinearHeading(Pose2d) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineToSplineHeading(Pose2d) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + LoggingUtil + - Class in + com.technototes.path.util +
    +
    +
    Utility functions for log files.
    +
    +
    + LoggingUtil() + - Constructor for class com.technototes.path.util.LoggingUtil +
    +
     
    +
    + LynxFirmwareVersion(int, int, int) + - Constructor for class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + LynxFirmwareVersionException(String) + - Constructor for exception com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersionException +
    +
     
    +
    + LynxModuleUtil + - Class in + com.technototes.path.util +
    +
    +
    Collection of utilites for interacting with Lynx modules.
    +
    +
    + LynxModuleUtil() + - Constructor for class com.technototes.path.util.LynxModuleUtil +
    +
     
    +
    + LynxModuleUtil.LynxFirmwareVersion + - Class in + com.technototes.path.util +
    +
    +
    Parsed representation of a Lynx module firmware version.
    +
    +
    + LynxModuleUtil.LynxFirmwareVersionException + - Exception in + com.technototes.path.util +
    +
    +
    Exception indicating an outdated Lynx firmware version.
    +
    +
    +

    M

    +
    +
    + major + - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + mapPose(Function<Pose2d, T>) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mapPose(Function<Pose2d, T>) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mapVec(Function<Vector2d, T>) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + mapX(Function<Double, T>) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + mapY(Function<Double, T>) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + MAX_ACCEL + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + MAX_ACCEL + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + MAX_ANG_ACCEL + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + MAX_ANG_ACCEL + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + MAX_ANG_VEL + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + MAX_ANG_VEL + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + MAX_RPM + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + MAX_RPM + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + MAX_VEL + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + MAX_VEL + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + MecanumConstants + - Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.GearRatio + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.HeadPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.KA + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.KStatic + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.KV + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.LateralMult + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.MaxAccel + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.MaxAngleAccel + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.MaxAngleVelo + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.MaxRPM + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.MaxVelo + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.MotorVeloPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.OmegaWeight + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.PoseLimit + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.TicksPerRev + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.TrackWidth + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.TransPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.UseDriveEncoder + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.VXWeight + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.VYWeight + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.WheelBase + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumConstants.WheelRadius + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + MecanumDriveCommand + - Class in + com.technototes.path.command +
    +
     
    +
    + MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, + DoubleSupplier, DoubleSupplier) + - Constructor for class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + minor + - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + mirrorOverX(Pose2d) + - Static method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mirrorOverX(Pose2d) + - Static method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mirrorOverY(Pose2d) + - Static method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mirrorOverY(Pose2d) + - Static method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + MOTOR_VELO_PID + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + MOTOR_VELO_PID + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + motors + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + mutateHeading(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mutateHeading(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mutatePose(UnaryOperator<Pose2d>) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mutatePose(UnaryOperator<Pose2d>) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mutateVec(UnaryOperator<Vector2d>) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mutateVec(UnaryOperator<Vector2d>) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mutateVec(UnaryOperator<Vector2d>) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + mutateX(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mutateX(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mutateX(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + mutateY(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + mutateY(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + mutateY(UnaryOperator<Double>) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    +

    N

    +
    +
    + NNN + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    + NNP + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    + NPN + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    + NPP + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    +

    O

    +
    +
    + OMEGA_WEIGHT + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + OMEGA_WEIGHT + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    +

    P

    +
    +
    + PathingMecanumDrivebaseSubsystem + - Class in + com.technototes.path.subsystem +
    +
     
    +
    + PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, + EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, + EncodedMotor<DcMotorEx>, IMU, MecanumConstants) + - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, + EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, + EncodedMotor<DcMotorEx>, IMU, MecanumConstants, Localizer) + - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + PathingMecanumDrivebaseSubsystem.Mode + - Enum Class in + com.technototes.path.subsystem +
    +
     
    +
    + PNN + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    + PNP + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    + POSE_HISTORY_LIMIT + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + POSE_HISTORY_LIMIT + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + POSE_HISTORY_LIMIT + - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + PPN + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    + PPP + - Enum constant in enum class com.technototes.path.util.AxesSigns +
    +
     
    +
    +

    R

    +
    +
    + r + - Variable in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + RampResult(double, double, double) + - Constructor for class com.technototes.path.util.RegressionUtil.RampResult +
    +
     
    +
    + RegenerativeTrajectoryCommand + - Class in + com.technototes.path.command +
    +
     
    +
    + RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, + BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) + - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand +
    +
     
    +
    + RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, + Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) + - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand +
    +
     
    +
    + RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, + Trajectory>, T) + - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand +
    +
     
    +
    + RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, + Supplier<Trajectory>) + - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand +
    +
     
    +
    + RegenerativeTrajectorySequenceCommand + - Class in + com.technototes.path.command +
    +
     
    +
    + RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, + TrajectorySequence>, T) + - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand +
    +
     
    +
    + RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + Function<Function<Pose2d, TrajectorySequenceBuilder>, + TrajectorySequence>) + - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand +
    +
     
    +
    + RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + Function<T, TrajectorySequence>, T) + - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand +
    +
     
    +
    + RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + Supplier<TrajectorySequence>) + - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand +
    +
     
    +
    + RegressionUtil + - Class in + com.technototes.path.util +
    +
    +
    Various regression utilities.
    +
    +
    + RegressionUtil() + - Constructor for class com.technototes.path.util.RegressionUtil +
    +
     
    +
    + RegressionUtil.AccelResult + - Class in + com.technototes.path.util +
    +
    +
    + Feedforward parameter estimates from the ramp regression and additional summary + statistics +
    +
    +
    + RegressionUtil.RampResult + - Class in + com.technototes.path.util +
    +
    +
    + Feedforward parameter estimates from the ramp regression and additional summary + statistics +
    +
    +
    + remapAxes(BNO055IMU, AxesOrder, AxesSigns) + - Static method in class com.technototes.path.util.BNO055IMUUtil +
    +
    +
    Remap BNO055 IMU axes and signs.
    +
    +
    + resetAccelConstraint() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + resetConstraints() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + ResetGyroCommand + - Class in + com.technototes.path.command +
    +
     
    +
    + ResetGyroCommand(PathingMecanumDrivebaseSubsystem) + - Constructor for class com.technototes.path.command.ResetGyroCommand +
    +
     
    +
    + resetTurnConstraint() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + resetVelConstraint() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + rightEncoder + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + rightFront + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + rightRear + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + ROAD_RUNNER_FOLDER + - Static variable in class com.technototes.path.util.LoggingUtil +
    +
     
    +
    + rpmToVelocity(double, double, double) + - Static method in interface com.technototes.path.subsystem.DeadWheelConstants +
    +
     
    +
    + rpmToVelocity(double, double, double) + - Static method in interface com.technototes.path.subsystem.MecanumConstants +
    +
     
    +
    + rpmToVelocity(double, double, double) + - Static method in interface com.technototes.path.subsystem.TankConstants +
    +
     
    +
    + rSquare + - Variable in class com.technototes.path.util.RegressionUtil.AccelResult +
    +
     
    +
    + rSquare + - Variable in class com.technototes.path.util.RegressionUtil.RampResult +
    +
     
    +
    + RUN_USING_ENCODER + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + RUN_USING_ENCODER + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    +

    S

    +
    +
    + SequenceSegment + - Class in + com.technototes.path.trajectorysequence.sequencesegment +
    +
     
    +
    + SequenceSegment(double, Pose2d, Pose2d, List<TrajectoryMarker>) + - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment +
    +
     
    +
    + set(double, double) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + set(double, double) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + set(double, double) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + set(double, double, double) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + set(double, double, double) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + set(Pose2d) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + set(Pose2d) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + set(Vector2d) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + set(Vector2d) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + set(Vector2d) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + set(Vector2d, double) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + set(Vector2d, double) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + setAccelConstraint(TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + setGyroOffset(double) + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + setHeading(double) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + setHeading(double) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + setMode(DcMotor.RunMode) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + setMode(DcMotor.RunMode) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + setMotorPowers(double, double) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + setMotorPowers(double, double, double, double) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + setPoseEstimate(Pose2d) + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + setReversed(boolean) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + setTangent(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + setTurnConstraint(double, double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + setVelConstraint(TrajectoryVelocityConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + setWeightedDrivePower(Pose2d) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + setWeightedDrivePower(Pose2d) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + setX(double) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + setX(double) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + setX(double) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + setY(double) + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + setY(double) + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + setY(double) + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + size() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequence +
    +
     
    +
    + speed + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + splineTo(Vector2d, double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineTo(Vector2d, double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineToConstantHeading(Vector2d, double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineToLinearHeading(Pose2d, double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineToSplineHeading(Pose2d, double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + start() + - Method in class com.technototes.path.trajectorysequence.TrajectorySequence +
    +
     
    +
    + stop() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + strafeLeft(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + strafeLeft(double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + strafeRight(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + strafeRight(double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + strafeTo(Vector2d) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + strafeTo(Vector2d, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + subsystem + - Variable in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + subsystem + - Variable in class com.technototes.path.command.ResetGyroCommand +
    +
     
    +
    + subsystem + - Variable in class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + subsystem + - Variable in class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    +

    T

    +
    +
    + TankConstants + - Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.AxialPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.CrossPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.GearRatio + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.HeadPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.KA + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.KStatic + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.KV + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.LateralMult + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.MaxAccel + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.MaxAngleAccel + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.MaxAngleVelo + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.MaxRPM + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.MaxVelo + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.MotorVeloPID + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.OmegaWeight + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.PoseLimit + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.TicksPerRev + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.TrackWidth + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.UseDriveEncoder + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.VXWeight + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankConstants.WheelRadius + - Annotation Interface in + com.technototes.path.subsystem +
    +
     
    +
    + TankDrivebaseSubsystem + - Class in + com.technototes.path.subsystem +
    +
     
    +
    + TankDrivebaseSubsystem(EncodedMotorGroup<DcMotorEx>, + EncodedMotorGroup<DcMotorEx>, IMU, TankConstants, Localizer) + - Constructor for class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + ThreeDeadWheelLocalizer + - Class in + com.technototes.path.subsystem +
    +
     
    +
    + ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, + DeadWheelConstants) + - Constructor for class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + TICKS_PER_REV + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + TICKS_PER_REV + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + ticksPerRev + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    + toPose() + - Method in class com.technototes.path.geometry.ConfigurablePose +
    +
     
    +
    + toPose() + - Method in class com.technototes.path.geometry.ConfigurablePoseD +
    +
     
    +
    + toString() + - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion +
    +
     
    +
    + toVec() + - Method in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    + TRACK_WIDTH + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + TRACK_WIDTH + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + trajectory + - Variable in class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + trajectory + - Variable in class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + trajectoryBuilder(Pose2d) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + trajectoryBuilder(Pose2d) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + trajectoryBuilder(Pose2d, boolean) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + trajectoryBuilder(Pose2d, boolean) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + trajectoryBuilder(Pose2d, double) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + trajectoryBuilder(Pose2d, double) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + TrajectoryCommand + - Class in + com.technototes.path.command +
    +
     
    +
    + TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory) + - Constructor for class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + TrajectoryCommand(PathingMecanumDrivebaseSubsystem, + BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) + - Constructor for class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, + TrajectoryBuilder>, Trajectory>) + - Constructor for class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, + T) + - Constructor for class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) + - Constructor for class com.technototes.path.command.TrajectoryCommand +
    +
     
    +
    + TrajectorySegment + - Class in + com.technototes.path.trajectorysequence.sequencesegment +
    +
     
    +
    + TrajectorySegment(Trajectory) + - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment +
    +
     
    +
    + TrajectorySequence + - Class in + com.technototes.path.trajectorysequence +
    +
     
    +
    + TrajectorySequence(List<SequenceSegment>) + - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequence +
    +
     
    +
    + trajectorySequenceBuilder() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + trajectorySequenceBuilder(Pose2d) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + trajectorySequenceBuilder(Pose2d) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + TrajectorySequenceBuilder + - Class in + com.technototes.path.trajectorysequence +
    +
     
    +
    + TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint, double, double) + - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, + TrajectoryAccelerationConstraint, double, double) + - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + TrajectorySequenceCommand + - Class in + com.technototes.path.command +
    +
     
    +
    + TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence) + - Constructor for class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, + TrajectorySequence>, T) + - Constructor for class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + Function<Function<Pose2d, TrajectorySequenceBuilder>, + TrajectorySequence>) + - Constructor for class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, + TrajectorySequence>, T) + - Constructor for class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, + Supplier<TrajectorySequence>) + - Constructor for class com.technototes.path.command.TrajectorySequenceCommand +
    +
     
    +
    + TrajectorySequenceRunner + - Class in + com.technototes.path.trajectorysequence +
    +
     
    +
    + TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients) + - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    + trajFunc + - Variable in class com.technototes.path.command.RegenerativeTrajectoryCommand +
    +
     
    +
    + trajFunc + - Variable in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand +
    +
     
    +
    + TRANSLATIONAL_PID + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + turn(double) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + turn(double) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + turn(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + turn(double, double, double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + TURN + - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode +
    +
     
    +
    + turnAsync(double) + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + turnAsync(double) + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + TurnSegment + - Class in + com.technototes.path.trajectorysequence.sequencesegment +
    +
     
    +
    + TurnSegment(Pose2d, double, MotionProfile, List<TrajectoryMarker>) + - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment +
    +
     
    +
    +

    U

    +
    +
    + UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + update() + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + update() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + update() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + update(Pose2d) + - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer +
    +
     
    +
    + update(Pose2d, Pose2d) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner +
    +
     
    +
    +

    V

    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.path.util.AxesSigns +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + values() + - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.path.util.AxesSigns +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + VX_WEIGHT + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + VX_WEIGHT + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + VY_WEIGHT + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    +

    W

    +
    +
    + waitForIdle() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + waitForIdle() + - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + waitSeconds(double) + - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder +
    +
     
    +
    + WaitSegment + - Class in + com.technototes.path.trajectorysequence.sequencesegment +
    +
     
    +
    + WaitSegment(Pose2d, double, List<TrajectoryMarker>) + - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.WaitSegment +
    +
     
    +
    + WHEEL_BASE + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + WHEEL_RADIUS + - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + WHEEL_RADIUS + - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem +
    +
     
    +
    + wheelRadius + - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer +
    +
     
    +
    +

    X

    +
    +
    + x + - Variable in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + x + - Variable in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    +

    Y

    +
    +
    + y + - Variable in class com.technototes.path.command.MecanumDriveCommand +
    +
     
    +
    + y + - Variable in class com.technototes.path.geometry.ConfigurableVector +
    +
     
    +
    +

    Z

    +
    +
    + zeroExternalHeading() + - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem +
    +
     
    +
    + A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form +
    +
    +
    + diff --git a/docs/Path/index.html b/docs/Path/index.html index 3e24a800..eed71d00 100644 --- a/docs/Path/index.html +++ b/docs/Path/index.html @@ -1,75 +1,118 @@ - + - - -Overview (Path API) - - - - - - - - - - - - - - -
    - - -
    - + + + Overview (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Path API

    +
    +
    +
    Packages
    + +
    +
    +
    +
    + diff --git a/docs/Path/jquery-ui.overrides.css b/docs/Path/jquery-ui.overrides.css index facf852c..bc437535 100644 --- a/docs/Path/jquery-ui.overrides.css +++ b/docs/Path/jquery-ui.overrides.css @@ -29,7 +29,7 @@ a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #F8981D; - border: 1px solid #F8981D; + /* Overrides the color of selection used in jQuery UI */ + background: #f8981d; + border: 1px solid #f8981d; } diff --git a/docs/Path/member-search-index.js b/docs/Path/member-search-index.js index 7f6550ab..7cbacf96 100644 --- a/docs/Path/member-search-index.js +++ b/docs/Path/member-search-index.js @@ -1 +1,1563 @@ -memberSearchIndex = [{"p":"com.technototes.path.util","c":"RegressionUtil.AccelResult","l":"AccelResult(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(DisplacementProducer, MarkerCallback)","u":"addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.DisplacementProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(double, double, MarkerCallback)","u":"addDisplacementMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(double, MarkerCallback)","u":"addDisplacementMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addDisplacementMarker(MarkerCallback)","u":"addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addSpatialMarker(Vector2d, MarkerCallback)","u":"addSpatialMarker(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(double, double, MarkerCallback)","u":"addTemporalMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(double, MarkerCallback)","u":"addTemporalMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(MarkerCallback)","u":"addTemporalMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTemporalMarker(TimeProducer, MarkerCallback)","u":"addTemporalMarker(com.acmerobotics.roadrunner.trajectory.TimeProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"addTrajectory(Trajectory)","u":"addTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"AXIAL_PID"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"back(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"back(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"batteryVoltageSensor"},{"p":"com.technototes.path.util","c":"BNO055IMUUtil","l":"BNO055IMUUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"build()"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"bVal"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_ACTIVE_TRAJECTORY"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_ACTIVE_TURN"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_ACTIVE_WAIT"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_INACTIVE_TRAJECTORY"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_INACTIVE_TURN"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"COLOR_INACTIVE_WAIT"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"compareTo(LynxModuleUtil.LynxFirmwareVersion)","u":"compareTo(com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(Pose2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(Vector2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"ConfigurablePose(Vector2d, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(Pose2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(Vector2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"ConfigurablePoseD(Vector2d, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"ConfigurableVector()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"ConfigurableVector(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"ConfigurableVector(Vector2d)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"CROSS_TRACK_PID"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"DashboardUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"DistanceSensorLocalizer(IGyro, Map)","u":"%3Cinit%3E(com.technototes.library.hardware.sensor.IGyro,java.util.Map)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"DO_DASH"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawPoseHistory(Canvas, List)","u":"drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas,java.util.List)"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawRobot(Canvas, Pose2d)","u":"drawRobot(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawSampledPath(Canvas, Path)","u":"drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path)"},{"p":"com.technototes.path.util","c":"DashboardUtil","l":"drawSampledPath(Canvas, Path, double)","u":"drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"duration()"},{"p":"com.technototes.path.trajectorysequence","c":"EmptySequenceException","l":"EmptySequenceException()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"encoderOverflow"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"encoderTicksToInches(double)"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"encoderTicksToInches(double, double, double, double)","u":"encoderTicksToInches(double,double,double,double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"encoderTicksToInches(double, double, double, double)","u":"encoderTicksToInches(double,double,double,double)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"encoderTicksToInches(double, double, double, double)","u":"encoderTicksToInches(double,double,double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"end()"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"end(boolean)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"end(boolean)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"end(boolean)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"eng"},{"p":"com.technototes.path.util","c":"LynxModuleUtil","l":"ensureMinimumFirmwareVersion(HardwareMap)","u":"ensureMinimumFirmwareVersion(com.qualcomm.robotcore.hardware.HardwareMap)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"execute()"},{"p":"com.technototes.path.command","c":"ResetGyroCommand","l":"execute()"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"execute()"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"execute()"},{"p":"com.technototes.path.util","c":"RegressionUtil","l":"fitAccelData(List, List, List, RegressionUtil.RampResult, File)","u":"fitAccelData(java.util.List,java.util.List,java.util.List,com.technototes.path.util.RegressionUtil.RampResult,java.io.File)"},{"p":"com.technototes.path.util","c":"RegressionUtil","l":"fitRampData(List, List, List, boolean, File)","u":"fitRampData(java.util.List,java.util.List,java.util.List,boolean,java.io.File)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"FOLLOW_TRAJECTORY"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectory(Trajectory)","u":"followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectory(Trajectory)","u":"followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectoryAsync(Trajectory)","u":"followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectoryAsync(Trajectory)","u":"followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectorySequence(TrajectorySequence)","u":"followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectorySequence(TrajectorySequence)","u":"followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"followTrajectorySequenceAsync(TrajectorySequence)","u":"followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"followTrajectorySequenceAsync(TrajectorySequence)","u":"followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"followTrajectorySequenceAsync(TrajectorySequence)","u":"followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"forward(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"forward(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"forwardOffset"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"frontEncoder"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"GEAR_RATIO"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"GEAR_RATIO"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"gearRatio"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"get(int)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getAccelerationConstraint(double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getAccelerationConstraint(double)"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getBoolean(Class)","u":"getBoolean(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getBoolean(Class)","u":"getBoolean(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getBoolean(Class)","u":"getBoolean(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getConstant()"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getConstant()"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getConstant()"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getDouble(Class)","u":"getDouble(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getDouble(Class)","u":"getDouble(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getDouble(Class)","u":"getDouble(java.lang.Class)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getDuration()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getEndPose()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getExternalHeadingVelocity()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getExternalHeadingVelocity()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil","l":"getFirmwareVersion(LynxModule)","u":"getFirmwareVersion(com.qualcomm.hardware.lynx.LynxModule)"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getGearRatio()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"getHeading()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"getHeading()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"getHeading()"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getInt(Class)","u":"getInt(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getInt(Class)","u":"getInt(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getLastError()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getLastError()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"getLastPoseError()"},{"p":"com.technototes.path.util","c":"LoggingUtil","l":"getLogFile(String)","u":"getLogFile(java.lang.String)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getMarkers()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TurnSegment","l":"getMotionProfile()"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"getMotorVelocityF(double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getMotorVelocityF(double)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getMotorVelocityF(double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getPID(Class)","u":"getPID(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getPID(Class)","u":"getPID(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"getPIDF(Class)","u":"getPIDF(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"getPIDF(Class)","u":"getPIDF(java.lang.Class)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"getPoseEstimate()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"getPoseVelocity()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"getRadians()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getRawExternalHeading()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getRawExternalHeading()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"getStartPose()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getTicksPerRev()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TurnSegment","l":"getTotalRotation()"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TrajectorySegment","l":"getTrajectory()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getVelocityConstraint(double, double, double)","u":"getVelocityConstraint(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getVelocityConstraint(double, double, double)","u":"getVelocityConstraint(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getWheelPositions()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getWheelPositions()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getWheelPositions()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getWheelRadius()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"getWheelVelocities()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"getWheelVelocities()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"getWheelVelocities()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"getX()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"getY()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"gyroOffset"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"heading"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"heading"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"HEADING_PID"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"HEADING_PID"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"IDLE"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"imu"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"initialize()"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"initialize()"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"initialize()"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"initialize()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"isBusy()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"isBusy()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"isBusy()"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"isFinished()"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"isFinished()"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"isFinished()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"kA"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"kA"},{"p":"com.technototes.path.util","c":"RegressionUtil.AccelResult","l":"kA"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"kStatic"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"kStatic"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"kStatic"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"kV"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"kV"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"kV"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"LATERAL_MULTIPLIER"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"LATERAL_MULTIPLIER"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"lateralDistance"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"leftEncoder"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"leftFront"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"leftRear"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineTo(Vector2d)","u":"lineTo(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToConstantHeading(Vector2d)","u":"lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToLinearHeading(Pose2d)","u":"lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToSplineHeading(Pose2d)","u":"lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.util","c":"LoggingUtil","l":"LoggingUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"LynxFirmwareVersion(int, int, int)","u":"%3Cinit%3E(int,int,int)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersionException","l":"LynxFirmwareVersionException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil","l":"LynxModuleUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"major"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mapPose(Function)","u":"mapPose(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mapPose(Function)","u":"mapPose(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mapVec(Function)","u":"mapVec(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mapX(Function)","u":"mapX(java.util.function.Function)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mapY(Function)","u":"mapY(java.util.function.Function)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_ACCEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_ACCEL"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_ANG_ACCEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_ANG_ACCEL"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_ANG_VEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_ANG_VEL"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_RPM"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_RPM"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MAX_VEL"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MAX_VEL"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"minor"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mirrorOverX(Pose2d)","u":"mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mirrorOverX(Pose2d)","u":"mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mirrorOverY(Pose2d)","u":"mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mirrorOverY(Pose2d)","u":"mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"MOTOR_VELO_PID"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"MOTOR_VELO_PID"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"motors"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateHeading(UnaryOperator)","u":"mutateHeading(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateHeading(UnaryOperator)","u":"mutateHeading(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutatePose(UnaryOperator)","u":"mutatePose(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutatePose(UnaryOperator)","u":"mutatePose(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateVec(UnaryOperator)","u":"mutateVec(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateVec(UnaryOperator)","u":"mutateVec(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mutateVec(UnaryOperator)","u":"mutateVec(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateX(UnaryOperator)","u":"mutateX(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateX(UnaryOperator)","u":"mutateX(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mutateX(UnaryOperator)","u":"mutateX(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"mutateY(UnaryOperator)","u":"mutateY(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"mutateY(UnaryOperator)","u":"mutateY(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"mutateY(UnaryOperator)","u":"mutateY(java.util.function.UnaryOperator)"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NNN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NNP"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NPN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"NPP"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"OMEGA_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"OMEGA_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants, Localizer)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants,com.acmerobotics.roadrunner.localization.Localizer)"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PNN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PNP"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"POSE_HISTORY_LIMIT"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"POSE_HISTORY_LIMIT"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"POSE_HISTORY_LIMIT"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PPN"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"PPP"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"r"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"RampResult(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.util","c":"RegressionUtil","l":"RegressionUtil()","u":"%3Cinit%3E()"},{"p":"com.technototes.path.util","c":"BNO055IMUUtil","l":"remapAxes(BNO055IMU, AxesOrder, AxesSigns)","u":"remapAxes(com.qualcomm.hardware.bosch.BNO055IMU,org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.path.util.AxesSigns)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetAccelConstraint()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetConstraints()"},{"p":"com.technototes.path.command","c":"ResetGyroCommand","l":"ResetGyroCommand(PathingMecanumDrivebaseSubsystem)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetTurnConstraint()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"resetVelConstraint()"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"rightEncoder"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"rightFront"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"rightRear"},{"p":"com.technototes.path.util","c":"LoggingUtil","l":"ROAD_RUNNER_FOLDER"},{"p":"com.technototes.path.subsystem","c":"DeadWheelConstants","l":"rpmToVelocity(double, double, double)","u":"rpmToVelocity(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"MecanumConstants","l":"rpmToVelocity(double, double, double)","u":"rpmToVelocity(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"TankConstants","l":"rpmToVelocity(double, double, double)","u":"rpmToVelocity(double,double,double)"},{"p":"com.technototes.path.util","c":"RegressionUtil.AccelResult","l":"rSquare"},{"p":"com.technototes.path.util","c":"RegressionUtil.RampResult","l":"rSquare"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"RUN_USING_ENCODER"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"RUN_USING_ENCODER"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"SequenceSegment","l":"SequenceSegment(double, Pose2d, Pose2d, List)","u":"%3Cinit%3E(double,com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d,java.util.List)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(double, double)","u":"set(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(double, double)","u":"set(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"set(double, double)","u":"set(double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(double, double, double)","u":"set(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(double, double, double)","u":"set(double,double,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(Pose2d)","u":"set(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(Pose2d)","u":"set(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(Vector2d)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(Vector2d)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"set(Vector2d)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"set(Vector2d, double)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"set(Vector2d, double)","u":"set(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setAccelConstraint(TrajectoryAccelerationConstraint)","u":"setAccelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"setConstraints(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"setGyroOffset(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"setHeading(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"setHeading(double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setMode(DcMotor.RunMode)","u":"setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setMode(DcMotor.RunMode)","u":"setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setMotorPowers(double, double)","u":"setMotorPowers(double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setMotorPowers(double, double, double, double)","u":"setMotorPowers(double,double,double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)","u":"setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)","u":"setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"setPoseEstimate(Pose2d)","u":"setPoseEstimate(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setReversed(boolean)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setTangent(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setTurnConstraint(double, double)","u":"setTurnConstraint(double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"setVelConstraint(TrajectoryVelocityConstraint)","u":"setVelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setWeightedDrivePower(Pose2d)","u":"setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setWeightedDrivePower(Pose2d)","u":"setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"setX(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"setX(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"setX(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"setY(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"setY(double)"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"setY(double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)","u":"setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)","u":"setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"size()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"speed"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineTo(Vector2d, double)","u":"splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToConstantHeading(Vector2d, double)","u":"splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToLinearHeading(Pose2d, double)","u":"splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToSplineHeading(Pose2d, double)","u":"splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"start()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"stop()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeLeft(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"strafeLeft(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeRight(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"strafeRight(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeTo(Vector2d)","u":"strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)","u":"strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"subsystem"},{"p":"com.technototes.path.command","c":"ResetGyroCommand","l":"subsystem"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"subsystem"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"subsystem"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"TankDrivebaseSubsystem(EncodedMotorGroup, EncodedMotorGroup, IMU, TankConstants, Localizer)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.TankConstants,com.acmerobotics.roadrunner.localization.Localizer)"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants)","u":"%3Cinit%3E(com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.path.subsystem.DeadWheelConstants)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"TICKS_PER_REV"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"TICKS_PER_REV"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"ticksPerRev"},{"p":"com.technototes.path.geometry","c":"ConfigurablePose","l":"toPose()"},{"p":"com.technototes.path.geometry","c":"ConfigurablePoseD","l":"toPose()"},{"p":"com.technototes.path.util","c":"LynxModuleUtil.LynxFirmwareVersion","l":"toString()"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"toVec()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"TRACK_WIDTH"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"TRACK_WIDTH"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"trajectory"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"trajectory"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, boolean)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, boolean)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, double)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectoryBuilder(Pose2d, double)","u":"trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.command","c":"TrajectoryCommand","l":"TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TrajectorySegment","l":"TrajectorySegment(Trajectory)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.trajectory.Trajectory)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequence","l":"TrajectorySequence(List)","u":"%3Cinit%3E(java.util.List)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectorySequenceBuilder()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"trajectorySequenceBuilder(Pose2d)","u":"trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"trajectorySequenceBuilder(Pose2d)","u":"trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,java.lang.Double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)"},{"p":"com.technototes.path.command","c":"TrajectorySequenceCommand","l":"TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence)","u":"%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.technototes.path.trajectorysequence.TrajectorySequence)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.followers.TrajectoryFollower,com.acmerobotics.roadrunner.control.PIDCoefficients)"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectoryCommand","l":"trajFunc"},{"p":"com.technototes.path.command","c":"RegenerativeTrajectorySequenceCommand","l":"trajFunc"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"TRANSLATIONAL_PID"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"TURN"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"turn(double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"turn(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"turn(double)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"turn(double, double, double)","u":"turn(double,double,double)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"turnAsync(double)"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"turnAsync(double)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"TurnSegment","l":"TurnSegment(Pose2d, double, MotionProfile, List)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.profile.MotionProfile,java.util.List)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback)","u":"UNSTABLE_addDisplacementMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback)","u":"UNSTABLE_addTemporalMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"update()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"update()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"update()"},{"p":"com.technototes.path.subsystem","c":"DistanceSensorLocalizer","l":"update(Pose2d)","u":"update(com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceRunner","l":"update(Pose2d, Pose2d)","u":"update(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem.Mode","l":"values()"},{"p":"com.technototes.path.util","c":"AxesSigns","l":"values()"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"VX_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"VX_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"VY_WEIGHT"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"waitForIdle()"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"waitForIdle()"},{"p":"com.technototes.path.trajectorysequence","c":"TrajectorySequenceBuilder","l":"waitSeconds(double)"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","c":"WaitSegment","l":"WaitSegment(Pose2d, double, List)","u":"%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,java.util.List)"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"WHEEL_BASE"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"WHEEL_RADIUS"},{"p":"com.technototes.path.subsystem","c":"TankDrivebaseSubsystem","l":"WHEEL_RADIUS"},{"p":"com.technototes.path.subsystem","c":"ThreeDeadWheelLocalizer","l":"wheelRadius"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"x"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"x"},{"p":"com.technototes.path.command","c":"MecanumDriveCommand","l":"y"},{"p":"com.technototes.path.geometry","c":"ConfigurableVector","l":"y"},{"p":"com.technototes.path.subsystem","c":"PathingMecanumDrivebaseSubsystem","l":"zeroExternalHeading()"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [ + { + p: 'com.technototes.path.util', + c: 'RegressionUtil.AccelResult', + l: 'AccelResult(double, double)', + u: '%3Cinit%3E(double,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addDisplacementMarker(DisplacementProducer, MarkerCallback)', + u: 'addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.DisplacementProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addDisplacementMarker(double, double, MarkerCallback)', + u: 'addDisplacementMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addDisplacementMarker(double, MarkerCallback)', + u: 'addDisplacementMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addDisplacementMarker(MarkerCallback)', + u: 'addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addSpatialMarker(Vector2d, MarkerCallback)', + u: 'addSpatialMarker(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addTemporalMarker(double, double, MarkerCallback)', + u: 'addTemporalMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addTemporalMarker(double, MarkerCallback)', + u: 'addTemporalMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addTemporalMarker(MarkerCallback)', + u: 'addTemporalMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addTemporalMarker(TimeProducer, MarkerCallback)', + u: 'addTemporalMarker(com.acmerobotics.roadrunner.trajectory.TimeProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'addTrajectory(Trajectory)', + u: 'addTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'AXIAL_PID' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'back(double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'back(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'batteryVoltageSensor', + }, + { p: 'com.technototes.path.util', c: 'BNO055IMUUtil', l: 'BNO055IMUUtil()', u: '%3Cinit%3E()' }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceBuilder', l: 'build()' }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'bVal' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'COLOR_ACTIVE_TRAJECTORY', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'COLOR_ACTIVE_TURN', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'COLOR_ACTIVE_WAIT', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'COLOR_INACTIVE_TRAJECTORY', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'COLOR_INACTIVE_TURN', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'COLOR_INACTIVE_WAIT', + }, + { + p: 'com.technototes.path.util', + c: 'LynxModuleUtil.LynxFirmwareVersion', + l: 'compareTo(LynxModuleUtil.LynxFirmwareVersion)', + u: 'compareTo(com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'ConfigurablePose()', + u: '%3Cinit%3E()', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'ConfigurablePose(double, double)', + u: '%3Cinit%3E(double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'ConfigurablePose(double, double, double)', + u: '%3Cinit%3E(double,double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'ConfigurablePose(Pose2d)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'ConfigurablePose(Vector2d)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'ConfigurablePose(Vector2d, double)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'ConfigurablePoseD()', + u: '%3Cinit%3E()', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'ConfigurablePoseD(double, double)', + u: '%3Cinit%3E(double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'ConfigurablePoseD(double, double, double)', + u: '%3Cinit%3E(double,double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'ConfigurablePoseD(Pose2d)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'ConfigurablePoseD(Vector2d)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'ConfigurablePoseD(Vector2d, double)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'ConfigurableVector()', + u: '%3Cinit%3E()', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'ConfigurableVector(double, double)', + u: '%3Cinit%3E(double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'ConfigurableVector(Vector2d)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'CROSS_TRACK_PID' }, + { p: 'com.technototes.path.util', c: 'DashboardUtil', l: 'DashboardUtil()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.path.subsystem', + c: 'DistanceSensorLocalizer', + l: 'DistanceSensorLocalizer(IGyro, Map)', + u: '%3Cinit%3E(com.technototes.library.hardware.sensor.IGyro,java.util.Map)', + }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceRunner', l: 'DO_DASH' }, + { + p: 'com.technototes.path.util', + c: 'DashboardUtil', + l: 'drawPoseHistory(Canvas, List)', + u: 'drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas,java.util.List)', + }, + { + p: 'com.technototes.path.util', + c: 'DashboardUtil', + l: 'drawRobot(Canvas, Pose2d)', + u: 'drawRobot(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.util', + c: 'DashboardUtil', + l: 'drawSampledPath(Canvas, Path)', + u: 'drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path)', + }, + { + p: 'com.technototes.path.util', + c: 'DashboardUtil', + l: 'drawSampledPath(Canvas, Path, double)', + u: 'drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path,double)', + }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'duration()' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'EmptySequenceException', + l: 'EmptySequenceException()', + u: '%3Cinit%3E()', + }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'encoderOverflow' }, + { + p: 'com.technototes.path.subsystem', + c: 'ThreeDeadWheelLocalizer', + l: 'encoderTicksToInches(double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'DeadWheelConstants', + l: 'encoderTicksToInches(double, double, double, double)', + u: 'encoderTicksToInches(double,double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'encoderTicksToInches(double, double, double, double)', + u: 'encoderTicksToInches(double,double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'encoderTicksToInches(double, double, double, double)', + u: 'encoderTicksToInches(double,double,double,double)', + }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'end()' }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'end(boolean)' }, + { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'end(boolean)' }, + { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'end(boolean)' }, + { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'eng' }, + { + p: 'com.technototes.path.util', + c: 'LynxModuleUtil', + l: 'ensureMinimumFirmwareVersion(HardwareMap)', + u: 'ensureMinimumFirmwareVersion(com.qualcomm.robotcore.hardware.HardwareMap)', + }, + { + p: 'com.technototes.path.util', + c: 'LynxModuleUtil.LynxFirmwareVersion', + l: 'equals(Object)', + u: 'equals(java.lang.Object)', + }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'execute()' }, + { p: 'com.technototes.path.command', c: 'ResetGyroCommand', l: 'execute()' }, + { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'execute()' }, + { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'execute()' }, + { + p: 'com.technototes.path.util', + c: 'RegressionUtil', + l: 'fitAccelData(List, List, List, RegressionUtil.RampResult, File)', + u: 'fitAccelData(java.util.List,java.util.List,java.util.List,com.technototes.path.util.RegressionUtil.RampResult,java.io.File)', + }, + { + p: 'com.technototes.path.util', + c: 'RegressionUtil', + l: 'fitRampData(List, List, List, boolean, File)', + u: 'fitRampData(java.util.List,java.util.List,java.util.List,boolean,java.io.File)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem.Mode', + l: 'FOLLOW_TRAJECTORY', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'followTrajectory(Trajectory)', + u: 'followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'followTrajectory(Trajectory)', + u: 'followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'followTrajectoryAsync(Trajectory)', + u: 'followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'followTrajectoryAsync(Trajectory)', + u: 'followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'followTrajectorySequence(TrajectorySequence)', + u: 'followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'followTrajectorySequence(TrajectorySequence)', + u: 'followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'followTrajectorySequenceAsync(TrajectorySequence)', + u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'followTrajectorySequenceAsync(TrajectorySequence)', + u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'followTrajectorySequenceAsync(TrajectorySequence)', + u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'forward(double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'forward(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'forwardOffset' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'frontEncoder' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'GEAR_RATIO' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'GEAR_RATIO' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'gearRatio' }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'get(int)' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getAccelerationConstraint(double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'getAccelerationConstraint(double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'DeadWheelConstants', + l: 'getBoolean(Class)', + u: 'getBoolean(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'getBoolean(Class)', + u: 'getBoolean(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'getBoolean(Class)', + u: 'getBoolean(java.lang.Class)', + }, + { p: 'com.technototes.path.subsystem', c: 'DeadWheelConstants', l: 'getConstant()' }, + { p: 'com.technototes.path.subsystem', c: 'MecanumConstants', l: 'getConstant()' }, + { p: 'com.technototes.path.subsystem', c: 'TankConstants', l: 'getConstant()' }, + { + p: 'com.technototes.path.subsystem', + c: 'DeadWheelConstants', + l: 'getDouble(Class)', + u: 'getDouble(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'getDouble(Class)', + u: 'getDouble(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'getDouble(Class)', + u: 'getDouble(java.lang.Class)', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'SequenceSegment', + l: 'getDuration()', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'SequenceSegment', + l: 'getEndPose()', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getExternalHeadingVelocity()', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'getExternalHeadingVelocity()', + }, + { + p: 'com.technototes.path.util', + c: 'LynxModuleUtil', + l: 'getFirmwareVersion(LynxModule)', + u: 'getFirmwareVersion(com.qualcomm.hardware.lynx.LynxModule)', + }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getGearRatio()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'getHeading()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'getHeading()' }, + { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getHeading()' }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'getInt(Class)', + u: 'getInt(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'getInt(Class)', + u: 'getInt(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getLastError()', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getLastError()' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'getLastPoseError()', + }, + { + p: 'com.technototes.path.util', + c: 'LoggingUtil', + l: 'getLogFile(String)', + u: 'getLogFile(java.lang.String)', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'SequenceSegment', + l: 'getMarkers()', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'TurnSegment', + l: 'getMotionProfile()', + }, + { p: 'com.technototes.path.subsystem', c: 'DeadWheelConstants', l: 'getMotorVelocityF(double)' }, + { p: 'com.technototes.path.subsystem', c: 'MecanumConstants', l: 'getMotorVelocityF(double)' }, + { p: 'com.technototes.path.subsystem', c: 'TankConstants', l: 'getMotorVelocityF(double)' }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'getPID(Class)', + u: 'getPID(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'getPID(Class)', + u: 'getPID(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'getPIDF(Class)', + u: 'getPIDF(java.lang.Class)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'getPIDF(Class)', + u: 'getPIDF(java.lang.Class)', + }, + { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getPoseEstimate()' }, + { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getPoseVelocity()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'getRadians()' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getRawExternalHeading()', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'getRawExternalHeading()', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'SequenceSegment', + l: 'getStartPose()', + }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getTicksPerRev()' }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'TurnSegment', + l: 'getTotalRotation()', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'TrajectorySegment', + l: 'getTrajectory()', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getVelocityConstraint(double, double, double)', + u: 'getVelocityConstraint(double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'getVelocityConstraint(double, double, double)', + u: 'getVelocityConstraint(double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getWheelPositions()', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getWheelPositions()' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelPositions()' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelRadius()' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'getWheelVelocities()', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getWheelVelocities()' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelVelocities()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'getX()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'getY()' }, + { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'gyroOffset' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'heading' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'heading' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'HEADING_PID' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'HEADING_PID' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem.Mode', l: 'IDLE' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'imu' }, + { p: 'com.technototes.path.command', c: 'RegenerativeTrajectoryCommand', l: 'initialize()' }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectorySequenceCommand', + l: 'initialize()', + }, + { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'initialize()' }, + { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'initialize()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'isBusy()' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'isBusy()' }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceRunner', l: 'isBusy()' }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'isFinished()' }, + { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'isFinished()' }, + { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'isFinished()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kA' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kA' }, + { p: 'com.technototes.path.util', c: 'RegressionUtil.AccelResult', l: 'kA' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kStatic' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kStatic' }, + { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'kStatic' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kV' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kV' }, + { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'kV' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'LATERAL_MULTIPLIER', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'LATERAL_MULTIPLIER' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'lateralDistance' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'leftEncoder' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'leftFront' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'leftRear' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineTo(Vector2d)', + u: 'lineTo(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'lineTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineToConstantHeading(Vector2d)', + u: 'lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineToLinearHeading(Pose2d)', + u: 'lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineToSplineHeading(Pose2d)', + u: 'lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { p: 'com.technototes.path.util', c: 'LoggingUtil', l: 'LoggingUtil()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.path.util', + c: 'LynxModuleUtil.LynxFirmwareVersion', + l: 'LynxFirmwareVersion(int, int, int)', + u: '%3Cinit%3E(int,int,int)', + }, + { + p: 'com.technototes.path.util', + c: 'LynxModuleUtil.LynxFirmwareVersionException', + l: 'LynxFirmwareVersionException(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.path.util', c: 'LynxModuleUtil', l: 'LynxModuleUtil()', u: '%3Cinit%3E()' }, + { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'major' }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mapPose(Function)', + u: 'mapPose(java.util.function.Function)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mapPose(Function)', + u: 'mapPose(java.util.function.Function)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'mapVec(Function)', + u: 'mapVec(java.util.function.Function)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'mapX(Function)', + u: 'mapX(java.util.function.Function)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'mapY(Function)', + u: 'mapY(java.util.function.Function)', + }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_ACCEL' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ACCEL' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'MAX_ANG_ACCEL', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ANG_ACCEL' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_ANG_VEL' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ANG_VEL' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_RPM' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_RPM' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_VEL' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_VEL' }, + { + p: 'com.technototes.path.command', + c: 'MecanumDriveCommand', + l: 'MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)', + }, + { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'minor' }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mirrorOverX(Pose2d)', + u: 'mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mirrorOverX(Pose2d)', + u: 'mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mirrorOverY(Pose2d)', + u: 'mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mirrorOverY(Pose2d)', + u: 'mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'MOTOR_VELO_PID', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MOTOR_VELO_PID' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'motors' }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mutateHeading(UnaryOperator)', + u: 'mutateHeading(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mutateHeading(UnaryOperator)', + u: 'mutateHeading(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mutatePose(UnaryOperator)', + u: 'mutatePose(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mutatePose(UnaryOperator)', + u: 'mutatePose(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mutateVec(UnaryOperator)', + u: 'mutateVec(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mutateVec(UnaryOperator)', + u: 'mutateVec(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'mutateVec(UnaryOperator)', + u: 'mutateVec(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mutateX(UnaryOperator)', + u: 'mutateX(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mutateX(UnaryOperator)', + u: 'mutateX(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'mutateX(UnaryOperator)', + u: 'mutateX(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'mutateY(UnaryOperator)', + u: 'mutateY(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'mutateY(UnaryOperator)', + u: 'mutateY(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'mutateY(UnaryOperator)', + u: 'mutateY(java.util.function.UnaryOperator)', + }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NNN' }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NNP' }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NPN' }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NPP' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'OMEGA_WEIGHT' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'OMEGA_WEIGHT' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants, Localizer)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants,com.acmerobotics.roadrunner.localization.Localizer)', + }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PNN' }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PNP' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'POSE_HISTORY_LIMIT', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'POSE_HISTORY_LIMIT' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'POSE_HISTORY_LIMIT', + }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PPN' }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PPP' }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'r' }, + { + p: 'com.technototes.path.util', + c: 'RegressionUtil.RampResult', + l: 'RampResult(double, double, double)', + u: '%3Cinit%3E(double,double,double)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectoryCommand', + l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectoryCommand', + l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectoryCommand', + l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectoryCommand', + l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectorySequenceCommand', + l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectorySequenceCommand', + l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectorySequenceCommand', + l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', + }, + { + p: 'com.technototes.path.command', + c: 'RegenerativeTrajectorySequenceCommand', + l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', + }, + { p: 'com.technototes.path.util', c: 'RegressionUtil', l: 'RegressionUtil()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.path.util', + c: 'BNO055IMUUtil', + l: 'remapAxes(BNO055IMU, AxesOrder, AxesSigns)', + u: 'remapAxes(com.qualcomm.hardware.bosch.BNO055IMU,org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.path.util.AxesSigns)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'resetAccelConstraint()', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'resetConstraints()', + }, + { + p: 'com.technototes.path.command', + c: 'ResetGyroCommand', + l: 'ResetGyroCommand(PathingMecanumDrivebaseSubsystem)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'resetTurnConstraint()', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'resetVelConstraint()', + }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'rightEncoder' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'rightFront' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'rightRear' }, + { p: 'com.technototes.path.util', c: 'LoggingUtil', l: 'ROAD_RUNNER_FOLDER' }, + { + p: 'com.technototes.path.subsystem', + c: 'DeadWheelConstants', + l: 'rpmToVelocity(double, double, double)', + u: 'rpmToVelocity(double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'MecanumConstants', + l: 'rpmToVelocity(double, double, double)', + u: 'rpmToVelocity(double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankConstants', + l: 'rpmToVelocity(double, double, double)', + u: 'rpmToVelocity(double,double,double)', + }, + { p: 'com.technototes.path.util', c: 'RegressionUtil.AccelResult', l: 'rSquare' }, + { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'rSquare' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'RUN_USING_ENCODER', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'RUN_USING_ENCODER' }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'SequenceSegment', + l: 'SequenceSegment(double, Pose2d, Pose2d, List)', + u: '%3Cinit%3E(double,com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d,java.util.List)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'set(double, double)', + u: 'set(double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'set(double, double)', + u: 'set(double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'set(double, double)', + u: 'set(double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'set(double, double, double)', + u: 'set(double,double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'set(double, double, double)', + u: 'set(double,double,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'set(Pose2d)', + u: 'set(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'set(Pose2d)', + u: 'set(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'set(Vector2d)', + u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'set(Vector2d)', + u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurableVector', + l: 'set(Vector2d)', + u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePose', + l: 'set(Vector2d, double)', + u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d,double)', + }, + { + p: 'com.technototes.path.geometry', + c: 'ConfigurablePoseD', + l: 'set(Vector2d, double)', + u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'setAccelConstraint(TrajectoryAccelerationConstraint)', + u: 'setAccelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'setConstraints(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'setGyroOffset(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setHeading(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setHeading(double)' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'setMode(DcMotor.RunMode)', + u: 'setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'setMode(DcMotor.RunMode)', + u: 'setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'setMotorPowers(double, double)', + u: 'setMotorPowers(double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'setMotorPowers(double, double, double, double)', + u: 'setMotorPowers(double,double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)', + u: 'setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)', + u: 'setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'DistanceSensorLocalizer', + l: 'setPoseEstimate(Pose2d)', + u: 'setPoseEstimate(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'setReversed(boolean)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'setTangent(double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'setTurnConstraint(double, double)', + u: 'setTurnConstraint(double,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'setVelConstraint(TrajectoryVelocityConstraint)', + u: 'setVelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'setWeightedDrivePower(Pose2d)', + u: 'setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'setWeightedDrivePower(Pose2d)', + u: 'setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setX(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setX(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'setX(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setY(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setY(double)' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'setY(double)' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)', + u: 'setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)', + u: 'setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', + }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'size()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'speed' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineTo(Vector2d, double)', + u: 'splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineToConstantHeading(Vector2d, double)', + u: 'splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineToLinearHeading(Pose2d, double)', + u: 'splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineToSplineHeading(Pose2d, double)', + u: 'splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'start()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'stop()' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'strafeLeft(double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'strafeLeft(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'strafeRight(double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'strafeRight(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'strafeTo(Vector2d)', + u: 'strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', + u: 'strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', + }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'subsystem' }, + { p: 'com.technototes.path.command', c: 'ResetGyroCommand', l: 'subsystem' }, + { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'subsystem' }, + { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'subsystem' }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'TankDrivebaseSubsystem(EncodedMotorGroup, EncodedMotorGroup, IMU, TankConstants, Localizer)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.TankConstants,com.acmerobotics.roadrunner.localization.Localizer)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'ThreeDeadWheelLocalizer', + l: 'ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants)', + u: '%3Cinit%3E(com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.path.subsystem.DeadWheelConstants)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'TICKS_PER_REV', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'TICKS_PER_REV' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'ticksPerRev' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'toPose()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'toPose()' }, + { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'toString()' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'toVec()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'TRACK_WIDTH' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'TRACK_WIDTH' }, + { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'trajectory' }, + { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'trajectory' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'trajectoryBuilder(Pose2d)', + u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'trajectoryBuilder(Pose2d)', + u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'trajectoryBuilder(Pose2d, boolean)', + u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'trajectoryBuilder(Pose2d, boolean)', + u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'trajectoryBuilder(Pose2d, double)', + u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'trajectoryBuilder(Pose2d, double)', + u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectoryCommand', + l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectoryCommand', + l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectoryCommand', + l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectoryCommand', + l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectoryCommand', + l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'TrajectorySegment', + l: 'TrajectorySegment(Trajectory)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.trajectory.Trajectory)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequence', + l: 'TrajectorySequence(List)', + u: '%3Cinit%3E(java.util.List)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'trajectorySequenceBuilder()', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'trajectorySequenceBuilder(Pose2d)', + u: 'trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'TankDrivebaseSubsystem', + l: 'trajectorySequenceBuilder(Pose2d)', + u: 'trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,java.lang.Double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectorySequenceCommand', + l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectorySequenceCommand', + l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectorySequenceCommand', + l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectorySequenceCommand', + l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', + }, + { + p: 'com.technototes.path.command', + c: 'TrajectorySequenceCommand', + l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence)', + u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.technototes.path.trajectorysequence.TrajectorySequence)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.followers.TrajectoryFollower,com.acmerobotics.roadrunner.control.PIDCoefficients)', + }, + { p: 'com.technototes.path.command', c: 'RegenerativeTrajectoryCommand', l: 'trajFunc' }, + { p: 'com.technototes.path.command', c: 'RegenerativeTrajectorySequenceCommand', l: 'trajFunc' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'TRANSLATIONAL_PID', + }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem.Mode', l: 'TURN' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'turn(double)' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'turn(double)' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'turn(double)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'turn(double, double, double)', + u: 'turn(double,double,double)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'turnAsync(double)', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'turnAsync(double)' }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'TurnSegment', + l: 'TurnSegment(Pose2d, double, MotionProfile, List)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.profile.MotionProfile,java.util.List)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback)', + u: 'UNSTABLE_addDisplacementMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback)', + u: 'UNSTABLE_addTemporalMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', + }, + { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'update()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'update()' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'update()' }, + { + p: 'com.technototes.path.subsystem', + c: 'DistanceSensorLocalizer', + l: 'update(Pose2d)', + u: 'update(com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceRunner', + l: 'update(Pose2d, Pose2d)', + u: 'update(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem.Mode', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.path.util', + c: 'AxesSigns', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem.Mode', + l: 'values()', + }, + { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'values()' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'VX_WEIGHT' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'VX_WEIGHT' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'VY_WEIGHT' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'waitForIdle()', + }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'waitForIdle()' }, + { + p: 'com.technototes.path.trajectorysequence', + c: 'TrajectorySequenceBuilder', + l: 'waitSeconds(double)', + }, + { + p: 'com.technototes.path.trajectorysequence.sequencesegment', + c: 'WaitSegment', + l: 'WaitSegment(Pose2d, double, List)', + u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,java.util.List)', + }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'WHEEL_BASE' }, + { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'WHEEL_RADIUS' }, + { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'WHEEL_RADIUS' }, + { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'wheelRadius' }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'x' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'x' }, + { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'y' }, + { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'y' }, + { + p: 'com.technototes.path.subsystem', + c: 'PathingMecanumDrivebaseSubsystem', + l: 'zeroExternalHeading()', + }, +]; +updateSearchResults(); diff --git a/docs/Path/module-search-index.js b/docs/Path/module-search-index.js index 0d59754f..a6f96499 100644 --- a/docs/Path/module-search-index.js +++ b/docs/Path/module-search-index.js @@ -1 +1,2 @@ -moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file +moduleSearchIndex = []; +updateSearchResults(); diff --git a/docs/Path/overview-summary.html b/docs/Path/overview-summary.html index e4c41490..54ad7d37 100644 --- a/docs/Path/overview-summary.html +++ b/docs/Path/overview-summary.html @@ -1,25 +1,27 @@ - + - - -Path API - - - - - - - - - - -
    - -

    index.html

    -
    - + + + Path API + + + + + + + + + + +
    + +

    index.html

    +
    + diff --git a/docs/Path/overview-tree.html b/docs/Path/overview-tree.html index 11f1f087..8a2963f3 100644 --- a/docs/Path/overview-tree.html +++ b/docs/Path/overview-tree.html @@ -1,221 +1,1204 @@ - + - - -Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Annotation Interface Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - + + + Class Hierarchy (Path API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Class Hierarchy

    + +
    +
    +

    Interface Hierarchy

    + +
    +
    +

    Annotation Interface Hierarchy

    + +
    +
    +

    Enum Class Hierarchy

    + +
    +
    +
    +
    + diff --git a/docs/Path/package-search-index.js b/docs/Path/package-search-index.js index 8876cd3f..585beab9 100644 --- a/docs/Path/package-search-index.js +++ b/docs/Path/package-search-index.js @@ -1 +1,10 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.technototes.path.command"},{"l":"com.technototes.path.geometry"},{"l":"com.technototes.path.subsystem"},{"l":"com.technototes.path.trajectorysequence"},{"l":"com.technototes.path.trajectorysequence.sequencesegment"},{"l":"com.technototes.path.util"}];updateSearchResults(); \ No newline at end of file +packageSearchIndex = [ + { l: 'All Packages', u: 'allpackages-index.html' }, + { l: 'com.technototes.path.command' }, + { l: 'com.technototes.path.geometry' }, + { l: 'com.technototes.path.subsystem' }, + { l: 'com.technototes.path.trajectorysequence' }, + { l: 'com.technototes.path.trajectorysequence.sequencesegment' }, + { l: 'com.technototes.path.util' }, +]; +updateSearchResults(); diff --git a/docs/Path/script.js b/docs/Path/script.js index 864989cf..a6efd285 100644 --- a/docs/Path/script.js +++ b/docs/Path/script.js @@ -29,104 +29,106 @@ var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); + createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); } function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); } function show(tableId, selected, columns) { - if (tableId !== selected) { - document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function(elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected) - .forEach(function(elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); + if (tableId !== selected) { + document + .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function (elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected).forEach(function (elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); } function updateTabs(tableId, selected) { - document.querySelector('div#' + tableId +' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]') - .forEach(function(tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex',0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex',-1); - } - }); + document + .querySelector('div#' + tableId + ' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex', 0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex', -1); + } + }); } function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); - } + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); } + } } -var updateSearchResults = function() {}; +var updateSearchResults = function () {}; function indexFilesLoaded() { - return moduleSearchIndex - && packageSearchIndex - && typeSearchIndex - && memberSearchIndex - && tagSearchIndex; + return ( + moduleSearchIndex && + packageSearchIndex && + typeSearchIndex && + memberSearchIndex && + tagSearchIndex + ); } // Workaround for scroll position not being included in browser history (8249133) -document.addEventListener("DOMContentLoaded", function(e) { - var contentDiv = document.querySelector("div.flex-content"); - window.addEventListener("popstate", function(e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener("hashchange", function(e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener("scroll", function(e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function() { - history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); - } - }); - if (!location.hash) { +document.addEventListener('DOMContentLoaded', function (e) { + var contentDiv = document.querySelector('div.flex-content'); + window.addEventListener('popstate', function (e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener('hashchange', function (e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener('scroll', function (e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function () { history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } }); diff --git a/docs/Path/search.js b/docs/Path/search.js index db3b2f4a..3ba91721 100644 --- a/docs/Path/search.js +++ b/docs/Path/search.js @@ -23,332 +23,354 @@ * questions. */ -var noResult = {l: "No results found"}; -var loading = {l: "Loading search index..."}; -var catModules = "Modules"; -var catPackages = "Packages"; -var catTypes = "Classes and Interfaces"; -var catMembers = "Members"; -var catSearchTags = "Search Tags"; -var highlight = "$&"; -var searchPattern = ""; -var fallbackPattern = ""; +var noResult = { l: 'No results found' }; +var loading = { l: 'Loading search index...' }; +var catModules = 'Modules'; +var catPackages = 'Packages'; +var catTypes = 'Classes and Interfaces'; +var catMembers = 'Members'; +var catSearchTags = 'Search Tags'; +var highlight = '$&'; +var searchPattern = ''; +var fallbackPattern = ''; var RANKING_THRESHOLD = 2; var NO_MATCH = 0xffff; var MIN_RESULTS = 3; var MAX_RESULTS = 500; -var UNNAMED = ""; +var UNNAMED = ''; function escapeHtml(str) { - return str.replace(//g, ">"); + return str.replace(//g, '>'); } function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight) - } - return highlighted; + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight); + } + return highlighted; } function getURLPrefix(ui) { - var urlPrefix=""; - var slash = "/"; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function(index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; - } - }); + var urlPrefix = ''; + var slash = '/'; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function (index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; } + }); } - return urlPrefix; + } + return urlPrefix; } function createSearchPattern(term) { - var pattern = ""; - var isWordToken = false; - term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + var pattern = ''; + var isWordToken = false; + term + .replace(/,\s*/g, ', ') + .trim() + .split(/\s+/) + .forEach(function (w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === '') { + continue; } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === "") { - continue; - } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += "([a-z0-9_$<>\\[\\]]*?)"; - } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += '([a-z0-9_$<>\\[\\]]*?)'; } + } }); - return pattern; + return pattern; } function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); } var watermark = 'Search'; -$(function() { - var search = $("#search-input"); - var reset = $("#reset-button"); - search.val(''); - search.prop("disabled", false); - reset.prop("disabled", false); - search.val(watermark).addClass('watermark'); - search.blur(function() { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function() { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function() { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget("custom.catcomplete", $.ui.autocomplete, { - _create: function() { - this._super(); - this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); - }, - _renderMenu: function(ul, items) { - var rMenu = this; - var currentCategory = ""; - rMenu.menu.bindings = $(); - $.each(items, function(index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append("
  • " + item.category + "
  • "); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr("aria-label", item.category + " : " + item.l); - li.attr("class", "result-item"); - } else { - li.attr("aria-label", item.l); - li.attr("class", "result-item"); - } - }); - }, - _renderItem: function(ul, item) { - var label = ""; - var matcher = createMatcher(escapeHtml(searchPattern), "g"); - var fallbackMatcher = new RegExp(fallbackPattern, "gi") - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = (item.p && item.p !== UNNAMED) - ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = (item.p && item.p !== UNNAMED) - ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $("
  • ").appendTo(ul); - var div = $("
    ").appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html(label + " (" + item.h + ")
    " - + item.d + "
    "); - } else { - div.html(label + " (" + item.h + ")"); - } - } else { - if (item.m) { - div.html(item.m + "/" + label); - } else { - div.html(label); - } - } - return li; +$(function () { + var search = $('#search-input'); + var reset = $('#reset-button'); + search.val(''); + search.prop('disabled', false); + reset.prop('disabled', false); + search.val(watermark).addClass('watermark'); + search.blur(function () { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); } -}); -function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { - leftBoundaryMatch = 0; - } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { - leftBoundaryMatch = 1; + }); + search.on('click keydown paste', function () { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf("("); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? "/" : "."; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; - } + }); + reset.click(function () { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget('custom.catcomplete', $.ui.autocomplete, { + _create: function () { + this._super(); + this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); + }, + _renderMenu: function (ul, items) { + var rMenu = this; + var currentCategory = ''; + rMenu.menu.bindings = $(); + $.each(items, function (index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append('
  • ' + item.category + '
  • '); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr('aria-label', item.category + ' : ' + item.l); + li.attr('class', 'result-item'); + } else { + li.attr('aria-label', item.l); + li.attr('class', 'result-item'); + } + }); + }, + _renderItem: function (ul, item) { + var label = ''; + var matcher = createMatcher(escapeHtml(searchPattern), 'g'); + var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = + item.p && item.p !== UNNAMED + ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = + item.p && item.p !== UNNAMED + ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) - delta += match[i].length; + var li = $('
  • ').appendTo(ul); + var div = $('
    ').appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html( + label + + ' (' + + item.h + + ')
    ' + + item.d + + '
    ', + ); + } else { + div.html(label + ' (' + item.h + ')'); + } + } else { + if (item.m) { + div.html(item.m + '/' + label); + } else { + div.html(label); + } } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) - delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) - delta += 5; + return li; + }, +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { + leftBoundaryMatch = 0; + } else if ( + '_' === input[index - 1] || + (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) + ) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf('('); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? '/' : '.'; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; } - return leftBoundaryMatch + periferalMatch + (delta / 200); - + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) delta += 5; + } + return leftBoundaryMatch + periferalMatch + delta / 200; } function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === "") { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ""); - var fallbackMatcher = new RegExp(fallbackPattern, "i"); + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === '') { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ''); + var fallbackMatcher = new RegExp(fallbackPattern, 'i'); - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ranking: ranking, item: item}); - } - return newResults.length <= MAX_RESULTS; - }); - return newResults.sort(function(e1, e2) { - return e1.ranking - e2.ranking; - }).map(function(e) { - return e.item; - }); + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ ranking: ranking, item: item }); } - return []; + return newResults.length <= MAX_RESULTS; + }); + return newResults + .sort(function (e1, e2) { + return e1.ranking - e2.ranking; + }) + .map(function (e) { + return e.item; + }); } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); - result = result.concat(secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - })); - } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher( + indexArray, + fallbackMatcher, + category, + nameFunc, + ); + result = result.concat( + secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + }), + ); } + } - searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); - searchIndex(packageSearchIndex, catPackages, function(item) { - return (item.m && request.term.indexOf("/") > -1) - ? (item.m + "/" + item.l) : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function(item) { - return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function(item) { - return request.term.indexOf(".") > -1 - ? item.p + "." + item.c + "." + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + searchIndex(moduleSearchIndex, catModules, function (item) { + return item.l; + }); + searchIndex(packageSearchIndex, catPackages, function (item) { + return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function (item) { + return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function (item) { + return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function (item) { + return item.l; + }); - if (!indexFilesLoaded()) { - updateSearchResults = function() { - doSearch(request, response); - } - result.unshift(loading); - } else { - updateSearchResults = function() {}; - } - response(result); + if (!indexFilesLoaded()) { + updateSearchResults = function () { + doSearch(request, response); + }; + result.unshift(loading); + } else { + updateSearchResults = function () {}; + } + response(result); } -$(function() { - $("#search-input").catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function(event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $("#search-input").empty(); - } - }, - autoFocus: true, - focus: function(event, ui) { - return false; - }, - position: { - collision: "flip" - }, - select: function(event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += "module-summary.html"; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + ".html"; - } else { - url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + ".html" + "#"; - } else { - url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; - } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; - } - $("#search-input").focus(); - } +$(function () { + $('#search-input').catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function (event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $('#search-input').empty(); + } + }, + autoFocus: true, + focus: function (event, ui) { + return false; + }, + position: { + collision: 'flip', + }, + select: function (event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += 'module-summary.html'; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + '.html'; + } else { + url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + '.html' + '#'; + } else { + url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; } - }); + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $('#search-input').focus(); + } + }, + }); }); diff --git a/docs/Path/serialized-form.html b/docs/Path/serialized-form.html index ecbc3349..54d1be79 100644 --- a/docs/Path/serialized-form.html +++ b/docs/Path/serialized-form.html @@ -1,84 +1,147 @@ - + - - -Serialized Form (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Serialized Form

    -
    - -
    -
    -
    - + + + Serialized Form (Path API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Serialized Form

    +
    + +
    +
    +
    + diff --git a/docs/Path/stylesheet.css b/docs/Path/stylesheet.css index 4a576bd2..236a306f 100644 --- a/docs/Path/stylesheet.css +++ b/docs/Path/stylesheet.css @@ -12,86 +12,89 @@ */ body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; - padding:0; - height:100%; - width:100%; + background-color: #ffffff; + color: #353833; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; + margin: 0; + padding: 0; + height: 100%; + width: 100%; } iframe { - margin:0; - padding:0; - height:100%; - width:100%; - overflow-y:scroll; - border:none; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a[href]:hover, a[href]:focus { - text-decoration:none; - color:#bb7a2a; + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow-y: scroll; + border: none; +} +a:link, +a:visited { + text-decoration: none; + color: #4a6782; +} +a[href]:hover, +a[href]:focus { + text-decoration: none; + color: #bb7a2a; } a[name] { - color:#353833; + color: #353833; } pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; } h1 { - font-size:20px; + font-size: 20px; } h2 { - font-size:18px; + font-size: 18px; } h3 { - font-size:16px; + font-size: 16px; } h4 { - font-size:15px; + font-size: 15px; } h5 { - font-size:14px; + font-size: 14px; } h6 { - font-size:13px; + font-size: 13px; } ul { - list-style-type:disc; + list-style-type: disc; } -code, tt { - font-family:'DejaVu Sans Mono', monospace; +code, +tt { + font-family: 'DejaVu Sans Mono', monospace; } :not(h1, h2, h3, h4, h5, h6) > code, :not(h1, h2, h3, h4, h5, h6) > tt { - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; + font-size: 14px; + padding-top: 4px; + margin-top: 8px; + line-height: 1.4em; } dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + padding-top: 4px; } .summary-table dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + vertical-align: top; + padding-top: 4px; } sup { - font-size:8px; + font-size: 8px; } button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; } /* * Styles for HTML generated by javadoc. @@ -103,596 +106,654 @@ button { * Styles for document title and copyright. */ .clear { - clear:both; - height:0; - overflow:hidden; + clear: both; + height: 0; + overflow: hidden; } .about-language { - float:right; - padding:0 21px 8px 8px; - font-size:11px; - margin-top:-9px; - height:2.9em; + float: right; + padding: 0 21px 8px 8px; + font-size: 11px; + margin-top: -9px; + height: 2.9em; } .legal-copy { - margin-left:.5em; + margin-left: 0.5em; } .tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; + background-color: #0066ff; + color: #ffffff; + padding: 8px; + width: 5em; + font-weight: bold; } /* * Styles for navigation bar. */ @media screen { - .flex-box { - position:fixed; - display:flex; - flex-direction:column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } + .flex-box { + position: fixed; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } } .top-nav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - min-height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; + background-color: #4d7a97; + color: #ffffff; + float: left; + padding: 0; + width: 100%; + clear: right; + min-height: 2.8em; + padding-top: 10px; + overflow: hidden; + font-size: 12px; } .sub-nav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; + background-color: #dee3e9; + float: left; + width: 100%; + overflow: hidden; + font-size: 12px; } .sub-nav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; + clear: left; + float: left; + padding: 0 0 5px 6px; + text-transform: uppercase; } .sub-nav .nav-list { - padding-top:5px; + padding-top: 5px; } ul.nav-list { - display:block; - margin:0 25px 0 0; - padding:0; + display: block; + margin: 0 25px 0 0; + padding: 0; } ul.sub-nav-list { - float:left; - margin:0 25px 0 0; - padding:0; + float: left; + margin: 0 25px 0 0; + padding: 0; } ul.nav-list li { - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; + list-style: none; + float: left; + padding: 5px 6px; + text-transform: uppercase; } .sub-nav .nav-list-search { - float:right; - margin:0 0 0 0; - padding:5px 6px; - clear:none; + float: right; + margin: 0 0 0 0; + padding: 5px 6px; + clear: none; } .nav-list-search label { - position:relative; - right:-16px; + position: relative; + right: -16px; } ul.sub-nav-list li { - list-style:none; - float:left; - padding-top:10px; + list-style: none; + float: left; + padding-top: 10px; } -.top-nav a:link, .top-nav a:active, .top-nav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; +.top-nav a:link, +.top-nav a:active, +.top-nav a:visited { + color: #ffffff; + text-decoration: none; + text-transform: uppercase; } .top-nav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; + text-decoration: none; + color: #bb7a2a; + text-transform: uppercase; } .nav-bar-cell1-rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; + background-color: #f8981d; + color: #253441; + margin: auto 5px; } .skip-nav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; + position: absolute; + top: auto; + left: -9999px; + overflow: hidden; } /* * Hide navigation links and search box in print layout */ @media print { - ul.nav-list, div.sub-nav { - display:none; - } + ul.nav-list, + div.sub-nav { + display: none; + } } /* * Styles for page header and footer. */ .title { - color:#2c4557; - margin:10px 0; + color: #2c4557; + margin: 10px 0; } .sub-title { - margin:5px 0 0 0; + margin: 5px 0 0 0; } .header ul { - margin:0 0 15px 0; - padding:0; + margin: 0 0 15px 0; + padding: 0; } -.header ul li, .footer ul li { - list-style:none; - font-size:13px; +.header ul li, +.footer ul li { + list-style: none; + font-size: 13px; } /* * Styles for headings. */ body.class-declaration-page .summary h2, body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding:0; - margin:15px 0; +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding: 0; + margin: 15px 0; } body.class-declaration-page .summary h3, body.class-declaration-page .details h3, body.class-declaration-page .summary .inherited-list h2 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; + background-color: #dee3e9; + border: 1px solid #d0d9e0; + margin: 0 0 6px -8px; + padding: 7px 5px; } /* * Styles for page layout containers. */ main { - clear:both; - padding:10px 20px; - position:relative; + clear: both; + padding: 10px 20px; + position: relative; } dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: bold; + margin: 10px 0 0 0; + color: #4e4e4e; } dl.notes > dd { - margin:5px 10px 10px 0; - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + margin: 5px 10px 10px 0; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; } dl.name-value > dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; + margin-left: 1px; + font-size: 1.1em; + display: inline; + font-weight: bold; } dl.name-value > dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; + margin: 0 0 0 1px; + font-size: 1.1em; + display: inline; } /* * Styles for lists. */ li.circle { - list-style:circle; + list-style: circle; } ul.horizontal li { - display:inline; - font-size:0.9em; + display: inline; + font-size: 0.9em; } div.inheritance { - margin:0; - padding:0; + margin: 0; + padding: 0; } div.inheritance div.inheritance { - margin-left:2em; + margin-left: 2em; } ul.block-list, ul.details-list, ul.member-list, ul.summary-list { - margin:10px 0 10px 0; - padding:0; + margin: 10px 0 10px 0; + padding: 0; } ul.block-list > li, ul.details-list > li, ul.member-list > li, ul.summary-list > li { - list-style:none; - margin-bottom:15px; - line-height:1.4; + list-style: none; + margin-bottom: 15px; + line-height: 1.4; } -.summary-table dl, .summary-table dl dt, .summary-table dl dd { - margin-top:0; - margin-bottom:1px; +.summary-table dl, +.summary-table dl dt, +.summary-table dl dd { + margin-top: 0; + margin-bottom: 1px; } -ul.see-list, ul.see-list-long { - padding-left: 0; - list-style: none; +ul.see-list, +ul.see-list-long { + padding-left: 0; + list-style: none; } ul.see-list li { - display: inline; + display: inline; } ul.see-list li:not(:last-child):after, ul.see-list-long li:not(:last-child):after { - content: ", "; - white-space: pre-wrap; + content: ', '; + white-space: pre-wrap; } /* * Styles for tables. */ -.summary-table, .details-table { - width:100%; - border-spacing:0; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; - padding:0; +.summary-table, +.details-table { + width: 100%; + border-spacing: 0; + border-left: 1px solid #eee; + border-right: 1px solid #eee; + border-bottom: 1px solid #eee; + padding: 0; } .caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0; - padding-top:10px; - padding-left:1px; - margin:0; - white-space:pre; -} -.caption a:link, .caption a:visited { - color:#1f389c; + position: relative; + text-align: left; + background-repeat: no-repeat; + color: #253441; + font-weight: bold; + clear: none; + overflow: hidden; + padding: 0; + padding-top: 10px; + padding-left: 1px; + margin: 0; + white-space: pre; +} +.caption a:link, +.caption a:visited { + color: #1f389c; } .caption a:hover, .caption a:active { - color:#FFFFFF; + color: #ffffff; } .caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; + white-space: nowrap; + padding-top: 5px; + padding-left: 12px; + padding-right: 12px; + padding-bottom: 7px; + display: inline-block; + float: left; + background-color: #f8981d; + border: none; + height: 16px; } div.table-tabs { - padding:10px 0 0 1px; - margin:0; + padding: 10px 0 0 1px; + margin: 0; } div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; } div.table-tabs > button.active-table-tab { - background: #F8981D; - color: #253441; + background: #f8981d; + color: #253441; } div.table-tabs > button.table-tab { - background: #4D7A97; - color: #FFFFFF; + background: #4d7a97; + color: #ffffff; } .two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); } .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); } .four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( + 10%, + auto + ); } @media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } } @media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } } @media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, .details-table > div { - text-align:left; - padding: 8px 3px 3px 7px; -} -.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { - vertical-align:top; - padding-right:0; - padding-top:8px; - padding-bottom:3px; + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, +.details-table > div { + text-align: left; + padding: 8px 3px 3px 7px; +} +.col-first, +.col-second, +.col-last, +.col-constructor-name, +.col-summary-item-name { + vertical-align: top; + padding-right: 0; + padding-top: 8px; + padding-bottom: 3px; } .table-header { - background:#dee3e9; - font-weight: bold; -} -.col-first, .col-first { - font-size:13px; -} -.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { - font-size:13px; + background: #dee3e9; + font-weight: bold; +} +.col-first, +.col-first { + font-size: 13px; +} +.col-second, +.col-second, +.col-last, +.col-constructor-name, +.col-summary-item-name, +.col-last { + font-size: 13px; } -.col-first, .col-second, .col-constructor-name { - vertical-align:top; - overflow: auto; +.col-first, +.col-second, +.col-constructor-name { + vertical-align: top; + overflow: auto; } .col-last { - white-space:normal; -} -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-constructor-name a:link, .col-constructor-name a:visited, -.col-summary-item-name a:link, .col-summary-item-name a:visited, -.constant-values-container a:link, .constant-values-container a:visited, -.all-classes-container a:link, .all-classes-container a:visited, -.all-packages-container a:link, .all-packages-container a:visited { - font-weight:bold; + white-space: normal; +} +.col-first a:link, +.col-first a:visited, +.col-second a:link, +.col-second a:visited, +.col-first a:link, +.col-first a:visited, +.col-second a:link, +.col-second a:visited, +.col-constructor-name a:link, +.col-constructor-name a:visited, +.col-summary-item-name a:link, +.col-summary-item-name a:visited, +.constant-values-container a:link, +.constant-values-container a:visited, +.all-classes-container a:link, +.all-classes-container a:visited, +.all-packages-container a:link, +.all-packages-container a:visited { + font-weight: bold; } .table-sub-heading-color { - background-color:#EEEEFF; + background-color: #eeeeff; } -.even-row-color, .even-row-color .table-header { - background-color:#FFFFFF; +.even-row-color, +.even-row-color .table-header { + background-color: #ffffff; } -.odd-row-color, .odd-row-color .table-header { - background-color:#EEEEEF; +.odd-row-color, +.odd-row-color .table-header { + background-color: #eeeeef; } /* * Styles for contents. */ .deprecated-content { - margin:0; - padding:10px 0; + margin: 0; + padding: 10px 0; } div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; } .col-last div { - padding-top:0; + padding-top: 0; } .col-last a { - padding-bottom:3px; + padding-bottom: 3px; } .module-signature, .package-signature, .type-signature, .member-signature { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - margin:14px 0; - white-space: pre-wrap; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + margin: 14px 0; + white-space: pre-wrap; } .module-signature, .package-signature, .type-signature { - margin-top: 0; + margin-top: 0; } .member-signature .type-parameters-long, .member-signature .parameters, .member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; + display: inline-block; + vertical-align: top; + white-space: pre; } .member-signature .type-parameters { - white-space: normal; + white-space: normal; } /* * Styles for formatting effect. */ .source-line-no { - color:green; - padding:0 30px 0 0; + color: green; + padding: 0 30px 0 0; } h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; + visibility: hidden; + overflow: hidden; + font-size: 10px; } .block { - display:block; - margin:0 10px 5px 0; - color:#474747; -} -.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, -.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, -.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { - font-weight:bold; -} -.deprecation-comment, .help-footnote, .preview-comment { - font-style:italic; + display: block; + margin: 0 10px 5px 0; + color: #474747; +} +.deprecated-label, +.descfrm-type-label, +.implementation-label, +.member-name-label, +.member-name-link, +.module-label-in-package, +.module-label-in-type, +.override-specify-label, +.package-label-in-type, +.package-hierarchy-label, +.type-name-label, +.type-name-link, +.search-tag-link, +.preview-label { + font-weight: bold; +} +.deprecation-comment, +.help-footnote, +.preview-comment { + font-style: italic; } .deprecation-block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + border-style: solid; + border-width: thin; + border-radius: 10px; + padding: 10px; + margin-bottom: 10px; + margin-right: 10px; + display: inline-block; } .preview-block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + border-style: solid; + border-width: thin; + border-radius: 10px; + padding: 10px; + margin-bottom: 10px; + margin-right: 10px; + display: inline-block; } div.block div.deprecation-comment { - font-style:normal; + font-style: normal; } /* * Styles specific to HTML5 elements. */ -main, nav, header, footer, section { - display:block; +main, +nav, +header, +footer, +section { + display: block; } /* * Styles for javadoc search. */ .ui-autocomplete-category { - font-weight:bold; - font-size:15px; - padding:7px 0 7px 3px; - background-color:#4D7A97; - color:#FFFFFF; + font-weight: bold; + font-size: 15px; + padding: 7px 0 7px 3px; + background-color: #4d7a97; + color: #ffffff; } .result-item { - font-size:13px; + font-size: 13px; } .ui-autocomplete { - max-height:85%; - max-width:65%; - overflow-y:scroll; - overflow-x:scroll; - white-space:nowrap; - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + max-height: 85%; + max-width: 65%; + overflow-y: scroll; + overflow-x: scroll; + white-space: nowrap; + box-shadow: + 0 3px 6px rgba(0, 0, 0, 0.16), + 0 3px 6px rgba(0, 0, 0, 0.23); } ul.ui-autocomplete { - position:fixed; - z-index:999999; - background-color: #FFFFFF; + position: fixed; + z-index: 999999; + background-color: #ffffff; } -ul.ui-autocomplete li { - float:left; - clear:both; - width:100%; +ul.ui-autocomplete li { + float: left; + clear: both; + width: 100%; } .result-highlight { - font-weight:bold; + font-weight: bold; } .ui-autocomplete .result-item { - font-size: inherit; + font-size: inherit; } #search-input { - background-image:url('resources/glass.png'); - background-size:13px; - background-repeat:no-repeat; - background-position:2px 3px; - padding-left:20px; - position:relative; - right:-18px; - width:400px; + background-image: url('resources/glass.png'); + background-size: 13px; + background-repeat: no-repeat; + background-position: 2px 3px; + padding-left: 20px; + position: relative; + right: -18px; + width: 400px; } #reset-button { - background-color: rgb(255,255,255); - background-image:url('resources/x.png'); - background-position:center; - background-repeat:no-repeat; - background-size:12px; - border:0 none; - width:16px; - height:16px; - position:relative; - left:-4px; - top:-4px; - font-size:0px; + background-color: rgb(255, 255, 255); + background-image: url('resources/x.png'); + background-position: center; + background-repeat: no-repeat; + background-size: 12px; + border: 0 none; + width: 16px; + height: 16px; + position: relative; + left: -4px; + top: -4px; + font-size: 0px; } .watermark { - color:#545454; + color: #545454; } .search-tag-desc-result { - font-style:italic; - font-size:11px; + font-style: italic; + font-size: 11px; } .search-tag-holder-result { - font-style:italic; - font-size:12px; + font-style: italic; + font-size: 12px; } .search-tag-result:target { - background-color:yellow; + background-color: yellow; } .module-graph span { - display:none; - position:absolute; + display: none; + position: absolute; } .module-graph:hover span { - display:block; - margin: -100px 0 0 100px; - z-index: 1; + display: block; + margin: -100px 0 0 100px; + z-index: 1; } .inherited-list { - margin: 10px 0 10px 0; + margin: 10px 0 10px 0; } section.class-description { - line-height: 1.4; -} -.summary section[class$="-summary"], .details section[class$="-details"], -.class-uses .detail, .serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, section[class$="-details"] .detail { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; + line-height: 1.4; +} +.summary section[class$='-summary'], +.details section[class$='-details'], +.class-uses .detail, +.serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, +section[class$='-details'] .detail { + padding: 0 0 5px 8px; + background-color: #ffffff; + border: none; } .vertical-separator { - padding: 0 5px; + padding: 0 5px; } ul.help-section-list { - margin: 0; + margin: 0; } ul.help-subtoc > li { display: inline-block; @@ -700,32 +761,34 @@ ul.help-subtoc > li { font-size: smaller; } ul.help-subtoc > li::before { - content: "\2022" ; - padding-right:2px; + content: '\2022'; + padding-right: 2px; } span.help-note { - font-style: italic; + font-style: italic; } /* * Indicator icon for external links. */ -main a[href*="://"]::after { - content:""; - display:inline-block; - background-image:url('data:image/svg+xml; utf8, \ +main a[href*="://"]::after +{ + content: ''; + display: inline-block; + background-image: url('data:image/svg+xml; utf8, \ \ \ '); - background-size:100% 100%; - width:7px; - height:7px; - margin-left:2px; - margin-bottom:4px; + background-size: 100% 100%; + width: 7px; + height: 7px; + margin-left: 2px; + margin-bottom: 4px; } main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after { - background-image:url('data:image/svg+xml; utf8, \ +main a[href*="://"]:focus::after +{ + background-image: url('data:image/svg+xml; utf8, \ \ \ @@ -754,116 +817,135 @@ main a[href*="://"]:focus::after { table.borderless, table.plain, table.striped { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } table.borderless > caption, table.plain > caption, table.striped > caption { - font-weight: bold; - font-size: smaller; + font-weight: bold; + font-size: smaller; } -table.borderless th, table.borderless td, -table.plain th, table.plain td, -table.striped th, table.striped td { - padding: 2px 5px; +table.borderless th, +table.borderless td, +table.plain th, +table.plain td, +table.striped th, +table.striped td { + padding: 2px 5px; } table.borderless, -table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, -table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { - background-color: transparent; +table.borderless > thead > tr > th, +table.borderless > tbody > tr > th, +table.borderless > tr > th, +table.borderless > thead > tr > td, +table.borderless > tbody > tr > td, +table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, +table.borderless > tbody > tr, +table.borderless > tr { + background-color: transparent; } table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, -table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, +table.plain > tbody tr, +table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, +table.plain > tbody > tr > th, +table.plain > tr > th, +table.plain > thead > tr > td, +table.plain > tbody > tr > td, +table.plain > tr > td { + border: 1px solid black; } table.striped { - border-collapse: collapse; - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; } table.striped > thead { - background-color: #E3E3E3; + background-color: #e3e3e3; } -table.striped > thead > tr > th, table.striped > thead > tr > td { - border: 1px solid black; +table.striped > thead > tr > th, +table.striped > thead > tr > td { + border: 1px solid black; } table.striped > tbody > tr:nth-child(even) { - background-color: #EEE + background-color: #eee; } table.striped > tbody > tr:nth-child(odd) { - background-color: #FFF + background-color: #fff; } -table.striped > tbody > tr > th, table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; +table.striped > tbody > tr > th, +table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; } table.striped > tbody > tr > th { - font-weight: normal; + font-weight: normal; } /** * Tweak font sizes and paddings for small screens. */ @media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } + #search-input { + width: 300px; + } } @media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$="-summary"], .details section[class$="-details"], - .class-uses .detail, .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$='-summary'], + .details section[class$='-details'], + .class-uses .detail, + .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } } @media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } } diff --git a/docs/Path/tag-search-index.js b/docs/Path/tag-search-index.js index f38b3cb3..6080d404 100644 --- a/docs/Path/tag-search-index.js +++ b/docs/Path/tag-search-index.js @@ -1 +1,2 @@ -tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file +tagSearchIndex = [{ l: 'Serialized Form', h: '', u: 'serialized-form.html' }]; +updateSearchResults(); diff --git a/docs/Path/type-search-index.js b/docs/Path/type-search-index.js index 6286d5b7..941e2e37 100644 --- a/docs/Path/type-search-index.js +++ b/docs/Path/type-search-index.js @@ -1 +1,88 @@ -typeSearchIndex = [{"p":"com.technototes.path.util","l":"RegressionUtil.AccelResult"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.technototes.path.util","l":"AxesSigns"},{"p":"com.technototes.path.subsystem","l":"TankConstants.AxialPID"},{"p":"com.technototes.path.util","l":"BNO055IMUUtil"},{"p":"com.technototes.path.geometry","l":"ConfigurablePose"},{"p":"com.technototes.path.geometry","l":"ConfigurablePoseD"},{"p":"com.technototes.path.geometry","l":"ConfigurableVector"},{"p":"com.technototes.path.subsystem","l":"TankConstants.CrossPID"},{"p":"com.technototes.path.util","l":"DashboardUtil"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants"},{"p":"com.technototes.path.subsystem","l":"DistanceSensorLocalizer"},{"p":"com.technototes.path.trajectorysequence","l":"EmptySequenceException"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.EncoderOverflow"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.ForwardOffset"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.GearRatio"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.GearRatio"},{"p":"com.technototes.path.subsystem","l":"TankConstants.GearRatio"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.HeadPID"},{"p":"com.technototes.path.subsystem","l":"TankConstants.HeadPID"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.KA"},{"p":"com.technototes.path.subsystem","l":"TankConstants.KA"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.KStatic"},{"p":"com.technototes.path.subsystem","l":"TankConstants.KStatic"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.KV"},{"p":"com.technototes.path.subsystem","l":"TankConstants.KV"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.LateralDistance"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.LateralMult"},{"p":"com.technototes.path.subsystem","l":"TankConstants.LateralMult"},{"p":"com.technototes.path.util","l":"LoggingUtil"},{"p":"com.technototes.path.util","l":"LynxModuleUtil.LynxFirmwareVersion"},{"p":"com.technototes.path.util","l":"LynxModuleUtil.LynxFirmwareVersionException"},{"p":"com.technototes.path.util","l":"LynxModuleUtil"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxAccel"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxAccel"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxAngleAccel"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxAngleAccel"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxAngleVelo"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxAngleVelo"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxRPM"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxRPM"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MaxVelo"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MaxVelo"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants"},{"p":"com.technototes.path.command","l":"MecanumDriveCommand"},{"p":"com.technototes.path.subsystem","l":"PathingMecanumDrivebaseSubsystem.Mode"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.MotorVeloPID"},{"p":"com.technototes.path.subsystem","l":"TankConstants.MotorVeloPID"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.OmegaWeight"},{"p":"com.technototes.path.subsystem","l":"TankConstants.OmegaWeight"},{"p":"com.technototes.path.subsystem","l":"PathingMecanumDrivebaseSubsystem"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.PoseLimit"},{"p":"com.technototes.path.subsystem","l":"TankConstants.PoseLimit"},{"p":"com.technototes.path.util","l":"RegressionUtil.RampResult"},{"p":"com.technototes.path.command","l":"RegenerativeTrajectoryCommand"},{"p":"com.technototes.path.command","l":"RegenerativeTrajectorySequenceCommand"},{"p":"com.technototes.path.util","l":"RegressionUtil"},{"p":"com.technototes.path.command","l":"ResetGyroCommand"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"SequenceSegment"},{"p":"com.technototes.path.subsystem","l":"TankConstants"},{"p":"com.technototes.path.subsystem","l":"TankDrivebaseSubsystem"},{"p":"com.technototes.path.subsystem","l":"ThreeDeadWheelLocalizer"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.TicksPerRev"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.TicksPerRev"},{"p":"com.technototes.path.subsystem","l":"TankConstants.TicksPerRev"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.TrackWidth"},{"p":"com.technototes.path.subsystem","l":"TankConstants.TrackWidth"},{"p":"com.technototes.path.command","l":"TrajectoryCommand"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"TrajectorySegment"},{"p":"com.technototes.path.trajectorysequence","l":"TrajectorySequence"},{"p":"com.technototes.path.trajectorysequence","l":"TrajectorySequenceBuilder"},{"p":"com.technototes.path.command","l":"TrajectorySequenceCommand"},{"p":"com.technototes.path.trajectorysequence","l":"TrajectorySequenceRunner"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.TransPID"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"TurnSegment"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.UseDriveEncoder"},{"p":"com.technototes.path.subsystem","l":"TankConstants.UseDriveEncoder"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.VXWeight"},{"p":"com.technototes.path.subsystem","l":"TankConstants.VXWeight"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.VYWeight"},{"p":"com.technototes.path.trajectorysequence.sequencesegment","l":"WaitSegment"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.WheelBase"},{"p":"com.technototes.path.subsystem","l":"DeadWheelConstants.WheelRadius"},{"p":"com.technototes.path.subsystem","l":"MecanumConstants.WheelRadius"},{"p":"com.technototes.path.subsystem","l":"TankConstants.WheelRadius"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [ + { p: 'com.technototes.path.util', l: 'RegressionUtil.AccelResult' }, + { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, + { p: 'com.technototes.path.util', l: 'AxesSigns' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.AxialPID' }, + { p: 'com.technototes.path.util', l: 'BNO055IMUUtil' }, + { p: 'com.technototes.path.geometry', l: 'ConfigurablePose' }, + { p: 'com.technototes.path.geometry', l: 'ConfigurablePoseD' }, + { p: 'com.technototes.path.geometry', l: 'ConfigurableVector' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.CrossPID' }, + { p: 'com.technototes.path.util', l: 'DashboardUtil' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants' }, + { p: 'com.technototes.path.subsystem', l: 'DistanceSensorLocalizer' }, + { p: 'com.technototes.path.trajectorysequence', l: 'EmptySequenceException' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.EncoderOverflow' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.ForwardOffset' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.GearRatio' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.GearRatio' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.GearRatio' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.HeadPID' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.HeadPID' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KA' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.KA' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KStatic' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.KStatic' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KV' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.KV' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.LateralDistance' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.LateralMult' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.LateralMult' }, + { p: 'com.technototes.path.util', l: 'LoggingUtil' }, + { p: 'com.technototes.path.util', l: 'LynxModuleUtil.LynxFirmwareVersion' }, + { p: 'com.technototes.path.util', l: 'LynxModuleUtil.LynxFirmwareVersionException' }, + { p: 'com.technototes.path.util', l: 'LynxModuleUtil' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAccel' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAccel' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAngleAccel' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAngleAccel' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAngleVelo' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAngleVelo' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxRPM' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxRPM' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxVelo' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxVelo' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants' }, + { p: 'com.technototes.path.command', l: 'MecanumDriveCommand' }, + { p: 'com.technototes.path.subsystem', l: 'PathingMecanumDrivebaseSubsystem.Mode' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MotorVeloPID' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.MotorVeloPID' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.OmegaWeight' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.OmegaWeight' }, + { p: 'com.technototes.path.subsystem', l: 'PathingMecanumDrivebaseSubsystem' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.PoseLimit' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.PoseLimit' }, + { p: 'com.technototes.path.util', l: 'RegressionUtil.RampResult' }, + { p: 'com.technototes.path.command', l: 'RegenerativeTrajectoryCommand' }, + { p: 'com.technototes.path.command', l: 'RegenerativeTrajectorySequenceCommand' }, + { p: 'com.technototes.path.util', l: 'RegressionUtil' }, + { p: 'com.technototes.path.command', l: 'ResetGyroCommand' }, + { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'SequenceSegment' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants' }, + { p: 'com.technototes.path.subsystem', l: 'TankDrivebaseSubsystem' }, + { p: 'com.technototes.path.subsystem', l: 'ThreeDeadWheelLocalizer' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.TicksPerRev' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TicksPerRev' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.TicksPerRev' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TrackWidth' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.TrackWidth' }, + { p: 'com.technototes.path.command', l: 'TrajectoryCommand' }, + { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'TrajectorySegment' }, + { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequence' }, + { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequenceBuilder' }, + { p: 'com.technototes.path.command', l: 'TrajectorySequenceCommand' }, + { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequenceRunner' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TransPID' }, + { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'TurnSegment' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.UseDriveEncoder' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.UseDriveEncoder' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.VXWeight' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.VXWeight' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.VYWeight' }, + { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'WaitSegment' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.WheelBase' }, + { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.WheelRadius' }, + { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.WheelRadius' }, + { p: 'com.technototes.path.subsystem', l: 'TankConstants.WheelRadius' }, +]; +updateSearchResults(); diff --git a/docs/TechnoLib/allclasses-index.html b/docs/TechnoLib/allclasses-index.html index 4d79fa7b..a0615610 100644 --- a/docs/TechnoLib/allclasses-index.html +++ b/docs/TechnoLib/allclasses-index.html @@ -1,463 +1,1480 @@ - + - - -All Classes and Interfaces (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    -
    An enumeration to specify which alliance the bot is on (Red, Blue, or None)
    -
    - -
    -
    Not sure what this is for.
    -
    - -
    -
    Not sure what this is for.
    -
    - -
    -
    This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate.
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Class for analog sensors
    -
    - -
    -
    The class to extend custom gamepad axis from
    -
    - -
    -
    Class for bindings to extend
    -
    - -
    -
    Button type
    -
    - -
     
    - -
    -
    The class to extend custom gamepad buttons from
    -
    - -
     
    - -
    -
    A command that allows choosing among a number of commands based on variety of conditions
    -
    - -
    -
    Enum for Colors and some formatting
    -
    - -
    -
    TODO: Remove this.
    -
    - -
     
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Class for color sensors
    -
    - -
    -
    The root Command class
    -
    - -
    -
    The command state enum
    -
    - -
    -
    Class for command axis for the gamepad
    -
    - -
    Deprecated.
    - -
    -
    Command implementation of Binding
    -
    - -
    -
    Class for command buttons for gamepad
    -
    - -
    -
    Class for command gamepads that specifies class params
    -
    - -
    -
    Root class for all command groups (Sequential, Parallel, etc...) - WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than - using this one directly.
    -
    - -
    -
    Class for gamepad-command integration
    -
    - -
    -
    Class for command based op modes
    -
    - -
    -
    Enum for op mode state
    -
    - -
    -
    This is a "singleton" object for scheduling commands.
    -
    - -
    -
    Simple class for commands that require a certain condition to be true to run
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    class for subsystems
    -
    - -
     
    - -
    -
    Enum for the priority of the differential.
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Class for digital sensors
    -
    - -
    -
    TODO: Remove this.
    -
    -
    DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for DriveBase subsystems
    -
    - -
    -
    This isn't worth actually doing.
    -
    - -
    -
    Interface for anything that can be enabled/disabled
    -
    -
    EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for encoded motors
    -
    -
    EncodedMotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for encoded motor groups
    -
    - -
    -
    Class for encoded motor subsystems
    -
    - -
    -
    Interfaces for encoders to use
    -
    - -
    -
    The root class for logging entries
    -
    - -
    -
    A wrapper around an AnalogInput that enables "zeroing" for usefulness
    -
    -
    GamepadBase<T extends ButtonBase,U extends AxisBase>
    -
    -
    A class to extend gamepads from, it does the internal processing for you.
    -
    - -
    -
    Axis enum for all axis on gamepad
    -
    - -
    -
    Button enum for all buttons on gamepad
    -
    - -
    -
    A class for dpads
    -
    - -
    -
    A class for gamepad sticks
    -
    - -
    -
    TODO: Remove this.
    -
    -
    HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice>
    -
    Deprecated.
    - -
    Deprecated.
    - -
     
    - -
     
    - -
    -
    An interface for a single-angle gyroscope
    -
    - -
     
    - -
    -
    Class for the IMU (Inertial Movement Units) that implements the IGyro interface
    -
    - -
    -
    The direction of the axes signs when remapping the axes
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    This is duplicated in the IMU class
    -
    - -
    -
    A simple Observation-based integral calculator over time
    -
    - -
    -
    Interface for anything that can be inverted
    -
    - -
     
    - -
    -
    The root annotation for annotation logging, also doubles as a basic string log
    -
    - -
     
    - -
     
    - -
    -
    Log a number
    -
    - -
    -
    Annotations for configuring Logs
    -
    - -
    -
    Annotation for allowing Opmodes to log this item
    -
    - -
    -
    Annotation for denying Opmodes to log this item
    -
    - -
    -
    Annotation to completely disable the entry
    -
    - -
    -
    Annotation for determining when logged item will be sent to Telemetry
    -
    - -
    -
    All classes with annotations for logging must extend this all the way up the hierarchy up to the op mode
    -
    - -
    -
    The class to manage logging
    -
    - -
     
    - -
    -
    Class with various math functions
    -
    -
    Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for motors
    -
    - -
    -
    TODO: Remove this.
    -
    - -
    -
    Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding - slot's motor direction
    -
    - -
     
    -
    MotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for a group of motors
    -
    -
    MotorSubsystem<T extends Motor<?>>
    -
    -
    Class for motor subsystems
    -
    - -
     
    - -
    -
    Command group to run commands in parallel until all of them finish
    -
    - -
    -
    Command group to run commands in parallel until one particular command completes
    -
    - -
    -
    Command group to run commands in parallel until *one* is finished
    -
    - -
    -
    An interface for classes to have the periodic function
    -
    - -
    -
    Helper class for tracking a range
    -
    - -
    Deprecated.
    - -
    -
    Root class for the Robot Library (I will put important stuff here)
    -
    -
    Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice>
    -
    Deprecated.
    - -
    Deprecated.
    - -
    -
    A grouping command which runs a list of commands in sequence
    -
    - -
    Deprecated.
    - -
    -
    TODO: Remove this.
    -
    - -
    Deprecated.
    - -
     
    - -
     
    - -
    -
    Class for servo subsystems
    -
    -
    SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for mecanum/xdrive drivebases
    -
    - -
    -
    This is a functional interface, when 'accept' is invoked, will only invoke the 'consume' method - when a different value is provided.
    -
    - -
    Deprecated.
    - -
    -
    Interface for objects that behave as sticks
    -
    - -
     
    - -
     
    -
    TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
    -
    -
    Class for drivebase subsystems
    -
    - -
    -
    A command to do nothing but wait for a span of time.
    -
    -
    -
    -
    -
    -
    -
    - + + + All Classes and Interfaces (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes and Interfaces

    +
    +
    +
    + +
    +
    +
    +
    Class
    +
    Description
    +
    + Alliance +
    +
    +
    + An enumeration to specify which alliance the bot is on (Red, Blue, or None) +
    +
    + +
    +
    Not sure what this is for.
    +
    + +
    +
    Not sure what this is for.
    +
    + +
    +
    + This feels over-engineered, but it's probably for some obnoxious Java thing, + unfortunate. +
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Class for analog sensors
    +
    +
    + AxisBase +
    +
    +
    The class to extend custom gamepad axis from
    +
    +
    + Binding<T + extends + BooleanSupplier> +
    +
    +
    Class for bindings to extend
    +
    + +
    +
    Button type
    +
    + +
    +   +
    + +
    +
    The class to extend custom gamepad buttons from
    +
    + +
    +   +
    + +
    +
    + A command that allows choosing among a number of commands based on variety of + conditions +
    +
    +
    + Color +
    +
    +
    Enum for Colors and some formatting
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +   +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Class for color sensors
    +
    +
    + Command +
    +
    +
    The root Command class
    +
    + +
    +
    The command state enum
    +
    + +
    +
    Class for command axis for the gamepad
    +
    + +
    + Deprecated. +
    + +
    +
    + Command implementation of + Binding +
    +
    + +
    +
    Class for command buttons for gamepad
    +
    + +
    +
    Class for command gamepads that specifies class params
    +
    + +
    +
    + Root class for all command groups (Sequential, Parallel, etc...) WARNING: You + probably will be better served by the specific CommandGroup subclasses, rather + than using this one directly. +
    +
    +
    + CommandInput<T + extends + ButtonBase> +
    +
    +
    Class for gamepad-command integration
    +
    + +
    +
    Class for command based op modes
    +
    + +
    +
    Enum for op mode state
    +
    + +
    +
    This is a "singleton" object for scheduling commands.
    +
    + +
    +
    + Simple class for commands that require a certain condition to be true to run +
    +
    + +
    +
    TODO: Remove this.
    +
    +
    + DeviceSubsystem<T + extends + HardwareDevice<?>> +
    +
    +
    class for subsystems
    +
    + +
    +   +
    + +
    +
    Enum for the priority of the differential.
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    Class for digital sensors
    +
    + +
    +
    TODO: Remove this.
    +
    +
    + DrivebaseSubsystem<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for DriveBase subsystems
    +
    +
    + DummyDevice<T> +
    +
    +
    This isn't worth actually doing.
    +
    +
    + Enablable<T + extends + Enablable<T>> +
    +
    +
    Interface for anything that can be enabled/disabled
    +
    +
    + EncodedMotor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for encoded motors
    +
    +
    + EncodedMotorGroup<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for encoded motor groups
    +
    + +
    +
    Class for encoded motor subsystems
    +
    +
    + Encoder +
    +
    +
    Interfaces for encoders to use
    +
    +
    + Entry<T> +
    +
    +
    The root class for logging entries
    +
    + +
    +
    + A wrapper around an AnalogInput that enables "zeroing" for usefulness +
    +
    +
    + GamepadBase<T + extends + ButtonBase,U + extends + AxisBase> +
    +
    +
    + A class to extend gamepads from, it does the internal processing for you. +
    +
    + +
    +
    Axis enum for all axis on gamepad
    +
    + +
    +
    Button enum for all buttons on gamepad
    +
    +
    + GamepadDpad<T + extends + ButtonBase> +
    +
    +
    A class for dpads
    +
    +
    + GamepadStick<T + extends + AxisBase,U + extends + ButtonBase> +
    +
    +
    A class for gamepad sticks
    +
    + +
    +
    TODO: Remove this.
    +
    +
    + HardwareDevice<T + extends com.qualcomm.robotcore.hardware.HardwareDevice> +
    +
    + Deprecated. +
    + +
    + Deprecated. +
    + +
    +   +
    + +
    +   +
    +
    + IGyro +
    +
    +
    An interface for a single-angle gyroscope
    +
    + +
    +   +
    +
    + IMU +
    +
    +
    + Class for the IMU (Inertial Movement Units) that implements the IGyro interface +
    +
    + +
    +
    The direction of the axes signs when remapping the axes
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    This is duplicated in the IMU class
    +
    +
    + Integral +
    +
    +
    A simple Observation-based integral calculator over time
    +
    +
    + Invertable<T + extends + Invertable<T>> +
    +
    +
    Interface for anything that can be inverted
    +
    + +
    +   +
    +
    + Log +
    +
    +
    + The root annotation for annotation logging, also doubles as a basic string log +
    +
    + +
    +   +
    +
    + Log.Logs +
    +
    +   +
    + +
    +
    Log a number
    +
    +
    + LogConfig +
    +
    +
    Annotations for configuring Logs
    +
    + +
    +
    Annotation for allowing Opmodes to log this item
    +
    + +
    +
    Annotation for denying Opmodes to log this item
    +
    + +
    +
    Annotation to completely disable the entry
    +
    + +
    +
    + Annotation for determining when logged item will be sent to Telemetry +
    +
    +
    + Loggable +
    +
    +
    + All classes with annotations for logging must extend this all the way up the + hierarchy up to the op mode +
    +
    +
    + Logger +
    +
    +
    The class to manage logging
    +
    +
    + MapUtils +
    +
    +   +
    +
    + MathUtils +
    +
    +
    Class with various math functions
    +
    +
    + Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for motors
    +
    + +
    +
    TODO: Remove this.
    +
    + +
    +
    + Wraps a motor instance to provide corrected velocity counts and allow reversing + independently of the corresponding slot's motor direction +
    +
    + +
    +   +
    +
    + MotorGroup<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for a group of motors
    +
    +
    + MotorSubsystem<T + extends + Motor<?>> +
    +
    +
    Class for motor subsystems
    +
    + +
    +   +
    + +
    +
    + Command group to run commands in parallel until all of them finish +
    +
    + +
    +
    + Command group to run commands in parallel until one particular command completes +
    +
    + +
    +
    + Command group to run commands in parallel until *one* is finished +
    +
    +
    + Periodic +
    +
    +
    An interface for classes to have the periodic function
    +
    +
    + Range +
    +
    +
    Helper class for tracking a range
    +
    + +
    + Deprecated. +
    + +
    +
    + Root class for the Robot Library (I will put important stuff here) +
    +
    +
    + Sensor<T + extends com.qualcomm.robotcore.hardware.HardwareDevice> +
    +
    + Deprecated. +
    +
    + Sensored +
    +
    + Deprecated. +
    + +
    +
    + A grouping command which runs a list of commands in sequence +
    +
    +
    + Servo +
    +
    + Deprecated. +
    + +
    +
    TODO: Remove this.
    +
    + +
    + Deprecated. +
    + +
    +   +
    + +
    +   +
    + +
    +
    Class for servo subsystems
    +
    +
    + SimpleMecanumDrivebaseSubsystem<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for mecanum/xdrive drivebases
    +
    + +
    +
    + This is a functional interface, when 'accept' is invoked, will only invoke the + 'consume' method when a different value is provided. +
    +
    +
    + Speaker +
    +
    + Deprecated. +
    +
    + Stick +
    +
    +
    Interface for objects that behave as sticks
    +
    + +
    +   +
    +
    + Subsystem +
    +
    +   +
    +
    + TankDrivebaseSubsystem<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
    +
    +
    Class for drivebase subsystems
    +
    + +
    +
    A command to do nothing but wait for a span of time.
    +
    +
    +
    +
    +
    +
    +
    + diff --git a/docs/TechnoLib/allpackages-index.html b/docs/TechnoLib/allpackages-index.html index fa615a47..fd25660d 100644 --- a/docs/TechnoLib/allpackages-index.html +++ b/docs/TechnoLib/allpackages-index.html @@ -1,98 +1,174 @@ - + - - -All Packages (RobotLibrary API) - - - - - - - - - - - - - - - - + + + All Packages (RobotLibrary API) + + + + + + + + + + + + + + + + diff --git a/docs/TechnoLib/constant-values.html b/docs/TechnoLib/constant-values.html index 08ce8446..5af54f17 100644 --- a/docs/TechnoLib/constant-values.html +++ b/docs/TechnoLib/constant-values.html @@ -1,117 +1,236 @@ - + - - -Constant Field Values (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Constant Field Values

    -
    -

    Contents

    - -
    -
    -
    -

    com.technototes.*

    - -
      -
    • -
      com.technototes.library.structure.CommandOpMode
      -
      -
      Modifier and Type
      -
      Constant Field
      -
      Value
      -
      public static final int
      -
      MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED
      -
      900
      -
      -
    • -
    - -
    -
    -
    -
    - + + + Constant Field Values (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Constant Field Values

    +
    +

    Contents

    + +
    +
    +
    +

    com.technototes.*

    +
      +
    • +
      + com.technototes.library.control.AxisBase +
      +
      +
      Modifier and Type
      +
      Constant Field
      +
      Value
      +
      + public static final double +
      + +
      0.05
      +
      +
    • +
    +
      +
    • +
      + com.technototes.library.structure.CommandOpMode +
      +
      +
      Modifier and Type
      +
      Constant Field
      +
      Value
      +
      + public static final int +
      +
      + MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED +
      +
      900
      +
      +
    • +
    +
      +
    • +
      + com.technototes.library.util.Characters +
      +
      +
      Modifier and Type
      +
      Constant Field
      +
      Value
      +
      + public static final String +
      + +
      "\ud83d\udd35"
      +
      + public static final String +
      +
      + CYCLE +
      +
      "\u267b\ufe0f"
      +
      + public static final String +
      +
      + DUCK +
      +
      "\ud83e\udd86"
      +
      + public static final String +
      +
      + GAMEPAD +
      +
      "\ud83c\udfae"
      +
      + public static final String +
      + +
      "\ud83d\udfe5"
      +
      +
    • +
    +
    +
    +
    +
    + diff --git a/docs/TechnoLib/deprecated-list.html b/docs/TechnoLib/deprecated-list.html index 1f0e48e2..fc5f118b 100644 --- a/docs/TechnoLib/deprecated-list.html +++ b/docs/TechnoLib/deprecated-list.html @@ -1,120 +1,195 @@ - + - - -Deprecated List (RobotLibrary API) - - - - - - - - - - - - - - - - + + + Deprecated List (RobotLibrary API) + + + + + + + + + + + + + + + + diff --git a/docs/TechnoLib/help-doc.html b/docs/TechnoLib/help-doc.html index 44dc1160..76a45f3d 100644 --- a/docs/TechnoLib/help-doc.html +++ b/docs/TechnoLib/help-doc.html @@ -1,186 +1,269 @@ - + - - -API Help (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    -Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    -The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    -
    -
    -

    Package

    -

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    -

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    -
    -
    -

    Other Files

    -

    Packages and modules may contain pages with additional information related to the declarations nearby.

    -
    -
    -

    Tree (Class Hierarchy)

    -

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    -
      -
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • -
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • -
    -
    -
    -

    Deprecated API

    -

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    -
    -
    -

    Constant Field Values

    -

    The Constant Field Values page lists the static final fields and their values.

    -
    -
    -

    All Packages

    -

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    -
    -
    -

    All Classes and Interfaces

    -

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    -
    -
    -

    Index

    -

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    -
    -
    -
    -This help file applies to API documentation generated by the standard doclet.
    -
    -
    - + + + API Help (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    + Starting from the Overview page, you can browse the + documentation using the links in each page, and in the navigation bar at the top of each + page. The Index and Search box allow you to navigate to + specific declarations and summary pages, including: + All Packages, + All Classes and Interfaces + +
    +
    +
    +

    Kinds of Pages

    + The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    +

    + The Overview page is the front page of this API document + and provides a list of all packages with a summary for each. This page can also + contain an overall description of the set of packages. +

    +
    +
    +

    Package

    +

    + Each package has a page that contains a list of its classes and interfaces, with a + summary for each. These pages may contain the following categories: +

    +
      +
    • Interfaces
    • +
    • Classes
    • +
    • Enum Classes
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Interfaces
    • +
    +
    +
    +

    Class or Interface

    +

    + Each class, interface, nested class and nested interface has its own separate page. + Each of these pages has three sections consisting of a declaration and description, + member summary tables, and detailed member descriptions. Entries in each of these + sections are omitted if they are empty or not applicable. +

    +
      +
    • Class Inheritance Diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class or Interface Declaration
    • +
    • Class or Interface Description
    • +
    +
    +
      +
    • Nested Class Summary
    • +
    • Enum Constant Summary
    • +
    • Field Summary
    • +
    • Property Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    + Note: Annotation interfaces have required and + optional elements, but not methods. Only enum classes have enum constants. The + components of a record class are displayed as part of the declaration of the record + class. Properties are a feature of JavaFX. +

    +

    + The summary entries are alphabetical, while the detailed descriptions are in the + order they appear in the source code. This preserves the logical groupings + established by the programmer. +

    +
    +
    +

    Other Files

    +

    + Packages and modules may contain pages with additional information related to the + declarations nearby. +

    +
    +
    +

    Tree (Class Hierarchy)

    +

    + There is a Class Hierarchy page for all packages, + plus a hierarchy for each package. Each hierarchy page contains a list of classes + and a list of interfaces. Classes are organized by inheritance structure starting + with java.lang.Object. Interfaces do not inherit from + java.lang.Object. +

    +
      +
    • + When viewing the Overview page, clicking on TREE displays the hierarchy for all + packages. +
    • +
    • + When viewing a particular package, class or interface page, clicking on TREE + displays the hierarchy for only that package. +
    • +
    +
    +
    +

    Deprecated API

    +

    + The Deprecated API page lists all of the API that + have been deprecated. A deprecated API is not recommended for use, generally due to + shortcomings, and a replacement API is usually given. Deprecated APIs may be removed + in future implementations. +

    +
    +
    +

    Constant Field Values

    +

    + The Constant Field Values page lists the static + final fields and their values. +

    +
    +
    +

    All Packages

    +

    + The All Packages page contains an alphabetic + index of all packages contained in the documentation. +

    +
    +
    +

    All Classes and Interfaces

    +

    + The All Classes and Interfaces page contains an + alphabetic index of all classes and interfaces contained in the documentation, + including annotation interfaces, enum classes, and record classes. +

    +
    +
    +

    Index

    +

    + The Index contains an alphabetic index of all classes, + interfaces, constructors, methods, and fields in the documentation, as well as + summary pages such as All Packages, + All Classes and Interfaces. +

    +
    +
    +
    + This help file applies to API documentation generated by the standard doclet. +
    +
    +
    + diff --git a/docs/TechnoLib/index-all.html b/docs/TechnoLib/index-all.html index 81a9c88f..0771b53e 100644 --- a/docs/TechnoLib/index-all.html +++ b/docs/TechnoLib/index-all.html @@ -1,3359 +1,13967 @@ - + - - -Index (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values -

    A

    -
    -
    accept(T) - Method in interface com.technototes.library.util.SmartConsumer
    -
    -
    The public interface for a SmartConsumer: accept should be invoked, not consume :)
    -
    -
    addCommands(Command...) - Method in class com.technototes.library.command.CommandGroup
    -
    -
    Add a command to the group
    -
    -
    additionalInitConditions() - Method in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    addRequirements(Subsystem...) - Method in interface com.technototes.library.command.Command
    -
    -
    Add requirement subsystems to command
    -
    -
    addSongs(String...) - Method in class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    ALL_ACTIVE - Enum constant in enum class com.technototes.library.control.Binding.Type
    -
     
    -
    Alliance - Enum Class in com.technototes.library.util
    -
    -
    An enumeration to specify which alliance the bot is on (Red, Blue, or None)
    -
    -
    Alliance.Blue - Annotation Interface in com.technototes.library.util
    -
    -
    Not sure what this is for.
    -
    -
    Alliance.Red - Annotation Interface in com.technototes.library.util
    -
    -
    Not sure what this is for.
    -
    -
    Alliance.Selector<T> - Class in com.technototes.library.util
    -
    -
    This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate.
    -
    -
    alongWith(Command...) - Method in interface com.technototes.library.command.Command
    -
    -
    Run this command in parallel with additional commands
    -
    -
    alpha() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get the alpha (transparency) of the color
    -
    -
    analog(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    analog(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    AnalogBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    AnalogBuilder(int) - Constructor for class com.technototes.library.hardware2.AnalogBuilder
    -
     
    -
    AnalogBuilder(AnalogSensor) - Constructor for class com.technototes.library.hardware2.AnalogBuilder
    -
     
    -
    AnalogBuilder(String) - Constructor for class com.technototes.library.hardware2.AnalogBuilder
    -
     
    -
    AnalogSensor - Class in com.technototes.library.hardware.sensor
    -
    -
    Class for analog sensors
    -
    -
    AnalogSensor(AnalogInput) - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor
    -
    -
    Make an analog sensor
    -
    -
    AnalogSensor(String) - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor
    -
    -
    Make an analog sensor
    -
    -
    andThen(Command...) - Method in interface com.technototes.library.command.Command
    -
    -
    Run a command or series of ParallelCommands after this one
    -
    -
    anyCancelled - Variable in class com.technototes.library.command.CommandGroup
    -
    -
    Have *any* of the command list been cancelled
    -
    -
    apply(UnaryOperator<T>) - Method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    arcadeDrive(double, double) - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
     
    -
    argb() - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    argb() - Method in class com.technototes.library.hardware.sensor.ColorSensor
    -
     
    -
    argb() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
     
    -
    asConditional(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    -
    -
    Creates a conditional command out of this
    -
    -
    at(double) - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    AVERAGE - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
     
    -
    AxisBase - Class in com.technototes.library.control
    -
    -
    The class to extend custom gamepad axis from
    -
    -
    AxisBase(DoubleSupplier) - Constructor for class com.technototes.library.control.AxisBase
    -
    -
    Make a GamepadAxis with the supplier
    -
    -
    AxisBase(DoubleSupplier, double) - Constructor for class com.technototes.library.control.AxisBase
    -
    -
    Make a GamepadAxis with the supplier and the threshold for the stick to behave as a button
    -
    -
    axisInstance(DoubleSupplier) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns the U (extended from AxisBase) type wrapped around a simple DoubleSupplier
    -
    -
    -

    B

    -
    -
    Binding<T extends BooleanSupplier> - Interface in com.technototes.library.control
    -
    -
    Class for bindings to extend
    -
    -
    Binding.Type - Enum Class in com.technototes.library.control
    -
    -
    Button type
    -
    -
    BLACK - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    blue() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get the RGB blue of the sensor
    -
    -
    BLUE - Enum constant in enum class com.technototes.library.util.Alliance
    -
    -
    BLUE alliance selector
    -
    -
    BLUE - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    BLUE_CIRCLE - Static variable in class com.technototes.library.util.Characters
    -
     
    -
    BooleanEntry - Class in com.technototes.library.logger.entry
    -
     
    -
    BooleanEntry(String, Supplier<Boolean>, int, String, String) - Constructor for class com.technototes.library.logger.entry.BooleanEntry
    -
     
    -
    booleanSupplier - Variable in class com.technototes.library.control.ButtonBase
    -
     
    -
    brake() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
     
    -
    brake() - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Configure the motor to *brake* when the power is set to zero.
    -
    -
    brake() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    build() - Method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    build() - Method in class com.technototes.library.hardware2.IMUBuilder
    -
    -
    Deprecated
    -
    -
    ButtonBase - Class in com.technototes.library.control
    -
    -
    The class to extend custom gamepad buttons from
    -
    -
    ButtonBase(BooleanSupplier) - Constructor for class com.technototes.library.control.ButtonBase
    -
    -
    Create button with boolean supplier
    -
    -
    buttonInstance(BooleanSupplier) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Great a ButtonBase type from the given BooleanSupplier
    -
    -
    bVal - Variable in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    The value of the enumeration
    -
    -
    bVal - Variable in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    -

    C

    -
    -
    calculateA(double, double, double, double) - Method in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
    -
    Calculates the value for the differential output generated by averaging
    -
    -
    calculateS(double, double, double, double) - Method in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
    -
    Calculates the value for the differential output generated by subtracting
    -
    -
    cancel() - Method in interface com.technototes.library.command.Command
    -
    -
    If the command is running, interrupt it such that it can be cancelled
    -
    -
    CANCELLED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command has been cancelled
    -
    -
    cancelUpon(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    -
    -
    Runs this command until it finishes, or until the condition supplied is true
    -
    -
    captionDivider - Variable in class com.technototes.library.logger.Logger
    -
    -
    The divider between the tag and the entry for telemetry (default ':')
    -
    -
    Characters - Class in com.technototes.library.util
    -
     
    -
    Characters() - Constructor for class com.technototes.library.util.Characters
    -
     
    -
    ChoiceCommand - Class in com.technototes.library.command
    -
    -
    A command that allows choosing among a number of commands based on variety of conditions
    -
    -
    ChoiceCommand(Pair<BooleanSupplier, Command>...) - Constructor for class com.technototes.library.command.ChoiceCommand
    -
    -
    Each pair represents a condition to check, and the command to execute if that condition is - true
    -
    -
    ChoiceCommand(BooleanSupplier, Command) - Constructor for class com.technototes.library.command.ChoiceCommand
    -
    -
    This is a simplistic ChoiceCommand that is simply a single conditional command - I *think* this will wwait until b is true
    -
    -
    clear() - Static method in interface com.technototes.library.command.Command
    -
    -
    Clear out the state, time, and requirement maps.
    -
    -
    close() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    closestTo(double, double...) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Returns the value from a list which is closed to the first value.
    -
    -
    closestTo(double, int...) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Returns the value from a list which is closed to the first value.
    -
    -
    coast() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
     
    -
    coast() - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Configure the motor to *float* when the power is set to zero.
    -
    -
    coast() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    codriverGamepad - Variable in class com.technototes.library.structure.CommandOpMode
    -
    -
    Command gamepad objects
    -
    -
    color(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    Color - Enum Class in com.technototes.library.util
    -
    -
    Enum for Colors and some formatting
    -
    -
    ColorBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    ColorBuilder(ColorSensor) - Constructor for class com.technototes.library.hardware2.ColorBuilder
    -
     
    -
    ColorBuilder(String) - Constructor for class com.technototes.library.hardware2.ColorBuilder
    -
     
    -
    ColorDistanceSensor - Class in com.technototes.library.hardware.sensor
    -
     
    -
    ColorDistanceSensor(ColorRangeSensor) - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    ColorDistanceSensor(String) - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    colorRange(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    ColorRangeBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    ColorRangeBuilder(ColorRangeSensor) - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder
    -
     
    -
    ColorRangeBuilder(String) - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder
    -
     
    -
    ColorSensor - Class in com.technototes.library.hardware.sensor
    -
    -
    Class for color sensors
    -
    -
    ColorSensor(ColorSensor) - Constructor for class com.technototes.library.hardware.sensor.ColorSensor
    -
    -
    Make a color Sensor
    -
    -
    ColorSensor(String) - Constructor for class com.technototes.library.hardware.sensor.ColorSensor
    -
    -
    Make a color sensor
    -
    -
    com.technototes.library - package com.technototes.library
    -
     
    -
    com.technototes.library.command - package com.technototes.library.command
    -
     
    -
    com.technototes.library.control - package com.technototes.library.control
    -
     
    -
    com.technototes.library.general - package com.technototes.library.general
    -
     
    -
    com.technototes.library.hardware - package com.technototes.library.hardware
    -
     
    -
    com.technototes.library.hardware.motor - package com.technototes.library.hardware.motor
    -
     
    -
    com.technototes.library.hardware.sensor - package com.technototes.library.hardware.sensor
    -
     
    -
    com.technototes.library.hardware.sensor.encoder - package com.technototes.library.hardware.sensor.encoder
    -
     
    -
    com.technototes.library.hardware.servo - package com.technototes.library.hardware.servo
    -
     
    -
    com.technototes.library.hardware2 - package com.technototes.library.hardware2
    -
     
    -
    com.technototes.library.logger - package com.technototes.library.logger
    -
     
    -
    com.technototes.library.logger.entry - package com.technototes.library.logger.entry
    -
     
    -
    com.technototes.library.structure - package com.technototes.library.structure
    -
     
    -
    com.technototes.library.subsystem - package com.technototes.library.subsystem
    -
     
    -
    com.technototes.library.subsystem.drivebase - package com.technototes.library.subsystem.drivebase
    -
     
    -
    com.technototes.library.subsystem.motor - package com.technototes.library.subsystem.motor
    -
     
    -
    com.technototes.library.subsystem.servo - package com.technototes.library.subsystem.servo
    -
     
    -
    com.technototes.library.util - package com.technototes.library.util
    -
     
    -
    Command - Interface in com.technototes.library.command
    -
    -
    The root Command class
    -
    -
    Command.CommandState - Enum Class in com.technototes.library.command
    -
    -
    The command state enum
    -
    -
    CommandAxis - Class in com.technototes.library.control
    -
    -
    Class for command axis for the gamepad
    -
    -
    CommandAxis(DoubleSupplier) - Constructor for class com.technototes.library.control.CommandAxis
    -
    -
    Make a command axis
    -
    -
    CommandAxis(DoubleSupplier, double) - Constructor for class com.technototes.library.control.CommandAxis
    -
    -
    Make a command axis
    -
    -
    CommandBase - Class in com.technototes.library.command
    -
    -
    Deprecated.
    -
    -
    CommandBase() - Constructor for class com.technototes.library.command.CommandBase
    -
    -
    Deprecated.
    -
    CommandBinding - Class in com.technototes.library.control
    -
    -
    Command implementation of Binding
    -
    -
    CommandBinding(Binding.Type, CommandInput...) - Constructor for class com.technototes.library.control.CommandBinding
    -
     
    -
    CommandBinding(CommandInput...) - Constructor for class com.technototes.library.control.CommandBinding
    -
     
    -
    CommandButton - Class in com.technototes.library.control
    -
    -
    Class for command buttons for gamepad
    -
    -
    CommandButton(BooleanSupplier) - Constructor for class com.technototes.library.control.CommandButton
    -
    -
    Make command button
    -
    -
    CommandGamepad - Class in com.technototes.library.control
    -
    -
    Class for command gamepads that specifies class params
    -
    -
    CommandGamepad(Gamepad) - Constructor for class com.technototes.library.control.CommandGamepad
    -
    -
    Make command gamepad
    -
    -
    CommandGroup - Class in com.technototes.library.command
    -
    -
    Root class for all command groups (Sequential, Parallel, etc...) - WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than - using this one directly.
    -
    -
    CommandGroup(boolean, Command...) - Constructor for class com.technototes.library.command.CommandGroup
    -
    -
    Create a command group with commands
    -
    -
    CommandInput<T extends ButtonBase> - Interface in com.technototes.library.control
    -
    -
    Class for gamepad-command integration
    -
    -
    commandMap - Variable in class com.technototes.library.command.CommandGroup
    -
    -
    This is a map from the command to whether it has been run
    -
    -
    CommandOpMode - Class in com.technototes.library.structure
    -
    -
    Class for command based op modes
    -
    -
    CommandOpMode() - Constructor for class com.technototes.library.structure.CommandOpMode
    -
     
    -
    CommandOpMode.OpModeState - Enum Class in com.technototes.library.structure
    -
    -
    Enum for op mode state
    -
    -
    CommandScheduler - Class in com.technototes.library.command
    -
    -
    This is a "singleton" object for scheduling commands.
    -
    -
    ConditionalCommand - Class in com.technototes.library.command
    -
    -
    Simple class for commands that require a certain condition to be true to run
    -
    -
    ConditionalCommand(BooleanSupplier) - Constructor for class com.technototes.library.command.ConditionalCommand
    -
    -
    This makes a "wait" command
    -
    -
    ConditionalCommand(BooleanSupplier, Command) - Constructor for class com.technototes.library.command.ConditionalCommand
    -
    -
    Make a conditional command
    -
    -
    ConditionalCommand(BooleanSupplier, Command, Command) - Constructor for class com.technototes.library.command.ConditionalCommand
    -
    -
    Make a conditional command
    -
    -
    constrain(double, double, double) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Deprecated. 
    -
    -
    constrain(int, int, int) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Deprecated. 
    -
    -
    Constraints(double, double, double) - Constructor for class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    consume(T) - Method in interface com.technototes.library.util.SmartConsumer
    -
    -
    The 'consume' function
    -
    -
    countCancel - Variable in class com.technototes.library.command.CommandGroup
    -
    -
    Should a cancelled command be considered 'finished'
    -
    -
    countCancel() - Method in class com.technototes.library.command.CommandGroup
    -
    -
    Specify that this CommandGroup should count a cancellation as 'completed'
    -
    -
    create(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    create(Command, Subsystem...) - Static method in interface com.technototes.library.command.Command
    -
    -
    This is a helper to create a new command from an existing command, but with additional - subsystem requirements
    -
    -
    create(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    crServo(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    crServo(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    CRServoBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    CRServoBuilder(int) - Constructor for class com.technototes.library.hardware2.CRServoBuilder
    -
     
    -
    CRServoBuilder(CRServo) - Constructor for class com.technototes.library.hardware2.CRServoBuilder
    -
     
    -
    CRServoBuilder(String) - Constructor for class com.technototes.library.hardware2.CRServoBuilder
    -
     
    -
    CYAN - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    CYCLE - Static variable in class com.technototes.library.util.Characters
    -
     
    -
    -

    D

    -
    -
    DARK_GRAY - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    deadline(Command...) - Method in interface com.technototes.library.command.Command
    -
    -
    Runs all the commands specified in parallel *until this command is completed*
    -
    -
    DEFAULT_TRIGGER_THRESHOLD - Static variable in class com.technototes.library.control.AxisBase
    -
    -
    The default trigger threshold
    -
    -
    degrees() - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Set angle format to degrees
    -
    -
    degrees() - Method in class com.technototes.library.hardware2.IMUBuilder
    -
    -
    Deprecated
    -
    -
    device - Variable in class com.technototes.library.hardware.HardwareDevice
    -
    -
    Deprecated.
    -
    device - Variable in class com.technototes.library.subsystem.DeviceSubsystem
    -
     
    -
    DeviceSubsystem<T extends HardwareDevice<?>> - Class in com.technototes.library.subsystem
    -
    -
    class for subsystems
    -
    -
    DeviceSubsystem(T) - Constructor for class com.technototes.library.subsystem.DeviceSubsystem
    -
    -
    Create a subsystem
    -
    -
    DIFFERENCE - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
     
    -
    Differential - Class in com.technototes.library.util
    -
     
    -
    Differential(DoubleConsumer, DoubleConsumer) - Constructor for class com.technototes.library.util.Differential
    -
    -
    Create differential from two consumers
    -
    -
    Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority) - Constructor for class com.technototes.library.util.Differential
    -
    -
    Create differential from two consumers
    -
    -
    Differential.DifferentialPriority - Enum Class in com.technototes.library.util
    -
    -
    Enum for the priority of the differential.
    -
    -
    digital(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    digital(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    DigitalBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    DigitalBuilder(int) - Constructor for class com.technototes.library.hardware2.DigitalBuilder
    -
    -
    Don't use this in the future
    -
    -
    DigitalBuilder(DigitalChannel) - Constructor for class com.technototes.library.hardware2.DigitalBuilder
    -
    -
    Don't use this in the future
    -
    -
    DigitalBuilder(String) - Constructor for class com.technototes.library.hardware2.DigitalBuilder
    -
    -
    Don't use this in the future
    -
    -
    DigitalSensor - Class in com.technototes.library.hardware.sensor
    -
    -
    Class for digital sensors
    -
    -
    DigitalSensor(DigitalChannel) - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor
    -
    -
    Make a digital sensor
    -
    -
    DigitalSensor(String) - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor
    -
    -
    Make a digital sensor
    -
    -
    direction(DcMotorSimple.Direction) - Method in class com.technototes.library.hardware2.CRServoBuilder
    -
     
    -
    direction(DcMotorSimple.Direction) - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    direction(Servo.Direction) - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    disable() - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    disable() - Method in interface com.technototes.library.general.Enablable
    -
    -
    Disable the object
    -
    -
    disable() - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    -
     
    -
    disable() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    distance(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    DistanceBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    DistanceBuilder(DistanceSensor) - Constructor for class com.technototes.library.hardware2.DistanceBuilder
    -
     
    -
    DistanceBuilder(String) - Constructor for class com.technototes.library.hardware2.DistanceBuilder
    -
     
    -
    doubleSupplier - Variable in class com.technototes.library.control.AxisBase
    -
     
    -
    down - Variable in class com.technototes.library.control.GamepadDpad
    -
    -
    The objects for the dpad buttons
    -
    -
    dpad - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The dpad object
    -
    -
    dpadDown - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    dpadLeft - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    dpadRight - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    dpadUp - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    drive(double, double) - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
     
    -
    drive(double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
     
    -
    drive(double, double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
     
    -
    DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.subsystem.drivebase
    -
    -
    Class for DriveBase subsystems
    -
    -
    DrivebaseSubsystem(Motor<T>...) - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    -
    -
    Create a drivebase subsystem
    -
    -
    DrivebaseSubsystem(DoubleSupplier, Motor<T>...) - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    -
    -
    Create a drivebase subsystem
    -
    -
    driverGamepad - Variable in class com.technototes.library.structure.CommandOpMode
    -
    -
    Command gamepad objects
    -
    -
    DUCK - Static variable in class com.technototes.library.util.Characters
    -
     
    -
    DummyDevice<T> - Class in com.technototes.library.hardware
    -
    -
    This isn't worth actually doing.
    -
    -
    DummyDevice(T) - Constructor for class com.technototes.library.hardware.DummyDevice
    -
     
    -
    duringInit() - Element in annotation interface com.technototes.library.logger.LogConfig.Run
    -
    -
    Run the log during the init Period
    -
    -
    duringRun() - Element in annotation interface com.technototes.library.logger.LogConfig.Run
    -
    -
    Run the log during the teleop Period
    -
    -
    -

    E

    -
    -
    Enablable<T extends Enablable<T>> - Interface in com.technototes.library.general
    -
    -
    Interface for anything that can be enabled/disabled
    -
    -
    enable() - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    enable() - Method in interface com.technototes.library.general.Enablable
    -
    -
    Enable the object
    -
    -
    enable() - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    -
     
    -
    enable() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    -
    -
    Class for encoded motors
    -
    -
    EncodedMotor(String) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Make encoded motor, with the default encoder configured
    -
    -
    EncodedMotor(String, Encoder) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Make encoded motor
    -
    -
    EncodedMotor(T) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Make encoded motor, with the default encoder configured
    -
    -
    EncodedMotor(T, Encoder) - Constructor for class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Make encoded motor
    -
    -
    EncodedMotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    -
    -
    Class for encoded motor groups
    -
    -
    EncodedMotorGroup(EncodedMotor<T>, Motor<T>...) - Constructor for class com.technototes.library.hardware.motor.EncodedMotorGroup
    -
    -
    Create an encoded motor groupM
    -
    -
    EncodedMotorSubsystem - Class in com.technototes.library.subsystem.motor
    -
    -
    Class for encoded motor subsystems
    -
    -
    EncodedMotorSubsystem(EncodedMotor<?>) - Constructor for class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    -
    -
    Create encoded motor subsystem
    -
    -
    Encoder - Interface in com.technototes.library.hardware.sensor.encoder
    -
    -
    Interfaces for encoders to use
    -
    -
    end() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Runs once when op mode is ended
    -
    -
    end(boolean) - Method in interface com.technototes.library.command.Command
    -
    -
    End the command
    -
    -
    end(boolean) - Method in class com.technototes.library.command.CommandGroup
    -
    -
    This stops the command group from executing
    -
    -
    END - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    -
     
    -
    Entry<T> - Class in com.technototes.library.logger.entry
    -
    -
    The root class for logging entries
    -
    -
    Entry(String, Supplier<T>, int) - Constructor for class com.technototes.library.logger.entry.Entry
    -
    -
    Create an entry with name, value, index
    -
    -
    execute() - Method in interface com.technototes.library.command.Command
    -
    -
    Execute the command
    -
    -
    execute() - Method in class com.technototes.library.command.CommandBase
    -
    -
    Deprecated.
    -
    Execute the command
    -
    -
    execute() - Method in class com.technototes.library.command.CommandGroup
    -
     
    -
    execute() - Method in class com.technototes.library.command.ConditionalCommand
    -
     
    -
    execute() - Method in class com.technototes.library.command.WaitCommand
    -
     
    -
    EXECUTING - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command is running normally
    -
    -
    expandedPWM() - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    expandedRange() - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    ExternalEncoder - Class in com.technototes.library.hardware.sensor.encoder
    -
    -
    A wrapper around an AnalogInput that enables "zeroing" for usefulness
    -
    -
    ExternalEncoder(AnalogInput) - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    -
    -
    Create an ExternalEncoder from an arbitrary AnalogInput
    -
    -
    ExternalEncoder(String) - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    -
    -
    Create an ExternalEncoder from an arbitrary AnalogInput device
    -
    -
    -

    F

    -
    -
    falseValue() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    -
    -
    Store the string when the annotated method returns false
    -
    -
    FINISHED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command has completed successfully
    -
    -
    flMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    -
    format() - Element in annotation interface com.technototes.library.logger.Log
    -
    -
    The format for the logged String
    -
    -
    format(Object) - Method in enum class com.technototes.library.util.Color
    -
    -
    Format the supplied object with the HTML to become this color
    -
    -
    format(String, Object...) - Method in enum class com.technototes.library.util.Color
    -
    -
    Format the supplied object with the HTML and a format String to become this color
    -
    -
    forward() - Method in class com.technototes.library.hardware2.CRServoBuilder
    -
     
    -
    forward() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    forward() - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    FORWARD - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    -
     
    -
    frMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    -
    -

    G

    -
    -
    gain(float) - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    -
     
    -
    GAMEPAD - Static variable in class com.technototes.library.util.Characters
    -
     
    -
    gamepad1 - Variable in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    gamepad2 - Variable in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    GamepadBase<T extends ButtonBase,U extends AxisBase> - Class in com.technototes.library.control
    -
    -
    A class to extend gamepads from, it does the internal processing for you.
    -
    -
    GamepadBase(Gamepad, Class<T>, Class<U>) - Constructor for class com.technototes.library.control.GamepadBase
    -
    -
    Creates a gamepad with these parameters
    -
    -
    GamepadBase.Axis - Enum Class in com.technototes.library.control
    -
    -
    Axis enum for all axis on gamepad
    -
    -
    GamepadBase.Button - Enum Class in com.technototes.library.control
    -
    -
    Button enum for all buttons on gamepad
    -
    -
    GamepadDpad<T extends ButtonBase> - Class in com.technototes.library.control
    -
    -
    A class for dpads
    -
    -
    GamepadDpad(T, T, T, T) - Constructor for class com.technototes.library.control.GamepadDpad
    -
    -
    Create dpad with 4 buttons
    -
    -
    GamepadStick<T extends AxisBase,U extends ButtonBase> - Class in com.technototes.library.control
    -
    -
    A class for gamepad sticks
    -
    -
    GamepadStick(T, T, U) - Constructor for class com.technototes.library.control.GamepadStick
    -
    -
    Make a gamepad stick
    -
    -
    get() - Method in interface com.technototes.library.command.Command
    -
    -
    Gets the current state of the command (Supplier<CommandState>)
    -
    -
    get() - Method in interface com.technototes.library.control.Binding
    -
     
    -
    get() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    get() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
     
    -
    get() - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Gets the *speed* of the motor when it's used as a DoubleSupplier
    -
    -
    get() - Method in class com.technototes.library.logger.entry.Entry
    -
     
    -
    get(Binding.Type) - Method in interface com.technototes.library.control.Binding
    -
    -
    Get this as boolean for the type
    -
    -
    get(Class<? extends OpMode>) - Static method in enum class com.technototes.library.util.Alliance
    -
    -
    Get the alliance set for the OpMode passed in, if it's set in the annotation
    -
    -
    getAllDeviceList() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    -
    -
    Deprecated.
    -
    getAllDevices() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    -
    -
    Deprecated.
    -
    Get all devices in group
    -
    -
    getAllDevices() - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    -
     
    -
    getAllDevices() - Method in class com.technototes.library.hardware.motor.MotorGroup
    -
     
    -
    getAllDevices() - Method in class com.technototes.library.hardware.servo.ServoGroup
    -
    -
    Deprecated.
    -
    getAngle() - Method in interface com.technototes.library.control.Stick
    -
    -
    Returns the angle of the stick
    -
    -
    getAngularOrientation() - Method in class com.technototes.library.hardware.sensor.IMU
    -
     
    -
    getAngularOrientation(AngleUnit) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Gets the Angular orientation of the IMU
    -
    -
    getAngularVelocity() - Method in class com.technototes.library.hardware.sensor.IMU
    -
     
    -
    getAngularVelocity(AngleUnit) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Gets the angular velocity (in default units)
    -
    -
    getAsBoolean() - Method in interface com.technototes.library.control.Binding
    -
     
    -
    getAsBoolean() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Same as isPressed()
    -
    -
    getAsButton() - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    getAsButton(double) - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    getAsDouble() - Method in class com.technototes.library.control.AxisBase
    -
    -
    Returns the double from the axis
    -
    -
    getAsDouble() - Method in interface com.technototes.library.hardware.Sensored
    -
    -
    Deprecated.
    -
    getAverage() - Method in class com.technototes.library.util.Differential
    -
    -
    Gets the current average of the two differential inputs, - equating to one of the outputs
    -
    -
    getAxis(GamepadBase.Axis) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns an axis
    -
    -
    getAxisAsBoolean(GamepadBase.Axis) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns an axis as boolean
    -
    -
    getAxisAsDouble(GamepadBase.Axis) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns an axis as double
    -
    -
    getButton(GamepadBase.Button) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns a button
    -
    -
    getButtonAsBoolean(GamepadBase.Button) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns a button as boolean (same as isPressed)
    -
    -
    getColor() - Method in enum class com.technototes.library.util.Alliance
    -
    -
    Get the alliance color (Red, Blue, or Black)
    -
    -
    getConnectionInfo() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    getCorrectedVelocity() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    getCurrent(Subsystem) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    This gets the command currently using the subsystem provided
    -
    -
    getCurrentPosition() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    getCurrentPosition() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    getCurrentSong() - Method in class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    getDefault(Subsystem) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Get the default command that is running on the subsystem provided
    -
    -
    getDefaultCommand() - Method in interface com.technototes.library.subsystem.Subsystem
    -
     
    -
    getDefaultType() - Method in interface com.technototes.library.control.Binding
    -
     
    -
    getDefaultType() - Method in class com.technototes.library.control.CommandBinding
    -
     
    -
    getDeviation() - Method in class com.technototes.library.util.Differential
    -
    -
    Gets the current deviation between the two differential inputs and the average, - equating to one of the outputs
    -
    -
    getDevice() - Method in class com.technototes.library.hardware.HardwareDevice
    -
    -
    Deprecated.
    -
    Get encapsulated device
    -
    -
    getDevice() - Method in class com.technototes.library.subsystem.DeviceSubsystem
    -
    -
    Get the devices for this subsystem
    -
    -
    getDeviceName() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    getDifferentialPriority() - Method in class com.technototes.library.util.Differential
    -
    -
    Gets the priority for the difference output.
    -
    -
    getDirection() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    getDistance() - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    -
     
    -
    getDistance(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    getDistance(DistanceUnit) - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    -
     
    -
    getDistance(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    -
    -
    Deprecated.
    -
    Get the value with a specified distance Unit
    -
    -
    getDistanceFromCenter() - Method in interface com.technototes.library.control.Stick
    -
    -
    Returns the stick's distance from the center
    -
    -
    getDpad() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns the Dpad object
    -
    -
    getEncoder() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Get the encoder object
    -
    -
    getFollowerist() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    -
    -
    Deprecated.
    -
    getFollowers() - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    -
    -
    Deprecated.
    -
    Get the followers for the lead device
    -
    -
    getFollowers() - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    -
     
    -
    getFollowers() - Method in class com.technototes.library.hardware.motor.MotorGroup
    -
     
    -
    getFollowers() - Method in class com.technototes.library.hardware.servo.ServoGroup
    -
    -
    Deprecated.
    -
    getGamepad() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns the encapsulated gamepad
    -
    -
    getGyro() - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    -
    -
    Get the Gyro angle
    -
    -
    getHexValue() - Method in enum class com.technototes.library.util.Color
    -
    -
    Get the hex value
    -
    -
    getIndex() - Method in class com.technototes.library.logger.entry.Entry
    -
    -
    Get the index for the entry
    -
    -
    getInstance() - Static method in class com.technototes.library.command.CommandScheduler
    -
    -
    Get (or create) the singleton CommandScheduler object
    -
    -
    getInstance() - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    getInstance() - Method in class com.technototes.library.control.CommandButton
    -
     
    -
    getInstance() - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Return instance of class parameter
    -
    -
    getInverted() - Method in class com.technototes.library.control.ButtonBase
    -
     
    -
    getInverted() - Method in interface com.technototes.library.general.Invertable
    -
    -
    Get current inversion
    -
    -
    getInverted() - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Returns whether the motor is inverted.
    -
    -
    getInverted() - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    getLast() - Method in interface com.technototes.library.util.SmartConsumer
    -
     
    -
    getLeftStick() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns the left stick
    -
    -
    getLight() - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    getLogger() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Get the op mode's logger
    -
    -
    getManufacturer() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    getMap() - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
     
    -
    getMax(double...) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Get the max of supplied doubles
    -
    -
    getMax(int...) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Get the max of supplied ints
    -
    -
    getMaxAccel() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    getMaxAcceleration() - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    getMaxVel() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    getMaxVelocity() - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    getMultiplier() - Method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    -
     
    -
    getName() - Method in class com.technototes.library.logger.entry.Entry
    -
    -
    Get the name
    -
    -
    getOpModeRuntime() - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Gets the number of seconds that the opmode has been executing
    -
    -
    getOpModeRuntime() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Get the opmode runtime
    -
    -
    getOpModeState() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Get op mode state
    -
    -
    getPosition() - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder
    -
     
    -
    getPosition() - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    Get servo position
    -
    -
    getPosition() - Method in class com.technototes.library.subsystem.servo.ServoSubsystem
    -
    -
    Get subsystem servo position
    -
    -
    getPriority() - Method in class com.technototes.library.logger.entry.Entry
    -
    -
    Get Priority for the entry
    -
    -
    getProportion() - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    getRawVelocity() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    getRequirements() - Method in interface com.technototes.library.command.Command
    -
    -
    Return the subsystem requirements for this command
    -
    -
    getRightStick() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Returns the right stick
    -
    -
    getRuntime() - Method in interface com.technototes.library.command.Command
    -
    -
    Return the amount of time since the command was first initialized
    -
    -
    getScale(double...) - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    -
    -
    This will give you a *positive* value to scale the value to such that - the largest value of the list will be |1| (negative or positive).
    -
    -
    getSeconds() - Method in class com.technototes.library.command.WaitCommand
    -
     
    -
    getSensorValue() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Get the encoder position value
    -
    -
    getSensorValue() - Method in class com.technototes.library.hardware.sensor.AnalogSensor
    -
     
    -
    getSensorValue() - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    -
    -
    Get the sensor value (relative to the assigned zero)
    -
    -
    getSensorValue() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    getSensorValue() - Method in interface com.technototes.library.hardware.Sensored
    -
    -
    Deprecated.
    -
    Get the sensor value
    -
    -
    getSensorValue() - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    getServo() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    getSpeed() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Gets the power set for the motor
    -
    -
    getSpeed() - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Gets the power value for the motor
    -
    -
    getSpeed() - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    -
    -
    Override this one, I guess? Not sure how useful it is.
    -
    -
    getSpeed() - Method in class com.technototes.library.subsystem.motor.MotorSubsystem
    -
    -
    Get the speed of the motors in the subsystem
    -
    -
    getState() - Method in interface com.technototes.library.command.Command
    -
    -
    Return the command state: Probably don't use this
    -
    -
    getSuppliers() - Method in interface com.technototes.library.control.Binding
    -
     
    -
    getSuppliers() - Method in class com.technototes.library.control.CommandBinding
    -
     
    -
    getTargetPosition() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    getTargetTolerance() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    getTriggerThreshold() - Method in class com.technototes.library.control.AxisBase
    -
    -
    Gets the trigger threshold
    -
    -
    getUnit() - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    getUnit() - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    -
     
    -
    getUnit() - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    -
    -
    Deprecated.
    -
    Get the current distance unit
    -
    -
    getValue() - Method in class com.technototes.library.hardware.sensor.DigitalSensor
    -
    -
    Get the sensor value as a boolean
    -
    -
    getValue() - Method in class com.technototes.library.util.Integral
    -
    -
    Get the current accumulation
    -
    -
    getVelocity() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Get the power for the motor (Velocity, I guess?)
    -
    -
    getVersion() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    getVersion() - Static method in class com.technototes.library.RobotLibrary
    -
    -
    Get library version
    -
    -
    getVolume() - Method in class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    getXAxis() - Method in class com.technototes.library.control.GamepadDpad
    -
    -
    Return x axis double (treating dpad as stick)
    -
    -
    getXAxis() - Method in class com.technototes.library.control.GamepadStick
    -
     
    -
    getXAxis() - Method in interface com.technototes.library.control.Stick
    -
    -
    Return x axis double
    -
    -
    getXSupplier() - Method in interface com.technototes.library.control.Stick
    -
    -
    Return x axis supplier
    -
    -
    getYAxis() - Method in class com.technototes.library.control.GamepadDpad
    -
    -
    Return y axis double (treating dpad as stick)
    -
    -
    getYAxis() - Method in class com.technototes.library.control.GamepadStick
    -
     
    -
    getYAxis() - Method in interface com.technototes.library.control.Stick
    -
    -
    Return y axis double
    -
    -
    getYSupplier() - Method in interface com.technototes.library.control.Stick
    -
    -
    Return y axis supplier
    -
    -
    green() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get the RGB green of the sensor
    -
    -
    GREEN - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    gyroHeading() - Method in interface com.technototes.library.hardware.sensor.IGyro
    -
    -
    The heading (in default units)
    -
    -
    gyroHeading() - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Get gyro heading
    -
    -
    gyroHeading(AngleUnit) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Get the gyro heading in the provided units
    -
    -
    gyroHeadingInDegrees() - Method in interface com.technototes.library.hardware.sensor.IGyro
    -
    -
    The heading (in degrees)
    -
    -
    gyroHeadingInDegrees() - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Gets the gyro heading in degrees
    -
    -
    gyroHeadingInRadians() - Method in interface com.technototes.library.hardware.sensor.IGyro
    -
    -
    The heading (in radians)
    -
    -
    gyroHeadingInRadians() - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Gets the gyro heading in radians
    -
    -
    gyroSupplier - Variable in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem
    -
    -
    Override this to get the gyroscope heading.
    -
    -
    -

    H

    -
    -
    HardwareBuilder<T> - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    HardwareBuilder(int) - Constructor for class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    HardwareBuilder(String) - Constructor for class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    HardwareBuilder(T) - Constructor for class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in com.technototes.library.hardware
    -
    -
    Deprecated.
    -
    -
    HardwareDevice(String) - Constructor for class com.technototes.library.hardware.HardwareDevice
    -
    -
    Deprecated.
    -
    Make a hardware device with the string to get from hardwaremap
    -
    -
    HardwareDevice(T) - Constructor for class com.technototes.library.hardware.HardwareDevice
    -
    -
    Deprecated.
    -
    Make a hardware device
    -
    -
    HardwareDeviceGroup<T extends HardwareDevice> - Interface in com.technototes.library.hardware
    -
    -
    Deprecated.
    -
    -
    hardwareMap - Variable in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    hardwareMap - Static variable in class com.technototes.library.hardware.HardwareDevice
    -
    -
    Deprecated.
    -
    Hardware map object for stuff
    -
    -
    hsv() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get HSV as an int
    -
    -
    hsvArray() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
     
    -
    hue() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get HSV hue
    -
    -
    -

    I

    -
    -
    IColorSensor - Interface in com.technototes.library.hardware.sensor
    -
     
    -
    IDistanceSensor - Interface in com.technototes.library.hardware.sensor
    -
     
    -
    idle(DcMotor.ZeroPowerBehavior) - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    ignoreCancel() - Method in class com.technototes.library.command.CommandGroup
    -
    -
    Specify that this CommandGroup should NOT count cancellation as 'completed'
    -
    -
    IGyro - Interface in com.technototes.library.hardware.sensor
    -
    -
    An interface for a single-angle gyroscope
    -
    -
    ILightSensor - Interface in com.technototes.library.hardware.sensor
    -
     
    -
    imu(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    IMU - Class in com.technototes.library.hardware.sensor
    -
    -
    Class for the IMU (Inertial Movement Units) that implements the IGyro interface
    -
    -
    IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection) - Constructor for class com.technototes.library.hardware.sensor.IMU
    -
    -
    Make an imu
    -
    -
    IMU(IMU, IMU.Parameters) - Constructor for class com.technototes.library.hardware.sensor.IMU
    -
    -
    Make an imu
    -
    -
    IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection) - Constructor for class com.technototes.library.hardware.sensor.IMU
    -
    -
    Make an imu
    -
    -
    IMU(String, IMU.Parameters) - Constructor for class com.technototes.library.hardware.sensor.IMU
    -
    -
    Make an imu
    -
    -
    IMU.AxesSigns - Enum Class in com.technototes.library.hardware.sensor
    -
    -
    The direction of the axes signs when remapping the axes
    -
    -
    IMUBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    IMUBuilder(BNO055IMUImpl) - Constructor for class com.technototes.library.hardware2.IMUBuilder
    -
    -
    Deprecated
    -
    -
    IMUBuilder(String) - Constructor for class com.technototes.library.hardware2.IMUBuilder
    -
    -
    deprecated
    -
    -
    IMUBuilder.AxesSigns - Enum Class in com.technototes.library.hardware2
    -
    -
    This is duplicated in the IMU class
    -
    -
    incrementPosition(double) - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    index() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    index() - Element in annotation interface com.technototes.library.logger.Log
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    index() - Element in annotation interface com.technototes.library.logger.Log.Number
    -
    -
    Store index for this annotation (position in telemetry)
    -
    -
    INIT - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    -
     
    -
    initEntries - Variable in class com.technototes.library.logger.Logger
    -
     
    -
    initialize() - Method in interface com.technototes.library.command.Command
    -
    -
    Init the command
    -
    -
    initialize() - Method in class com.technototes.library.command.CommandGroup
    -
    -
    Mark all commands in the group as not yet run
    -
    -
    initialize(IMU.Parameters) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Initialize the IMU
    -
    -
    INITIALIZING - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command is initializing after having been triggered
    -
    -
    initLoop() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Runs constantly when op mode is initialized, yet not started
    -
    -
    initMap(HardwareMap) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    initUpdate() - Method in class com.technototes.library.logger.Logger
    -
    -
    Update the logged init items in temeletry
    -
    -
    input() - Method in class com.technototes.library.hardware2.DigitalBuilder
    -
    -
    Don't use this in the future
    -
    -
    inRange(double) - Method in class com.technototes.library.util.Range
    -
    -
    Check if the value is in the range
    -
    -
    Integral - Class in com.technototes.library.util
    -
    -
    A simple Observation-based integral calculator over time
    -
    -
    Integral() - Constructor for class com.technototes.library.util.Integral
    -
    -
    Initialize it with a value of 0
    -
    -
    Integral(double) - Constructor for class com.technototes.library.util.Integral
    -
    -
    Initialize it with the value c
    -
    -
    INTERRUPTED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command is pending cancellation (but has not yet processed the cancellation)
    -
    -
    invert() - Method in interface com.technototes.library.general.Invertable
    -
    -
    Toggle inversion
    -
    -
    invert() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Invert the motor (toggle inversion)
    -
    -
    invert() - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Invert the motor (toggle inversion)
    -
    -
    invert() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    Invertable<T extends Invertable<T>> - Interface in com.technototes.library.general
    -
    -
    Interface for anything that can be inverted
    -
    -
    isAtPosition(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Is the motor at the specified position
    -
    -
    isAtTarget() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    isCancelled() - Method in interface com.technototes.library.command.Command
    -
    -
    Exactly what it says
    -
    -
    isDisabled() - Method in interface com.technototes.library.general.Enablable
    -
     
    -
    isEnabled() - Method in class com.technototes.library.control.ButtonBase
    -
     
    -
    isEnabled() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Is the gamepad (and all bound commands from it!) enabled?
    -
    -
    isEnabled() - Method in class com.technototes.library.control.GamepadDpad
    -
     
    -
    isEnabled() - Method in class com.technototes.library.control.GamepadStick
    -
     
    -
    isEnabled() - Method in interface com.technototes.library.general.Enablable
    -
     
    -
    isFinished() - Method in interface com.technototes.library.command.Command
    -
    -
    Return if the command is finished
    -
    -
    isFinished() - Method in class com.technototes.library.command.CommandBase
    -
    -
    Deprecated.
    -
    Is this command finished
    -
    -
    isFinished() - Method in class com.technototes.library.command.CommandGroup
    -
    -
    MUST IMPLEMENT IN SUBCLASSES:
    -
    -
    isFinished() - Method in class com.technototes.library.command.ConditionalCommand
    -
     
    -
    isFinished() - Method in class com.technototes.library.command.ParallelCommandGroup
    -
     
    -
    isFinished() - Method in class com.technototes.library.command.ParallelDeadlineGroup
    -
     
    -
    isFinished() - Method in class com.technototes.library.command.ParallelRaceGroup
    -
    -
    Is this finished?
    -
    -
    isFinished() - Method in class com.technototes.library.command.SequentialCommandGroup
    -
    -
    Returns if all the commands are finished
    -
    -
    isFinished() - Method in class com.technototes.library.command.WaitCommand
    -
     
    -
    isInverseToggled() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is untoggled
    -
    -
    isJustInverseToggled() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is just untoggled
    -
    -
    isJustPressed() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is just pressed
    -
    -
    isJustReleased() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is just released
    -
    -
    isJustToggled() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is just toggled
    -
    -
    isPreRelease() - Static method in class com.technototes.library.RobotLibrary
    -
    -
    Get if the library is a pre release
    -
    -
    isPressed() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is pressed
    -
    -
    isPrime(int) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Calculate if the supplied number is prime
    -
    -
    isReleased() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is released
    -
    -
    isRumbling() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Is the gamepad rumbling
    -
    -
    isRunning() - Method in interface com.technototes.library.command.Command
    -
    -
    Is the command in some state of running/started/finished/cancelled
    -
    -
    isState(CommandOpMode.OpModeState...) - Method in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    -
    -
    Check if other states are this state
    -
    -
    isToggled() - Method in class com.technototes.library.control.ButtonBase
    -
    -
    Returns if the button is toggled
    -
    -
    IterativeCommand - Class in com.technototes.library.command
    -
     
    -
    IterativeCommand(Function<Integer, Command>, int) - Constructor for class com.technototes.library.command.IterativeCommand
    -
    -
    iterative command for an int
    -
    -
    IterativeCommand(Function<Integer, Command>, int, BooleanSupplier) - Constructor for class com.technototes.library.command.IterativeCommand
    -
     
    -
    IterativeCommand(Function<Integer, Command>, BooleanSupplier) - Constructor for class com.technototes.library.command.IterativeCommand
    -
     
    -
    IterativeCommand(Function<T, Command>, T, T, Function<T, T>) - Constructor for class com.technototes.library.command.IterativeCommand
    -
    -
    iterative command for anything
    -
    -
    IterativeCommand(Function<T, Command>, T, T, Function<T, T>, BooleanSupplier) - Constructor for class com.technototes.library.command.IterativeCommand
    -
     
    -
    -

    J

    -
    -
    joystickDrive(double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
     
    -
    joystickDriveWithGyro(double, double, double, double) - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
     
    -
    justFinished() - Method in interface com.technototes.library.command.Command
    -
    -
    Is this command finished?
    -
    -
    justFinishedNoCancel() - Method in interface com.technototes.library.command.Command
    -
    -
    Is this command completed?
    -
    -
    justStarted() - Method in interface com.technototes.library.command.Command
    -
    -
    Has the command just be started?
    -
    -
    -

    L

    -
    -
    lastCommand - Variable in class com.technototes.library.command.SequentialCommandGroup
    -
     
    -
    led(boolean) - Method in class com.technototes.library.hardware2.ColorRangeBuilder
    -
     
    -
    left - Variable in class com.technototes.library.control.GamepadDpad
    -
    -
    The objects for the dpad buttons
    -
    -
    LEFT_BUMPER - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    Left bumper button
    -
    -
    LEFT_STICK_BUTTON - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    Button when clicking the left stick
    -
    -
    LEFT_STICK_X - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Left stick's horizontal axis
    -
    -
    LEFT_STICK_Y - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Left stick's vertical axis
    -
    -
    LEFT_TRIGGER - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Left Trigger's axis
    -
    -
    leftBumper - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    leftSide - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
    -
    Drive motors
    -
    -
    leftStick - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The stick objects
    -
    -
    leftStickButton - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    leftStickX - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The axis objects
    -
    -
    leftStickY - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The axis objects
    -
    -
    leftTrigger - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The axis objects
    -
    -
    LIGHT_GRAY - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    LIME - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    Log - Annotation Interface in com.technototes.library.logger
    -
    -
    The root annotation for annotation logging, also doubles as a basic string log
    -
    -
    Log.Boolean - Annotation Interface in com.technototes.library.logger
    -
     
    -
    Log.Logs - Annotation Interface in com.technototes.library.logger
    -
     
    -
    Log.Number - Annotation Interface in com.technototes.library.logger
    -
    -
    Log a number
    -
    -
    LogConfig - Annotation Interface in com.technototes.library.logger
    -
    -
    Annotations for configuring Logs
    -
    -
    LogConfig.AllowList - Annotation Interface in com.technototes.library.logger
    -
    -
    Annotation for allowing Opmodes to log this item
    -
    -
    LogConfig.DenyList - Annotation Interface in com.technototes.library.logger
    -
    -
    Annotation for denying Opmodes to log this item
    -
    -
    LogConfig.Disabled - Annotation Interface in com.technototes.library.logger
    -
    -
    Annotation to completely disable the entry
    -
    -
    LogConfig.Run - Annotation Interface in com.technototes.library.logger
    -
    -
    Annotation for determining when logged item will be sent to Telemetry
    -
    -
    Loggable - Interface in com.technototes.library.logger
    -
    -
    All classes with annotations for logging must extend this all the way up the hierarchy up to the op mode
    -
    -
    Logger - Class in com.technototes.library.logger
    -
    -
    The class to manage logging
    -
    -
    Logger(OpMode) - Constructor for class com.technototes.library.logger.Logger
    -
    -
    Instantiate the logger
    -
    -
    -

    M

    -
    -
    MAGENTA - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    map - Static variable in interface com.technototes.library.util.SmartConsumer
    -
    -
    The map of values that have been consumed.
    -
    -
    map(double, double, double, double, double) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Scale a value originally between in_min and in_max to be the same ratio when mapped to - out_min and out_max.
    -
    -
    MapUtils - Class in com.technototes.library.util
    -
     
    -
    MapUtils() - Constructor for class com.technototes.library.util.MapUtils
    -
     
    -
    MathUtils - Class in com.technototes.library.util
    -
    -
    Class with various math functions
    -
    -
    MathUtils() - Constructor for class com.technototes.library.util.MathUtils
    -
     
    -
    max - Variable in class com.technototes.library.util.Range
    -
    -
    The maximum value of the range
    -
    -
    maxAcceleration - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    maxSpeed - Variable in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    -
    -
    Max speed
    -
    -
    maxVelocity - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    middle() - Method in class com.technototes.library.util.Range
    -
    -
    Get the 'middle' of the range
    -
    -
    min - Variable in class com.technototes.library.util.Range
    -
    -
    The minimum value of the range
    -
    -
    mode(DcMotor.RunMode) - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    mode(DigitalChannel.Mode) - Method in class com.technototes.library.hardware2.DigitalBuilder
    -
    -
    Don't use this in the future
    -
    -
    motor(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    motor(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    -
    -
    Class for motors
    -
    -
    Motor(String) - Constructor for class com.technototes.library.hardware.motor.Motor
    -
    -
    Create a motor
    -
    -
    Motor(T) - Constructor for class com.technototes.library.hardware.motor.Motor
    -
    -
    Create a motor
    -
    -
    MotorBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    MotorBuilder(int) - Constructor for class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    MotorBuilder(DcMotorEx) - Constructor for class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    MotorBuilder(String) - Constructor for class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    MotorEncoder - Class in com.technototes.library.hardware.sensor.encoder
    -
    -
    Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding - slot's motor direction
    -
    -
    MotorEncoder(DcMotorEx) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    MotorEncoder(DcMotorEx, ElapsedTime) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    MotorEncoder(EncodedMotor<DcMotorEx>) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    MotorEncoder(String) - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    MotorEncoder.Direction - Enum Class in com.technototes.library.hardware.sensor.encoder
    -
     
    -
    MotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.hardware.motor
    -
    -
    Class for a group of motors
    -
    -
    MotorGroup(Motor<T>...) - Constructor for class com.technototes.library.hardware.motor.MotorGroup
    -
    -
    Make a motor group
    -
    -
    MotorSubsystem<T extends Motor<?>> - Class in com.technototes.library.subsystem.motor
    -
    -
    Class for motor subsystems
    -
    -
    MotorSubsystem(T) - Constructor for class com.technototes.library.subsystem.motor.MotorSubsystem
    -
    -
    Create motor subsystem
    -
    -
    MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED - Static variable in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    msStuckDetectStop - Variable in class com.technototes.library.structure.CommandOpMode
    -
    -
    Deprecated.
    -
    -
    -

    N

    -
    -
    name - Variable in class com.technototes.library.logger.entry.Entry
    -
    -
    The name of the Entry
    -
    -
    name() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    name() - Element in annotation interface com.technototes.library.logger.Log
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    name() - Element in annotation interface com.technototes.library.logger.Log.Number
    -
    -
    Store the name for this annotation to be be beside
    -
    -
    NEUTRAL - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
     
    -
    NNN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Negative, Negative, Negative
    -
    -
    NNN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    NNP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Negative, Negative, Positive
    -
    -
    NNP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    NO_COLOR - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    NONE - Enum constant in enum class com.technototes.library.util.Alliance
    -
    -
    NO ALLIANCE SELECTED
    -
    -
    NONE_ACTIVE - Enum constant in enum class com.technototes.library.control.Binding.Type
    -
     
    -
    NPN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Negative, Positive, Negative
    -
    -
    NPN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    NPP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Negative, Positive, Positive
    -
    -
    NPP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    numberColor - Variable in class com.technototes.library.logger.entry.NumberEntry
    -
     
    -
    NumberEntry - Class in com.technototes.library.logger.entry
    -
     
    -
    NumberEntry(String, Supplier<Number>, int) - Constructor for class com.technototes.library.logger.entry.NumberEntry
    -
     
    -
    -

    O

    -
    -
    of(Pair<T, U>...) - Static method in class com.technototes.library.util.MapUtils
    -
     
    -
    of(T, T) - Static method in class com.technototes.library.util.Alliance.Selector
    -
    -
    Selector factory method
    -
    -
    offset - Variable in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    onlyIf(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    -
    -
    Runs this command only if the choiceCondition is met (i.e.
    -
    -
    onRange(double, double) - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    Set servo range
    -
    -
    onUnit(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor
    -
     
    -
    onUnit(DistanceUnit) - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor
    -
     
    -
    onUnit(DistanceUnit) - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    -
    -
    Deprecated.
    -
    Set the distance unit
    -
    -
    ORANGE - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    output() - Method in class com.technototes.library.hardware2.DigitalBuilder
    -
    -
    Don't use this in the future
    -
    -
    -

    P

    -
    -
    ParallelCommandGroup - Class in com.technototes.library.command
    -
    -
    Command group to run commands in parallel until all of them finish
    -
    -
    ParallelCommandGroup(Command...) - Constructor for class com.technototes.library.command.ParallelCommandGroup
    -
    -
    Make parallel command group
    -
    -
    ParallelDeadlineGroup - Class in com.technototes.library.command
    -
    -
    Command group to run commands in parallel until one particular command completes
    -
    -
    ParallelDeadlineGroup(Command, Command...) - Constructor for class com.technototes.library.command.ParallelDeadlineGroup
    -
    -
    Make parallel deadline group
    -
    -
    ParallelRaceGroup - Class in com.technototes.library.command
    -
    -
    Command group to run commands in parallel until *one* is finished
    -
    -
    ParallelRaceGroup(Command...) - Constructor for class com.technototes.library.command.ParallelRaceGroup
    -
    -
    Make parallel race group
    -
    -
    parameter(Consumer<BNO055IMU.Parameters>) - Method in class com.technototes.library.hardware2.IMUBuilder
    -
    -
    Deprecated
    -
    -
    periodic() - Method in class com.technototes.library.control.ButtonBase
    -
     
    -
    periodic() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Run the periodic functions for the controller (if the controller is enabled)
    -
    -
    periodic() - Method in class com.technototes.library.control.GamepadDpad
    -
     
    -
    periodic() - Method in class com.technototes.library.control.GamepadStick
    -
     
    -
    periodic() - Method in interface com.technototes.library.general.Periodic
    -
    -
    The periodic function
    -
    -
    periodic() - Method in class com.technototes.library.subsystem.DeviceSubsystem
    -
     
    -
    periodic() - Method in interface com.technototes.library.subsystem.Subsystem
    -
     
    -
    Periodic - Interface in com.technototes.library.general
    -
    -
    An interface for classes to have the periodic function
    -
    -
    PINK - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    PNN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Positive, Negative, Negative
    -
    -
    PNN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    PNP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Positive, Negative, Positive
    -
    -
    PNP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    position(double) - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    positionThreshold - Variable in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Deadzone for going to positions with encoder
    -
    -
    PPN - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Positive, Positive, Negative
    -
    -
    PPN - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    PPP - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Positive, Positive, Positive
    -
    -
    PPP - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    deprecated
    -
    -
    priority - Variable in class com.technototes.library.logger.entry.Entry
    -
    -
    The priority (in the telemetry list) of the entry
    -
    -
    priority() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    -
    -
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    -
    -
    priority() - Element in annotation interface com.technototes.library.logger.Log.Number
    -
    -
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    -
    -
    priority() - Element in annotation interface com.technototes.library.logger.Log
    -
    -
    Store priority for this log entry (to pick the most wanted entry over others with same index)
    -
    -
    product - Variable in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    propagate(double) - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    -
    -
    Deprecated.
    -
    Propagate actions across the followers
    -
    -
    propogate(double) - Method in interface com.technototes.library.hardware.HardwareDeviceGroup
    -
    -
    Deprecated.
    -
    -
    propogate(double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    -
     
    -
    propogate(double) - Method in class com.technototes.library.hardware.motor.MotorGroup
    -
     
    -
    propogate(double) - Method in class com.technototes.library.hardware.servo.ServoGroup
    -
    -
    Deprecated.
    -
    proportion - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints
    -
     
    -
    ps_circle - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the PS4 game controller
    -
    -
    PS_CIRCLE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    PS4 Circle (O) button
    -
    -
    ps_cross - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the PS4 game controller
    -
    -
    PS_CROSS - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    PS4 Cross (X) button
    -
    -
    ps_options - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the PS4 game controller
    -
    -
    PS_OPTIONS - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    PS4 Options button
    -
    -
    ps_share - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the PS4 game controller
    -
    -
    PS_SHARE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    PS4 Share button
    -
    -
    ps_square - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the PS4 game controller
    -
    -
    PS_SQUARE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    PS4 Square button
    -
    -
    ps_triangle - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the PS4 game controller
    -
    -
    PS_TRIANGLE - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    PS4 Triangle button
    -
    -
    PURPLE - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    pwmRange(double, double) - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    pythag(double...) - Static method in class com.technototes.library.util.MathUtils
    -
    -
    Calculate pythagorean theorem of any number of sides
    -
    -
    -

    R

    -
    -
    raceWith(Command...) - Method in interface com.technototes.library.command.Command
    -
    -
    Runs all the commands in parallel (including this command) until one of them finishes
    -
    -
    radians() - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Set angle format to radians
    -
    -
    radians() - Method in class com.technototes.library.hardware2.IMUBuilder
    -
    -
    Deprecated
    -
    -
    range(double, double) - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    Range - Class in com.technototes.library.util
    -
    -
    Helper class for tracking a range
    -
    -
    Range(double, double) - Constructor for class com.technototes.library.util.Range
    -
    -
    Create a range with the given minimum and maximum
    -
    -
    raw() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    red() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get the RGB red of the sensor
    -
    -
    RED - Enum constant in enum class com.technototes.library.util.Alliance
    -
    -
    RED alliance selector
    -
    -
    RED - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    RED_SQUARE - Static variable in class com.technototes.library.util.Characters
    -
     
    -
    register() - Method in interface com.technototes.library.subsystem.Subsystem
    -
     
    -
    register(Periodic) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Register a periodic function to be run once each schedule loop
    -
    -
    remap(AxesOrder, IMUBuilder.AxesSigns) - Method in class com.technototes.library.hardware2.IMUBuilder
    -
    -
    Deprecated
    -
    -
    remapAxesAndSigns(AxesOrder, IMU.AxesSigns) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Remaps the axes for the IMU in the order and sign provided.
    -
    -
    remapLegacyAxes(AxesOrder, IMU.AxesSigns) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Remaps the axes for the BNO055 IMU in the order and sign provided - The SDK 8.1.1 added a new IMU class, which (delightfully) rotated - the X and Y axes around the Z axis by 90 degrees clock-wise (viewed from above) - If you have code that was using that layout, this is what you probably need to call.
    -
    -
    repeat(String, int) - Static method in class com.technototes.library.logger.Logger
    -
    -
    Repeat a String
    -
    -
    requestOpModeStop() - Method in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    requirementMap - Static variable in interface com.technototes.library.command.Command
    -
    -
    The Command to Required Subsystems lookup
    -
    -
    reset() - Static method in interface com.technototes.library.util.SmartConsumer
    -
     
    -
    RESET - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command has just be scheduled
    -
    -
    resetDeviceConfigurationForOpMode() - Method in class com.technototes.library.hardware.DummyDevice
    -
     
    -
    resetScheduler() - Static method in class com.technototes.library.command.CommandScheduler
    -
    -
    Alex had a comment "be careful with this" and he's not wrong.
    -
    -
    Rev2MDistanceSensor - Class in com.technototes.library.hardware.sensor
    -
    -
    Deprecated.
    -
    -
    Rev2MDistanceSensor(DistanceSensor) - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    -
    -
    Deprecated.
    -
    Create a range sensor
    -
    -
    Rev2MDistanceSensor(String) - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor
    -
    -
    Deprecated.
    -
    Create a range sensor
    -
    -
    reverse() - Method in class com.technototes.library.hardware2.CRServoBuilder
    -
     
    -
    reverse() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    reverse() - Method in class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    REVERSE - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    -
     
    -
    rgb() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
     
    -
    right - Variable in class com.technototes.library.control.GamepadDpad
    -
    -
    The objects for the dpad buttons
    -
    -
    RIGHT_BUMPER - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    Right bumper button
    -
    -
    RIGHT_STICK_BUTTON - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    Button which clicking the right stick
    -
    -
    RIGHT_STICK_X - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Right stick's horizontal axis
    -
    -
    RIGHT_STICK_Y - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Right stick's vertical axis
    -
    -
    RIGHT_TRIGGER - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Right Trigger's axis
    -
    -
    rightBumper - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    rightSide - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
    -
    Drive motors
    -
    -
    rightStick - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The stick objects
    -
    -
    rightStickButton - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for both the XBox and PS4 controllers
    -
    -
    rightStickX - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The axis objects
    -
    -
    rightStickY - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The axis objects
    -
    -
    rightTrigger - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The axis objects
    -
    -
    rlMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    -
    RobotLibrary - Class in com.technototes.library
    -
    -
    Root class for the Robot Library (I will put important stuff here)
    -
    -
    RobotLibrary() - Constructor for class com.technototes.library.RobotLibrary
    -
     
    -
    rrMotor - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    -
    rumble() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Rumble for about 1/8th of a second
    -
    -
    rumble(double) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Rumble the gamepad for 'seconds'
    -
    -
    rumbleBlip() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Run a single "RumbleBlip"
    -
    -
    rumbleBlips(int) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Run a bunch of "RumbleBlips"
    -
    -
    run() - Method in interface com.technototes.library.command.Command
    -
    -
    Run the commmand
    -
    -
    run() - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    This is invoked from inside the CommandOpMode method, during the opCode.
    -
    -
    RUN - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    -
     
    -
    runEntries - Variable in class com.technototes.library.logger.Logger
    -
     
    -
    runLoop() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Runs constantly when op mode is started
    -
    -
    runOpMode() - Method in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    runUpdate() - Method in class com.technototes.library.logger.Logger
    -
    -
    Update the logged run items in temeletry
    -
    -
    -

    S

    -
    -
    saturation() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get HSV saturation
    -
    -
    scale(double) - Method in class com.technototes.library.util.Range
    -
    -
    Scale the range by a given value
    -
    -
    scalePWM(double, double) - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    schedule(Command) - Method in class com.technototes.library.command.CommandGroup
    -
    -
    This should schedule the command as part of this command group, I think.
    -
    -
    schedule(Command) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to run
    -
    -
    schedule(Command) - Method in class com.technototes.library.command.ParallelCommandGroup
    -
     
    -
    schedule(Command) - Method in class com.technototes.library.command.ParallelDeadlineGroup
    -
    -
    Add another command to the group to be run while waiting for the 'deadline' command to finish
    -
    -
    schedule(Command) - Method in class com.technototes.library.command.ParallelRaceGroup
    -
    -
    Add one more command to the list of commands that will be run at the same time
    -
    -
    schedule(Command) - Method in class com.technototes.library.command.SequentialCommandGroup
    -
    -
    This allows you to append another command to the Sequential Command Group
    -
    -
    schedule(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule the command to run
    -
    -
    schedule(Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Register a command to be scheduled.
    -
    -
    schedule(BooleanSupplier, Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule the command to run over & over
    -
    -
    schedule(Consumer<Boolean>) - Method in class com.technototes.library.control.CommandButton
    -
     
    -
    schedule(Function<Boolean, Command>) - Method in class com.technototes.library.control.CommandButton
    -
     
    -
    schedule(Function<Double, Command>) - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    scheduleAfterOther(Command, Command) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule the 'other' command (the second one) when the 'dependency' command has - finished (but *not* been cancelled!).
    -
    -
    scheduleAfterOther(Command, Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule the 'other' command (the second one) when the 'dependency' command has - finished (but *not* been cancelled!) *and* 'additionalCondition' is true.
    -
    -
    scheduleDefault(Command, Subsystem) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule the default command for a given subsystem.
    -
    -
    scheduleDpad(BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleDpad(BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleForState(Command, CommandOpMode.OpModeState...) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to be run when the OpMode is one of the provided list of states.
    -
    -
    scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to be run when the OpMode is one of the provided list of states and the - 'supplier' boolean function is also true.
    -
    -
    scheduleInit(Command) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to be run recurringly during the 'Init' phase of an opmode.
    -
    -
    scheduleInit(Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to be run recurringly during the 'Init' phase of an opmode.
    -
    -
    scheduleJoystick(Command) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedules a command to be run during Run and End states, all the time.
    -
    -
    scheduleJoystick(Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedules a command to be run during Run and End states, all the time.
    -
    -
    scheduleLeftStick(BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleLeftStick(BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleOnce(Command) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to run
    -
    -
    scheduleOnceForState(Command, CommandOpMode.OpModeState) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule a command to run during a particular OpModeState
    -
    -
    schedulePressed(Function<DoubleSupplier, Command>) - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    scheduleRightStick(BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleRightStick(BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleStick(Stick, BiConsumer<Double, Double>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleStick(Stick, BiFunction<Double, Double, Command>) - Method in class com.technototes.library.control.CommandGamepad
    -
     
    -
    scheduleWithOther(Command, Command) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule the 'other' command (the second one) when the 'dependency' command has - just started.
    -
    -
    scheduleWithOther(Command, Command, BooleanSupplier) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Schedule the 'other' command (the second one) when the 'dependency' command has - just started *and* 'additionalCondition' is also true.
    -
    -
    select(Alliance) - Method in class com.technototes.library.util.Alliance.Selector
    -
    -
    Select the red or blue item based on the Alliance
    -
    -
    selectOf(Alliance, T, T) - Static method in class com.technototes.library.util.Alliance.Selector
    -
    -
    Based on Alliance, choose red or blue
    -
    -
    selectOf(T, T) - Method in enum class com.technototes.library.util.Alliance
    -
    -
    Select either 'a' or 'b' depending on alliance
    -
    -
    Selector(T, T) - Constructor for class com.technototes.library.util.Alliance.Selector
    -
    -
    Create a Selelector for red/blue
    -
    -
    Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in com.technototes.library.hardware.sensor
    -
    -
    Deprecated.
    -
    -
    Sensor(String) - Constructor for class com.technototes.library.hardware.sensor.Sensor
    -
    -
    Deprecated.
    -
    Create sensor
    -
    -
    Sensor(T) - Constructor for class com.technototes.library.hardware.sensor.Sensor
    -
    -
    Deprecated.
    -
    Create a sensor
    -
    -
    Sensored - Interface in com.technototes.library.hardware
    -
    -
    Deprecated.
    -
    -
    SequentialCommandGroup - Class in com.technototes.library.command
    -
    -
    A grouping command which runs a list of commands in sequence
    -
    -
    SequentialCommandGroup(Command...) - Constructor for class com.technototes.library.command.SequentialCommandGroup
    -
    -
    Make sequential command group.
    -
    -
    servo(int) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    servo(String) - Static method in class com.technototes.library.hardware2.HardwareBuilder
    -
    -
    Deprecated
    -
    -
    Servo - Class in com.technototes.library.hardware.servo
    -
    -
    Deprecated.
    -
    -
    Servo(Servo) - Constructor for class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    Create servo object
    -
    -
    Servo(String) - Constructor for class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    Create servo object
    -
    -
    ServoBuilder - Class in com.technototes.library.hardware2
    -
    -
    TODO: Remove this.
    -
    -
    ServoBuilder(int) - Constructor for class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    ServoBuilder(Servo) - Constructor for class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    ServoBuilder(String) - Constructor for class com.technototes.library.hardware2.ServoBuilder
    -
     
    -
    ServoGroup - Class in com.technototes.library.hardware.servo
    -
    -
    Deprecated.
    -
    -
    ServoGroup(Servo...) - Constructor for class com.technototes.library.hardware.servo.ServoGroup
    -
    -
    Deprecated.
    -
    Create a servo group
    -
    -
    ServoProfiler - Class in com.technototes.library.hardware.servo
    -
     
    -
    ServoProfiler(Servo) - Constructor for class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    ServoProfiler.Constraints - Class in com.technototes.library.hardware.servo
    -
     
    -
    ServoSubsystem - Class in com.technototes.library.subsystem.servo
    -
    -
    Class for servo subsystems
    -
    -
    ServoSubsystem(Servo) - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem
    -
    -
    Create servo subsystem
    -
    -
    ServoSubsystem(Servo...) - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem
    -
     
    -
    set(double) - Method in class com.technototes.library.util.Integral
    -
    -
    Set the value to C
    -
    -
    setAverageOutput(double) - Method in class com.technototes.library.util.Differential
    -
    -
    Set the average of the differential.
    -
    -
    setConstraints(double, double, double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    setConstraints(ServoProfiler.Constraints) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    setDefaultCommand(Command) - Method in interface com.technototes.library.subsystem.Subsystem
    -
     
    -
    setDeviationOutput(double) - Method in class com.technototes.library.util.Differential
    -
    -
    Set the deviation of the differential.
    -
    -
    setDirection(MotorEncoder.Direction) - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
    -
    Allows you to set the direction of the counts and velocity without modifying the motor's direction state
    -
    -
    setEnabled(boolean) - Method in class com.technototes.library.control.ButtonBase
    -
     
    -
    setEnabled(boolean) - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Enable/disable the gamepad (and all potentially bound commands!)
    -
    -
    setEnabled(boolean) - Method in class com.technototes.library.control.GamepadDpad
    -
     
    -
    setEnabled(boolean) - Method in class com.technototes.library.control.GamepadStick
    -
     
    -
    setEnabled(boolean) - Method in interface com.technototes.library.general.Enablable
    -
    -
    Set whether or not the device is enabled
    -
    -
    setEncoder(Encoder) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Explicitly set the encoder for the motor
    -
    -
    setHeading(double) - Method in interface com.technototes.library.hardware.sensor.IGyro
    -
    -
    Sets the current heading (in default units)
    -
    -
    setHeading(double) - Method in class com.technototes.library.hardware.sensor.IMU
    -
    -
    Sets the current heading to be 'new heading'
    -
    -
    setIndex(int) - Method in class com.technototes.library.logger.entry.Entry
    -
    -
    Set index
    -
    -
    setInverted(boolean) - Method in class com.technototes.library.control.ButtonBase
    -
     
    -
    setInverted(boolean) - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    setInverted(boolean) - Method in class com.technototes.library.control.CommandButton
    -
     
    -
    setInverted(boolean) - Method in interface com.technototes.library.general.Invertable
    -
    -
    Set the inversion (true -> Is inverted, false -> Not inverted)
    -
    -
    setInverted(boolean) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Set the Inverted state for the motor.
    -
    -
    setInverted(boolean) - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Set the Inverted state for the motor.
    -
    -
    setInverted(boolean) - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    setLimits(double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
     
    -
    setLimits(double, double) - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Sets the min & max values for the motor power (still clipped to -1/1)
    -
    -
    setLimits(double, double) - Method in class com.technototes.library.util.Differential
    -
    -
    Set the limits for the differential
    -
    -
    setMaxSpeed(double) - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    -
    -
    Set the max speed for the subsystem
    -
    -
    setOpMode(CommandOpMode) - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Set the scheduler's opmode
    -
    -
    setOutputs(double, double) - Method in class com.technototes.library.util.Differential
    -
    -
    Set both outputs for the differential
    -
    -
    setPIDFCoeffecients(double, double, double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Configure the PIDF constants for the motor
    -
    -
    setPIDFCoeffecients(PIDFCoefficients) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Configure the PIDF constants for the motor
    -
    -
    setPosition(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Set the position of the motor
    -
    -
    setPosition(double) - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    Set servo position
    -
    -
    setPosition(double) - Method in class com.technototes.library.hardware.servo.ServoGroup
    -
    -
    Deprecated.
    -
    setPosition(double) - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    -
    -
    Set position for subsystem with existing max speed
    -
    -
    setPosition(double) - Method in class com.technototes.library.subsystem.servo.ServoSubsystem
    -
    -
    Set servo subsystem position
    -
    -
    setPosition(double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Set the power for the motor to try to get to the position specified.
    -
    -
    setPosition(double, double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    -
     
    -
    setPosition(double, double) - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem
    -
    -
    Set position for subsystem
    -
    -
    setPriority(int) - Method in class com.technototes.library.logger.entry.Entry
    -
    -
    Set's the priority for this log line (handy for telemetry overflow)
    -
    -
    setPriority(Differential.DifferentialPriority) - Method in class com.technototes.library.util.Differential
    -
    -
    Sets the priority for the differential.
    -
    -
    setRunMode(DcMotor.RunMode) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Set the runmode for the motor
    -
    -
    setServoRange(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    setSpeed(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Sets the (clipped) speed for the motor
    -
    -
    setSpeed(double) - Method in class com.technototes.library.hardware.motor.Motor
    -
    -
    Set speed of motor
    -
    -
    setSpeed(double) - Method in class com.technototes.library.hardware.motor.MotorGroup
    -
     
    -
    setSpeed(double) - Method in class com.technototes.library.subsystem.motor.MotorSubsystem
    -
    -
    Set the speed of the primary motors in subsystem
    -
    -
    setState(Command.CommandState) - Method in interface com.technototes.library.command.Command
    -
    -
    Set the command state: DEFINITELY DO NOT USE THIS!
    -
    -
    setTargetPosition(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    setTargetTolerance(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    setTriggerThreshold(double) - Method in class com.technototes.library.control.AxisBase
    -
    -
    Set threshold
    -
    -
    setTriggerThreshold(double) - Method in class com.technototes.library.control.CommandAxis
    -
     
    -
    setVelocity(double) - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Set velocity of motor in tps
    -
    -
    setVelocity(double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup
    -
     
    -
    setVolume(float) - Method in class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.subsystem.drivebase
    -
    -
    Class for mecanum/xdrive drivebases
    -
    -
    SimpleMecanumDrivebaseSubsystem(Motor<T>, Motor<T>, Motor<T>, Motor<T>) - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Create mecanum drivebase
    -
    -
    SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor<T>, Motor<T>, Motor<T>, Motor<T>) - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Create mecanum drivebase
    -
    -
    sleep(double) - Method in interface com.technototes.library.command.Command
    -
    -
    Delay the command for some time
    -
    -
    sleep(DoubleSupplier) - Method in interface com.technototes.library.command.Command
    -
    -
    Delay the command for some time
    -
    -
    SmartConsumer<T> - Interface in com.technototes.library.util
    -
    -
    This is a functional interface, when 'accept' is invoked, will only invoke the 'consume' method - when a different value is provided.
    -
    -
    SOME_ACTIVE - Enum constant in enum class com.technototes.library.control.Binding.Type
    -
     
    -
    Speaker - Class in com.technototes.library.hardware
    -
    -
    Deprecated.
    -
    -
    Speaker(float, String...) - Constructor for class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    Speaker(String...) - Constructor for class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    start(String) - Method in class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    startAt(double) - Method in class com.technototes.library.hardware.servo.Servo
    -
    -
    Deprecated.
    -
    Set position for the servo and return this
    -
    -
    startAt(double) - Method in class com.technototes.library.hardware.servo.ServoGroup
    -
    -
    Deprecated.
    -
    STARTED - Enum constant in enum class com.technototes.library.command.Command.CommandState
    -
    -
    The command has been triggered
    -
    -
    stateMap - Static variable in interface com.technototes.library.command.Command
    -
    -
    The Command to Current State of the Command lookup
    -
    -
    Stick - Interface in com.technototes.library.control
    -
    -
    Interface for objects that behave as sticks
    -
    -
    stickButton - Variable in class com.technototes.library.control.GamepadStick
    -
    -
    The objects for the stick button
    -
    -
    stop() - Method in class com.technototes.library.hardware.Speaker
    -
    -
    Deprecated.
    -
    stop() - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
     
    -
    stop() - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
     
    -
    stop() - Method in class com.technototes.library.subsystem.motor.MotorSubsystem
    -
     
    -
    stopRumble() - Method in class com.technototes.library.control.GamepadBase
    -
    -
    Stop rumbling on the gamepad
    -
    -
    StringEntry - Class in com.technototes.library.logger.entry
    -
     
    -
    StringEntry(String, Supplier<String>, int, String) - Constructor for class com.technototes.library.logger.entry.StringEntry
    -
     
    -
    Subsystem - Interface in com.technototes.library.subsystem
    -
     
    -
    supplier - Variable in class com.technototes.library.logger.entry.Entry
    -
    -
    The function called to get the value to display
    -
    -
    -

    T

    -
    -
    TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in com.technototes.library.subsystem.drivebase
    -
    -
    Class for drivebase subsystems
    -
    -
    TankDrivebaseSubsystem(Motor<T>, Motor<T>) - Constructor for class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
    -
    Create tank drivebase
    -
    -
    tare() - Method in class com.technototes.library.hardware.motor.EncodedMotor
    -
    -
    Zero the encoder
    -
    -
    tare() - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    telemetry - Variable in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    terminate() - Method in class com.technototes.library.structure.CommandOpMode
    -
     
    -
    terminateOpMode() - Method in class com.technototes.library.command.CommandScheduler
    -
    -
    Forcefully halt the opmode
    -
    -
    timeMap - Static variable in interface com.technototes.library.command.Command
    -
    -
    The Command to Total Time Spent Running lookup
    -
    -
    toggle(Command, Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    For scheduling a pair of "opposite" commands for toggling when something - is or is not being toggled
    -
    -
    toggleEnabled() - Method in interface com.technototes.library.general.Enablable
    -
    -
    Toggle whether this object is enabled or not
    -
    -
    tolerance(int) - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    toString() - Method in class com.technototes.library.logger.entry.BooleanEntry
    -
     
    -
    toString() - Method in class com.technototes.library.logger.entry.Entry
    -
    -
    The String for the logged item
    -
    -
    toString() - Method in class com.technototes.library.logger.entry.NumberEntry
    -
     
    -
    toString() - Method in class com.technototes.library.logger.entry.StringEntry
    -
     
    -
    translateTargetPosition(double) - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    trueValue() - Element in annotation interface com.technototes.library.logger.Log.Boolean
    -
    -
    Store the string when the annotated method returns true
    -
    -
    -

    U

    -
    -
    universalLoop() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Runs constantly during all periods
    -
    -
    up - Variable in class com.technototes.library.control.GamepadDpad
    -
    -
    The objects for the dpad buttons
    -
    -
    update() - Method in class com.technototes.library.hardware.servo.ServoProfiler
    -
     
    -
    update(double) - Method in class com.technototes.library.util.Integral
    -
    -
    Update the accumulated value for the number of seconds since last update
    -
    -
    uponInit() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Runs once when op mode is initialized
    -
    -
    uponStart() - Method in class com.technototes.library.structure.CommandOpMode
    -
    -
    Runs once when op mode is started
    -
    -
    -

    V

    -
    -
    value() - Method in interface com.technototes.library.hardware.sensor.IColorSensor
    -
    -
    Get HSV value (not entire HSV, just 'V')
    -
    -
    value() - Element in annotation interface com.technototes.library.logger.Log.Logs
    -
     
    -
    value() - Element in annotation interface com.technototes.library.logger.LogConfig.AllowList
    -
    -
    The allowed opmodes
    -
    -
    value() - Element in annotation interface com.technototes.library.logger.LogConfig.DenyList
    -
    -
    The denied opmodes
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.command.Command.CommandState
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.control.Binding.Type
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.util.Alliance
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.util.Color
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    valueOf(String) - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
    -
    Returns the enum constant of this class with the specified name.
    -
    -
    values() - Static method in enum class com.technototes.library.command.Command.CommandState
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.control.Binding.Type
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.control.GamepadBase.Axis
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.util.Alliance
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.util.Color
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    values() - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority
    -
    -
    Returns an array containing the constants of this enum class, in -the order they are declared.
    -
    -
    velocity(PIDFCoefficients) - Method in class com.technototes.library.hardware2.MotorBuilder
    -
     
    -
    -

    W

    -
    -
    WaitCommand - Class in com.technototes.library.command
    -
    -
    A command to do nothing but wait for a span of time.
    -
    -
    WaitCommand(double) - Constructor for class com.technototes.library.command.WaitCommand
    -
    -
    Create a wait command for a fixed number of seconds
    -
    -
    WaitCommand(DoubleSupplier) - Constructor for class com.technototes.library.command.WaitCommand
    -
    -
    Create a wait command for a number of seconds that can be calculated when the commannd is - triggered
    -
    -
    waitUntil(BooleanSupplier) - Method in interface com.technototes.library.command.Command
    -
    -
    After this command, wait until the condition function is true
    -
    -
    whenInverseToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule the command to be run when the input has only stopped being toggled
    -
    -
    whenPressed(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run once the input is pressed.
    -
    -
    whenPressedReleased(Command, Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    For scheduling a pair commands for when the input is pressed and released.
    -
    -
    whenReleased(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run once the input is released.
    -
    -
    whenToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run when the input was just toggled - (From pressed to released, or released to pressed)
    -
    -
    whileInverseToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule the command to run over & over while the input is *not* changing - It will be canceled once the input is toggled.
    -
    -
    whilePressed(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run over & over while the input is pressed, - but once it's released, the command will be cancelled.
    -
    -
    whilePressedContinuous(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run over & over while the input is pressed
    -
    -
    whilePressedOnce(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run while the input is pressed, but only once, - and if the command takes so long that the input is released, the command - will be cancelled.
    -
    -
    whilePressedReleased(Command, Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    For scheduling a pair commands for while the input is pressed and released.
    -
    -
    whileReleased(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule a command to be run over & over while the input is released, - but once it's pressed, the command will be cancelled.
    -
    -
    whileReleasedOnce(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schdule the command to be run when the input is released, but only once!
    -
    -
    whileToggled(Command) - Method in interface com.technototes.library.control.CommandInput
    -
    -
    Schedule the command to be run while the input is changing.
    -
    -
    WHITE - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    withTimeout(double) - Method in interface com.technototes.library.command.Command
    -
    -
    Runs this command until it either finishes, or the timeout has elapsed
    -
    -
    -

    X

    -
    -
    x - Variable in class com.technototes.library.logger.entry.Entry
    -
    -
    The index (in the list) of the entry
    -
    -
    xAxis - Variable in class com.technototes.library.control.GamepadStick
    -
    -
    The objects for the stick axis
    -
    -
    xbox_a - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the XBox game controller
    -
    -
    XBOX_A - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    XBox A button
    -
    -
    xbox_b - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the XBox game controller
    -
    -
    XBOX_B - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    XBox B button
    -
    -
    xbox_back - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the XBox game controller
    -
    -
    XBOX_BACK - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    XBox Back button
    -
    -
    xbox_start - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the XBox game controller
    -
    -
    XBOX_START - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    XBox Start button
    -
    -
    xbox_x - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the XBox game controller
    -
    -
    XBOX_X - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    XBox X button
    -
    -
    xbox_y - Variable in class com.technototes.library.control.GamepadBase
    -
    -
    The button objects for the XBox game controller
    -
    -
    XBOX_Y - Enum constant in enum class com.technototes.library.control.GamepadBase.Button
    -
    -
    XBox Y button
    -
    -
    -

    Y

    -
    -
    yAxis - Variable in class com.technototes.library.control.GamepadStick
    -
    -
    The objects for the stick axis
    -
    -
    YELLOW - Enum constant in enum class com.technototes.library.util.Color
    -
     
    -
    -

    Z

    -
    -
    zero() - Method in interface com.technototes.library.hardware.sensor.IGyro
    -
    -
    Zeroes the current heading (in default units)
    -
    -
    zero() - Method in class com.technototes.library.util.Integral
    -
    -
    Set the value to zero
    -
    -
    zeroEncoder() - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder
    -
    -
    zero the encoder
    -
    -
    zeroEncoder() - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder
    -
    -
    Set the current device value as "zero"
    -
    -
    zeroEncoder() - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder
    -
     
    -
    -A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values
    -
    -
    - + + + Index (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    + A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +

    A

    +
    +
    + accept(T) + - Method in interface com.technototes.library.util.SmartConsumer +
    +
    +
    + The public interface for a SmartConsumer: accept should be invoked, not consume :) +
    +
    +
    + addCommands(Command...) + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    Add a command to the group
    +
    +
    + additionalInitConditions() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + addRequirements(Subsystem...) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Add requirement subsystems to command
    +
    +
    + addSongs(String...) + - Method in class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + ALL_ACTIVE + - Enum constant in enum class com.technototes.library.control.Binding.Type +
    +
     
    +
    + Alliance + - Enum Class in + com.technototes.library.util +
    +
    +
    + An enumeration to specify which alliance the bot is on (Red, Blue, or None) +
    +
    +
    + Alliance.Blue + - Annotation Interface in + com.technototes.library.util +
    +
    +
    Not sure what this is for.
    +
    +
    + Alliance.Red + - Annotation Interface in + com.technototes.library.util +
    +
    +
    Not sure what this is for.
    +
    +
    + Alliance.Selector<T> - Class in + com.technototes.library.util +
    +
    +
    + This feels over-engineered, but it's probably for some obnoxious Java thing, + unfortunate. +
    +
    +
    + alongWith(Command...) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Run this command in parallel with additional commands
    +
    +
    + alpha() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get the alpha (transparency) of the color
    +
    +
    + analog(int) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + analog(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + AnalogBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + AnalogBuilder(int) + - Constructor for class com.technototes.library.hardware2.AnalogBuilder +
    +
     
    +
    + AnalogBuilder(AnalogSensor) + - Constructor for class com.technototes.library.hardware2.AnalogBuilder +
    +
     
    +
    + AnalogBuilder(String) + - Constructor for class com.technototes.library.hardware2.AnalogBuilder +
    +
     
    +
    + AnalogSensor + - Class in + com.technototes.library.hardware.sensor +
    +
    +
    Class for analog sensors
    +
    +
    + AnalogSensor(AnalogInput) + - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor +
    +
    +
    Make an analog sensor
    +
    +
    + AnalogSensor(String) + - Constructor for class com.technototes.library.hardware.sensor.AnalogSensor +
    +
    +
    Make an analog sensor
    +
    +
    + andThen(Command...) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Run a command or series of ParallelCommands after this one
    +
    +
    + anyCancelled + - Variable in class com.technototes.library.command.CommandGroup +
    +
    +
    Have *any* of the command list been cancelled
    +
    +
    + apply(UnaryOperator<T>) + - Method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + arcadeDrive(double, double) + - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem +
    +
     
    +
    + argb() + - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + argb() + - Method in class com.technototes.library.hardware.sensor.ColorSensor +
    +
     
    +
    + argb() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
     
    +
    + asConditional(BooleanSupplier) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Creates a conditional command out of this
    +
    +
    + at(double) + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + AVERAGE + - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
     
    +
    + AxisBase + - Class in + com.technototes.library.control +
    +
    +
    The class to extend custom gamepad axis from
    +
    +
    + AxisBase(DoubleSupplier) + - Constructor for class com.technototes.library.control.AxisBase +
    +
    +
    Make a GamepadAxis with the supplier
    +
    +
    + AxisBase(DoubleSupplier, double) + - Constructor for class com.technototes.library.control.AxisBase +
    +
    +
    + Make a GamepadAxis with the supplier and the threshold for the stick to behave as a + button +
    +
    +
    + axisInstance(DoubleSupplier) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    + Returns the U (extended from AxisBase) type wrapped around a simple DoubleSupplier +
    +
    +
    +

    B

    +
    +
    + Binding<T + extends + BooleanSupplier> - Interface in + com.technototes.library.control +
    +
    +
    Class for bindings to extend
    +
    +
    + Binding.Type + - Enum Class in + com.technototes.library.control +
    +
    +
    Button type
    +
    +
    + BLACK + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + blue() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get the RGB blue of the sensor
    +
    +
    + BLUE + - Enum constant in enum class com.technototes.library.util.Alliance +
    +
    +
    BLUE alliance selector
    +
    +
    + BLUE + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + BLUE_CIRCLE + - Static variable in class com.technototes.library.util.Characters +
    +
     
    +
    + BooleanEntry + - Class in + com.technototes.library.logger.entry +
    +
     
    +
    + BooleanEntry(String, Supplier<Boolean>, int, String, String) + - Constructor for class com.technototes.library.logger.entry.BooleanEntry +
    +
     
    +
    + booleanSupplier + - Variable in class com.technototes.library.control.ButtonBase +
    +
     
    +
    + brake() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
     
    +
    + brake() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Configure the motor to *brake* when the power is set to zero.
    +
    +
    + brake() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + build() + - Method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + build() + - Method in class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    Deprecated
    +
    +
    + ButtonBase + - Class in + com.technototes.library.control +
    +
    +
    The class to extend custom gamepad buttons from
    +
    +
    + ButtonBase(BooleanSupplier) + - Constructor for class com.technototes.library.control.ButtonBase +
    +
    +
    Create button with boolean supplier
    +
    +
    + buttonInstance(BooleanSupplier) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Great a ButtonBase type from the given BooleanSupplier
    +
    +
    + bVal + - Variable in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    The value of the enumeration
    +
    +
    + bVal + - Variable in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    +

    C

    +
    +
    + calculateA(double, double, double, double) + - Method in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
    +
    + Calculates the value for the differential output generated by averaging +
    +
    +
    + calculateS(double, double, double, double) + - Method in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
    +
    + Calculates the value for the differential output generated by subtracting +
    +
    +
    + cancel() + - Method in interface com.technototes.library.command.Command +
    +
    +
    + If the command is running, interrupt it such that it can be cancelled +
    +
    +
    + CANCELLED + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    The command has been cancelled
    +
    +
    + cancelUpon(BooleanSupplier) + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Runs this command until it finishes, or until the condition supplied is true +
    +
    +
    + captionDivider + - Variable in class com.technototes.library.logger.Logger +
    +
    +
    + The divider between the tag and the entry for telemetry (default ':') +
    +
    +
    + Characters + - Class in + com.technototes.library.util +
    +
     
    +
    + Characters() + - Constructor for class com.technototes.library.util.Characters +
    +
     
    +
    + ChoiceCommand + - Class in + com.technototes.library.command +
    +
    +
    + A command that allows choosing among a number of commands based on variety of + conditions +
    +
    +
    + ChoiceCommand(Pair<BooleanSupplier, Command>...) + - Constructor for class com.technototes.library.command.ChoiceCommand +
    +
    +
    + Each pair represents a condition to check, and the command to execute if that + condition is true +
    +
    +
    + ChoiceCommand(BooleanSupplier, Command) + - Constructor for class com.technototes.library.command.ChoiceCommand +
    +
    +
    + This is a simplistic ChoiceCommand that is simply a single conditional command I + *think* this will wwait until b is true +
    +
    +
    + clear() + - Static method in interface com.technototes.library.command.Command +
    +
    +
    Clear out the state, time, and requirement maps.
    +
    +
    + close() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + closestTo(double, double...) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    + Returns the value from a list which is closed to the first value. +
    +
    +
    + closestTo(double, int...) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    + Returns the value from a list which is closed to the first value. +
    +
    +
    + coast() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
     
    +
    + coast() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Configure the motor to *float* when the power is set to zero.
    +
    +
    + coast() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + codriverGamepad + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Command gamepad objects
    +
    +
    + color(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + Color + - Enum Class in + com.technototes.library.util +
    +
    +
    Enum for Colors and some formatting
    +
    +
    + ColorBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + ColorBuilder(ColorSensor) + - Constructor for class com.technototes.library.hardware2.ColorBuilder +
    +
     
    +
    + ColorBuilder(String) + - Constructor for class com.technototes.library.hardware2.ColorBuilder +
    +
     
    +
    + ColorDistanceSensor + - Class in + com.technototes.library.hardware.sensor +
    +
     
    +
    + ColorDistanceSensor(ColorRangeSensor) + - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + ColorDistanceSensor(String) + - Constructor for class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + colorRange(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + ColorRangeBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + ColorRangeBuilder(ColorRangeSensor) + - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder +
    +
     
    +
    + ColorRangeBuilder(String) + - Constructor for class com.technototes.library.hardware2.ColorRangeBuilder +
    +
     
    +
    + ColorSensor + - Class in + com.technototes.library.hardware.sensor +
    +
    +
    Class for color sensors
    +
    +
    + ColorSensor(ColorSensor) + - Constructor for class com.technototes.library.hardware.sensor.ColorSensor +
    +
    +
    Make a color Sensor
    +
    +
    + ColorSensor(String) + - Constructor for class com.technototes.library.hardware.sensor.ColorSensor +
    +
    +
    Make a color sensor
    +
    +
    + com.technototes.library - + package com.technototes.library +
    +
     
    +
    + com.technototes.library.command + - package com.technototes.library.command +
    +
     
    +
    + com.technototes.library.control + - package com.technototes.library.control +
    +
     
    +
    + com.technototes.library.general + - package com.technototes.library.general +
    +
     
    +
    + com.technototes.library.hardware + - package com.technototes.library.hardware +
    +
     
    +
    + com.technototes.library.hardware.motor + - package com.technototes.library.hardware.motor +
    +
     
    +
    + com.technototes.library.hardware.sensor + - package com.technototes.library.hardware.sensor +
    +
     
    +
    + com.technototes.library.hardware.sensor.encoder + - package com.technototes.library.hardware.sensor.encoder +
    +
     
    +
    + com.technototes.library.hardware.servo + - package com.technototes.library.hardware.servo +
    +
     
    +
    + com.technototes.library.hardware2 + - package com.technototes.library.hardware2 +
    +
     
    +
    + com.technototes.library.logger + - package com.technototes.library.logger +
    +
     
    +
    + com.technototes.library.logger.entry + - package com.technototes.library.logger.entry +
    +
     
    +
    + com.technototes.library.structure + - package com.technototes.library.structure +
    +
     
    +
    + com.technototes.library.subsystem + - package com.technototes.library.subsystem +
    +
     
    +
    + com.technototes.library.subsystem.drivebase + - package com.technototes.library.subsystem.drivebase +
    +
     
    +
    + com.technototes.library.subsystem.motor + - package com.technototes.library.subsystem.motor +
    +
     
    +
    + com.technototes.library.subsystem.servo + - package com.technototes.library.subsystem.servo +
    +
     
    +
    + com.technototes.library.util + - package com.technototes.library.util +
    +
     
    +
    + Command + - Interface in + com.technototes.library.command +
    +
    +
    The root Command class
    +
    +
    + Command.CommandState + - Enum Class in + com.technototes.library.command +
    +
    +
    The command state enum
    +
    +
    + CommandAxis + - Class in + com.technototes.library.control +
    +
    +
    Class for command axis for the gamepad
    +
    +
    + CommandAxis(DoubleSupplier) + - Constructor for class com.technototes.library.control.CommandAxis +
    +
    +
    Make a command axis
    +
    +
    + CommandAxis(DoubleSupplier, double) + - Constructor for class com.technototes.library.control.CommandAxis +
    +
    +
    Make a command axis
    +
    +
    + CommandBase + - Class in + com.technototes.library.command +
    +
    +
    Deprecated.
    +
    +
    + CommandBase() + - Constructor for class com.technototes.library.command.CommandBase +
    +
    +
    Deprecated.
    +   +
    +
    + CommandBinding + - Class in + com.technototes.library.control +
    +
    +
    + Command implementation of + Binding +
    +
    +
    + CommandBinding(Binding.Type, CommandInput...) + - Constructor for class com.technototes.library.control.CommandBinding +
    +
     
    +
    + CommandBinding(CommandInput...) + - Constructor for class com.technototes.library.control.CommandBinding +
    +
     
    +
    + CommandButton + - Class in + com.technototes.library.control +
    +
    +
    Class for command buttons for gamepad
    +
    +
    + CommandButton(BooleanSupplier) + - Constructor for class com.technototes.library.control.CommandButton +
    +
    +
    Make command button
    +
    +
    + CommandGamepad + - Class in + com.technototes.library.control +
    +
    +
    Class for command gamepads that specifies class params
    +
    +
    + CommandGamepad(Gamepad) + - Constructor for class com.technototes.library.control.CommandGamepad +
    +
    +
    Make command gamepad
    +
    +
    + CommandGroup + - Class in + com.technototes.library.command +
    +
    +
    + Root class for all command groups (Sequential, Parallel, etc...) WARNING: You + probably will be better served by the specific CommandGroup subclasses, rather than + using this one directly. +
    +
    +
    + CommandGroup(boolean, Command...) + - Constructor for class com.technototes.library.command.CommandGroup +
    +
    +
    Create a command group with commands
    +
    +
    + CommandInput<T + extends + ButtonBase> - Interface in + com.technototes.library.control +
    +
    +
    Class for gamepad-command integration
    +
    +
    + commandMap + - Variable in class com.technototes.library.command.CommandGroup +
    +
    +
    This is a map from the command to whether it has been run
    +
    +
    + CommandOpMode + - Class in + com.technototes.library.structure +
    +
    +
    Class for command based op modes
    +
    +
    + CommandOpMode() + - Constructor for class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + CommandOpMode.OpModeState + - Enum Class in + com.technototes.library.structure +
    +
    +
    Enum for op mode state
    +
    +
    + CommandScheduler + - Class in + com.technototes.library.command +
    +
    +
    This is a "singleton" object for scheduling commands.
    +
    +
    + ConditionalCommand + - Class in + com.technototes.library.command +
    +
    +
    + Simple class for commands that require a certain condition to be true to run +
    +
    +
    + ConditionalCommand(BooleanSupplier) + - Constructor for class com.technototes.library.command.ConditionalCommand +
    +
    +
    This makes a "wait" command
    +
    +
    + ConditionalCommand(BooleanSupplier, Command) + - Constructor for class com.technototes.library.command.ConditionalCommand +
    +
    +
    Make a conditional command
    +
    +
    + ConditionalCommand(BooleanSupplier, Command, Command) + - Constructor for class com.technototes.library.command.ConditionalCommand +
    +
    +
    Make a conditional command
    +
    +
    + constrain(double, double, double) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    + Deprecated.  +
    +
    +
    + constrain(int, int, int) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    + Deprecated.  +
    +
    +
    + Constraints(double, double, double) + - Constructor for class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + consume(T) + - Method in interface com.technototes.library.util.SmartConsumer +
    +
    +
    The 'consume' function
    +
    +
    + countCancel + - Variable in class com.technototes.library.command.CommandGroup +
    +
    +
    Should a cancelled command be considered 'finished'
    +
    +
    + countCancel() + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    + Specify that this CommandGroup should count a cancellation as 'completed' +
    +
    +
    + create(int) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + create(Command, Subsystem...) + - Static method in interface com.technototes.library.command.Command +
    +
    +
    + This is a helper to create a new command from an existing command, but with + additional subsystem requirements +
    +
    +
    + create(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + crServo(int) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + crServo(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + CRServoBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + CRServoBuilder(int) + - Constructor for class com.technototes.library.hardware2.CRServoBuilder +
    +
     
    +
    + CRServoBuilder(CRServo) + - Constructor for class com.technototes.library.hardware2.CRServoBuilder +
    +
     
    +
    + CRServoBuilder(String) + - Constructor for class com.technototes.library.hardware2.CRServoBuilder +
    +
     
    +
    + CYAN + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + CYCLE + - Static variable in class com.technototes.library.util.Characters +
    +
     
    +
    +

    D

    +
    +
    + DARK_GRAY + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + deadline(Command...) + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Runs all the commands specified in parallel *until this command is completed* +
    +
    +
    + DEFAULT_TRIGGER_THRESHOLD + - Static variable in class com.technototes.library.control.AxisBase +
    +
    +
    The default trigger threshold
    +
    +
    + degrees() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Set angle format to degrees
    +
    +
    + degrees() + - Method in class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    Deprecated
    +
    +
    + device + - Variable in class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Deprecated.
    +   +
    +
    + device + - Variable in class com.technototes.library.subsystem.DeviceSubsystem +
    +
     
    +
    + DeviceSubsystem<T + extends + HardwareDevice<?>> - Class in + com.technototes.library.subsystem +
    +
    +
    class for subsystems
    +
    +
    + DeviceSubsystem(T) + - Constructor for class com.technototes.library.subsystem.DeviceSubsystem +
    +
    +
    Create a subsystem
    +
    +
    + DIFFERENCE + - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
     
    +
    + Differential + - Class in + com.technototes.library.util +
    +
     
    +
    + Differential(DoubleConsumer, DoubleConsumer) + - Constructor for class com.technototes.library.util.Differential +
    +
    +
    Create differential from two consumers
    +
    +
    + Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority) + - Constructor for class com.technototes.library.util.Differential +
    +
    +
    Create differential from two consumers
    +
    +
    + Differential.DifferentialPriority + - Enum Class in + com.technototes.library.util +
    +
    +
    Enum for the priority of the differential.
    +
    +
    + digital(int) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + digital(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + DigitalBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + DigitalBuilder(int) + - Constructor for class com.technototes.library.hardware2.DigitalBuilder +
    +
    +
    Don't use this in the future
    +
    +
    + DigitalBuilder(DigitalChannel) + - Constructor for class com.technototes.library.hardware2.DigitalBuilder +
    +
    +
    Don't use this in the future
    +
    +
    + DigitalBuilder(String) + - Constructor for class com.technototes.library.hardware2.DigitalBuilder +
    +
    +
    Don't use this in the future
    +
    +
    + DigitalSensor + - Class in + com.technototes.library.hardware.sensor +
    +
    +
    Class for digital sensors
    +
    +
    + DigitalSensor(DigitalChannel) + - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor +
    +
    +
    Make a digital sensor
    +
    +
    + DigitalSensor(String) + - Constructor for class com.technototes.library.hardware.sensor.DigitalSensor +
    +
    +
    Make a digital sensor
    +
    +
    + direction(DcMotorSimple.Direction) + - Method in class com.technototes.library.hardware2.CRServoBuilder +
    +
     
    +
    + direction(DcMotorSimple.Direction) + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + direction(Servo.Direction) + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + disable() + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + disable() + - Method in interface com.technototes.library.general.Enablable +
    +
    +
    Disable the object
    +
    +
    + disable() + - Method in class com.technototes.library.hardware2.ColorRangeBuilder +
    +
     
    +
    + disable() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + distance(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + DistanceBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + DistanceBuilder(DistanceSensor) + - Constructor for class com.technototes.library.hardware2.DistanceBuilder +
    +
     
    +
    + DistanceBuilder(String) + - Constructor for class com.technototes.library.hardware2.DistanceBuilder +
    +
     
    +
    + doubleSupplier + - Variable in class com.technototes.library.control.AxisBase +
    +
     
    +
    + down + - Variable in class com.technototes.library.control.GamepadDpad +
    +
    +
    The objects for the dpad buttons
    +
    +
    + dpad + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The dpad object
    +
    +
    + dpadDown + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + dpadLeft + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + dpadRight + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + dpadUp + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + drive(double, double) + - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem +
    +
     
    +
    + drive(double, double, double) + - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
     
    +
    + drive(double, double, double, double) + - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
     
    +
    + DrivebaseSubsystem<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.subsystem.drivebase +
    +
    +
    Class for DriveBase subsystems
    +
    +
    + DrivebaseSubsystem(Motor<T>...) + - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem +
    +
    +
    Create a drivebase subsystem
    +
    +
    + DrivebaseSubsystem(DoubleSupplier, Motor<T>...) + - Constructor for class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem +
    +
    +
    Create a drivebase subsystem
    +
    +
    + driverGamepad + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Command gamepad objects
    +
    +
    + DUCK + - Static variable in class com.technototes.library.util.Characters +
    +
     
    +
    + DummyDevice<T> - Class in + com.technototes.library.hardware +
    +
    +
    This isn't worth actually doing.
    +
    +
    + DummyDevice(T) + - Constructor for class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + duringInit() + - Element in annotation interface com.technototes.library.logger.LogConfig.Run +
    +
    +
    Run the log during the init Period
    +
    +
    + duringRun() + - Element in annotation interface com.technototes.library.logger.LogConfig.Run +
    +
    +
    Run the log during the teleop Period
    +
    +
    +

    E

    +
    +
    + Enablable<T + extends + Enablable<T>> - Interface in + com.technototes.library.general +
    +
    +
    Interface for anything that can be enabled/disabled
    +
    +
    + enable() + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + enable() + - Method in interface com.technototes.library.general.Enablable +
    +
    +
    Enable the object
    +
    +
    + enable() + - Method in class com.technototes.library.hardware2.ColorRangeBuilder +
    +
     
    +
    + enable() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + EncodedMotor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.hardware.motor +
    +
    +
    Class for encoded motors
    +
    +
    + EncodedMotor(String) + - Constructor for class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Make encoded motor, with the default encoder configured
    +
    +
    + EncodedMotor(String, Encoder) + - Constructor for class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Make encoded motor
    +
    +
    + EncodedMotor(T) + - Constructor for class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Make encoded motor, with the default encoder configured
    +
    +
    + EncodedMotor(T, Encoder) + - Constructor for class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Make encoded motor
    +
    +
    + EncodedMotorGroup<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.hardware.motor +
    +
    +
    Class for encoded motor groups
    +
    +
    + EncodedMotorGroup(EncodedMotor<T>, Motor<T>...) + - Constructor for class com.technototes.library.hardware.motor.EncodedMotorGroup +
    +
    +
    Create an encoded motor groupM
    +
    +
    + EncodedMotorSubsystem + - Class in + com.technototes.library.subsystem.motor +
    +
    +
    Class for encoded motor subsystems
    +
    +
    + EncodedMotorSubsystem(EncodedMotor<?>) + - Constructor for class com.technototes.library.subsystem.motor.EncodedMotorSubsystem +
    +
    +
    Create encoded motor subsystem
    +
    +
    + Encoder + - Interface in + com.technototes.library.hardware.sensor.encoder +
    +
    +
    Interfaces for encoders to use
    +
    +
    + end() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Runs once when op mode is ended
    +
    +
    + end(boolean) + - Method in interface com.technototes.library.command.Command +
    +
    +
    End the command
    +
    +
    + end(boolean) + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    This stops the command group from executing
    +
    +
    + END + - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState +
    +
     
    +
    + Entry<T> - Class in + com.technototes.library.logger.entry +
    +
    +
    The root class for logging entries
    +
    +
    + Entry(String, Supplier<T>, int) + - Constructor for class com.technototes.library.logger.entry.Entry +
    +
    +
    Create an entry with name, value, index
    +
    +
    + execute() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Execute the command
    +
    +
    + execute() + - Method in class com.technototes.library.command.CommandBase +
    +
    +
    Deprecated.
    +
    Execute the command
    +
    +
    + execute() + - Method in class com.technototes.library.command.CommandGroup +
    +
     
    +
    + execute() + - Method in class com.technototes.library.command.ConditionalCommand +
    +
     
    +
    + execute() + - Method in class com.technototes.library.command.WaitCommand +
    +
     
    +
    + EXECUTING + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    The command is running normally
    +
    +
    + expandedPWM() + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + expandedRange() + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +   +
    +
    + ExternalEncoder + - Class in + com.technototes.library.hardware.sensor.encoder +
    +
    +
    + A wrapper around an AnalogInput that enables "zeroing" for usefulness +
    +
    +
    + ExternalEncoder(AnalogInput) + - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder +
    +
    +
    Create an ExternalEncoder from an arbitrary AnalogInput
    +
    +
    + ExternalEncoder(String) + - Constructor for class com.technototes.library.hardware.sensor.encoder.ExternalEncoder +
    +
    +
    + Create an ExternalEncoder from an arbitrary AnalogInput device +
    +
    +
    +

    F

    +
    +
    + falseValue() + - Element in annotation interface com.technototes.library.logger.Log.Boolean +
    +
    +
    Store the string when the annotated method returns false
    +
    +
    + FINISHED + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    The command has completed successfully
    +
    +
    + flMotor + - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
    +
    Drive motors
    +
    +
    + format() + - Element in annotation interface com.technototes.library.logger.Log +
    +
    +
    The format for the logged String
    +
    +
    + format(Object) + - Method in enum class com.technototes.library.util.Color +
    +
    +
    Format the supplied object with the HTML to become this color
    +
    +
    + format(String, Object...) + - Method in enum class com.technototes.library.util.Color +
    +
    +
    + Format the supplied object with the HTML and a format String to become this color +
    +
    +
    + forward() + - Method in class com.technototes.library.hardware2.CRServoBuilder +
    +
     
    +
    + forward() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + forward() + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + FORWARD + - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction +
    +
     
    +
    + frMotor + - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
    +
    Drive motors
    +
    +
    +

    G

    +
    +
    + gain(float) + - Method in class com.technototes.library.hardware2.ColorRangeBuilder +
    +
     
    +
    + GAMEPAD + - Static variable in class com.technototes.library.util.Characters +
    +
     
    +
    + gamepad1 + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + gamepad2 + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + GamepadBase<T + extends + ButtonBase,U + extends + AxisBase> - Class in + com.technototes.library.control +
    +
    +
    + A class to extend gamepads from, it does the internal processing for you. +
    +
    +
    + GamepadBase(Gamepad, Class<T>, Class<U>) + - Constructor for class com.technototes.library.control.GamepadBase +
    +
    +
    Creates a gamepad with these parameters
    +
    +
    + GamepadBase.Axis + - Enum Class in + com.technototes.library.control +
    +
    +
    Axis enum for all axis on gamepad
    +
    +
    + GamepadBase.Button + - Enum Class in + com.technototes.library.control +
    +
    +
    Button enum for all buttons on gamepad
    +
    +
    + GamepadDpad<T + extends + ButtonBase> - Class in + com.technototes.library.control +
    +
    +
    A class for dpads
    +
    +
    + GamepadDpad(T, T, T, T) + - Constructor for class com.technototes.library.control.GamepadDpad +
    +
    +
    Create dpad with 4 buttons
    +
    +
    + GamepadStick<T + extends + AxisBase,U + extends + ButtonBase> - Class in + com.technototes.library.control +
    +
    +
    A class for gamepad sticks
    +
    +
    + GamepadStick(T, T, U) + - Constructor for class com.technototes.library.control.GamepadStick +
    +
    +
    Make a gamepad stick
    +
    +
    + get() + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Gets the current state of the command (Supplier<CommandState>) +
    +
    +
    + get() + - Method in interface com.technototes.library.control.Binding +
    +
     
    +
    + get() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + get() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
     
    +
    + get() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    + Gets the *speed* of the motor when it's used as a DoubleSupplier +
    +
    +
    + get() + - Method in class com.technototes.library.logger.entry.Entry +
    +
     
    +
    + get(Binding.Type) + - Method in interface com.technototes.library.control.Binding +
    +
    +
    Get this as boolean for the type
    +
    +
    + get(Class<? extends OpMode>) + - Static method in enum class com.technototes.library.util.Alliance +
    +
    +
    + Get the alliance set for the OpMode passed in, if it's set in the annotation +
    +
    +
    + getAllDeviceList() + - Method in interface com.technototes.library.hardware.HardwareDeviceGroup +
    +
    +
    Deprecated.
    +   +
    +
    + getAllDevices() + - Method in interface com.technototes.library.hardware.HardwareDeviceGroup +
    +
    +
    Deprecated.
    +
    Get all devices in group
    +
    +
    + getAllDevices() + - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup +
    +
     
    +
    + getAllDevices() + - Method in class com.technototes.library.hardware.motor.MotorGroup +
    +
     
    +
    + getAllDevices() + - Method in class com.technototes.library.hardware.servo.ServoGroup +
    +
    +
    Deprecated.
    +   +
    +
    + getAngle() + - Method in interface com.technototes.library.control.Stick +
    +
    +
    Returns the angle of the stick
    +
    +
    + getAngularOrientation() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
     
    +
    + getAngularOrientation(AngleUnit) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Gets the Angular orientation of the IMU
    +
    +
    + getAngularVelocity() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
     
    +
    + getAngularVelocity(AngleUnit) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Gets the angular velocity (in default units)
    +
    +
    + getAsBoolean() + - Method in interface com.technototes.library.control.Binding +
    +
     
    +
    + getAsBoolean() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Same as isPressed()
    +
    +
    + getAsButton() + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + getAsButton(double) + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + getAsDouble() + - Method in class com.technototes.library.control.AxisBase +
    +
    +
    Returns the double from the axis
    +
    +
    + getAsDouble() + - Method in interface com.technototes.library.hardware.Sensored +
    +
    +
    Deprecated.
    +   +
    +
    + getAverage() + - Method in class com.technototes.library.util.Differential +
    +
    +
    + Gets the current average of the two differential inputs, equating to one of the + outputs +
    +
    +
    + getAxis(GamepadBase.Axis) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns an axis
    +
    +
    + getAxisAsBoolean(GamepadBase.Axis) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns an axis as boolean
    +
    +
    + getAxisAsDouble(GamepadBase.Axis) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns an axis as double
    +
    +
    + getButton(GamepadBase.Button) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns a button
    +
    +
    + getButtonAsBoolean(GamepadBase.Button) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns a button as boolean (same as isPressed)
    +
    +
    + getColor() + - Method in enum class com.technototes.library.util.Alliance +
    +
    +
    Get the alliance color (Red, Blue, or Black)
    +
    +
    + getConnectionInfo() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + getCorrectedVelocity() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + getCurrent(Subsystem) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    This gets the command currently using the subsystem provided
    +
    +
    + getCurrentPosition() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + getCurrentPosition() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + getCurrentSong() + - Method in class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + getDefault(Subsystem) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Get the default command that is running on the subsystem provided +
    +
    +
    + getDefaultCommand() + - Method in interface com.technototes.library.subsystem.Subsystem +
    +
     
    +
    + getDefaultType() + - Method in interface com.technototes.library.control.Binding +
    +
     
    +
    + getDefaultType() + - Method in class com.technototes.library.control.CommandBinding +
    +
     
    +
    + getDeviation() + - Method in class com.technototes.library.util.Differential +
    +
    +
    + Gets the current deviation between the two differential inputs and the average, + equating to one of the outputs +
    +
    +
    + getDevice() + - Method in class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Deprecated.
    +
    Get encapsulated device
    +
    +
    + getDevice() + - Method in class com.technototes.library.subsystem.DeviceSubsystem +
    +
    +
    Get the devices for this subsystem
    +
    +
    + getDeviceName() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + getDifferentialPriority() + - Method in class com.technototes.library.util.Differential +
    +
    +
    Gets the priority for the difference output.
    +
    +
    + getDirection() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + getDistance() + - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor +
    +
     
    +
    + getDistance(DistanceUnit) + - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + getDistance(DistanceUnit) + - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor +
    +
     
    +
    + getDistance(DistanceUnit) + - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
    +
    +
    Deprecated.
    +
    Get the value with a specified distance Unit
    +
    +
    + getDistanceFromCenter() + - Method in interface com.technototes.library.control.Stick +
    +
    +
    Returns the stick's distance from the center
    +
    +
    + getDpad() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns the Dpad object
    +
    +
    + getEncoder() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Get the encoder object
    +
    +
    + getFollowerist() + - Method in interface com.technototes.library.hardware.HardwareDeviceGroup +
    +
    +
    Deprecated.
    +   +
    +
    + getFollowers() + - Method in interface com.technototes.library.hardware.HardwareDeviceGroup +
    +
    +
    Deprecated.
    +
    Get the followers for the lead device
    +
    +
    + getFollowers() + - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup +
    +
     
    +
    + getFollowers() + - Method in class com.technototes.library.hardware.motor.MotorGroup +
    +
     
    +
    + getFollowers() + - Method in class com.technototes.library.hardware.servo.ServoGroup +
    +
    +
    Deprecated.
    +   +
    +
    + getGamepad() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns the encapsulated gamepad
    +
    +
    + getGyro() + - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem +
    +
    +
    Get the Gyro angle
    +
    +
    + getHexValue() + - Method in enum class com.technototes.library.util.Color +
    +
    +
    Get the hex value
    +
    +
    + getIndex() + - Method in class com.technototes.library.logger.entry.Entry +
    +
    +
    Get the index for the entry
    +
    +
    + getInstance() + - Static method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Get (or create) the singleton CommandScheduler object
    +
    +
    + getInstance() + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + getInstance() + - Method in class com.technototes.library.control.CommandButton +
    +
     
    +
    + getInstance() + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    Return instance of class parameter
    +
    +
    + getInverted() + - Method in class com.technototes.library.control.ButtonBase +
    +
     
    +
    + getInverted() + - Method in interface com.technototes.library.general.Invertable +
    +
    +
    Get current inversion
    +
    +
    + getInverted() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Returns whether the motor is inverted.
    +
    +
    + getInverted() + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +   +
    +
    + getLast() + - Method in interface com.technototes.library.util.SmartConsumer +
    +
     
    +
    + getLeftStick() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns the left stick
    +
    +
    + getLight() + - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + getLogger() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Get the op mode's logger
    +
    +
    + getManufacturer() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + getMap() + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
     
    +
    + getMax(double...) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    Get the max of supplied doubles
    +
    +
    + getMax(int...) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    Get the max of supplied ints
    +
    +
    + getMaxAccel() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + getMaxAcceleration() + - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + getMaxVel() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + getMaxVelocity() + - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + getMultiplier() + - Method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction +
    +
     
    +
    + getName() + - Method in class com.technototes.library.logger.entry.Entry +
    +
    +
    Get the name
    +
    +
    + getOpModeRuntime() + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Gets the number of seconds that the opmode has been executing
    +
    +
    + getOpModeRuntime() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Get the opmode runtime
    +
    +
    + getOpModeState() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Get op mode state
    +
    +
    + getPosition() + - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder +
    +
     
    +
    + getPosition() + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +
    Get servo position
    +
    +
    + getPosition() + - Method in class com.technototes.library.subsystem.servo.ServoSubsystem +
    +
    +
    Get subsystem servo position
    +
    +
    + getPriority() + - Method in class com.technototes.library.logger.entry.Entry +
    +
    +
    Get Priority for the entry
    +
    +
    + getProportion() + - Method in class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + getRawVelocity() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + getRequirements() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Return the subsystem requirements for this command
    +
    +
    + getRightStick() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Returns the right stick
    +
    +
    + getRuntime() + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Return the amount of time since the command was first initialized +
    +
    +
    + getScale(double...) + - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem +
    +
    +
    + This will give you a *positive* value to scale the value to such that the largest + value of the list will be |1| (negative or positive). +
    +
    +
    + getSeconds() + - Method in class com.technototes.library.command.WaitCommand +
    +
     
    +
    + getSensorValue() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Get the encoder position value
    +
    +
    + getSensorValue() + - Method in class com.technototes.library.hardware.sensor.AnalogSensor +
    +
     
    +
    + getSensorValue() + - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder +
    +
    +
    Get the sensor value (relative to the assigned zero)
    +
    +
    + getSensorValue() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + getSensorValue() + - Method in interface com.technototes.library.hardware.Sensored +
    +
    +
    Deprecated.
    +
    Get the sensor value
    +
    +
    + getSensorValue() + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +   +
    +
    + getServo() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + getSpeed() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Gets the power set for the motor
    +
    +
    + getSpeed() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Gets the power value for the motor
    +
    +
    + getSpeed() + - Method in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem +
    +
    +
    Override this one, I guess? Not sure how useful it is.
    +
    +
    + getSpeed() + - Method in class com.technototes.library.subsystem.motor.MotorSubsystem +
    +
    +
    Get the speed of the motors in the subsystem
    +
    +
    + getState() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Return the command state: Probably don't use this
    +
    +
    + getSuppliers() + - Method in interface com.technototes.library.control.Binding +
    +
     
    +
    + getSuppliers() + - Method in class com.technototes.library.control.CommandBinding +
    +
     
    +
    + getTargetPosition() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + getTargetTolerance() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + getTriggerThreshold() + - Method in class com.technototes.library.control.AxisBase +
    +
    +
    Gets the trigger threshold
    +
    +
    + getUnit() + - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + getUnit() + - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor +
    +
     
    +
    + getUnit() + - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
    +
    +
    Deprecated.
    +
    Get the current distance unit
    +
    +
    + getValue() + - Method in class com.technototes.library.hardware.sensor.DigitalSensor +
    +
    +
    Get the sensor value as a boolean
    +
    +
    + getValue() + - Method in class com.technototes.library.util.Integral +
    +
    +
    Get the current accumulation
    +
    +
    + getVelocity() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Get the power for the motor (Velocity, I guess?)
    +
    +
    + getVersion() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + getVersion() + - Static method in class com.technototes.library.RobotLibrary +
    +
    +
    Get library version
    +
    +
    + getVolume() + - Method in class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + getXAxis() + - Method in class com.technototes.library.control.GamepadDpad +
    +
    +
    Return x axis double (treating dpad as stick)
    +
    +
    + getXAxis() + - Method in class com.technototes.library.control.GamepadStick +
    +
     
    +
    + getXAxis() + - Method in interface com.technototes.library.control.Stick +
    +
    +
    Return x axis double
    +
    +
    + getXSupplier() + - Method in interface com.technototes.library.control.Stick +
    +
    +
    Return x axis supplier
    +
    +
    + getYAxis() + - Method in class com.technototes.library.control.GamepadDpad +
    +
    +
    Return y axis double (treating dpad as stick)
    +
    +
    + getYAxis() + - Method in class com.technototes.library.control.GamepadStick +
    +
     
    +
    + getYAxis() + - Method in interface com.technototes.library.control.Stick +
    +
    +
    Return y axis double
    +
    +
    + getYSupplier() + - Method in interface com.technototes.library.control.Stick +
    +
    +
    Return y axis supplier
    +
    +
    + green() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get the RGB green of the sensor
    +
    +
    + GREEN + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + gyroHeading() + - Method in interface com.technototes.library.hardware.sensor.IGyro +
    +
    +
    The heading (in default units)
    +
    +
    + gyroHeading() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Get gyro heading
    +
    +
    + gyroHeading(AngleUnit) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Get the gyro heading in the provided units
    +
    +
    + gyroHeadingInDegrees() + - Method in interface com.technototes.library.hardware.sensor.IGyro +
    +
    +
    The heading (in degrees)
    +
    +
    + gyroHeadingInDegrees() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Gets the gyro heading in degrees
    +
    +
    + gyroHeadingInRadians() + - Method in interface com.technototes.library.hardware.sensor.IGyro +
    +
    +
    The heading (in radians)
    +
    +
    + gyroHeadingInRadians() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Gets the gyro heading in radians
    +
    +
    + gyroSupplier + - Variable in class com.technototes.library.subsystem.drivebase.DrivebaseSubsystem +
    +
    +
    Override this to get the gyroscope heading.
    +
    +
    +

    H

    +
    +
    + HardwareBuilder<T> - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + HardwareBuilder(int) + - Constructor for class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + HardwareBuilder(String) + - Constructor for class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + HardwareBuilder(T) + - Constructor for class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + HardwareDevice<T + extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in + com.technototes.library.hardware +
    +
    +
    Deprecated.
    +
    +
    + HardwareDevice(String) + - Constructor for class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Deprecated.
    +
    + Make a hardware device with the string to get from hardwaremap +
    +
    +
    + HardwareDevice(T) + - Constructor for class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Deprecated.
    +
    Make a hardware device
    +
    +
    + HardwareDeviceGroup<T + extends + HardwareDevice> - Interface in + com.technototes.library.hardware +
    +
    +
    Deprecated.
    +
    +
    + hardwareMap + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + hardwareMap + - Static variable in class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Deprecated.
    +
    Hardware map object for stuff
    +
    +
    + hsv() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get HSV as an int
    +
    +
    + hsvArray() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
     
    +
    + hue() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get HSV hue
    +
    +
    +

    I

    +
    +
    + IColorSensor + - Interface in + com.technototes.library.hardware.sensor +
    +
     
    +
    + IDistanceSensor + - Interface in + com.technototes.library.hardware.sensor +
    +
     
    +
    + idle(DcMotor.ZeroPowerBehavior) + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + ignoreCancel() + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    + Specify that this CommandGroup should NOT count cancellation as 'completed' +
    +
    +
    + IGyro + - Interface in + com.technototes.library.hardware.sensor +
    +
    +
    An interface for a single-angle gyroscope
    +
    +
    + ILightSensor + - Interface in + com.technototes.library.hardware.sensor +
    +
     
    +
    + imu(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + IMU + - Class in + com.technototes.library.hardware.sensor +
    +
    +
    + Class for the IMU (Inertial Movement Units) that implements the IGyro interface +
    +
    +
    + IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, + RevHubOrientationOnRobot.UsbFacingDirection) + - Constructor for class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Make an imu
    +
    +
    + IMU(IMU, IMU.Parameters) + - Constructor for class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Make an imu
    +
    +
    + IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, + RevHubOrientationOnRobot.UsbFacingDirection) + - Constructor for class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Make an imu
    +
    +
    + IMU(String, IMU.Parameters) + - Constructor for class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Make an imu
    +
    +
    + IMU.AxesSigns + - Enum Class in + com.technototes.library.hardware.sensor +
    +
    +
    The direction of the axes signs when remapping the axes
    +
    +
    + IMUBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + IMUBuilder(BNO055IMUImpl) + - Constructor for class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    Deprecated
    +
    +
    + IMUBuilder(String) + - Constructor for class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    deprecated
    +
    +
    + IMUBuilder.AxesSigns + - Enum Class in + com.technototes.library.hardware2 +
    +
    +
    This is duplicated in the IMU class
    +
    +
    + incrementPosition(double) + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +   +
    +
    + index() + - Element in annotation interface com.technototes.library.logger.Log.Boolean +
    +
    +
    Store index for this annotation (position in telemetry)
    +
    +
    + index() + - Element in annotation interface com.technototes.library.logger.Log +
    +
    +
    Store index for this annotation (position in telemetry)
    +
    +
    + index() + - Element in annotation interface com.technototes.library.logger.Log.Number +
    +
    +
    Store index for this annotation (position in telemetry)
    +
    +
    + INIT + - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState +
    +
     
    +
    + initEntries + - Variable in class com.technototes.library.logger.Logger +
    +
     
    +
    + initialize() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Init the command
    +
    +
    + initialize() + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    Mark all commands in the group as not yet run
    +
    +
    + initialize(IMU.Parameters) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Initialize the IMU
    +
    +
    + INITIALIZING + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    The command is initializing after having been triggered
    +
    +
    + initLoop() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Runs constantly when op mode is initialized, yet not started
    +
    +
    + initMap(HardwareMap) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + initUpdate() + - Method in class com.technototes.library.logger.Logger +
    +
    +
    Update the logged init items in temeletry
    +
    +
    + input() + - Method in class com.technototes.library.hardware2.DigitalBuilder +
    +
    +
    Don't use this in the future
    +
    +
    + inRange(double) + - Method in class com.technototes.library.util.Range +
    +
    +
    Check if the value is in the range
    +
    +
    + Integral + - Class in + com.technototes.library.util +
    +
    +
    A simple Observation-based integral calculator over time
    +
    +
    + Integral() + - Constructor for class com.technototes.library.util.Integral +
    +
    +
    Initialize it with a value of 0
    +
    +
    + Integral(double) + - Constructor for class com.technototes.library.util.Integral +
    +
    +
    Initialize it with the value c
    +
    +
    + INTERRUPTED + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    + The command is pending cancellation (but has not yet processed the cancellation) +
    +
    +
    + invert() + - Method in interface com.technototes.library.general.Invertable +
    +
    +
    Toggle inversion
    +
    +
    + invert() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Invert the motor (toggle inversion)
    +
    +
    + invert() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Invert the motor (toggle inversion)
    +
    +
    + invert() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + Invertable<T + extends + Invertable<T>> - Interface in + com.technototes.library.general +
    +
    +
    Interface for anything that can be inverted
    +
    +
    + isAtPosition(double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Is the motor at the specified position
    +
    +
    + isAtTarget() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + isCancelled() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Exactly what it says
    +
    +
    + isDisabled() + - Method in interface com.technototes.library.general.Enablable +
    +
     
    +
    + isEnabled() + - Method in class com.technototes.library.control.ButtonBase +
    +
     
    +
    + isEnabled() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Is the gamepad (and all bound commands from it!) enabled?
    +
    +
    + isEnabled() + - Method in class com.technototes.library.control.GamepadDpad +
    +
     
    +
    + isEnabled() + - Method in class com.technototes.library.control.GamepadStick +
    +
     
    +
    + isEnabled() + - Method in interface com.technototes.library.general.Enablable +
    +
     
    +
    + isFinished() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Return if the command is finished
    +
    +
    + isFinished() + - Method in class com.technototes.library.command.CommandBase +
    +
    +
    Deprecated.
    +
    Is this command finished
    +
    +
    + isFinished() + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    MUST IMPLEMENT IN SUBCLASSES:
    +
    +
    + isFinished() + - Method in class com.technototes.library.command.ConditionalCommand +
    +
     
    +
    + isFinished() + - Method in class com.technototes.library.command.ParallelCommandGroup +
    +
     
    +
    + isFinished() + - Method in class com.technototes.library.command.ParallelDeadlineGroup +
    +
     
    +
    + isFinished() + - Method in class com.technototes.library.command.ParallelRaceGroup +
    +
    +
    Is this finished?
    +
    +
    + isFinished() + - Method in class com.technototes.library.command.SequentialCommandGroup +
    +
    +
    Returns if all the commands are finished
    +
    +
    + isFinished() + - Method in class com.technototes.library.command.WaitCommand +
    +
     
    +
    + isInverseToggled() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is untoggled
    +
    +
    + isJustInverseToggled() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is just untoggled
    +
    +
    + isJustPressed() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is just pressed
    +
    +
    + isJustReleased() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is just released
    +
    +
    + isJustToggled() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is just toggled
    +
    +
    + isPreRelease() + - Static method in class com.technototes.library.RobotLibrary +
    +
    +
    Get if the library is a pre release
    +
    +
    + isPressed() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is pressed
    +
    +
    + isPrime(int) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    Calculate if the supplied number is prime
    +
    +
    + isReleased() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is released
    +
    +
    + isRumbling() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Is the gamepad rumbling
    +
    +
    + isRunning() + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Is the command in some state of running/started/finished/cancelled +
    +
    +
    + isState(CommandOpMode.OpModeState...) + - Method in enum class com.technototes.library.structure.CommandOpMode.OpModeState +
    +
    +
    Check if other states are this state
    +
    +
    + isToggled() + - Method in class com.technototes.library.control.ButtonBase +
    +
    +
    Returns if the button is toggled
    +
    +
    + IterativeCommand + - Class in + com.technototes.library.command +
    +
     
    +
    + IterativeCommand(Function<Integer, Command>, int) + - Constructor for class com.technototes.library.command.IterativeCommand +
    +
    +
    iterative command for an int
    +
    +
    + IterativeCommand(Function<Integer, Command>, int, BooleanSupplier) + - Constructor for class com.technototes.library.command.IterativeCommand +
    +
     
    +
    + IterativeCommand(Function<Integer, Command>, BooleanSupplier) + - Constructor for class com.technototes.library.command.IterativeCommand +
    +
     
    +
    + IterativeCommand(Function<T, Command>, T, T, Function<T, T>) + - Constructor for class com.technototes.library.command.IterativeCommand +
    +
    +
    iterative command for anything
    +
    +
    + IterativeCommand(Function<T, Command>, T, T, Function<T, T>, + BooleanSupplier) + - Constructor for class com.technototes.library.command.IterativeCommand +
    +
     
    +
    +

    J

    +
    +
    + joystickDrive(double, double, double) + - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
     
    +
    + joystickDriveWithGyro(double, double, double, double) + - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
     
    +
    + justFinished() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Is this command finished?
    +
    +
    + justFinishedNoCancel() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Is this command completed?
    +
    +
    + justStarted() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Has the command just be started?
    +
    +
    +

    L

    +
    +
    + lastCommand + - Variable in class com.technototes.library.command.SequentialCommandGroup +
    +
     
    +
    + led(boolean) + - Method in class com.technototes.library.hardware2.ColorRangeBuilder +
    +
     
    +
    + left + - Variable in class com.technototes.library.control.GamepadDpad +
    +
    +
    The objects for the dpad buttons
    +
    +
    + LEFT_BUMPER + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    Left bumper button
    +
    +
    + LEFT_STICK_BUTTON + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    Button when clicking the left stick
    +
    +
    + LEFT_STICK_X + - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    Left stick's horizontal axis
    +
    +
    + LEFT_STICK_Y + - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    Left stick's vertical axis
    +
    +
    + LEFT_TRIGGER + - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    Left Trigger's axis
    +
    +
    + leftBumper + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + leftSide + - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem +
    +
    +
    Drive motors
    +
    +
    + leftStick + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The stick objects
    +
    +
    + leftStickButton + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + leftStickX + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The axis objects
    +
    +
    + leftStickY + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The axis objects
    +
    +
    + leftTrigger + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The axis objects
    +
    +
    + LIGHT_GRAY + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + LIME + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + Log + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    + The root annotation for annotation logging, also doubles as a basic string log +
    +
    +
    + Log.Boolean + - Annotation Interface in + com.technototes.library.logger +
    +
     
    +
    + Log.Logs + - Annotation Interface in + com.technototes.library.logger +
    +
     
    +
    + Log.Number + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    Log a number
    +
    +
    + LogConfig + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    Annotations for configuring Logs
    +
    +
    + LogConfig.AllowList + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    Annotation for allowing Opmodes to log this item
    +
    +
    + LogConfig.DenyList + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    Annotation for denying Opmodes to log this item
    +
    +
    + LogConfig.Disabled + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    Annotation to completely disable the entry
    +
    +
    + LogConfig.Run + - Annotation Interface in + com.technototes.library.logger +
    +
    +
    + Annotation for determining when logged item will be sent to Telemetry +
    +
    +
    + Loggable + - Interface in + com.technototes.library.logger +
    +
    +
    + All classes with annotations for logging must extend this all the way up the + hierarchy up to the op mode +
    +
    +
    + Logger + - Class in + com.technototes.library.logger +
    +
    +
    The class to manage logging
    +
    +
    + Logger(OpMode) + - Constructor for class com.technototes.library.logger.Logger +
    +
    +
    Instantiate the logger
    +
    +
    +

    M

    +
    +
    + MAGENTA + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + map + - Static variable in interface com.technototes.library.util.SmartConsumer +
    +
    +
    The map of values that have been consumed.
    +
    +
    + map(double, double, double, double, double) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    + Scale a value originally between in_min and in_max to be the same ratio when mapped + to out_min and out_max. +
    +
    +
    + MapUtils + - Class in + com.technototes.library.util +
    +
     
    +
    + MapUtils() + - Constructor for class com.technototes.library.util.MapUtils +
    +
     
    +
    + MathUtils + - Class in + com.technototes.library.util +
    +
    +
    Class with various math functions
    +
    +
    + MathUtils() + - Constructor for class com.technototes.library.util.MathUtils +
    +
     
    +
    + max + - Variable in class com.technototes.library.util.Range +
    +
    +
    The maximum value of the range
    +
    +
    + maxAcceleration + - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + maxSpeed + - Variable in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem +
    +
    +
    Max speed
    +
    +
    + maxVelocity + - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + middle() + - Method in class com.technototes.library.util.Range +
    +
    +
    Get the 'middle' of the range
    +
    +
    + min + - Variable in class com.technototes.library.util.Range +
    +
    +
    The minimum value of the range
    +
    +
    + mode(DcMotor.RunMode) + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + mode(DigitalChannel.Mode) + - Method in class com.technototes.library.hardware2.DigitalBuilder +
    +
    +
    Don't use this in the future
    +
    +
    + motor(int) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + motor(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.hardware.motor +
    +
    +
    Class for motors
    +
    +
    + Motor(String) + - Constructor for class com.technototes.library.hardware.motor.Motor +
    +
    +
    Create a motor
    +
    +
    + Motor(T) + - Constructor for class com.technototes.library.hardware.motor.Motor +
    +
    +
    Create a motor
    +
    +
    + MotorBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + MotorBuilder(int) + - Constructor for class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + MotorBuilder(DcMotorEx) + - Constructor for class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + MotorBuilder(String) + - Constructor for class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + MotorEncoder + - Class in + com.technototes.library.hardware.sensor.encoder +
    +
    +
    + Wraps a motor instance to provide corrected velocity counts and allow reversing + independently of the corresponding slot's motor direction +
    +
    +
    + MotorEncoder(DcMotorEx) + - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + MotorEncoder(DcMotorEx, ElapsedTime) + - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + MotorEncoder(EncodedMotor<DcMotorEx>) + - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + MotorEncoder(String) + - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + MotorEncoder.Direction + - Enum Class in + com.technototes.library.hardware.sensor.encoder +
    +
     
    +
    + MotorGroup<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.hardware.motor +
    +
    +
    Class for a group of motors
    +
    +
    + MotorGroup(Motor<T>...) + - Constructor for class com.technototes.library.hardware.motor.MotorGroup +
    +
    +
    Make a motor group
    +
    +
    + MotorSubsystem<T + extends + Motor<?>> - Class in + com.technototes.library.subsystem.motor +
    +
    +
    Class for motor subsystems
    +
    +
    + MotorSubsystem(T) + - Constructor for class com.technototes.library.subsystem.motor.MotorSubsystem +
    +
    +
    Create motor subsystem
    +
    +
    + MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED + - Static variable in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + msStuckDetectStop + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Deprecated.
    +
    +
    +

    N

    +
    +
    + name + - Variable in class com.technototes.library.logger.entry.Entry +
    +
    +
    The name of the Entry
    +
    +
    + name() + - Element in annotation interface com.technototes.library.logger.Log.Boolean +
    +
    +
    Store the name for this annotation to be be beside
    +
    +
    + name() + - Element in annotation interface com.technototes.library.logger.Log +
    +
    +
    Store the name for this annotation to be be beside
    +
    +
    + name() + - Element in annotation interface com.technototes.library.logger.Log.Number +
    +
    +
    Store the name for this annotation to be be beside
    +
    +
    + NEUTRAL + - Enum constant in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
     
    +
    + NNN + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Negative, Negative, Negative
    +
    +
    + NNN + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + NNP + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Negative, Negative, Positive
    +
    +
    + NNP + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + NO_COLOR + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + NONE + - Enum constant in enum class com.technototes.library.util.Alliance +
    +
    +
    NO ALLIANCE SELECTED
    +
    +
    + NONE_ACTIVE + - Enum constant in enum class com.technototes.library.control.Binding.Type +
    +
     
    +
    + NPN + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Negative, Positive, Negative
    +
    +
    + NPN + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + NPP + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Negative, Positive, Positive
    +
    +
    + NPP + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + numberColor + - Variable in class com.technototes.library.logger.entry.NumberEntry +
    +
     
    +
    + NumberEntry + - Class in + com.technototes.library.logger.entry +
    +
     
    +
    + NumberEntry(String, Supplier<Number>, int) + - Constructor for class com.technototes.library.logger.entry.NumberEntry +
    +
     
    +
    +

    O

    +
    +
    + of(Pair<T, U>...) + - Static method in class com.technototes.library.util.MapUtils +
    +
     
    +
    + of(T, T) + - Static method in class com.technototes.library.util.Alliance.Selector +
    +
    +
    Selector factory method
    +
    +
    + offset + - Variable in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + onlyIf(BooleanSupplier) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Runs this command only if the choiceCondition is met (i.e.
    +
    +
    + onRange(double, double) + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +
    Set servo range
    +
    +
    + onUnit(DistanceUnit) + - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + onUnit(DistanceUnit) + - Method in interface com.technototes.library.hardware.sensor.IDistanceSensor +
    +
     
    +
    + onUnit(DistanceUnit) + - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
    +
    +
    Deprecated.
    +
    Set the distance unit
    +
    +
    + ORANGE + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + output() + - Method in class com.technototes.library.hardware2.DigitalBuilder +
    +
    +
    Don't use this in the future
    +
    +
    +

    P

    +
    +
    + ParallelCommandGroup + - Class in + com.technototes.library.command +
    +
    +
    + Command group to run commands in parallel until all of them finish +
    +
    +
    + ParallelCommandGroup(Command...) + - Constructor for class com.technototes.library.command.ParallelCommandGroup +
    +
    +
    Make parallel command group
    +
    +
    + ParallelDeadlineGroup + - Class in + com.technototes.library.command +
    +
    +
    + Command group to run commands in parallel until one particular command completes +
    +
    +
    + ParallelDeadlineGroup(Command, Command...) + - Constructor for class com.technototes.library.command.ParallelDeadlineGroup +
    +
    +
    Make parallel deadline group
    +
    +
    + ParallelRaceGroup + - Class in + com.technototes.library.command +
    +
    +
    + Command group to run commands in parallel until *one* is finished +
    +
    +
    + ParallelRaceGroup(Command...) + - Constructor for class com.technototes.library.command.ParallelRaceGroup +
    +
    +
    Make parallel race group
    +
    +
    + parameter(Consumer<BNO055IMU.Parameters>) + - Method in class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    Deprecated
    +
    +
    + periodic() + - Method in class com.technototes.library.control.ButtonBase +
    +
     
    +
    + periodic() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    + Run the periodic functions for the controller (if the controller is enabled) +
    +
    +
    + periodic() + - Method in class com.technototes.library.control.GamepadDpad +
    +
     
    +
    + periodic() + - Method in class com.technototes.library.control.GamepadStick +
    +
     
    +
    + periodic() + - Method in interface com.technototes.library.general.Periodic +
    +
    +
    The periodic function
    +
    +
    + periodic() + - Method in class com.technototes.library.subsystem.DeviceSubsystem +
    +
     
    +
    + periodic() + - Method in interface com.technototes.library.subsystem.Subsystem +
    +
     
    +
    + Periodic + - Interface in + com.technototes.library.general +
    +
    +
    An interface for classes to have the periodic function
    +
    +
    + PINK + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + PNN + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Positive, Negative, Negative
    +
    +
    + PNN + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + PNP + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Positive, Negative, Positive
    +
    +
    + PNP + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + position(double) + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + positionThreshold + - Variable in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Deadzone for going to positions with encoder
    +
    +
    + PPN + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Positive, Positive, Negative
    +
    +
    + PPN + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + PPP + - Enum constant in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    Positive, Positive, Positive
    +
    +
    + PPP + - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    deprecated
    +
    +
    + priority + - Variable in class com.technototes.library.logger.entry.Entry +
    +
    +
    The priority (in the telemetry list) of the entry
    +
    +
    + priority() + - Element in annotation interface com.technototes.library.logger.Log.Boolean +
    +
    +
    + Store priority for this log entry (to pick the most wanted entry over others with + same index) +
    +
    +
    + priority() + - Element in annotation interface com.technototes.library.logger.Log.Number +
    +
    +
    + Store priority for this log entry (to pick the most wanted entry over others with + same index) +
    +
    +
    + priority() + - Element in annotation interface com.technototes.library.logger.Log +
    +
    +
    + Store priority for this log entry (to pick the most wanted entry over others with + same index) +
    +
    +
    + product + - Variable in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + propagate(double) + - Method in interface com.technototes.library.hardware.HardwareDeviceGroup +
    +
    +
    Deprecated.
    +
    Propagate actions across the followers
    +
    +
    + propogate(double) + - Method in interface com.technototes.library.hardware.HardwareDeviceGroup +
    +
    +
    Deprecated.
    +
    +
    + propogate(double) + - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup +
    +
     
    +
    + propogate(double) + - Method in class com.technototes.library.hardware.motor.MotorGroup +
    +
     
    +
    + propogate(double) + - Method in class com.technototes.library.hardware.servo.ServoGroup +
    +
    +
    Deprecated.
    +   +
    +
    + proportion + - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints +
    +
     
    +
    + ps_circle + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the PS4 game controller
    +
    +
    + PS_CIRCLE + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    PS4 Circle (O) button
    +
    +
    + ps_cross + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the PS4 game controller
    +
    +
    + PS_CROSS + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    PS4 Cross (X) button
    +
    +
    + ps_options + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the PS4 game controller
    +
    +
    + PS_OPTIONS + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    PS4 Options button
    +
    +
    + ps_share + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the PS4 game controller
    +
    +
    + PS_SHARE + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    PS4 Share button
    +
    +
    + ps_square + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the PS4 game controller
    +
    +
    + PS_SQUARE + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    PS4 Square button
    +
    +
    + ps_triangle + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the PS4 game controller
    +
    +
    + PS_TRIANGLE + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    PS4 Triangle button
    +
    +
    + PURPLE + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + pwmRange(double, double) + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + pythag(double...) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    Calculate pythagorean theorem of any number of sides
    +
    +
    +

    R

    +
    +
    + raceWith(Command...) + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Runs all the commands in parallel (including this command) until one of them + finishes +
    +
    +
    + radians() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Set angle format to radians
    +
    +
    + radians() + - Method in class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    Deprecated
    +
    +
    + range(double, double) + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + Range + - Class in + com.technototes.library.util +
    +
    +
    Helper class for tracking a range
    +
    +
    + Range(double, double) + - Constructor for class com.technototes.library.util.Range +
    +
    +
    Create a range with the given minimum and maximum
    +
    +
    + raw() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + red() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get the RGB red of the sensor
    +
    +
    + RED + - Enum constant in enum class com.technototes.library.util.Alliance +
    +
    +
    RED alliance selector
    +
    +
    + RED + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + RED_SQUARE + - Static variable in class com.technototes.library.util.Characters +
    +
     
    +
    + register() + - Method in interface com.technototes.library.subsystem.Subsystem +
    +
     
    +
    + register(Periodic) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Register a periodic function to be run once each schedule loop +
    +
    +
    + remap(AxesOrder, IMUBuilder.AxesSigns) + - Method in class com.technototes.library.hardware2.IMUBuilder +
    +
    +
    Deprecated
    +
    +
    + remapAxesAndSigns(AxesOrder, IMU.AxesSigns) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Remaps the axes for the IMU in the order and sign provided.
    +
    +
    + remapLegacyAxes(AxesOrder, IMU.AxesSigns) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    + Remaps the axes for the BNO055 IMU in the order and sign provided The SDK 8.1.1 + added a new IMU class, which (delightfully) rotated the X and Y axes around the Z + axis by 90 degrees clock-wise (viewed from above) If you have code that was using + that layout, this is what you probably need to call. +
    +
    +
    + repeat(String, int) + - Static method in class com.technototes.library.logger.Logger +
    +
    +
    Repeat a String
    +
    +
    + requestOpModeStop() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + requirementMap + - Static variable in interface com.technototes.library.command.Command +
    +
    +
    The Command to Required Subsystems lookup
    +
    +
    + reset() + - Static method in interface com.technototes.library.util.SmartConsumer +
    +
     
    +
    + RESET + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    The command has just be scheduled
    +
    +
    + resetDeviceConfigurationForOpMode() + - Method in class com.technototes.library.hardware.DummyDevice +
    +
     
    +
    + resetScheduler() + - Static method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Alex had a comment "be careful with this" and he's not wrong.
    +
    +
    + Rev2MDistanceSensor + - Class in + com.technototes.library.hardware.sensor +
    +
    +
    Deprecated.
    +
    +
    + Rev2MDistanceSensor(DistanceSensor) + - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
    +
    +
    Deprecated.
    +
    Create a range sensor
    +
    +
    + Rev2MDistanceSensor(String) + - Constructor for class com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
    +
    +
    Deprecated.
    +
    Create a range sensor
    +
    +
    + reverse() + - Method in class com.technototes.library.hardware2.CRServoBuilder +
    +
     
    +
    + reverse() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + reverse() + - Method in class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + REVERSE + - Enum constant in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction +
    +
     
    +
    + rgb() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
     
    +
    + right + - Variable in class com.technototes.library.control.GamepadDpad +
    +
    +
    The objects for the dpad buttons
    +
    +
    + RIGHT_BUMPER + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    Right bumper button
    +
    +
    + RIGHT_STICK_BUTTON + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    Button which clicking the right stick
    +
    +
    + RIGHT_STICK_X + - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    Right stick's horizontal axis
    +
    +
    + RIGHT_STICK_Y + - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    Right stick's vertical axis
    +
    +
    + RIGHT_TRIGGER + - Enum constant in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    Right Trigger's axis
    +
    +
    + rightBumper + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + rightSide + - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem +
    +
    +
    Drive motors
    +
    +
    + rightStick + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The stick objects
    +
    +
    + rightStickButton + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for both the XBox and PS4 controllers
    +
    +
    + rightStickX + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The axis objects
    +
    +
    + rightStickY + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The axis objects
    +
    +
    + rightTrigger + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The axis objects
    +
    +
    + rlMotor + - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
    +
    Drive motors
    +
    +
    + RobotLibrary + - Class in + com.technototes.library +
    +
    +
    + Root class for the Robot Library (I will put important stuff here) +
    +
    +
    + RobotLibrary() + - Constructor for class com.technototes.library.RobotLibrary +
    +
     
    +
    + rrMotor + - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
    +
    Drive motors
    +
    +
    + rumble() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Rumble for about 1/8th of a second
    +
    +
    + rumble(double) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Rumble the gamepad for 'seconds'
    +
    +
    + rumbleBlip() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Run a single "RumbleBlip"
    +
    +
    + rumbleBlips(int) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Run a bunch of "RumbleBlips"
    +
    +
    + run() + - Method in interface com.technototes.library.command.Command +
    +
    +
    Run the commmand
    +
    +
    + run() + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + This is invoked from inside the CommandOpMode method, during the opCode. +
    +
    +
    + RUN + - Enum constant in enum class com.technototes.library.structure.CommandOpMode.OpModeState +
    +
     
    +
    + runEntries + - Variable in class com.technototes.library.logger.Logger +
    +
     
    +
    + runLoop() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Runs constantly when op mode is started
    +
    +
    + runOpMode() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + runUpdate() + - Method in class com.technototes.library.logger.Logger +
    +
    +
    Update the logged run items in temeletry
    +
    +
    +

    S

    +
    +
    + saturation() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get HSV saturation
    +
    +
    + scale(double) + - Method in class com.technototes.library.util.Range +
    +
    +
    Scale the range by a given value
    +
    +
    + scalePWM(double, double) + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +   +
    +
    + schedule(Command) + - Method in class com.technototes.library.command.CommandGroup +
    +
    +
    + This should schedule the command as part of this command group, I think. +
    +
    +
    + schedule(Command) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Schedule a command to run
    +
    +
    + schedule(Command) + - Method in class com.technototes.library.command.ParallelCommandGroup +
    +
     
    +
    + schedule(Command) + - Method in class com.technototes.library.command.ParallelDeadlineGroup +
    +
    +
    + Add another command to the group to be run while waiting for the 'deadline' command + to finish +
    +
    +
    + schedule(Command) + - Method in class com.technototes.library.command.ParallelRaceGroup +
    +
    +
    + Add one more command to the list of commands that will be run at the same time +
    +
    +
    + schedule(Command) + - Method in class com.technototes.library.command.SequentialCommandGroup +
    +
    +
    + This allows you to append another command to the Sequential Command Group +
    +
    +
    + schedule(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    Schedule the command to run
    +
    +
    + schedule(Command, BooleanSupplier) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Register a command to be scheduled.
    +
    +
    + schedule(BooleanSupplier, Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    Schedule the command to run over & over
    +
    +
    + schedule(Consumer<Boolean>) + - Method in class com.technototes.library.control.CommandButton +
    +
     
    +
    + schedule(Function<Boolean, Command>) + - Method in class com.technototes.library.control.CommandButton +
    +
     
    +
    + schedule(Function<Double, Command>) + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + scheduleAfterOther(Command, Command) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule the 'other' command (the second one) when the 'dependency' command has + finished (but *not* been cancelled!). +
    +
    +
    + scheduleAfterOther(Command, Command, BooleanSupplier) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule the 'other' command (the second one) when the 'dependency' command has + finished (but *not* been cancelled!) *and* 'additionalCondition' is true. +
    +
    +
    + scheduleDefault(Command, Subsystem) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Schedule the default command for a given subsystem.
    +
    +
    + scheduleDpad(BiConsumer<Double, Double>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleDpad(BiFunction<Double, Double, Command>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleForState(Command, CommandOpMode.OpModeState...) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule a command to be run when the OpMode is one of the provided list of states. +
    +
    +
    + scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule a command to be run when the OpMode is one of the provided list of states + and the 'supplier' boolean function is also true. +
    +
    +
    + scheduleInit(Command) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule a command to be run recurringly during the 'Init' phase of an opmode. +
    +
    +
    + scheduleInit(Command, BooleanSupplier) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule a command to be run recurringly during the 'Init' phase of an opmode. +
    +
    +
    + scheduleJoystick(Command) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedules a command to be run during Run and End states, all the time. +
    +
    +
    + scheduleJoystick(Command, BooleanSupplier) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedules a command to be run during Run and End states, all the time. +
    +
    +
    + scheduleLeftStick(BiConsumer<Double, Double>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleLeftStick(BiFunction<Double, Double, Command>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleOnce(Command) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Schedule a command to run
    +
    +
    + scheduleOnceForState(Command, CommandOpMode.OpModeState) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Schedule a command to run during a particular OpModeState
    +
    +
    + schedulePressed(Function<DoubleSupplier, Command>) + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + scheduleRightStick(BiConsumer<Double, Double>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleRightStick(BiFunction<Double, Double, Command>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleStick(Stick, BiConsumer<Double, Double>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleStick(Stick, BiFunction<Double, Double, Command>) + - Method in class com.technototes.library.control.CommandGamepad +
    +
     
    +
    + scheduleWithOther(Command, Command) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule the 'other' command (the second one) when the 'dependency' command has just + started. +
    +
    +
    + scheduleWithOther(Command, Command, BooleanSupplier) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    + Schedule the 'other' command (the second one) when the 'dependency' command has just + started *and* 'additionalCondition' is also true. +
    +
    +
    + select(Alliance) + - Method in class com.technototes.library.util.Alliance.Selector +
    +
    +
    Select the red or blue item based on the Alliance
    +
    +
    + selectOf(Alliance, T, T) + - Static method in class com.technototes.library.util.Alliance.Selector +
    +
    +
    Based on Alliance, choose red or blue
    +
    +
    + selectOf(T, T) + - Method in enum class com.technototes.library.util.Alliance +
    +
    +
    Select either 'a' or 'b' depending on alliance
    +
    +
    + Selector(T, T) + - Constructor for class com.technototes.library.util.Alliance.Selector +
    +
    +
    Create a Selelector for red/blue
    +
    +
    + Sensor<T + extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in + com.technototes.library.hardware.sensor +
    +
    +
    Deprecated.
    +
    +
    + Sensor(String) + - Constructor for class com.technototes.library.hardware.sensor.Sensor +
    +
    +
    Deprecated.
    +
    Create sensor
    +
    +
    + Sensor(T) + - Constructor for class com.technototes.library.hardware.sensor.Sensor +
    +
    +
    Deprecated.
    +
    Create a sensor
    +
    +
    + Sensored + - Interface in + com.technototes.library.hardware +
    +
    +
    Deprecated.
    +
    +
    + SequentialCommandGroup + - Class in + com.technototes.library.command +
    +
    +
    A grouping command which runs a list of commands in sequence
    +
    +
    + SequentialCommandGroup(Command...) + - Constructor for class com.technototes.library.command.SequentialCommandGroup +
    +
    +
    Make sequential command group.
    +
    +
    + servo(int) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + servo(String) + - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    +
    Deprecated
    +
    +
    + Servo + - Class in + com.technototes.library.hardware.servo +
    +
    +
    Deprecated.
    +
    +
    + Servo(Servo) + - Constructor for class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +
    Create servo object
    +
    +
    + Servo(String) + - Constructor for class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +
    Create servo object
    +
    +
    + ServoBuilder + - Class in + com.technototes.library.hardware2 +
    +
    +
    TODO: Remove this.
    +
    +
    + ServoBuilder(int) + - Constructor for class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + ServoBuilder(Servo) + - Constructor for class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + ServoBuilder(String) + - Constructor for class com.technototes.library.hardware2.ServoBuilder +
    +
     
    +
    + ServoGroup + - Class in + com.technototes.library.hardware.servo +
    +
    +
    Deprecated.
    +
    +
    + ServoGroup(Servo...) + - Constructor for class com.technototes.library.hardware.servo.ServoGroup +
    +
    +
    Deprecated.
    +
    Create a servo group
    +
    +
    + ServoProfiler + - Class in + com.technototes.library.hardware.servo +
    +
     
    +
    + ServoProfiler(Servo) + - Constructor for class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + ServoProfiler.Constraints + - Class in + com.technototes.library.hardware.servo +
    +
     
    +
    + ServoSubsystem + - Class in + com.technototes.library.subsystem.servo +
    +
    +
    Class for servo subsystems
    +
    +
    + ServoSubsystem(Servo) + - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem +
    +
    +
    Create servo subsystem
    +
    +
    + ServoSubsystem(Servo...) + - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystem +
    +
     
    +
    + set(double) + - Method in class com.technototes.library.util.Integral +
    +
    +
    Set the value to C
    +
    +
    + setAverageOutput(double) + - Method in class com.technototes.library.util.Differential +
    +
    +
    Set the average of the differential.
    +
    +
    + setConstraints(double, double, double) + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + setConstraints(ServoProfiler.Constraints) + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + setDefaultCommand(Command) + - Method in interface com.technototes.library.subsystem.Subsystem +
    +
     
    +
    + setDeviationOutput(double) + - Method in class com.technototes.library.util.Differential +
    +
    +
    Set the deviation of the differential.
    +
    +
    + setDirection(MotorEncoder.Direction) + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
    +
    + Allows you to set the direction of the counts and velocity without modifying the + motor's direction state +
    +
    +
    + setEnabled(boolean) + - Method in class com.technototes.library.control.ButtonBase +
    +
     
    +
    + setEnabled(boolean) + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    + Enable/disable the gamepad (and all potentially bound commands!) +
    +
    +
    + setEnabled(boolean) + - Method in class com.technototes.library.control.GamepadDpad +
    +
     
    +
    + setEnabled(boolean) + - Method in class com.technototes.library.control.GamepadStick +
    +
     
    +
    + setEnabled(boolean) + - Method in interface com.technototes.library.general.Enablable +
    +
    +
    Set whether or not the device is enabled
    +
    +
    + setEncoder(Encoder) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Explicitly set the encoder for the motor
    +
    +
    + setHeading(double) + - Method in interface com.technototes.library.hardware.sensor.IGyro +
    +
    +
    Sets the current heading (in default units)
    +
    +
    + setHeading(double) + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
    +
    Sets the current heading to be 'new heading'
    +
    +
    + setIndex(int) + - Method in class com.technototes.library.logger.entry.Entry +
    +
    +
    Set index
    +
    +
    + setInverted(boolean) + - Method in class com.technototes.library.control.ButtonBase +
    +
     
    +
    + setInverted(boolean) + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + setInverted(boolean) + - Method in class com.technototes.library.control.CommandButton +
    +
     
    +
    + setInverted(boolean) + - Method in interface com.technototes.library.general.Invertable +
    +
    +
    + Set the inversion (true -> Is inverted, false -> Not inverted) +
    +
    +
    + setInverted(boolean) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Set the Inverted state for the motor.
    +
    +
    + setInverted(boolean) + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Set the Inverted state for the motor.
    +
    +
    + setInverted(boolean) + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +   +
    +
    + setLimits(double, double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
     
    +
    + setLimits(double, double) + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    + Sets the min & max values for the motor power (still clipped to -1/1) +
    +
    +
    + setLimits(double, double) + - Method in class com.technototes.library.util.Differential +
    +
    +
    Set the limits for the differential
    +
    +
    + setMaxSpeed(double) + - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem +
    +
    +
    Set the max speed for the subsystem
    +
    +
    + setOpMode(CommandOpMode) + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Set the scheduler's opmode
    +
    +
    + setOutputs(double, double) + - Method in class com.technototes.library.util.Differential +
    +
    +
    Set both outputs for the differential
    +
    +
    + setPIDFCoeffecients(double, double, double, double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Configure the PIDF constants for the motor
    +
    +
    + setPIDFCoeffecients(PIDFCoefficients) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Configure the PIDF constants for the motor
    +
    +
    + setPosition(double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Set the position of the motor
    +
    +
    + setPosition(double) + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +
    Set servo position
    +
    +
    + setPosition(double) + - Method in class com.technototes.library.hardware.servo.ServoGroup +
    +
    +
    Deprecated.
    +   +
    +
    + setPosition(double) + - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem +
    +
    +
    Set position for subsystem with existing max speed
    +
    +
    + setPosition(double) + - Method in class com.technototes.library.subsystem.servo.ServoSubsystem +
    +
    +
    Set servo subsystem position
    +
    +
    + setPosition(double, double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    + Set the power for the motor to try to get to the position specified. +
    +
    +
    + setPosition(double, double) + - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup +
    +
     
    +
    + setPosition(double, double) + - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem +
    +
    +
    Set position for subsystem
    +
    +
    + setPriority(int) + - Method in class com.technototes.library.logger.entry.Entry +
    +
    +
    + Set's the priority for this log line (handy for telemetry overflow) +
    +
    +
    + setPriority(Differential.DifferentialPriority) + - Method in class com.technototes.library.util.Differential +
    +
    +
    Sets the priority for the differential.
    +
    +
    + setRunMode(DcMotor.RunMode) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Set the runmode for the motor
    +
    +
    + setServoRange(double) + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + setSpeed(double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Sets the (clipped) speed for the motor
    +
    +
    + setSpeed(double) + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Set speed of motor
    +
    +
    + setSpeed(double) + - Method in class com.technototes.library.hardware.motor.MotorGroup +
    +
     
    +
    + setSpeed(double) + - Method in class com.technototes.library.subsystem.motor.MotorSubsystem +
    +
    +
    Set the speed of the primary motors in subsystem
    +
    +
    + setState(Command.CommandState) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Set the command state: DEFINITELY DO NOT USE THIS!
    +
    +
    + setTargetPosition(double) + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + setTargetTolerance(double) + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + setTriggerThreshold(double) + - Method in class com.technototes.library.control.AxisBase +
    +
    +
    Set threshold
    +
    +
    + setTriggerThreshold(double) + - Method in class com.technototes.library.control.CommandAxis +
    +
     
    +
    + setVelocity(double) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Set velocity of motor in tps
    +
    +
    + setVelocity(double) + - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup +
    +
     
    +
    + setVolume(float) + - Method in class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + SimpleMecanumDrivebaseSubsystem<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.subsystem.drivebase +
    +
    +
    Class for mecanum/xdrive drivebases
    +
    +
    + SimpleMecanumDrivebaseSubsystem(Motor<T>, Motor<T>, Motor<T>, + Motor<T>) + - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
    +
    Create mecanum drivebase
    +
    +
    + SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor<T>, Motor<T>, + Motor<T>, Motor<T>) + - Constructor for class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
    +
    Create mecanum drivebase
    +
    +
    + sleep(double) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Delay the command for some time
    +
    +
    + sleep(DoubleSupplier) + - Method in interface com.technototes.library.command.Command +
    +
    +
    Delay the command for some time
    +
    +
    + SmartConsumer<T> - Interface in + com.technototes.library.util +
    +
    +
    + This is a functional interface, when 'accept' is invoked, will only invoke the + 'consume' method when a different value is provided. +
    +
    +
    + SOME_ACTIVE + - Enum constant in enum class com.technototes.library.control.Binding.Type +
    +
     
    +
    + Speaker + - Class in + com.technototes.library.hardware +
    +
    +
    Deprecated.
    +
    +
    + Speaker(float, String...) + - Constructor for class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + Speaker(String...) + - Constructor for class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + start(String) + - Method in class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + startAt(double) + - Method in class com.technototes.library.hardware.servo.Servo +
    +
    +
    Deprecated.
    +
    Set position for the servo and return this
    +
    +
    + startAt(double) + - Method in class com.technototes.library.hardware.servo.ServoGroup +
    +
    +
    Deprecated.
    +   +
    +
    + STARTED + - Enum constant in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    The command has been triggered
    +
    +
    + stateMap + - Static variable in interface com.technototes.library.command.Command +
    +
    +
    The Command to Current State of the Command lookup
    +
    +
    + Stick + - Interface in + com.technototes.library.control +
    +
    +
    Interface for objects that behave as sticks
    +
    +
    + stickButton + - Variable in class com.technototes.library.control.GamepadStick +
    +
    +
    The objects for the stick button
    +
    +
    + stop() + - Method in class com.technototes.library.hardware.Speaker +
    +
    +
    Deprecated.
    +   +
    +
    + stop() + - Method in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem +
    +
     
    +
    + stop() + - Method in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem +
    +
     
    +
    + stop() + - Method in class com.technototes.library.subsystem.motor.MotorSubsystem +
    +
     
    +
    + stopRumble() + - Method in class com.technototes.library.control.GamepadBase +
    +
    +
    Stop rumbling on the gamepad
    +
    +
    + StringEntry + - Class in + com.technototes.library.logger.entry +
    +
     
    +
    + StringEntry(String, Supplier<String>, int, String) + - Constructor for class com.technototes.library.logger.entry.StringEntry +
    +
     
    +
    + Subsystem + - Interface in + com.technototes.library.subsystem +
    +
     
    +
    + supplier + - Variable in class com.technototes.library.logger.entry.Entry +
    +
    +
    The function called to get the value to display
    +
    +
    +

    T

    +
    +
    + TankDrivebaseSubsystem<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in + com.technototes.library.subsystem.drivebase +
    +
    +
    Class for drivebase subsystems
    +
    +
    + TankDrivebaseSubsystem(Motor<T>, Motor<T>) + - Constructor for class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem +
    +
    +
    Create tank drivebase
    +
    +
    + tare() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Zero the encoder
    +
    +
    + tare() + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + telemetry + - Variable in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + terminate() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
     
    +
    + terminateOpMode() + - Method in class com.technototes.library.command.CommandScheduler +
    +
    +
    Forcefully halt the opmode
    +
    +
    + timeMap + - Static variable in interface com.technototes.library.command.Command +
    +
    +
    The Command to Total Time Spent Running lookup
    +
    +
    + toggle(Command, Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + For scheduling a pair of "opposite" commands for toggling when something is or is + not being toggled +
    +
    +
    + toggleEnabled() + - Method in interface com.technototes.library.general.Enablable +
    +
    +
    Toggle whether this object is enabled or not
    +
    +
    + tolerance(int) + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    + toString() + - Method in class com.technototes.library.logger.entry.BooleanEntry +
    +
     
    +
    + toString() + - Method in class com.technototes.library.logger.entry.Entry +
    +
    +
    The String for the logged item
    +
    +
    + toString() + - Method in class com.technototes.library.logger.entry.NumberEntry +
    +
     
    +
    + toString() + - Method in class com.technototes.library.logger.entry.StringEntry +
    +
     
    +
    + translateTargetPosition(double) + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + trueValue() + - Element in annotation interface com.technototes.library.logger.Log.Boolean +
    +
    +
    Store the string when the annotated method returns true
    +
    +
    +

    U

    +
    +
    + universalLoop() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Runs constantly during all periods
    +
    +
    + up + - Variable in class com.technototes.library.control.GamepadDpad +
    +
    +
    The objects for the dpad buttons
    +
    +
    + update() + - Method in class com.technototes.library.hardware.servo.ServoProfiler +
    +
     
    +
    + update(double) + - Method in class com.technototes.library.util.Integral +
    +
    +
    + Update the accumulated value for the number of seconds since last update +
    +
    +
    + uponInit() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Runs once when op mode is initialized
    +
    +
    + uponStart() + - Method in class com.technototes.library.structure.CommandOpMode +
    +
    +
    Runs once when op mode is started
    +
    +
    +

    V

    +
    +
    + value() + - Method in interface com.technototes.library.hardware.sensor.IColorSensor +
    +
    +
    Get HSV value (not entire HSV, just 'V')
    +
    +
    + value() + - Element in annotation interface com.technototes.library.logger.Log.Logs +
    +
     
    +
    + value() + - Element in annotation interface com.technototes.library.logger.LogConfig.AllowList +
    +
    +
    The allowed opmodes
    +
    +
    + value() + - Element in annotation interface com.technototes.library.logger.LogConfig.DenyList +
    +
    +
    The denied opmodes
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.control.Binding.Type +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.util.Alliance +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.util.Color +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + valueOf(String) + - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
    +
    + Returns the enum constant of this class with the specified name. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.command.Command.CommandState +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.control.Binding.Type +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.control.GamepadBase.Axis +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.hardware.sensor.IMU.AxesSigns +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.structure.CommandOpMode.OpModeState +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.util.Alliance +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.util.Color +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + values() + - Static method in enum class com.technototes.library.util.Differential.DifferentialPriority +
    +
    +
    + Returns an array containing the constants of this enum class, in the order they are + declared. +
    +
    +
    + velocity(PIDFCoefficients) + - Method in class com.technototes.library.hardware2.MotorBuilder +
    +
     
    +
    +

    W

    +
    +
    + WaitCommand + - Class in + com.technototes.library.command +
    +
    +
    A command to do nothing but wait for a span of time.
    +
    +
    + WaitCommand(double) + - Constructor for class com.technototes.library.command.WaitCommand +
    +
    +
    Create a wait command for a fixed number of seconds
    +
    +
    + WaitCommand(DoubleSupplier) + - Constructor for class com.technototes.library.command.WaitCommand +
    +
    +
    + Create a wait command for a number of seconds that can be calculated when the + commannd is triggered +
    +
    +
    + waitUntil(BooleanSupplier) + - Method in interface com.technototes.library.command.Command +
    +
    +
    After this command, wait until the condition function is true
    +
    +
    + whenInverseToggled(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule the command to be run when the input has only stopped being toggled +
    +
    +
    + whenPressed(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    Schedule a command to be run once the input is pressed.
    +
    +
    + whenPressedReleased(Command, Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + For scheduling a pair commands for when the input is pressed and released. +
    +
    +
    + whenReleased(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    Schedule a command to be run once the input is released.
    +
    +
    + whenToggled(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule a command to be run when the input was just toggled (From pressed to + released, or released to pressed) +
    +
    +
    + whileInverseToggled(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule the command to run over & over while the input is *not* changing It + will be canceled once the input is toggled. +
    +
    +
    + whilePressed(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule a command to be run over & over while the input is pressed, but once + it's released, the command will be cancelled. +
    +
    +
    + whilePressedContinuous(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule a command to be run over & over while the input is pressed +
    +
    +
    + whilePressedOnce(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule a command to be run while the input is pressed, but only once, and if the + command takes so long that the input is released, the command will be cancelled. +
    +
    +
    + whilePressedReleased(Command, Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + For scheduling a pair commands for while the input is pressed and released. +
    +
    +
    + whileReleased(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schedule a command to be run over & over while the input is released, but once + it's pressed, the command will be cancelled. +
    +
    +
    + whileReleasedOnce(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    + Schdule the command to be run when the input is released, but only once! +
    +
    +
    + whileToggled(Command) + - Method in interface com.technototes.library.control.CommandInput +
    +
    +
    Schedule the command to be run while the input is changing.
    +
    +
    + WHITE + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + withTimeout(double) + - Method in interface com.technototes.library.command.Command +
    +
    +
    + Runs this command until it either finishes, or the timeout has elapsed +
    +
    +
    +

    X

    +
    +
    + x + - Variable in class com.technototes.library.logger.entry.Entry +
    +
    +
    The index (in the list) of the entry
    +
    +
    + xAxis + - Variable in class com.technototes.library.control.GamepadStick +
    +
    +
    The objects for the stick axis
    +
    +
    + xbox_a + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the XBox game controller
    +
    +
    + XBOX_A + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    XBox A button
    +
    +
    + xbox_b + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the XBox game controller
    +
    +
    + XBOX_B + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    XBox B button
    +
    +
    + xbox_back + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the XBox game controller
    +
    +
    + XBOX_BACK + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    XBox Back button
    +
    +
    + xbox_start + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the XBox game controller
    +
    +
    + XBOX_START + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    XBox Start button
    +
    +
    + xbox_x + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the XBox game controller
    +
    +
    + XBOX_X + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    XBox X button
    +
    +
    + xbox_y + - Variable in class com.technototes.library.control.GamepadBase +
    +
    +
    The button objects for the XBox game controller
    +
    +
    + XBOX_Y + - Enum constant in enum class com.technototes.library.control.GamepadBase.Button +
    +
    +
    XBox Y button
    +
    +
    +

    Y

    +
    +
    + yAxis + - Variable in class com.technototes.library.control.GamepadStick +
    +
    +
    The objects for the stick axis
    +
    +
    + YELLOW + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    +

    Z

    +
    +
    + zero() + - Method in interface com.technototes.library.hardware.sensor.IGyro +
    +
    +
    Zeroes the current heading (in default units)
    +
    +
    + zero() + - Method in class com.technototes.library.util.Integral +
    +
    +
    Set the value to zero
    +
    +
    + zeroEncoder() + - Method in interface com.technototes.library.hardware.sensor.encoder.Encoder +
    +
    +
    zero the encoder
    +
    +
    + zeroEncoder() + - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder +
    +
    +
    Set the current device value as "zero"
    +
    +
    + zeroEncoder() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + A B C D E F G H I J L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Constant Field Values +
    +
    +
    + diff --git a/docs/TechnoLib/index.html b/docs/TechnoLib/index.html index ebc040b2..18b7b9fb 100644 --- a/docs/TechnoLib/index.html +++ b/docs/TechnoLib/index.html @@ -1,100 +1,212 @@ - + - - -Overview (RobotLibrary API) - - - - - - - - - - - - - - - - + + + Overview (RobotLibrary API) + + + + + + + + + + + + + + +
    + + +
    + diff --git a/docs/TechnoLib/jquery-ui.overrides.css b/docs/TechnoLib/jquery-ui.overrides.css index facf852c..bc437535 100644 --- a/docs/TechnoLib/jquery-ui.overrides.css +++ b/docs/TechnoLib/jquery-ui.overrides.css @@ -29,7 +29,7 @@ a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #F8981D; - border: 1px solid #F8981D; + /* Overrides the color of selection used in jQuery UI */ + background: #f8981d; + border: 1px solid #f8981d; } diff --git a/docs/TechnoLib/member-search-index.js b/docs/TechnoLib/member-search-index.js index ec3f354c..0bef481d 100644 --- a/docs/TechnoLib/member-search-index.js +++ b/docs/TechnoLib/member-search-index.js @@ -1 +1,2290 @@ -memberSearchIndex = [{"p":"com.technototes.library.util","c":"SmartConsumer","l":"accept(T)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"addCommands(Command...)","u":"addCommands(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"additionalInitConditions()"},{"p":"com.technototes.library.command","c":"Command","l":"addRequirements(Subsystem...)","u":"addRequirements(com.technototes.library.subsystem.Subsystem...)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"addSongs(String...)","u":"addSongs(java.lang.String...)"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"ALL_ACTIVE"},{"p":"com.technototes.library.command","c":"Command","l":"alongWith(Command...)","u":"alongWith(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"alpha()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"analog(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"analog(String)","u":"analog(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"AnalogBuilder","l":"AnalogBuilder(AnalogSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogSensor)"},{"p":"com.technototes.library.hardware2","c":"AnalogBuilder","l":"AnalogBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"AnalogBuilder","l":"AnalogBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"AnalogSensor","l":"AnalogSensor(AnalogInput)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)"},{"p":"com.technototes.library.hardware.sensor","c":"AnalogSensor","l":"AnalogSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.command","c":"Command","l":"andThen(Command...)","u":"andThen(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"anyCancelled"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"apply(UnaryOperator)","u":"apply(java.util.function.UnaryOperator)"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"arcadeDrive(double, double)","u":"arcadeDrive(double,double)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"argb()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorSensor","l":"argb()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"argb()"},{"p":"com.technototes.library.command","c":"Command","l":"asConditional(BooleanSupplier)","u":"asConditional(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"at(double)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"AVERAGE"},{"p":"com.technototes.library.control","c":"AxisBase","l":"AxisBase(DoubleSupplier)","u":"%3Cinit%3E(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"AxisBase(DoubleSupplier, double)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,double)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"axisInstance(DoubleSupplier)","u":"axisInstance(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.util","c":"Color","l":"BLACK"},{"p":"com.technototes.library.util","c":"Alliance","l":"BLUE"},{"p":"com.technototes.library.util","c":"Color","l":"BLUE"},{"p":"com.technototes.library.util","c":"Characters","l":"BLUE_CIRCLE"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"blue()"},{"p":"com.technototes.library.logger.entry","c":"BooleanEntry","l":"BooleanEntry(String, Supplier, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String,java.lang.String)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"booleanSupplier"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"brake()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"brake()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"brake()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"build()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"build()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"ButtonBase(BooleanSupplier)","u":"%3Cinit%3E(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"buttonInstance(BooleanSupplier)","u":"buttonInstance(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"bVal"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"bVal"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"calculateA(double, double, double, double)","u":"calculateA(double,double,double,double)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"calculateS(double, double, double, double)","u":"calculateS(double,double,double,double)"},{"p":"com.technototes.library.command","c":"Command","l":"cancel()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"CANCELLED"},{"p":"com.technototes.library.command","c":"Command","l":"cancelUpon(BooleanSupplier)","u":"cancelUpon(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.logger","c":"Logger","l":"captionDivider"},{"p":"com.technototes.library.util","c":"Characters","l":"Characters()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.command","c":"ChoiceCommand","l":"ChoiceCommand(BooleanSupplier, Command)","u":"%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ChoiceCommand","l":"ChoiceCommand(Pair...)","u":"%3Cinit%3E(android.util.Pair...)"},{"p":"com.technototes.library.command","c":"Command","l":"clear()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"close()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"closestTo(double, double...)","u":"closestTo(double,double...)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"closestTo(double, int...)","u":"closestTo(double,int...)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"coast()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"coast()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"coast()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"codriverGamepad"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"color(String)","u":"color(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"ColorBuilder","l":"ColorBuilder(ColorSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)"},{"p":"com.technototes.library.hardware2","c":"ColorBuilder","l":"ColorBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"ColorDistanceSensor(ColorRangeSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"ColorDistanceSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"colorRange(String)","u":"colorRange(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"ColorRangeBuilder(ColorRangeSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"ColorRangeBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorSensor","l":"ColorSensor(ColorSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorSensor","l":"ColorSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"CommandAxis(DoubleSupplier)","u":"%3Cinit%3E(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"CommandAxis(DoubleSupplier, double)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,double)"},{"p":"com.technototes.library.command","c":"CommandBase","l":"CommandBase()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"CommandBinding(Binding.Type, CommandInput...)","u":"%3Cinit%3E(com.technototes.library.control.Binding.Type,com.technototes.library.control.CommandInput...)"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"CommandBinding(CommandInput...)","u":"%3Cinit%3E(com.technototes.library.control.CommandInput...)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"CommandButton(BooleanSupplier)","u":"%3Cinit%3E(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"CommandGamepad(Gamepad)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"CommandGroup(boolean, Command...)","u":"%3Cinit%3E(boolean,com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"commandMap"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"CommandOpMode()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"ConditionalCommand(BooleanSupplier)","u":"%3Cinit%3E(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"ConditionalCommand(BooleanSupplier, Command)","u":"%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"ConditionalCommand(BooleanSupplier, Command, Command)","u":"%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"constrain(double, double, double)","u":"constrain(double,double,double)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"constrain(int, int, int)","u":"constrain(int,int,int)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"Constraints(double, double, double)","u":"%3Cinit%3E(double,double,double)"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"consume(T)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"countCancel"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"countCancel()"},{"p":"com.technototes.library.command","c":"Command","l":"create(Command, Subsystem...)","u":"create(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem...)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"create(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"create(String)","u":"create(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"crServo(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"crServo(String)","u":"crServo(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"CRServoBuilder(CRServo)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.CRServo)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"CRServoBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"CRServoBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.util","c":"Color","l":"CYAN"},{"p":"com.technototes.library.util","c":"Characters","l":"CYCLE"},{"p":"com.technototes.library.util","c":"Color","l":"DARK_GRAY"},{"p":"com.technototes.library.command","c":"Command","l":"deadline(Command...)","u":"deadline(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"DEFAULT_TRIGGER_THRESHOLD"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"degrees()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"degrees()"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"device"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"device"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"DeviceSubsystem(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"DIFFERENCE"},{"p":"com.technototes.library.util","c":"Differential","l":"Differential(DoubleConsumer, DoubleConsumer)","u":"%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer)"},{"p":"com.technototes.library.util","c":"Differential","l":"Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority)","u":"%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer,com.technototes.library.util.Differential.DifferentialPriority)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"digital(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"digital(String)","u":"digital(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"DigitalBuilder(DigitalChannel)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"DigitalBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"DigitalBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"DigitalSensor","l":"DigitalSensor(DigitalChannel)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)"},{"p":"com.technototes.library.hardware.sensor","c":"DigitalSensor","l":"DigitalSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"direction(DcMotorSimple.Direction)","u":"direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"direction(DcMotorSimple.Direction)","u":"direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"direction(Servo.Direction)","u":"direction(com.qualcomm.robotcore.hardware.Servo.Direction)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"disable()"},{"p":"com.technototes.library.general","c":"Enablable","l":"disable()"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"disable()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"disable()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"distance(String)","u":"distance(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"DistanceBuilder","l":"DistanceBuilder(DistanceSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)"},{"p":"com.technototes.library.hardware2","c":"DistanceBuilder","l":"DistanceBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"doubleSupplier"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"down"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpad"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadDown"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadLeft"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadRight"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"dpadUp"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"drive(double, double)","u":"drive(double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"drive(double, double, double)","u":"drive(double,double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"drive(double, double, double, double)","u":"drive(double,double,double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"DrivebaseSubsystem(DoubleSupplier, Motor...)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"DrivebaseSubsystem(Motor...)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"driverGamepad"},{"p":"com.technototes.library.util","c":"Characters","l":"DUCK"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"DummyDevice(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.logger","c":"LogConfig.Run","l":"duringInit()"},{"p":"com.technototes.library.logger","c":"LogConfig.Run","l":"duringRun()"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"enable()"},{"p":"com.technototes.library.general","c":"Enablable","l":"enable()"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"enable()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"enable()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(String, Encoder)","u":"%3Cinit%3E(java.lang.String,com.technototes.library.hardware.sensor.encoder.Encoder)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"EncodedMotor(T, Encoder)","u":"%3Cinit%3E(T,com.technototes.library.hardware.sensor.encoder.Encoder)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"EncodedMotorGroup(EncodedMotor, Motor...)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"EncodedMotorSubsystem(EncodedMotor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"END"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"end()"},{"p":"com.technototes.library.command","c":"Command","l":"end(boolean)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"end(boolean)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"Entry(String, Supplier, int)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int)"},{"p":"com.technototes.library.command","c":"Command","l":"execute()"},{"p":"com.technototes.library.command","c":"CommandBase","l":"execute()"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"execute()"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"execute()"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"execute()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"EXECUTING"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"expandedPWM()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"expandedRange()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"ExternalEncoder(AnalogInput)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"ExternalEncoder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"falseValue()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"FINISHED"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"flMotor"},{"p":"com.technototes.library.logger","c":"Log","l":"format()"},{"p":"com.technototes.library.util","c":"Color","l":"format(Object)","u":"format(java.lang.Object)"},{"p":"com.technototes.library.util","c":"Color","l":"format(String, Object...)","u":"format(java.lang.String,java.lang.Object...)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"FORWARD"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"forward()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"forward()"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"forward()"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"frMotor"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"gain(float)"},{"p":"com.technototes.library.util","c":"Characters","l":"GAMEPAD"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"gamepad1"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"gamepad2"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"GamepadBase(Gamepad, Class, Class)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad,java.lang.Class,java.lang.Class)"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"GamepadDpad(T, T, T, T)","u":"%3Cinit%3E(T,T,T,T)"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"GamepadStick(T, T, U)","u":"%3Cinit%3E(T,T,U)"},{"p":"com.technototes.library.command","c":"Command","l":"get()"},{"p":"com.technototes.library.control","c":"Binding","l":"get()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"get()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"get()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"get()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"get()"},{"p":"com.technototes.library.control","c":"Binding","l":"get(Binding.Type)","u":"get(com.technototes.library.control.Binding.Type)"},{"p":"com.technototes.library.util","c":"Alliance","l":"get(Class)","u":"get(java.lang.Class)"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getAllDeviceList()"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getAllDevices()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"getAllDevices()"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"getAllDevices()"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"getAllDevices()"},{"p":"com.technototes.library.control","c":"Stick","l":"getAngle()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularOrientation()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularOrientation(AngleUnit)","u":"getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularVelocity()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"getAngularVelocity(AngleUnit)","u":"getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)"},{"p":"com.technototes.library.control","c":"Binding","l":"getAsBoolean()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"getAsBoolean()"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"getAsButton()"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"getAsButton(double)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"getAsDouble()"},{"p":"com.technototes.library.hardware","c":"Sensored","l":"getAsDouble()"},{"p":"com.technototes.library.util","c":"Differential","l":"getAverage()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getAxis(GamepadBase.Axis)","u":"getAxis(com.technototes.library.control.GamepadBase.Axis)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getAxisAsBoolean(GamepadBase.Axis)","u":"getAxisAsBoolean(com.technototes.library.control.GamepadBase.Axis)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getAxisAsDouble(GamepadBase.Axis)","u":"getAxisAsDouble(com.technototes.library.control.GamepadBase.Axis)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getButton(GamepadBase.Button)","u":"getButton(com.technototes.library.control.GamepadBase.Button)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getButtonAsBoolean(GamepadBase.Button)","u":"getButtonAsBoolean(com.technototes.library.control.GamepadBase.Button)"},{"p":"com.technototes.library.util","c":"Alliance","l":"getColor()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getConnectionInfo()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getCorrectedVelocity()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getCurrent(Subsystem)","u":"getCurrent(com.technototes.library.subsystem.Subsystem)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getCurrentPosition()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getCurrentPosition()"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"getCurrentSong()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getDefault(Subsystem)","u":"getDefault(com.technototes.library.subsystem.Subsystem)"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"getDefaultCommand()"},{"p":"com.technototes.library.control","c":"Binding","l":"getDefaultType()"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"getDefaultType()"},{"p":"com.technototes.library.util","c":"Differential","l":"getDeviation()"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"getDevice()"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"getDevice()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getDeviceName()"},{"p":"com.technototes.library.util","c":"Differential","l":"getDifferentialPriority()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getDirection()"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"getDistance()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"getDistance(DistanceUnit)","u":"getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"getDistance(DistanceUnit)","u":"getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"getDistance(DistanceUnit)","u":"getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.control","c":"Stick","l":"getDistanceFromCenter()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getDpad()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getEncoder()"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getFollowerist()"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"getFollowers()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"getFollowers()"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"getFollowers()"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"getFollowers()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getGamepad()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"getGyro()"},{"p":"com.technototes.library.util","c":"Color","l":"getHexValue()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"getIndex()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getInstance()"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"getInstance()"},{"p":"com.technototes.library.control","c":"CommandButton","l":"getInstance()"},{"p":"com.technototes.library.control","c":"CommandInput","l":"getInstance()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"getInverted()"},{"p":"com.technototes.library.general","c":"Invertable","l":"getInverted()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"getInverted()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"getInverted()"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"getLast()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getLeftStick()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"getLight()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"getLogger()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getManufacturer()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"getMap()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"getMax(double...)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"getMax(int...)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getMaxAccel()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"getMaxAcceleration()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getMaxVel()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"getMaxVelocity()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"getMultiplier()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"getName()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"getOpModeRuntime()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"getOpModeRuntime()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"getOpModeState()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"Encoder","l":"getPosition()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"getPosition()"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"getPosition()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"getPriority()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"getProportion()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getRawVelocity()"},{"p":"com.technototes.library.command","c":"Command","l":"getRequirements()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"getRightStick()"},{"p":"com.technototes.library.command","c":"Command","l":"getRuntime()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"getScale(double...)"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"getSeconds()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.sensor","c":"AnalogSensor","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"getSensorValue()"},{"p":"com.technototes.library.hardware","c":"Sensored","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"getSensorValue()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getServo()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getSpeed()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"getSpeed()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"getSpeed()"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"getSpeed()"},{"p":"com.technototes.library.command","c":"Command","l":"getState()"},{"p":"com.technototes.library.control","c":"Binding","l":"getSuppliers()"},{"p":"com.technototes.library.control","c":"CommandBinding","l":"getSuppliers()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getTargetPosition()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"getTargetTolerance()"},{"p":"com.technototes.library.control","c":"AxisBase","l":"getTriggerThreshold()"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"getUnit()"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"getUnit()"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"getUnit()"},{"p":"com.technototes.library.hardware.sensor","c":"DigitalSensor","l":"getValue()"},{"p":"com.technototes.library.util","c":"Integral","l":"getValue()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"getVelocity()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"getVersion()"},{"p":"com.technototes.library","c":"RobotLibrary","l":"getVersion()"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"getVolume()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"getXAxis()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"getXAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getXAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getXSupplier()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"getYAxis()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"getYAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getYAxis()"},{"p":"com.technototes.library.control","c":"Stick","l":"getYSupplier()"},{"p":"com.technototes.library.util","c":"Color","l":"GREEN"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"green()"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"gyroHeading()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeading()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeading(AngleUnit)","u":"gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"gyroHeadingInDegrees()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeadingInDegrees()"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"gyroHeadingInRadians()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"gyroHeadingInRadians()"},{"p":"com.technototes.library.subsystem.drivebase","c":"DrivebaseSubsystem","l":"gyroSupplier"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"HardwareBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"HardwareBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"HardwareBuilder(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"HardwareDevice(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"HardwareDevice(T)","u":"%3Cinit%3E(T)"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"hardwareMap"},{"p":"com.technototes.library.hardware","c":"HardwareDevice","l":"hardwareMap"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"hsv()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"hsvArray()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"hue()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"idle(DcMotor.ZeroPowerBehavior)","u":"idle(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"ignoreCancel()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(IMU, IMU.Parameters)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.robotcore.hardware.IMU.Parameters)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"imu(String)","u":"imu(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(String, IMU.Parameters)","u":"%3Cinit%3E(java.lang.String,com.qualcomm.robotcore.hardware.IMU.Parameters)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)","u":"%3Cinit%3E(java.lang.String,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"IMUBuilder(BNO055IMUImpl)","u":"%3Cinit%3E(com.qualcomm.hardware.bosch.BNO055IMUImpl)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"IMUBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"incrementPosition(double)"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"index()"},{"p":"com.technototes.library.logger","c":"Log","l":"index()"},{"p":"com.technototes.library.logger","c":"Log.Number","l":"index()"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"INIT"},{"p":"com.technototes.library.logger","c":"Logger","l":"initEntries"},{"p":"com.technototes.library.command","c":"Command","l":"initialize()"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"initialize()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"initialize(IMU.Parameters)","u":"initialize(com.qualcomm.robotcore.hardware.IMU.Parameters)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"INITIALIZING"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"initLoop()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"initMap(HardwareMap)","u":"initMap(com.qualcomm.robotcore.hardware.HardwareMap)"},{"p":"com.technototes.library.logger","c":"Logger","l":"initUpdate()"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"input()"},{"p":"com.technototes.library.util","c":"Range","l":"inRange(double)"},{"p":"com.technototes.library.util","c":"Integral","l":"Integral()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.util","c":"Integral","l":"Integral(double)","u":"%3Cinit%3E(double)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"INTERRUPTED"},{"p":"com.technototes.library.general","c":"Invertable","l":"invert()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"invert()"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"invert()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"invert()"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"isAtPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"isAtTarget()"},{"p":"com.technototes.library.command","c":"Command","l":"isCancelled()"},{"p":"com.technototes.library.general","c":"Enablable","l":"isDisabled()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isEnabled()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"isEnabled()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"isEnabled()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"isEnabled()"},{"p":"com.technototes.library.general","c":"Enablable","l":"isEnabled()"},{"p":"com.technototes.library.command","c":"Command","l":"isFinished()"},{"p":"com.technototes.library.command","c":"CommandBase","l":"isFinished()"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ConditionalCommand","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ParallelCommandGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ParallelDeadlineGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"ParallelRaceGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"isFinished()"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"isFinished()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isInverseToggled()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustInverseToggled()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustPressed()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustReleased()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isJustToggled()"},{"p":"com.technototes.library","c":"RobotLibrary","l":"isPreRelease()"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isPressed()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"isPrime(int)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isReleased()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"isRumbling()"},{"p":"com.technototes.library.command","c":"Command","l":"isRunning()"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"isState(CommandOpMode.OpModeState...)","u":"isState(com.technototes.library.structure.CommandOpMode.OpModeState...)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"isToggled()"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, BooleanSupplier)","u":"%3Cinit%3E(java.util.function.Function,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, int)","u":"%3Cinit%3E(java.util.function.Function,int)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, int, BooleanSupplier)","u":"%3Cinit%3E(java.util.function.Function,int,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, T, T, Function)","u":"%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function)"},{"p":"com.technototes.library.command","c":"IterativeCommand","l":"IterativeCommand(Function, T, T, Function, BooleanSupplier)","u":"%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"joystickDrive(double, double, double)","u":"joystickDrive(double,double,double)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"joystickDriveWithGyro(double, double, double, double)","u":"joystickDriveWithGyro(double,double,double,double)"},{"p":"com.technototes.library.command","c":"Command","l":"justFinished()"},{"p":"com.technototes.library.command","c":"Command","l":"justFinishedNoCancel()"},{"p":"com.technototes.library.command","c":"Command","l":"justStarted()"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"lastCommand"},{"p":"com.technototes.library.hardware2","c":"ColorRangeBuilder","l":"led(boolean)"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"left"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"LEFT_BUMPER"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"LEFT_STICK_BUTTON"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"LEFT_STICK_X"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"LEFT_STICK_Y"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"LEFT_TRIGGER"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftBumper"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"leftSide"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStick"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStickButton"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStickX"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftStickY"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"leftTrigger"},{"p":"com.technototes.library.util","c":"Color","l":"LIGHT_GRAY"},{"p":"com.technototes.library.util","c":"Color","l":"LIME"},{"p":"com.technototes.library.logger","c":"Logger","l":"Logger(OpMode)","u":"%3Cinit%3E(com.qualcomm.robotcore.eventloop.opmode.OpMode)"},{"p":"com.technototes.library.util","c":"Color","l":"MAGENTA"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"map"},{"p":"com.technototes.library.util","c":"MathUtils","l":"map(double, double, double, double, double)","u":"map(double,double,double,double,double)"},{"p":"com.technototes.library.util","c":"MapUtils","l":"MapUtils()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.util","c":"MathUtils","l":"MathUtils()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.util","c":"Range","l":"max"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"maxAcceleration"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"maxSpeed"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"maxVelocity"},{"p":"com.technototes.library.util","c":"Range","l":"middle()"},{"p":"com.technototes.library.util","c":"Range","l":"min"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"mode(DcMotor.RunMode)","u":"mode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"mode(DigitalChannel.Mode)","u":"mode(com.qualcomm.robotcore.hardware.DigitalChannel.Mode)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"motor(int)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"motor(String)","u":"motor(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"Motor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"Motor(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"MotorBuilder(DcMotorEx)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"MotorBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"MotorBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(DcMotorEx)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(DcMotorEx, ElapsedTime)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx,com.qualcomm.robotcore.util.ElapsedTime)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(EncodedMotor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"MotorEncoder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"MotorGroup(Motor...)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"MotorSubsystem(T)","u":"%3Cinit%3E(T)"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"msStuckDetectStop"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"name"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"name()"},{"p":"com.technototes.library.logger","c":"Log","l":"name()"},{"p":"com.technototes.library.logger","c":"Log.Number","l":"name()"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"NEUTRAL"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NNN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NNN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NNP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NNP"},{"p":"com.technototes.library.util","c":"Color","l":"NO_COLOR"},{"p":"com.technototes.library.util","c":"Alliance","l":"NONE"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"NONE_ACTIVE"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NPN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NPN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"NPP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"NPP"},{"p":"com.technototes.library.logger.entry","c":"NumberEntry","l":"numberColor"},{"p":"com.technototes.library.logger.entry","c":"NumberEntry","l":"NumberEntry(String, Supplier, int)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int)"},{"p":"com.technototes.library.util","c":"MapUtils","l":"of(Pair...)","u":"of(android.util.Pair...)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"of(T, T)","u":"of(T,T)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"offset"},{"p":"com.technototes.library.command","c":"Command","l":"onlyIf(BooleanSupplier)","u":"onlyIf(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"onRange(double, double)","u":"onRange(double,double)"},{"p":"com.technototes.library.hardware.sensor","c":"ColorDistanceSensor","l":"onUnit(DistanceUnit)","u":"onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"IDistanceSensor","l":"onUnit(DistanceUnit)","u":"onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"onUnit(DistanceUnit)","u":"onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)"},{"p":"com.technototes.library.util","c":"Color","l":"ORANGE"},{"p":"com.technototes.library.hardware2","c":"DigitalBuilder","l":"output()"},{"p":"com.technototes.library.command","c":"ParallelCommandGroup","l":"ParallelCommandGroup(Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"ParallelDeadlineGroup","l":"ParallelDeadlineGroup(Command, Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command,com.technototes.library.command.Command...)"},{"p":"com.technototes.library.command","c":"ParallelRaceGroup","l":"ParallelRaceGroup(Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"parameter(Consumer)","u":"parameter(java.util.function.Consumer)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"periodic()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"periodic()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"periodic()"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"periodic()"},{"p":"com.technototes.library.general","c":"Periodic","l":"periodic()"},{"p":"com.technototes.library.subsystem","c":"DeviceSubsystem","l":"periodic()"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"periodic()"},{"p":"com.technototes.library.util","c":"Color","l":"PINK"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PNN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PNN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PNP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PNP"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"position(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"positionThreshold"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PPN"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PPN"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"PPP"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"PPP"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"priority"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"priority()"},{"p":"com.technototes.library.logger","c":"Log.Number","l":"priority()"},{"p":"com.technototes.library.logger","c":"Log","l":"priority()"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"product"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"propagate(double)"},{"p":"com.technototes.library.hardware","c":"HardwareDeviceGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"propogate(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler.Constraints","l":"proportion"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_circle"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_CIRCLE"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_cross"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_CROSS"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_options"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_OPTIONS"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_share"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_SHARE"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_square"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_SQUARE"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"ps_triangle"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"PS_TRIANGLE"},{"p":"com.technototes.library.util","c":"Color","l":"PURPLE"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"pwmRange(double, double)","u":"pwmRange(double,double)"},{"p":"com.technototes.library.util","c":"MathUtils","l":"pythag(double...)"},{"p":"com.technototes.library.command","c":"Command","l":"raceWith(Command...)","u":"raceWith(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"radians()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"radians()"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"range(double, double)","u":"range(double,double)"},{"p":"com.technototes.library.util","c":"Range","l":"Range(double, double)","u":"%3Cinit%3E(double,double)"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"raw()"},{"p":"com.technototes.library.util","c":"Alliance","l":"RED"},{"p":"com.technototes.library.util","c":"Color","l":"RED"},{"p":"com.technototes.library.util","c":"Characters","l":"RED_SQUARE"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"red()"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"register()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"register(Periodic)","u":"register(com.technototes.library.general.Periodic)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder","l":"remap(AxesOrder, IMUBuilder.AxesSigns)","u":"remap(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware2.IMUBuilder.AxesSigns)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"remapAxesAndSigns(AxesOrder, IMU.AxesSigns)","u":"remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"remapLegacyAxes(AxesOrder, IMU.AxesSigns)","u":"remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)"},{"p":"com.technototes.library.logger","c":"Logger","l":"repeat(String, int)","u":"repeat(java.lang.String,int)"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"requestOpModeStop()"},{"p":"com.technototes.library.command","c":"Command","l":"requirementMap"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"RESET"},{"p":"com.technototes.library.util","c":"SmartConsumer","l":"reset()"},{"p":"com.technototes.library.hardware","c":"DummyDevice","l":"resetDeviceConfigurationForOpMode()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"resetScheduler()"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"Rev2MDistanceSensor(DistanceSensor)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)"},{"p":"com.technototes.library.hardware.sensor","c":"Rev2MDistanceSensor","l":"Rev2MDistanceSensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"REVERSE"},{"p":"com.technototes.library.hardware2","c":"CRServoBuilder","l":"reverse()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"reverse()"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"reverse()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"rgb()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"right"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"RIGHT_BUMPER"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"RIGHT_STICK_BUTTON"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"RIGHT_STICK_X"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"RIGHT_STICK_Y"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"RIGHT_TRIGGER"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightBumper"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"rightSide"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStick"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStickButton"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStickX"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightStickY"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rightTrigger"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"rlMotor"},{"p":"com.technototes.library","c":"RobotLibrary","l":"RobotLibrary()","u":"%3Cinit%3E()"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"rrMotor"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumble()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumble(double)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumbleBlip()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"rumbleBlips(int)"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"RUN"},{"p":"com.technototes.library.command","c":"Command","l":"run()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"run()"},{"p":"com.technototes.library.logger","c":"Logger","l":"runEntries"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"runLoop()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"runOpMode()"},{"p":"com.technototes.library.logger","c":"Logger","l":"runUpdate()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"saturation()"},{"p":"com.technototes.library.util","c":"Range","l":"scale(double)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"scalePWM(double, double)","u":"scalePWM(double,double)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"schedule(BooleanSupplier, Command)","u":"schedule(java.util.function.BooleanSupplier,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ParallelCommandGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ParallelDeadlineGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"ParallelRaceGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"schedule(Command)","u":"schedule(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"schedule(Command, BooleanSupplier)","u":"schedule(com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"schedule(Consumer)","u":"schedule(java.util.function.Consumer)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"schedule(Function)","u":"schedule(java.util.function.Function)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"schedule(Function)","u":"schedule(java.util.function.Function)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleAfterOther(Command, Command)","u":"scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleAfterOther(Command, Command, BooleanSupplier)","u":"scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleDefault(Command, Subsystem)","u":"scheduleDefault(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleDpad(BiConsumer)","u":"scheduleDpad(java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleDpad(BiFunction)","u":"scheduleDpad(java.util.function.BiFunction)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...)","u":"scheduleForState(com.technototes.library.command.Command,java.util.function.BooleanSupplier,com.technototes.library.structure.CommandOpMode.OpModeState...)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleForState(Command, CommandOpMode.OpModeState...)","u":"scheduleForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState...)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleInit(Command)","u":"scheduleInit(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleInit(Command, BooleanSupplier)","u":"scheduleInit(com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleJoystick(Command)","u":"scheduleJoystick(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleJoystick(Command, BooleanSupplier)","u":"scheduleJoystick(com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleLeftStick(BiConsumer)","u":"scheduleLeftStick(java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleLeftStick(BiFunction)","u":"scheduleLeftStick(java.util.function.BiFunction)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleOnce(Command)","u":"scheduleOnce(com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleOnceForState(Command, CommandOpMode.OpModeState)","u":"scheduleOnceForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"schedulePressed(Function)","u":"schedulePressed(java.util.function.Function)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleRightStick(BiConsumer)","u":"scheduleRightStick(java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleRightStick(BiFunction)","u":"scheduleRightStick(java.util.function.BiFunction)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleStick(Stick, BiConsumer)","u":"scheduleStick(com.technototes.library.control.Stick,java.util.function.BiConsumer)"},{"p":"com.technototes.library.control","c":"CommandGamepad","l":"scheduleStick(Stick, BiFunction)","u":"scheduleStick(com.technototes.library.control.Stick,java.util.function.BiFunction)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleWithOther(Command, Command)","u":"scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"scheduleWithOther(Command, Command, BooleanSupplier)","u":"scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"select(Alliance)","u":"select(com.technototes.library.util.Alliance)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"selectOf(Alliance, T, T)","u":"selectOf(com.technototes.library.util.Alliance,T,T)"},{"p":"com.technototes.library.util","c":"Alliance","l":"selectOf(T, T)","u":"selectOf(T,T)"},{"p":"com.technototes.library.util","c":"Alliance.Selector","l":"Selector(T, T)","u":"%3Cinit%3E(T,T)"},{"p":"com.technototes.library.hardware.sensor","c":"Sensor","l":"Sensor(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"Sensor","l":"Sensor(T)","u":"%3Cinit%3E(T)"},{"p":"com.technototes.library.command","c":"SequentialCommandGroup","l":"SequentialCommandGroup(Command...)","u":"%3Cinit%3E(com.technototes.library.command.Command...)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"servo(int)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"Servo(Servo)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)"},{"p":"com.technototes.library.hardware2","c":"HardwareBuilder","l":"servo(String)","u":"servo(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"Servo(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"ServoBuilder(int)","u":"%3Cinit%3E(int)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"ServoBuilder(Servo)","u":"%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)"},{"p":"com.technototes.library.hardware2","c":"ServoBuilder","l":"ServoBuilder(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"ServoGroup(Servo...)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"ServoProfiler(Servo)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo)"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"ServoSubsystem(Servo)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo)"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"ServoSubsystem(Servo...)","u":"%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)"},{"p":"com.technototes.library.util","c":"Integral","l":"set(double)"},{"p":"com.technototes.library.util","c":"Differential","l":"setAverageOutput(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setConstraints(double, double, double)","u":"setConstraints(double,double,double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setConstraints(ServoProfiler.Constraints)","u":"setConstraints(com.technototes.library.hardware.servo.ServoProfiler.Constraints)"},{"p":"com.technototes.library.subsystem","c":"Subsystem","l":"setDefaultCommand(Command)","u":"setDefaultCommand(com.technototes.library.command.Command)"},{"p":"com.technototes.library.util","c":"Differential","l":"setDeviationOutput(double)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"setDirection(MotorEncoder.Direction)","u":"setDirection(com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"setEnabled(boolean)"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"setEnabled(boolean)"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"setEnabled(boolean)"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"setEnabled(boolean)"},{"p":"com.technototes.library.general","c":"Enablable","l":"setEnabled(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setEncoder(Encoder)","u":"setEncoder(com.technototes.library.hardware.sensor.encoder.Encoder)"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"setHeading(double)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU","l":"setHeading(double)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"setIndex(int)"},{"p":"com.technototes.library.control","c":"ButtonBase","l":"setInverted(boolean)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"setInverted(boolean)"},{"p":"com.technototes.library.control","c":"CommandButton","l":"setInverted(boolean)"},{"p":"com.technototes.library.general","c":"Invertable","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"setInverted(boolean)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setLimits(double, double)","u":"setLimits(double,double)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"setLimits(double, double)","u":"setLimits(double,double)"},{"p":"com.technototes.library.util","c":"Differential","l":"setLimits(double, double)","u":"setLimits(double,double)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"setMaxSpeed(double)"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"setOpMode(CommandOpMode)","u":"setOpMode(com.technototes.library.structure.CommandOpMode)"},{"p":"com.technototes.library.util","c":"Differential","l":"setOutputs(double, double)","u":"setOutputs(double,double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPIDFCoeffecients(double, double, double, double)","u":"setPIDFCoeffecients(double,double,double,double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPIDFCoeffecients(PIDFCoefficients)","u":"setPIDFCoeffecients(com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"setPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"setPosition(double)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"setPosition(double)"},{"p":"com.technototes.library.subsystem.servo","c":"ServoSubsystem","l":"setPosition(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"com.technototes.library.subsystem.motor","c":"EncodedMotorSubsystem","l":"setPosition(double, double)","u":"setPosition(double,double)"},{"p":"com.technototes.library.util","c":"Differential","l":"setPriority(Differential.DifferentialPriority)","u":"setPriority(com.technototes.library.util.Differential.DifferentialPriority)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"setPriority(int)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setRunMode(DcMotor.RunMode)","u":"setRunMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setServoRange(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setSpeed(double)"},{"p":"com.technototes.library.hardware.motor","c":"Motor","l":"setSpeed(double)"},{"p":"com.technototes.library.hardware.motor","c":"MotorGroup","l":"setSpeed(double)"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"setSpeed(double)"},{"p":"com.technototes.library.command","c":"Command","l":"setState(Command.CommandState)","u":"setState(com.technototes.library.command.Command.CommandState)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setTargetPosition(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"setTargetTolerance(double)"},{"p":"com.technototes.library.control","c":"AxisBase","l":"setTriggerThreshold(double)"},{"p":"com.technototes.library.control","c":"CommandAxis","l":"setTriggerThreshold(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"setVelocity(double)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotorGroup","l":"setVelocity(double)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"setVolume(float)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor, Motor, Motor, Motor)","u":"%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"SimpleMecanumDrivebaseSubsystem(Motor, Motor, Motor, Motor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)"},{"p":"com.technototes.library.command","c":"Command","l":"sleep(double)"},{"p":"com.technototes.library.command","c":"Command","l":"sleep(DoubleSupplier)","u":"sleep(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"SOME_ACTIVE"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"Speaker(float, String...)","u":"%3Cinit%3E(float,java.lang.String...)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"Speaker(String...)","u":"%3Cinit%3E(java.lang.String...)"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"start(String)","u":"start(java.lang.String)"},{"p":"com.technototes.library.hardware.servo","c":"Servo","l":"startAt(double)"},{"p":"com.technototes.library.hardware.servo","c":"ServoGroup","l":"startAt(double)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"STARTED"},{"p":"com.technototes.library.command","c":"Command","l":"stateMap"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"stickButton"},{"p":"com.technototes.library.hardware","c":"Speaker","l":"stop()"},{"p":"com.technototes.library.subsystem.drivebase","c":"SimpleMecanumDrivebaseSubsystem","l":"stop()"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"stop()"},{"p":"com.technototes.library.subsystem.motor","c":"MotorSubsystem","l":"stop()"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"stopRumble()"},{"p":"com.technototes.library.logger.entry","c":"StringEntry","l":"StringEntry(String, Supplier, int, String)","u":"%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"supplier"},{"p":"com.technototes.library.subsystem.drivebase","c":"TankDrivebaseSubsystem","l":"TankDrivebaseSubsystem(Motor, Motor)","u":"%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)"},{"p":"com.technototes.library.hardware.motor","c":"EncodedMotor","l":"tare()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"tare()"},{"p":"com.qualcomm.robotcore.eventloop.opmode","c":"CommandOpMode","l":"telemetry"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"terminate()"},{"p":"com.technototes.library.command","c":"CommandScheduler","l":"terminateOpMode()"},{"p":"com.technototes.library.command","c":"Command","l":"timeMap"},{"p":"com.technototes.library.control","c":"CommandInput","l":"toggle(Command, Command)","u":"toggle(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.general","c":"Enablable","l":"toggleEnabled()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"tolerance(int)"},{"p":"com.technototes.library.logger.entry","c":"BooleanEntry","l":"toString()"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"toString()"},{"p":"com.technototes.library.logger.entry","c":"NumberEntry","l":"toString()"},{"p":"com.technototes.library.logger.entry","c":"StringEntry","l":"toString()"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"translateTargetPosition(double)"},{"p":"com.technototes.library.logger","c":"Log.Boolean","l":"trueValue()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"universalLoop()"},{"p":"com.technototes.library.control","c":"GamepadDpad","l":"up"},{"p":"com.technototes.library.hardware.servo","c":"ServoProfiler","l":"update()"},{"p":"com.technototes.library.util","c":"Integral","l":"update(double)"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"uponInit()"},{"p":"com.technototes.library.structure","c":"CommandOpMode","l":"uponStart()"},{"p":"com.technototes.library.hardware.sensor","c":"IColorSensor","l":"value()"},{"p":"com.technototes.library.logger","c":"Log.Logs","l":"value()"},{"p":"com.technototes.library.logger","c":"LogConfig.AllowList","l":"value()"},{"p":"com.technototes.library.logger","c":"LogConfig.DenyList","l":"value()"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.util","c":"Alliance","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.util","c":"Color","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.technototes.library.command","c":"Command.CommandState","l":"values()"},{"p":"com.technototes.library.control","c":"Binding.Type","l":"values()"},{"p":"com.technototes.library.control","c":"GamepadBase.Axis","l":"values()"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"values()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder.Direction","l":"values()"},{"p":"com.technototes.library.hardware.sensor","c":"IMU.AxesSigns","l":"values()"},{"p":"com.technototes.library.hardware2","c":"IMUBuilder.AxesSigns","l":"values()"},{"p":"com.technototes.library.structure","c":"CommandOpMode.OpModeState","l":"values()"},{"p":"com.technototes.library.util","c":"Alliance","l":"values()"},{"p":"com.technototes.library.util","c":"Color","l":"values()"},{"p":"com.technototes.library.util","c":"Differential.DifferentialPriority","l":"values()"},{"p":"com.technototes.library.hardware2","c":"MotorBuilder","l":"velocity(PIDFCoefficients)","u":"velocity(com.qualcomm.robotcore.hardware.PIDFCoefficients)"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"WaitCommand(double)","u":"%3Cinit%3E(double)"},{"p":"com.technototes.library.command","c":"WaitCommand","l":"WaitCommand(DoubleSupplier)","u":"%3Cinit%3E(java.util.function.DoubleSupplier)"},{"p":"com.technototes.library.command","c":"Command","l":"waitUntil(BooleanSupplier)","u":"waitUntil(java.util.function.BooleanSupplier)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenInverseToggled(Command)","u":"whenInverseToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenPressed(Command)","u":"whenPressed(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenPressedReleased(Command, Command)","u":"whenPressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenReleased(Command)","u":"whenReleased(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whenToggled(Command)","u":"whenToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileInverseToggled(Command)","u":"whileInverseToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressed(Command)","u":"whilePressed(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressedContinuous(Command)","u":"whilePressedContinuous(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressedOnce(Command)","u":"whilePressedOnce(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whilePressedReleased(Command, Command)","u":"whilePressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileReleased(Command)","u":"whileReleased(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileReleasedOnce(Command)","u":"whileReleasedOnce(com.technototes.library.command.Command)"},{"p":"com.technototes.library.control","c":"CommandInput","l":"whileToggled(Command)","u":"whileToggled(com.technototes.library.command.Command)"},{"p":"com.technototes.library.util","c":"Color","l":"WHITE"},{"p":"com.technototes.library.command","c":"Command","l":"withTimeout(double)"},{"p":"com.technototes.library.logger.entry","c":"Entry","l":"x"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"xAxis"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_a"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_A"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_b"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_B"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_back"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_BACK"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_start"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_START"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_x"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_X"},{"p":"com.technototes.library.control","c":"GamepadBase","l":"xbox_y"},{"p":"com.technototes.library.control","c":"GamepadBase.Button","l":"XBOX_Y"},{"p":"com.technototes.library.control","c":"GamepadStick","l":"yAxis"},{"p":"com.technototes.library.util","c":"Color","l":"YELLOW"},{"p":"com.technototes.library.hardware.sensor","c":"IGyro","l":"zero()"},{"p":"com.technototes.library.util","c":"Integral","l":"zero()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"Encoder","l":"zeroEncoder()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"ExternalEncoder","l":"zeroEncoder()"},{"p":"com.technototes.library.hardware.sensor.encoder","c":"MotorEncoder","l":"zeroEncoder()"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [ + { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'accept(T)' }, + { + p: 'com.technototes.library.command', + c: 'CommandGroup', + l: 'addCommands(Command...)', + u: 'addCommands(com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'additionalInitConditions()' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'addRequirements(Subsystem...)', + u: 'addRequirements(com.technototes.library.subsystem.Subsystem...)', + }, + { + p: 'com.technototes.library.hardware', + c: 'Speaker', + l: 'addSongs(String...)', + u: 'addSongs(java.lang.String...)', + }, + { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'ALL_ACTIVE' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'alongWith(Command...)', + u: 'alongWith(com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'alpha()' }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'analog(int)' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'analog(String)', + u: 'analog(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'AnalogBuilder', + l: 'AnalogBuilder(AnalogSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogSensor)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'AnalogBuilder', + l: 'AnalogBuilder(int)', + u: '%3Cinit%3E(int)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'AnalogBuilder', + l: 'AnalogBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'AnalogSensor', + l: 'AnalogSensor(AnalogInput)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'AnalogSensor', + l: 'AnalogSensor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'andThen(Command...)', + u: 'andThen(com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'anyCancelled' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'apply(UnaryOperator)', + u: 'apply(java.util.function.UnaryOperator)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'TankDrivebaseSubsystem', + l: 'arcadeDrive(double, double)', + u: 'arcadeDrive(double,double)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'ColorDistanceSensor', l: 'argb()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'ColorSensor', l: 'argb()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'argb()' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'asConditional(BooleanSupplier)', + u: 'asConditional(java.util.function.BooleanSupplier)', + }, + { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'at(double)' }, + { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'AVERAGE' }, + { + p: 'com.technototes.library.control', + c: 'AxisBase', + l: 'AxisBase(DoubleSupplier)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'AxisBase', + l: 'AxisBase(DoubleSupplier, double)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier,double)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'axisInstance(DoubleSupplier)', + u: 'axisInstance(java.util.function.DoubleSupplier)', + }, + { p: 'com.technototes.library.util', c: 'Color', l: 'BLACK' }, + { p: 'com.technototes.library.util', c: 'Alliance', l: 'BLUE' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'BLUE' }, + { p: 'com.technototes.library.util', c: 'Characters', l: 'BLUE_CIRCLE' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'blue()' }, + { + p: 'com.technototes.library.logger.entry', + c: 'BooleanEntry', + l: 'BooleanEntry(String, Supplier, int, String, String)', + u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String,java.lang.String)', + }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'booleanSupplier' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'brake()' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'brake()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'brake()' }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'build()' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder', l: 'build()' }, + { + p: 'com.technototes.library.control', + c: 'ButtonBase', + l: 'ButtonBase(BooleanSupplier)', + u: '%3Cinit%3E(java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'buttonInstance(BooleanSupplier)', + u: 'buttonInstance(java.util.function.BooleanSupplier)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'bVal' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'bVal' }, + { + p: 'com.technototes.library.util', + c: 'Differential.DifferentialPriority', + l: 'calculateA(double, double, double, double)', + u: 'calculateA(double,double,double,double)', + }, + { + p: 'com.technototes.library.util', + c: 'Differential.DifferentialPriority', + l: 'calculateS(double, double, double, double)', + u: 'calculateS(double,double,double,double)', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'cancel()' }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'CANCELLED' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'cancelUpon(BooleanSupplier)', + u: 'cancelUpon(java.util.function.BooleanSupplier)', + }, + { p: 'com.technototes.library.logger', c: 'Logger', l: 'captionDivider' }, + { p: 'com.technototes.library.util', c: 'Characters', l: 'Characters()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.library.command', + c: 'ChoiceCommand', + l: 'ChoiceCommand(BooleanSupplier, Command)', + u: '%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'ChoiceCommand', + l: 'ChoiceCommand(Pair...)', + u: '%3Cinit%3E(android.util.Pair...)', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'clear()' }, + { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'close()' }, + { + p: 'com.technototes.library.util', + c: 'MathUtils', + l: 'closestTo(double, double...)', + u: 'closestTo(double,double...)', + }, + { + p: 'com.technototes.library.util', + c: 'MathUtils', + l: 'closestTo(double, int...)', + u: 'closestTo(double,int...)', + }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'coast()' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'coast()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'coast()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'codriverGamepad' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'color(String)', + u: 'color(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ColorBuilder', + l: 'ColorBuilder(ColorSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ColorBuilder', + l: 'ColorBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'ColorDistanceSensor', + l: 'ColorDistanceSensor(ColorRangeSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'ColorDistanceSensor', + l: 'ColorDistanceSensor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'colorRange(String)', + u: 'colorRange(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ColorRangeBuilder', + l: 'ColorRangeBuilder(ColorRangeSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorRangeSensor)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ColorRangeBuilder', + l: 'ColorRangeBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'ColorSensor', + l: 'ColorSensor(ColorSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.ColorSensor)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'ColorSensor', + l: 'ColorSensor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandAxis', + l: 'CommandAxis(DoubleSupplier)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandAxis', + l: 'CommandAxis(DoubleSupplier, double)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier,double)', + }, + { p: 'com.technototes.library.command', c: 'CommandBase', l: 'CommandBase()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.library.control', + c: 'CommandBinding', + l: 'CommandBinding(Binding.Type, CommandInput...)', + u: '%3Cinit%3E(com.technototes.library.control.Binding.Type,com.technototes.library.control.CommandInput...)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandBinding', + l: 'CommandBinding(CommandInput...)', + u: '%3Cinit%3E(com.technototes.library.control.CommandInput...)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandButton', + l: 'CommandButton(BooleanSupplier)', + u: '%3Cinit%3E(java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'CommandGamepad(Gamepad)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandGroup', + l: 'CommandGroup(boolean, Command...)', + u: '%3Cinit%3E(boolean,com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'commandMap' }, + { + p: 'com.technototes.library.structure', + c: 'CommandOpMode', + l: 'CommandOpMode()', + u: '%3Cinit%3E()', + }, + { + p: 'com.technototes.library.command', + c: 'ConditionalCommand', + l: 'ConditionalCommand(BooleanSupplier)', + u: '%3Cinit%3E(java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.command', + c: 'ConditionalCommand', + l: 'ConditionalCommand(BooleanSupplier, Command)', + u: '%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'ConditionalCommand', + l: 'ConditionalCommand(BooleanSupplier, Command, Command)', + u: '%3Cinit%3E(java.util.function.BooleanSupplier,com.technototes.library.command.Command,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.util', + c: 'MathUtils', + l: 'constrain(double, double, double)', + u: 'constrain(double,double,double)', + }, + { + p: 'com.technototes.library.util', + c: 'MathUtils', + l: 'constrain(int, int, int)', + u: 'constrain(int,int,int)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler.Constraints', + l: 'Constraints(double, double, double)', + u: '%3Cinit%3E(double,double,double)', + }, + { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'consume(T)' }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'countCancel' }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'countCancel()' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'create(Command, Subsystem...)', + u: 'create(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem...)', + }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'create(int)' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'create(String)', + u: 'create(java.lang.String)', + }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'crServo(int)' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'crServo(String)', + u: 'crServo(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'CRServoBuilder', + l: 'CRServoBuilder(CRServo)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.CRServo)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'CRServoBuilder', + l: 'CRServoBuilder(int)', + u: '%3Cinit%3E(int)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'CRServoBuilder', + l: 'CRServoBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.library.util', c: 'Color', l: 'CYAN' }, + { p: 'com.technototes.library.util', c: 'Characters', l: 'CYCLE' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'DARK_GRAY' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'deadline(Command...)', + u: 'deadline(com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.control', c: 'AxisBase', l: 'DEFAULT_TRIGGER_THRESHOLD' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'degrees()' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder', l: 'degrees()' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDevice', l: 'device' }, + { p: 'com.technototes.library.subsystem', c: 'DeviceSubsystem', l: 'device' }, + { + p: 'com.technototes.library.subsystem', + c: 'DeviceSubsystem', + l: 'DeviceSubsystem(T)', + u: '%3Cinit%3E(T)', + }, + { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'DIFFERENCE' }, + { + p: 'com.technototes.library.util', + c: 'Differential', + l: 'Differential(DoubleConsumer, DoubleConsumer)', + u: '%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer)', + }, + { + p: 'com.technototes.library.util', + c: 'Differential', + l: 'Differential(DoubleConsumer, DoubleConsumer, Differential.DifferentialPriority)', + u: '%3Cinit%3E(java.util.function.DoubleConsumer,java.util.function.DoubleConsumer,com.technototes.library.util.Differential.DifferentialPriority)', + }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'digital(int)' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'digital(String)', + u: 'digital(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'DigitalBuilder', + l: 'DigitalBuilder(DigitalChannel)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'DigitalBuilder', + l: 'DigitalBuilder(int)', + u: '%3Cinit%3E(int)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'DigitalBuilder', + l: 'DigitalBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'DigitalSensor', + l: 'DigitalSensor(DigitalChannel)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DigitalChannel)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'DigitalSensor', + l: 'DigitalSensor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'CRServoBuilder', + l: 'direction(DcMotorSimple.Direction)', + u: 'direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'direction(DcMotorSimple.Direction)', + u: 'direction(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ServoBuilder', + l: 'direction(Servo.Direction)', + u: 'direction(com.qualcomm.robotcore.hardware.Servo.Direction)', + }, + { p: 'com.technototes.library.control', c: 'CommandGamepad', l: 'disable()' }, + { p: 'com.technototes.library.general', c: 'Enablable', l: 'disable()' }, + { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'disable()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'disable()' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'distance(String)', + u: 'distance(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'DistanceBuilder', + l: 'DistanceBuilder(DistanceSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'DistanceBuilder', + l: 'DistanceBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.library.control', c: 'AxisBase', l: 'doubleSupplier' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'down' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpad' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadDown' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadLeft' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadRight' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'dpadUp' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'TankDrivebaseSubsystem', + l: 'drive(double, double)', + u: 'drive(double,double)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'drive(double, double, double)', + u: 'drive(double,double,double)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'drive(double, double, double, double)', + u: 'drive(double,double,double,double)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'DrivebaseSubsystem', + l: 'DrivebaseSubsystem(DoubleSupplier, Motor...)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor...)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'DrivebaseSubsystem', + l: 'DrivebaseSubsystem(Motor...)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)', + }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'driverGamepad' }, + { p: 'com.technototes.library.util', c: 'Characters', l: 'DUCK' }, + { + p: 'com.technototes.library.hardware', + c: 'DummyDevice', + l: 'DummyDevice(T)', + u: '%3Cinit%3E(T)', + }, + { p: 'com.technototes.library.logger', c: 'LogConfig.Run', l: 'duringInit()' }, + { p: 'com.technototes.library.logger', c: 'LogConfig.Run', l: 'duringRun()' }, + { p: 'com.technototes.library.control', c: 'CommandGamepad', l: 'enable()' }, + { p: 'com.technototes.library.general', c: 'Enablable', l: 'enable()' }, + { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'enable()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'enable()' }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'EncodedMotor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'EncodedMotor(String, Encoder)', + u: '%3Cinit%3E(java.lang.String,com.technototes.library.hardware.sensor.encoder.Encoder)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'EncodedMotor(T)', + u: '%3Cinit%3E(T)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'EncodedMotor(T, Encoder)', + u: '%3Cinit%3E(T,com.technototes.library.hardware.sensor.encoder.Encoder)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotorGroup', + l: 'EncodedMotorGroup(EncodedMotor, Motor...)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.Motor...)', + }, + { + p: 'com.technototes.library.subsystem.motor', + c: 'EncodedMotorSubsystem', + l: 'EncodedMotorSubsystem(EncodedMotor)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)', + }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'END' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'end()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'end(boolean)' }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'end(boolean)' }, + { + p: 'com.technototes.library.logger.entry', + c: 'Entry', + l: 'Entry(String, Supplier, int)', + u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int)', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'execute()' }, + { p: 'com.technototes.library.command', c: 'CommandBase', l: 'execute()' }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'execute()' }, + { p: 'com.technototes.library.command', c: 'ConditionalCommand', l: 'execute()' }, + { p: 'com.technototes.library.command', c: 'WaitCommand', l: 'execute()' }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'EXECUTING' }, + { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'expandedPWM()' }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'expandedRange()' }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'ExternalEncoder', + l: 'ExternalEncoder(AnalogInput)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.AnalogInput)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'ExternalEncoder', + l: 'ExternalEncoder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'falseValue()' }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'FINISHED' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'flMotor', + }, + { p: 'com.technototes.library.logger', c: 'Log', l: 'format()' }, + { + p: 'com.technototes.library.util', + c: 'Color', + l: 'format(Object)', + u: 'format(java.lang.Object)', + }, + { + p: 'com.technototes.library.util', + c: 'Color', + l: 'format(String, Object...)', + u: 'format(java.lang.String,java.lang.Object...)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder.Direction', + l: 'FORWARD', + }, + { p: 'com.technototes.library.hardware2', c: 'CRServoBuilder', l: 'forward()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'forward()' }, + { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'forward()' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'frMotor', + }, + { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'gain(float)' }, + { p: 'com.technototes.library.util', c: 'Characters', l: 'GAMEPAD' }, + { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'gamepad1' }, + { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'gamepad2' }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'GamepadBase(Gamepad, Class, Class)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Gamepad,java.lang.Class,java.lang.Class)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadDpad', + l: 'GamepadDpad(T, T, T, T)', + u: '%3Cinit%3E(T,T,T,T)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadStick', + l: 'GamepadStick(T, T, U)', + u: '%3Cinit%3E(T,T,U)', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'get()' }, + { p: 'com.technototes.library.control', c: 'Binding', l: 'get()' }, + { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'get()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'get()' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'get()' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'get()' }, + { + p: 'com.technototes.library.control', + c: 'Binding', + l: 'get(Binding.Type)', + u: 'get(com.technototes.library.control.Binding.Type)', + }, + { + p: 'com.technototes.library.util', + c: 'Alliance', + l: 'get(Class)', + u: 'get(java.lang.Class)', + }, + { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getAllDeviceList()' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getAllDevices()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'getAllDevices()' }, + { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'getAllDevices()' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'getAllDevices()' }, + { p: 'com.technototes.library.control', c: 'Stick', l: 'getAngle()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'getAngularOrientation()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'getAngularOrientation(AngleUnit)', + u: 'getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'getAngularVelocity()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'getAngularVelocity(AngleUnit)', + u: 'getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)', + }, + { p: 'com.technototes.library.control', c: 'Binding', l: 'getAsBoolean()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'getAsBoolean()' }, + { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'getAsButton()' }, + { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'getAsButton(double)' }, + { p: 'com.technototes.library.control', c: 'AxisBase', l: 'getAsDouble()' }, + { p: 'com.technototes.library.hardware', c: 'Sensored', l: 'getAsDouble()' }, + { p: 'com.technototes.library.util', c: 'Differential', l: 'getAverage()' }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'getAxis(GamepadBase.Axis)', + u: 'getAxis(com.technototes.library.control.GamepadBase.Axis)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'getAxisAsBoolean(GamepadBase.Axis)', + u: 'getAxisAsBoolean(com.technototes.library.control.GamepadBase.Axis)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'getAxisAsDouble(GamepadBase.Axis)', + u: 'getAxisAsDouble(com.technototes.library.control.GamepadBase.Axis)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'getButton(GamepadBase.Button)', + u: 'getButton(com.technototes.library.control.GamepadBase.Button)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase', + l: 'getButtonAsBoolean(GamepadBase.Button)', + u: 'getButtonAsBoolean(com.technototes.library.control.GamepadBase.Button)', + }, + { p: 'com.technototes.library.util', c: 'Alliance', l: 'getColor()' }, + { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getConnectionInfo()' }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'getCorrectedVelocity()', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'getCurrent(Subsystem)', + u: 'getCurrent(com.technototes.library.subsystem.Subsystem)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'getCurrentPosition()', + }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getCurrentPosition()' }, + { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'getCurrentSong()' }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'getDefault(Subsystem)', + u: 'getDefault(com.technototes.library.subsystem.Subsystem)', + }, + { p: 'com.technototes.library.subsystem', c: 'Subsystem', l: 'getDefaultCommand()' }, + { p: 'com.technototes.library.control', c: 'Binding', l: 'getDefaultType()' }, + { p: 'com.technototes.library.control', c: 'CommandBinding', l: 'getDefaultType()' }, + { p: 'com.technototes.library.util', c: 'Differential', l: 'getDeviation()' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDevice', l: 'getDevice()' }, + { p: 'com.technototes.library.subsystem', c: 'DeviceSubsystem', l: 'getDevice()' }, + { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getDeviceName()' }, + { p: 'com.technototes.library.util', c: 'Differential', l: 'getDifferentialPriority()' }, + { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'getDirection()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IDistanceSensor', l: 'getDistance()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'ColorDistanceSensor', + l: 'getDistance(DistanceUnit)', + u: 'getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IDistanceSensor', + l: 'getDistance(DistanceUnit)', + u: 'getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'Rev2MDistanceSensor', + l: 'getDistance(DistanceUnit)', + u: 'getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', + }, + { p: 'com.technototes.library.control', c: 'Stick', l: 'getDistanceFromCenter()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getDpad()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getEncoder()' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getFollowerist()' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'getFollowers()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'getFollowers()' }, + { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'getFollowers()' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'getFollowers()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getGamepad()' }, + { p: 'com.technototes.library.subsystem.drivebase', c: 'DrivebaseSubsystem', l: 'getGyro()' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'getHexValue()' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getIndex()' }, + { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'getInstance()' }, + { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'getInstance()' }, + { p: 'com.technototes.library.control', c: 'CommandButton', l: 'getInstance()' }, + { p: 'com.technototes.library.control', c: 'CommandInput', l: 'getInstance()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'getInverted()' }, + { p: 'com.technototes.library.general', c: 'Invertable', l: 'getInverted()' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'getInverted()' }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'getInverted()' }, + { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'getLast()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getLeftStick()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'ColorDistanceSensor', l: 'getLight()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'getLogger()' }, + { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getManufacturer()' }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'getMap()' }, + { p: 'com.technototes.library.util', c: 'MathUtils', l: 'getMax(double...)' }, + { p: 'com.technototes.library.util', c: 'MathUtils', l: 'getMax(int...)' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getMaxAccel()' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler.Constraints', + l: 'getMaxAcceleration()', + }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getMaxVel()' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler.Constraints', + l: 'getMaxVelocity()', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder.Direction', + l: 'getMultiplier()', + }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getName()' }, + { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'getOpModeRuntime()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'getOpModeRuntime()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'getOpModeState()' }, + { p: 'com.technototes.library.hardware.sensor.encoder', c: 'Encoder', l: 'getPosition()' }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'getPosition()' }, + { p: 'com.technototes.library.subsystem.servo', c: 'ServoSubsystem', l: 'getPosition()' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'getPriority()' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler.Constraints', + l: 'getProportion()', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'getRawVelocity()', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'getRequirements()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'getRightStick()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'getRuntime()' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'DrivebaseSubsystem', + l: 'getScale(double...)', + }, + { p: 'com.technototes.library.command', c: 'WaitCommand', l: 'getSeconds()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getSensorValue()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'AnalogSensor', l: 'getSensorValue()' }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'ExternalEncoder', + l: 'getSensorValue()', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'getSensorValue()', + }, + { p: 'com.technototes.library.hardware', c: 'Sensored', l: 'getSensorValue()' }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'getSensorValue()' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getServo()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getSpeed()' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'getSpeed()' }, + { p: 'com.technototes.library.subsystem.drivebase', c: 'DrivebaseSubsystem', l: 'getSpeed()' }, + { p: 'com.technototes.library.subsystem.motor', c: 'MotorSubsystem', l: 'getSpeed()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'getState()' }, + { p: 'com.technototes.library.control', c: 'Binding', l: 'getSuppliers()' }, + { p: 'com.technototes.library.control', c: 'CommandBinding', l: 'getSuppliers()' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getTargetPosition()' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'getTargetTolerance()' }, + { p: 'com.technototes.library.control', c: 'AxisBase', l: 'getTriggerThreshold()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'ColorDistanceSensor', l: 'getUnit()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IDistanceSensor', l: 'getUnit()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'Rev2MDistanceSensor', l: 'getUnit()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'DigitalSensor', l: 'getValue()' }, + { p: 'com.technototes.library.util', c: 'Integral', l: 'getValue()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'getVelocity()' }, + { p: 'com.technototes.library.hardware', c: 'DummyDevice', l: 'getVersion()' }, + { p: 'com.technototes.library', c: 'RobotLibrary', l: 'getVersion()' }, + { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'getVolume()' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'getXAxis()' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'getXAxis()' }, + { p: 'com.technototes.library.control', c: 'Stick', l: 'getXAxis()' }, + { p: 'com.technototes.library.control', c: 'Stick', l: 'getXSupplier()' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'getYAxis()' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'getYAxis()' }, + { p: 'com.technototes.library.control', c: 'Stick', l: 'getYAxis()' }, + { p: 'com.technototes.library.control', c: 'Stick', l: 'getYSupplier()' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'GREEN' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'green()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'gyroHeading()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'gyroHeading()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'gyroHeading(AngleUnit)', + u: 'gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'gyroHeadingInDegrees()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'gyroHeadingInDegrees()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'gyroHeadingInRadians()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'gyroHeadingInRadians()' }, + { p: 'com.technototes.library.subsystem.drivebase', c: 'DrivebaseSubsystem', l: 'gyroSupplier' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'HardwareBuilder(int)', + u: '%3Cinit%3E(int)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'HardwareBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'HardwareBuilder(T)', + u: '%3Cinit%3E(T)', + }, + { + p: 'com.technototes.library.hardware', + c: 'HardwareDevice', + l: 'HardwareDevice(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware', + c: 'HardwareDevice', + l: 'HardwareDevice(T)', + u: '%3Cinit%3E(T)', + }, + { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'hardwareMap' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDevice', l: 'hardwareMap' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'hsv()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'hsvArray()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'hue()' }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'idle(DcMotor.ZeroPowerBehavior)', + u: 'idle(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', + }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'ignoreCancel()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'IMU(IMU, IMU.Parameters)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.robotcore.hardware.IMU.Parameters)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'IMU(IMU, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.IMU,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'imu(String)', + u: 'imu(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'IMU(String, IMU.Parameters)', + u: '%3Cinit%3E(java.lang.String,com.qualcomm.robotcore.hardware.IMU.Parameters)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'IMU(String, RevHubOrientationOnRobot.LogoFacingDirection, RevHubOrientationOnRobot.UsbFacingDirection)', + u: '%3Cinit%3E(java.lang.String,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection,com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'IMUBuilder', + l: 'IMUBuilder(BNO055IMUImpl)', + u: '%3Cinit%3E(com.qualcomm.hardware.bosch.BNO055IMUImpl)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'IMUBuilder', + l: 'IMUBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'incrementPosition(double)' }, + { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'index()' }, + { p: 'com.technototes.library.logger', c: 'Log', l: 'index()' }, + { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'index()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'INIT' }, + { p: 'com.technototes.library.logger', c: 'Logger', l: 'initEntries' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'initialize()' }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'initialize()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'initialize(IMU.Parameters)', + u: 'initialize(com.qualcomm.robotcore.hardware.IMU.Parameters)', + }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'INITIALIZING' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'initLoop()' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'initMap(HardwareMap)', + u: 'initMap(com.qualcomm.robotcore.hardware.HardwareMap)', + }, + { p: 'com.technototes.library.logger', c: 'Logger', l: 'initUpdate()' }, + { p: 'com.technototes.library.hardware2', c: 'DigitalBuilder', l: 'input()' }, + { p: 'com.technototes.library.util', c: 'Range', l: 'inRange(double)' }, + { p: 'com.technototes.library.util', c: 'Integral', l: 'Integral()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.library.util', + c: 'Integral', + l: 'Integral(double)', + u: '%3Cinit%3E(double)', + }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'INTERRUPTED' }, + { p: 'com.technototes.library.general', c: 'Invertable', l: 'invert()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'invert()' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'invert()' }, + { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'invert()' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'isAtPosition(double)' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'isAtTarget()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'isCancelled()' }, + { p: 'com.technototes.library.general', c: 'Enablable', l: 'isDisabled()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isEnabled()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'isEnabled()' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'isEnabled()' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'isEnabled()' }, + { p: 'com.technototes.library.general', c: 'Enablable', l: 'isEnabled()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'CommandBase', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'CommandGroup', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'ConditionalCommand', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'ParallelCommandGroup', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'ParallelDeadlineGroup', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'ParallelRaceGroup', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'SequentialCommandGroup', l: 'isFinished()' }, + { p: 'com.technototes.library.command', c: 'WaitCommand', l: 'isFinished()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isInverseToggled()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustInverseToggled()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustPressed()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustReleased()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isJustToggled()' }, + { p: 'com.technototes.library', c: 'RobotLibrary', l: 'isPreRelease()' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isPressed()' }, + { p: 'com.technototes.library.util', c: 'MathUtils', l: 'isPrime(int)' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isReleased()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'isRumbling()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'isRunning()' }, + { + p: 'com.technototes.library.structure', + c: 'CommandOpMode.OpModeState', + l: 'isState(CommandOpMode.OpModeState...)', + u: 'isState(com.technototes.library.structure.CommandOpMode.OpModeState...)', + }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'isToggled()' }, + { + p: 'com.technototes.library.command', + c: 'IterativeCommand', + l: 'IterativeCommand(Function, BooleanSupplier)', + u: '%3Cinit%3E(java.util.function.Function,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.command', + c: 'IterativeCommand', + l: 'IterativeCommand(Function, int)', + u: '%3Cinit%3E(java.util.function.Function,int)', + }, + { + p: 'com.technototes.library.command', + c: 'IterativeCommand', + l: 'IterativeCommand(Function, int, BooleanSupplier)', + u: '%3Cinit%3E(java.util.function.Function,int,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.command', + c: 'IterativeCommand', + l: 'IterativeCommand(Function, T, T, Function)', + u: '%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function)', + }, + { + p: 'com.technototes.library.command', + c: 'IterativeCommand', + l: 'IterativeCommand(Function, T, T, Function, BooleanSupplier)', + u: '%3Cinit%3E(java.util.function.Function,T,T,java.util.function.Function,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'joystickDrive(double, double, double)', + u: 'joystickDrive(double,double,double)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'joystickDriveWithGyro(double, double, double, double)', + u: 'joystickDriveWithGyro(double,double,double,double)', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'justFinished()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'justFinishedNoCancel()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'justStarted()' }, + { p: 'com.technototes.library.command', c: 'SequentialCommandGroup', l: 'lastCommand' }, + { p: 'com.technototes.library.hardware2', c: 'ColorRangeBuilder', l: 'led(boolean)' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'left' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'LEFT_BUMPER' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'LEFT_STICK_BUTTON' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'LEFT_STICK_X' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'LEFT_STICK_Y' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'LEFT_TRIGGER' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftBumper' }, + { p: 'com.technototes.library.subsystem.drivebase', c: 'TankDrivebaseSubsystem', l: 'leftSide' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStick' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStickButton' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStickX' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftStickY' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'leftTrigger' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'LIGHT_GRAY' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'LIME' }, + { + p: 'com.technototes.library.logger', + c: 'Logger', + l: 'Logger(OpMode)', + u: '%3Cinit%3E(com.qualcomm.robotcore.eventloop.opmode.OpMode)', + }, + { p: 'com.technototes.library.util', c: 'Color', l: 'MAGENTA' }, + { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'map' }, + { + p: 'com.technototes.library.util', + c: 'MathUtils', + l: 'map(double, double, double, double, double)', + u: 'map(double,double,double,double,double)', + }, + { p: 'com.technototes.library.util', c: 'MapUtils', l: 'MapUtils()', u: '%3Cinit%3E()' }, + { p: 'com.technototes.library.util', c: 'MathUtils', l: 'MathUtils()', u: '%3Cinit%3E()' }, + { p: 'com.technototes.library.util', c: 'Range', l: 'max' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler.Constraints', + l: 'maxAcceleration', + }, + { p: 'com.technototes.library.subsystem.motor', c: 'EncodedMotorSubsystem', l: 'maxSpeed' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler.Constraints', l: 'maxVelocity' }, + { p: 'com.technototes.library.util', c: 'Range', l: 'middle()' }, + { p: 'com.technototes.library.util', c: 'Range', l: 'min' }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'mode(DcMotor.RunMode)', + u: 'mode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'DigitalBuilder', + l: 'mode(DigitalChannel.Mode)', + u: 'mode(com.qualcomm.robotcore.hardware.DigitalChannel.Mode)', + }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'motor(int)' }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'motor(String)', + u: 'motor(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'Motor', + l: 'Motor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'Motor(T)', u: '%3Cinit%3E(T)' }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'MotorBuilder(DcMotorEx)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'MotorBuilder(int)', + u: '%3Cinit%3E(int)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'MotorBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'MotorEncoder(DcMotorEx)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'MotorEncoder(DcMotorEx, ElapsedTime)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DcMotorEx,com.qualcomm.robotcore.util.ElapsedTime)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'MotorEncoder(EncodedMotor)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'MotorEncoder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'MotorGroup', + l: 'MotorGroup(Motor...)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor...)', + }, + { + p: 'com.technototes.library.subsystem.motor', + c: 'MotorSubsystem', + l: 'MotorSubsystem(T)', + u: '%3Cinit%3E(T)', + }, + { + p: 'com.qualcomm.robotcore.eventloop.opmode', + c: 'CommandOpMode', + l: 'MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED', + }, + { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'msStuckDetectStop' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'name' }, + { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'name()' }, + { p: 'com.technototes.library.logger', c: 'Log', l: 'name()' }, + { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'name()' }, + { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'NEUTRAL' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NNN' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NNN' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NNP' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NNP' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'NO_COLOR' }, + { p: 'com.technototes.library.util', c: 'Alliance', l: 'NONE' }, + { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'NONE_ACTIVE' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NPN' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NPN' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'NPP' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'NPP' }, + { p: 'com.technototes.library.logger.entry', c: 'NumberEntry', l: 'numberColor' }, + { + p: 'com.technototes.library.logger.entry', + c: 'NumberEntry', + l: 'NumberEntry(String, Supplier, int)', + u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int)', + }, + { + p: 'com.technototes.library.util', + c: 'MapUtils', + l: 'of(Pair...)', + u: 'of(android.util.Pair...)', + }, + { p: 'com.technototes.library.util', c: 'Alliance.Selector', l: 'of(T, T)', u: 'of(T,T)' }, + { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'offset' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'onlyIf(BooleanSupplier)', + u: 'onlyIf(java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'Servo', + l: 'onRange(double, double)', + u: 'onRange(double,double)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'ColorDistanceSensor', + l: 'onUnit(DistanceUnit)', + u: 'onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IDistanceSensor', + l: 'onUnit(DistanceUnit)', + u: 'onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'Rev2MDistanceSensor', + l: 'onUnit(DistanceUnit)', + u: 'onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit)', + }, + { p: 'com.technototes.library.util', c: 'Color', l: 'ORANGE' }, + { p: 'com.technototes.library.hardware2', c: 'DigitalBuilder', l: 'output()' }, + { + p: 'com.technototes.library.command', + c: 'ParallelCommandGroup', + l: 'ParallelCommandGroup(Command...)', + u: '%3Cinit%3E(com.technototes.library.command.Command...)', + }, + { + p: 'com.technototes.library.command', + c: 'ParallelDeadlineGroup', + l: 'ParallelDeadlineGroup(Command, Command...)', + u: '%3Cinit%3E(com.technototes.library.command.Command,com.technototes.library.command.Command...)', + }, + { + p: 'com.technototes.library.command', + c: 'ParallelRaceGroup', + l: 'ParallelRaceGroup(Command...)', + u: '%3Cinit%3E(com.technototes.library.command.Command...)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'IMUBuilder', + l: 'parameter(Consumer)', + u: 'parameter(java.util.function.Consumer)', + }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'periodic()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'periodic()' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'periodic()' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'periodic()' }, + { p: 'com.technototes.library.general', c: 'Periodic', l: 'periodic()' }, + { p: 'com.technototes.library.subsystem', c: 'DeviceSubsystem', l: 'periodic()' }, + { p: 'com.technototes.library.subsystem', c: 'Subsystem', l: 'periodic()' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'PINK' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PNN' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PNN' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PNP' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PNP' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'position(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'positionThreshold' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PPN' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PPN' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'PPP' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'PPP' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'priority' }, + { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'priority()' }, + { p: 'com.technototes.library.logger', c: 'Log.Number', l: 'priority()' }, + { p: 'com.technototes.library.logger', c: 'Log', l: 'priority()' }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'product' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'propagate(double)' }, + { p: 'com.technototes.library.hardware', c: 'HardwareDeviceGroup', l: 'propogate(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'propogate(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'propogate(double)' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'propogate(double)' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler.Constraints', l: 'proportion' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'ps_circle' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'PS_CIRCLE' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'ps_cross' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'PS_CROSS' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'ps_options' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'PS_OPTIONS' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'ps_share' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'PS_SHARE' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'ps_square' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'PS_SQUARE' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'ps_triangle' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'PS_TRIANGLE' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'PURPLE' }, + { + p: 'com.technototes.library.hardware2', + c: 'ServoBuilder', + l: 'pwmRange(double, double)', + u: 'pwmRange(double,double)', + }, + { p: 'com.technototes.library.util', c: 'MathUtils', l: 'pythag(double...)' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'raceWith(Command...)', + u: 'raceWith(com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'radians()' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder', l: 'radians()' }, + { + p: 'com.technototes.library.hardware2', + c: 'ServoBuilder', + l: 'range(double, double)', + u: 'range(double,double)', + }, + { + p: 'com.technototes.library.util', + c: 'Range', + l: 'Range(double, double)', + u: '%3Cinit%3E(double,double)', + }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'raw()' }, + { p: 'com.technototes.library.util', c: 'Alliance', l: 'RED' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'RED' }, + { p: 'com.technototes.library.util', c: 'Characters', l: 'RED_SQUARE' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'red()' }, + { p: 'com.technototes.library.subsystem', c: 'Subsystem', l: 'register()' }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'register(Periodic)', + u: 'register(com.technototes.library.general.Periodic)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'IMUBuilder', + l: 'remap(AxesOrder, IMUBuilder.AxesSigns)', + u: 'remap(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware2.IMUBuilder.AxesSigns)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'remapAxesAndSigns(AxesOrder, IMU.AxesSigns)', + u: 'remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU', + l: 'remapLegacyAxes(AxesOrder, IMU.AxesSigns)', + u: 'remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.library.hardware.sensor.IMU.AxesSigns)', + }, + { + p: 'com.technototes.library.logger', + c: 'Logger', + l: 'repeat(String, int)', + u: 'repeat(java.lang.String,int)', + }, + { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'requestOpModeStop()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'requirementMap' }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'RESET' }, + { p: 'com.technototes.library.util', c: 'SmartConsumer', l: 'reset()' }, + { + p: 'com.technototes.library.hardware', + c: 'DummyDevice', + l: 'resetDeviceConfigurationForOpMode()', + }, + { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'resetScheduler()' }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'Rev2MDistanceSensor', + l: 'Rev2MDistanceSensor(DistanceSensor)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.DistanceSensor)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'Rev2MDistanceSensor', + l: 'Rev2MDistanceSensor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder.Direction', + l: 'REVERSE', + }, + { p: 'com.technototes.library.hardware2', c: 'CRServoBuilder', l: 'reverse()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'reverse()' }, + { p: 'com.technototes.library.hardware2', c: 'ServoBuilder', l: 'reverse()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'rgb()' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'right' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'RIGHT_BUMPER' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'RIGHT_STICK_BUTTON' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'RIGHT_STICK_X' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'RIGHT_STICK_Y' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'RIGHT_TRIGGER' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightBumper' }, + { p: 'com.technototes.library.subsystem.drivebase', c: 'TankDrivebaseSubsystem', l: 'rightSide' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStick' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStickButton' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStickX' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightStickY' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rightTrigger' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'rlMotor', + }, + { p: 'com.technototes.library', c: 'RobotLibrary', l: 'RobotLibrary()', u: '%3Cinit%3E()' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'rrMotor', + }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumble()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumble(double)' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumbleBlip()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'rumbleBlips(int)' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'RUN' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'run()' }, + { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'run()' }, + { p: 'com.technototes.library.logger', c: 'Logger', l: 'runEntries' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'runLoop()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'runOpMode()' }, + { p: 'com.technototes.library.logger', c: 'Logger', l: 'runUpdate()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'saturation()' }, + { p: 'com.technototes.library.util', c: 'Range', l: 'scale(double)' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'Servo', + l: 'scalePWM(double, double)', + u: 'scalePWM(double,double)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'schedule(BooleanSupplier, Command)', + u: 'schedule(java.util.function.BooleanSupplier,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandGroup', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'ParallelCommandGroup', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'ParallelDeadlineGroup', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'ParallelRaceGroup', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'SequentialCommandGroup', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'schedule(Command)', + u: 'schedule(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'schedule(Command, BooleanSupplier)', + u: 'schedule(com.technototes.library.command.Command,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandButton', + l: 'schedule(Consumer)', + u: 'schedule(java.util.function.Consumer)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandButton', + l: 'schedule(Function)', + u: 'schedule(java.util.function.Function)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandAxis', + l: 'schedule(Function)', + u: 'schedule(java.util.function.Function)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleAfterOther(Command, Command)', + u: 'scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleAfterOther(Command, Command, BooleanSupplier)', + u: 'scheduleAfterOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleDefault(Command, Subsystem)', + u: 'scheduleDefault(com.technototes.library.command.Command,com.technototes.library.subsystem.Subsystem)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleDpad(BiConsumer)', + u: 'scheduleDpad(java.util.function.BiConsumer)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleDpad(BiFunction)', + u: 'scheduleDpad(java.util.function.BiFunction)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...)', + u: 'scheduleForState(com.technototes.library.command.Command,java.util.function.BooleanSupplier,com.technototes.library.structure.CommandOpMode.OpModeState...)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleForState(Command, CommandOpMode.OpModeState...)', + u: 'scheduleForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState...)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleInit(Command)', + u: 'scheduleInit(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleInit(Command, BooleanSupplier)', + u: 'scheduleInit(com.technototes.library.command.Command,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleJoystick(Command)', + u: 'scheduleJoystick(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleJoystick(Command, BooleanSupplier)', + u: 'scheduleJoystick(com.technototes.library.command.Command,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleLeftStick(BiConsumer)', + u: 'scheduleLeftStick(java.util.function.BiConsumer)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleLeftStick(BiFunction)', + u: 'scheduleLeftStick(java.util.function.BiFunction)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleOnce(Command)', + u: 'scheduleOnce(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleOnceForState(Command, CommandOpMode.OpModeState)', + u: 'scheduleOnceForState(com.technototes.library.command.Command,com.technototes.library.structure.CommandOpMode.OpModeState)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandAxis', + l: 'schedulePressed(Function)', + u: 'schedulePressed(java.util.function.Function)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleRightStick(BiConsumer)', + u: 'scheduleRightStick(java.util.function.BiConsumer)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleRightStick(BiFunction)', + u: 'scheduleRightStick(java.util.function.BiFunction)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleStick(Stick, BiConsumer)', + u: 'scheduleStick(com.technototes.library.control.Stick,java.util.function.BiConsumer)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandGamepad', + l: 'scheduleStick(Stick, BiFunction)', + u: 'scheduleStick(com.technototes.library.control.Stick,java.util.function.BiFunction)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleWithOther(Command, Command)', + u: 'scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'scheduleWithOther(Command, Command, BooleanSupplier)', + u: 'scheduleWithOther(com.technototes.library.command.Command,com.technototes.library.command.Command,java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.util', + c: 'Alliance.Selector', + l: 'select(Alliance)', + u: 'select(com.technototes.library.util.Alliance)', + }, + { + p: 'com.technototes.library.util', + c: 'Alliance.Selector', + l: 'selectOf(Alliance, T, T)', + u: 'selectOf(com.technototes.library.util.Alliance,T,T)', + }, + { p: 'com.technototes.library.util', c: 'Alliance', l: 'selectOf(T, T)', u: 'selectOf(T,T)' }, + { + p: 'com.technototes.library.util', + c: 'Alliance.Selector', + l: 'Selector(T, T)', + u: '%3Cinit%3E(T,T)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'Sensor', + l: 'Sensor(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'Sensor', l: 'Sensor(T)', u: '%3Cinit%3E(T)' }, + { + p: 'com.technototes.library.command', + c: 'SequentialCommandGroup', + l: 'SequentialCommandGroup(Command...)', + u: '%3Cinit%3E(com.technototes.library.command.Command...)', + }, + { p: 'com.technototes.library.hardware2', c: 'HardwareBuilder', l: 'servo(int)' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'Servo', + l: 'Servo(Servo)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'HardwareBuilder', + l: 'servo(String)', + u: 'servo(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'Servo', + l: 'Servo(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ServoBuilder', + l: 'ServoBuilder(int)', + u: '%3Cinit%3E(int)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ServoBuilder', + l: 'ServoBuilder(Servo)', + u: '%3Cinit%3E(com.qualcomm.robotcore.hardware.Servo)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'ServoBuilder', + l: 'ServoBuilder(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoGroup', + l: 'ServoGroup(Servo...)', + u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler', + l: 'ServoProfiler(Servo)', + u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo)', + }, + { + p: 'com.technototes.library.subsystem.servo', + c: 'ServoSubsystem', + l: 'ServoSubsystem(Servo)', + u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo)', + }, + { + p: 'com.technototes.library.subsystem.servo', + c: 'ServoSubsystem', + l: 'ServoSubsystem(Servo...)', + u: '%3Cinit%3E(com.technototes.library.hardware.servo.Servo...)', + }, + { p: 'com.technototes.library.util', c: 'Integral', l: 'set(double)' }, + { p: 'com.technototes.library.util', c: 'Differential', l: 'setAverageOutput(double)' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler', + l: 'setConstraints(double, double, double)', + u: 'setConstraints(double,double,double)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler', + l: 'setConstraints(ServoProfiler.Constraints)', + u: 'setConstraints(com.technototes.library.hardware.servo.ServoProfiler.Constraints)', + }, + { + p: 'com.technototes.library.subsystem', + c: 'Subsystem', + l: 'setDefaultCommand(Command)', + u: 'setDefaultCommand(com.technototes.library.command.Command)', + }, + { p: 'com.technototes.library.util', c: 'Differential', l: 'setDeviationOutput(double)' }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder', + l: 'setDirection(MotorEncoder.Direction)', + u: 'setDirection(com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction)', + }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'setEnabled(boolean)' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'setEnabled(boolean)' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'setEnabled(boolean)' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'setEnabled(boolean)' }, + { p: 'com.technototes.library.general', c: 'Enablable', l: 'setEnabled(boolean)' }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'setEncoder(Encoder)', + u: 'setEncoder(com.technototes.library.hardware.sensor.encoder.Encoder)', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'setHeading(double)' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU', l: 'setHeading(double)' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'setIndex(int)' }, + { p: 'com.technototes.library.control', c: 'ButtonBase', l: 'setInverted(boolean)' }, + { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'setInverted(boolean)' }, + { p: 'com.technototes.library.control', c: 'CommandButton', l: 'setInverted(boolean)' }, + { p: 'com.technototes.library.general', c: 'Invertable', l: 'setInverted(boolean)' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setInverted(boolean)' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'setInverted(boolean)' }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'setInverted(boolean)' }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'setLimits(double, double)', + u: 'setLimits(double,double)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'Motor', + l: 'setLimits(double, double)', + u: 'setLimits(double,double)', + }, + { + p: 'com.technototes.library.util', + c: 'Differential', + l: 'setLimits(double, double)', + u: 'setLimits(double,double)', + }, + { + p: 'com.technototes.library.subsystem.motor', + c: 'EncodedMotorSubsystem', + l: 'setMaxSpeed(double)', + }, + { + p: 'com.technototes.library.command', + c: 'CommandScheduler', + l: 'setOpMode(CommandOpMode)', + u: 'setOpMode(com.technototes.library.structure.CommandOpMode)', + }, + { + p: 'com.technototes.library.util', + c: 'Differential', + l: 'setOutputs(double, double)', + u: 'setOutputs(double,double)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'setPIDFCoeffecients(double, double, double, double)', + u: 'setPIDFCoeffecients(double,double,double,double)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'setPIDFCoeffecients(PIDFCoefficients)', + u: 'setPIDFCoeffecients(com.qualcomm.robotcore.hardware.PIDFCoefficients)', + }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setPosition(double)' }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'setPosition(double)' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'setPosition(double)' }, + { + p: 'com.technototes.library.subsystem.motor', + c: 'EncodedMotorSubsystem', + l: 'setPosition(double)', + }, + { p: 'com.technototes.library.subsystem.servo', c: 'ServoSubsystem', l: 'setPosition(double)' }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'setPosition(double, double)', + u: 'setPosition(double,double)', + }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotorGroup', + l: 'setPosition(double, double)', + u: 'setPosition(double,double)', + }, + { + p: 'com.technototes.library.subsystem.motor', + c: 'EncodedMotorSubsystem', + l: 'setPosition(double, double)', + u: 'setPosition(double,double)', + }, + { + p: 'com.technototes.library.util', + c: 'Differential', + l: 'setPriority(Differential.DifferentialPriority)', + u: 'setPriority(com.technototes.library.util.Differential.DifferentialPriority)', + }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'setPriority(int)' }, + { + p: 'com.technototes.library.hardware.motor', + c: 'EncodedMotor', + l: 'setRunMode(DcMotor.RunMode)', + u: 'setRunMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', + }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'setServoRange(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setSpeed(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'Motor', l: 'setSpeed(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'MotorGroup', l: 'setSpeed(double)' }, + { p: 'com.technototes.library.subsystem.motor', c: 'MotorSubsystem', l: 'setSpeed(double)' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'setState(Command.CommandState)', + u: 'setState(com.technototes.library.command.Command.CommandState)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler', + l: 'setTargetPosition(double)', + }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler', + l: 'setTargetTolerance(double)', + }, + { p: 'com.technototes.library.control', c: 'AxisBase', l: 'setTriggerThreshold(double)' }, + { p: 'com.technototes.library.control', c: 'CommandAxis', l: 'setTriggerThreshold(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'setVelocity(double)' }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotorGroup', l: 'setVelocity(double)' }, + { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'setVolume(float)' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'SimpleMecanumDrivebaseSubsystem(DoubleSupplier, Motor, Motor, Motor, Motor)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)', + }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'SimpleMecanumDrivebaseSubsystem(Motor, Motor, Motor, Motor)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)', + }, + { p: 'com.technototes.library.command', c: 'Command', l: 'sleep(double)' }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'sleep(DoubleSupplier)', + u: 'sleep(java.util.function.DoubleSupplier)', + }, + { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'SOME_ACTIVE' }, + { + p: 'com.technototes.library.hardware', + c: 'Speaker', + l: 'Speaker(float, String...)', + u: '%3Cinit%3E(float,java.lang.String...)', + }, + { + p: 'com.technototes.library.hardware', + c: 'Speaker', + l: 'Speaker(String...)', + u: '%3Cinit%3E(java.lang.String...)', + }, + { + p: 'com.technototes.library.hardware', + c: 'Speaker', + l: 'start(String)', + u: 'start(java.lang.String)', + }, + { p: 'com.technototes.library.hardware.servo', c: 'Servo', l: 'startAt(double)' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoGroup', l: 'startAt(double)' }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'STARTED' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'stateMap' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'stickButton' }, + { p: 'com.technototes.library.hardware', c: 'Speaker', l: 'stop()' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'SimpleMecanumDrivebaseSubsystem', + l: 'stop()', + }, + { p: 'com.technototes.library.subsystem.drivebase', c: 'TankDrivebaseSubsystem', l: 'stop()' }, + { p: 'com.technototes.library.subsystem.motor', c: 'MotorSubsystem', l: 'stop()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'stopRumble()' }, + { + p: 'com.technototes.library.logger.entry', + c: 'StringEntry', + l: 'StringEntry(String, Supplier, int, String)', + u: '%3Cinit%3E(java.lang.String,java.util.function.Supplier,int,java.lang.String)', + }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'supplier' }, + { + p: 'com.technototes.library.subsystem.drivebase', + c: 'TankDrivebaseSubsystem', + l: 'TankDrivebaseSubsystem(Motor, Motor)', + u: '%3Cinit%3E(com.technototes.library.hardware.motor.Motor,com.technototes.library.hardware.motor.Motor)', + }, + { p: 'com.technototes.library.hardware.motor', c: 'EncodedMotor', l: 'tare()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'tare()' }, + { p: 'com.qualcomm.robotcore.eventloop.opmode', c: 'CommandOpMode', l: 'telemetry' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'terminate()' }, + { p: 'com.technototes.library.command', c: 'CommandScheduler', l: 'terminateOpMode()' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'timeMap' }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'toggle(Command, Command)', + u: 'toggle(com.technototes.library.command.Command,com.technototes.library.command.Command)', + }, + { p: 'com.technototes.library.general', c: 'Enablable', l: 'toggleEnabled()' }, + { p: 'com.technototes.library.hardware2', c: 'MotorBuilder', l: 'tolerance(int)' }, + { p: 'com.technototes.library.logger.entry', c: 'BooleanEntry', l: 'toString()' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'toString()' }, + { p: 'com.technototes.library.logger.entry', c: 'NumberEntry', l: 'toString()' }, + { p: 'com.technototes.library.logger.entry', c: 'StringEntry', l: 'toString()' }, + { + p: 'com.technototes.library.hardware.servo', + c: 'ServoProfiler', + l: 'translateTargetPosition(double)', + }, + { p: 'com.technototes.library.logger', c: 'Log.Boolean', l: 'trueValue()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'universalLoop()' }, + { p: 'com.technototes.library.control', c: 'GamepadDpad', l: 'up' }, + { p: 'com.technototes.library.hardware.servo', c: 'ServoProfiler', l: 'update()' }, + { p: 'com.technototes.library.util', c: 'Integral', l: 'update(double)' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'uponInit()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode', l: 'uponStart()' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IColorSensor', l: 'value()' }, + { p: 'com.technototes.library.logger', c: 'Log.Logs', l: 'value()' }, + { p: 'com.technototes.library.logger', c: 'LogConfig.AllowList', l: 'value()' }, + { p: 'com.technototes.library.logger', c: 'LogConfig.DenyList', l: 'value()' }, + { + p: 'com.technototes.library.command', + c: 'Command.CommandState', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.control', + c: 'Binding.Type', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase.Axis', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.control', + c: 'GamepadBase.Button', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder.Direction', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware.sensor', + c: 'IMU.AxesSigns', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.hardware2', + c: 'IMUBuilder.AxesSigns', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.structure', + c: 'CommandOpMode.OpModeState', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.util', + c: 'Alliance', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.util', + c: 'Color', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { + p: 'com.technototes.library.util', + c: 'Differential.DifferentialPriority', + l: 'valueOf(String)', + u: 'valueOf(java.lang.String)', + }, + { p: 'com.technototes.library.command', c: 'Command.CommandState', l: 'values()' }, + { p: 'com.technototes.library.control', c: 'Binding.Type', l: 'values()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Axis', l: 'values()' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'values()' }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'MotorEncoder.Direction', + l: 'values()', + }, + { p: 'com.technototes.library.hardware.sensor', c: 'IMU.AxesSigns', l: 'values()' }, + { p: 'com.technototes.library.hardware2', c: 'IMUBuilder.AxesSigns', l: 'values()' }, + { p: 'com.technototes.library.structure', c: 'CommandOpMode.OpModeState', l: 'values()' }, + { p: 'com.technototes.library.util', c: 'Alliance', l: 'values()' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'values()' }, + { p: 'com.technototes.library.util', c: 'Differential.DifferentialPriority', l: 'values()' }, + { + p: 'com.technototes.library.hardware2', + c: 'MotorBuilder', + l: 'velocity(PIDFCoefficients)', + u: 'velocity(com.qualcomm.robotcore.hardware.PIDFCoefficients)', + }, + { + p: 'com.technototes.library.command', + c: 'WaitCommand', + l: 'WaitCommand(double)', + u: '%3Cinit%3E(double)', + }, + { + p: 'com.technototes.library.command', + c: 'WaitCommand', + l: 'WaitCommand(DoubleSupplier)', + u: '%3Cinit%3E(java.util.function.DoubleSupplier)', + }, + { + p: 'com.technototes.library.command', + c: 'Command', + l: 'waitUntil(BooleanSupplier)', + u: 'waitUntil(java.util.function.BooleanSupplier)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whenInverseToggled(Command)', + u: 'whenInverseToggled(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whenPressed(Command)', + u: 'whenPressed(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whenPressedReleased(Command, Command)', + u: 'whenPressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whenReleased(Command)', + u: 'whenReleased(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whenToggled(Command)', + u: 'whenToggled(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whileInverseToggled(Command)', + u: 'whileInverseToggled(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whilePressed(Command)', + u: 'whilePressed(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whilePressedContinuous(Command)', + u: 'whilePressedContinuous(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whilePressedOnce(Command)', + u: 'whilePressedOnce(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whilePressedReleased(Command, Command)', + u: 'whilePressedReleased(com.technototes.library.command.Command,com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whileReleased(Command)', + u: 'whileReleased(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whileReleasedOnce(Command)', + u: 'whileReleasedOnce(com.technototes.library.command.Command)', + }, + { + p: 'com.technototes.library.control', + c: 'CommandInput', + l: 'whileToggled(Command)', + u: 'whileToggled(com.technototes.library.command.Command)', + }, + { p: 'com.technototes.library.util', c: 'Color', l: 'WHITE' }, + { p: 'com.technototes.library.command', c: 'Command', l: 'withTimeout(double)' }, + { p: 'com.technototes.library.logger.entry', c: 'Entry', l: 'x' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'xAxis' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'xbox_a' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'XBOX_A' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'xbox_b' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'XBOX_B' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'xbox_back' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'XBOX_BACK' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'xbox_start' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'XBOX_START' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'xbox_x' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'XBOX_X' }, + { p: 'com.technototes.library.control', c: 'GamepadBase', l: 'xbox_y' }, + { p: 'com.technototes.library.control', c: 'GamepadBase.Button', l: 'XBOX_Y' }, + { p: 'com.technototes.library.control', c: 'GamepadStick', l: 'yAxis' }, + { p: 'com.technototes.library.util', c: 'Color', l: 'YELLOW' }, + { p: 'com.technototes.library.hardware.sensor', c: 'IGyro', l: 'zero()' }, + { p: 'com.technototes.library.util', c: 'Integral', l: 'zero()' }, + { p: 'com.technototes.library.hardware.sensor.encoder', c: 'Encoder', l: 'zeroEncoder()' }, + { + p: 'com.technototes.library.hardware.sensor.encoder', + c: 'ExternalEncoder', + l: 'zeroEncoder()', + }, + { p: 'com.technototes.library.hardware.sensor.encoder', c: 'MotorEncoder', l: 'zeroEncoder()' }, +]; +updateSearchResults(); diff --git a/docs/TechnoLib/module-search-index.js b/docs/TechnoLib/module-search-index.js index 0d59754f..a6f96499 100644 --- a/docs/TechnoLib/module-search-index.js +++ b/docs/TechnoLib/module-search-index.js @@ -1 +1,2 @@ -moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file +moduleSearchIndex = []; +updateSearchResults(); diff --git a/docs/TechnoLib/overview-summary.html b/docs/TechnoLib/overview-summary.html index 7bc09700..db00b11a 100644 --- a/docs/TechnoLib/overview-summary.html +++ b/docs/TechnoLib/overview-summary.html @@ -1,25 +1,27 @@ - + - - -RobotLibrary API - - - - - - - - - - -
    - -

    index.html

    -
    - + + + RobotLibrary API + + + + + + + + + + +
    + +

    index.html

    +
    + diff --git a/docs/TechnoLib/overview-tree.html b/docs/TechnoLib/overview-tree.html index 541f2f17..39c56ae2 100644 --- a/docs/TechnoLib/overview-tree.html +++ b/docs/TechnoLib/overview-tree.html @@ -1,306 +1,1450 @@ - + - - -Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Annotation Interface Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - + + + Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    +

    Class Hierarchy

    + +
    +
    +

    Interface Hierarchy

    +
      +
    • + java.util.function.BooleanSupplier +
        +
      • + com.technototes.library.control.Binding<T> +
      • +
      • + com.technototes.library.control.CommandInput<T> +
      • +
      +
    • +
    • + java.util.function.DoubleSupplier +
        +
      • + com.technototes.library.hardware.Sensored +
          +
        • + com.technototes.library.hardware.sensor.encoder.Encoder +
        • +
        +
      • +
      +
    • +
    • + com.technototes.library.general.Enablable<T> +
        +
      • + com.technototes.library.control.Stick + (also extends com.technototes.library.general.Periodic) +
      • +
      +
    • +
    • + com.technototes.library.hardware.HardwareDeviceGroup<T> +
    • +
    • + com.technototes.library.hardware.sensor.IColorSensor +
    • +
    • + com.technototes.library.hardware.sensor.IDistanceSensor +
    • +
    • + com.technototes.library.hardware.sensor.IGyro +
    • +
    • + com.technototes.library.hardware.sensor.ILightSensor +
    • +
    • + com.technototes.library.general.Invertable<T> +
    • +
    • + com.technototes.library.logger.Loggable +
    • +
    • + com.technototes.library.general.Periodic +
        +
      • + com.technototes.library.control.Stick + (also extends com.technototes.library.general.Enablable<T>) +
      • +
      • + com.technototes.library.subsystem.Subsystem +
      • +
      +
    • +
    • + java.lang.Runnable +
        +
      • + com.technototes.library.command.Command + (also extends java.util.function.Supplier<T>) +
      • +
      +
    • +
    • + com.technototes.library.util.SmartConsumer<T> +
    • +
    • + java.util.function.Supplier<T> +
        +
      • + com.technototes.library.command.Command + (also extends java.lang.Runnable) +
      • +
      +
    • +
    +
    +
    +

    Annotation Interface Hierarchy

    + +
    +
    +

    Enum Class Hierarchy

    + +
    +
    +
    +
    + diff --git a/docs/TechnoLib/package-search-index.js b/docs/TechnoLib/package-search-index.js index 3d70a1b1..a587d2d3 100644 --- a/docs/TechnoLib/package-search-index.js +++ b/docs/TechnoLib/package-search-index.js @@ -1 +1,22 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.technototes.library"},{"l":"com.technototes.library.command"},{"l":"com.technototes.library.control"},{"l":"com.technototes.library.general"},{"l":"com.technototes.library.hardware"},{"l":"com.technototes.library.hardware.motor"},{"l":"com.technototes.library.hardware.sensor"},{"l":"com.technototes.library.hardware.sensor.encoder"},{"l":"com.technototes.library.hardware.servo"},{"l":"com.technototes.library.hardware2"},{"l":"com.technototes.library.logger"},{"l":"com.technototes.library.logger.entry"},{"l":"com.technototes.library.structure"},{"l":"com.technototes.library.subsystem"},{"l":"com.technototes.library.subsystem.drivebase"},{"l":"com.technototes.library.subsystem.motor"},{"l":"com.technototes.library.subsystem.servo"},{"l":"com.technototes.library.util"}];updateSearchResults(); \ No newline at end of file +packageSearchIndex = [ + { l: 'All Packages', u: 'allpackages-index.html' }, + { l: 'com.technototes.library' }, + { l: 'com.technototes.library.command' }, + { l: 'com.technototes.library.control' }, + { l: 'com.technototes.library.general' }, + { l: 'com.technototes.library.hardware' }, + { l: 'com.technototes.library.hardware.motor' }, + { l: 'com.technototes.library.hardware.sensor' }, + { l: 'com.technototes.library.hardware.sensor.encoder' }, + { l: 'com.technototes.library.hardware.servo' }, + { l: 'com.technototes.library.hardware2' }, + { l: 'com.technototes.library.logger' }, + { l: 'com.technototes.library.logger.entry' }, + { l: 'com.technototes.library.structure' }, + { l: 'com.technototes.library.subsystem' }, + { l: 'com.technototes.library.subsystem.drivebase' }, + { l: 'com.technototes.library.subsystem.motor' }, + { l: 'com.technototes.library.subsystem.servo' }, + { l: 'com.technototes.library.util' }, +]; +updateSearchResults(); diff --git a/docs/TechnoLib/script.js b/docs/TechnoLib/script.js index 864989cf..a6efd285 100644 --- a/docs/TechnoLib/script.js +++ b/docs/TechnoLib/script.js @@ -29,104 +29,106 @@ var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); + createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); } function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); } function show(tableId, selected, columns) { - if (tableId !== selected) { - document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function(elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected) - .forEach(function(elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); + if (tableId !== selected) { + document + .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function (elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected).forEach(function (elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); } function updateTabs(tableId, selected) { - document.querySelector('div#' + tableId +' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]') - .forEach(function(tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex',0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex',-1); - } - }); + document + .querySelector('div#' + tableId + ' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex', 0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex', -1); + } + }); } function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); - } + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); } + } } -var updateSearchResults = function() {}; +var updateSearchResults = function () {}; function indexFilesLoaded() { - return moduleSearchIndex - && packageSearchIndex - && typeSearchIndex - && memberSearchIndex - && tagSearchIndex; + return ( + moduleSearchIndex && + packageSearchIndex && + typeSearchIndex && + memberSearchIndex && + tagSearchIndex + ); } // Workaround for scroll position not being included in browser history (8249133) -document.addEventListener("DOMContentLoaded", function(e) { - var contentDiv = document.querySelector("div.flex-content"); - window.addEventListener("popstate", function(e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener("hashchange", function(e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener("scroll", function(e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function() { - history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); - } - }); - if (!location.hash) { +document.addEventListener('DOMContentLoaded', function (e) { + var contentDiv = document.querySelector('div.flex-content'); + window.addEventListener('popstate', function (e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener('hashchange', function (e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener('scroll', function (e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function () { history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } }); diff --git a/docs/TechnoLib/search.js b/docs/TechnoLib/search.js index db3b2f4a..3ba91721 100644 --- a/docs/TechnoLib/search.js +++ b/docs/TechnoLib/search.js @@ -23,332 +23,354 @@ * questions. */ -var noResult = {l: "No results found"}; -var loading = {l: "Loading search index..."}; -var catModules = "Modules"; -var catPackages = "Packages"; -var catTypes = "Classes and Interfaces"; -var catMembers = "Members"; -var catSearchTags = "Search Tags"; -var highlight = "$&"; -var searchPattern = ""; -var fallbackPattern = ""; +var noResult = { l: 'No results found' }; +var loading = { l: 'Loading search index...' }; +var catModules = 'Modules'; +var catPackages = 'Packages'; +var catTypes = 'Classes and Interfaces'; +var catMembers = 'Members'; +var catSearchTags = 'Search Tags'; +var highlight = '$&'; +var searchPattern = ''; +var fallbackPattern = ''; var RANKING_THRESHOLD = 2; var NO_MATCH = 0xffff; var MIN_RESULTS = 3; var MAX_RESULTS = 500; -var UNNAMED = ""; +var UNNAMED = ''; function escapeHtml(str) { - return str.replace(//g, ">"); + return str.replace(//g, '>'); } function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight) - } - return highlighted; + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight); + } + return highlighted; } function getURLPrefix(ui) { - var urlPrefix=""; - var slash = "/"; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function(index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; - } - }); + var urlPrefix = ''; + var slash = '/'; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function (index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; } + }); } - return urlPrefix; + } + return urlPrefix; } function createSearchPattern(term) { - var pattern = ""; - var isWordToken = false; - term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + var pattern = ''; + var isWordToken = false; + term + .replace(/,\s*/g, ', ') + .trim() + .split(/\s+/) + .forEach(function (w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === '') { + continue; } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === "") { - continue; - } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += "([a-z0-9_$<>\\[\\]]*?)"; - } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += '([a-z0-9_$<>\\[\\]]*?)'; } + } }); - return pattern; + return pattern; } function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); } var watermark = 'Search'; -$(function() { - var search = $("#search-input"); - var reset = $("#reset-button"); - search.val(''); - search.prop("disabled", false); - reset.prop("disabled", false); - search.val(watermark).addClass('watermark'); - search.blur(function() { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function() { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function() { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget("custom.catcomplete", $.ui.autocomplete, { - _create: function() { - this._super(); - this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); - }, - _renderMenu: function(ul, items) { - var rMenu = this; - var currentCategory = ""; - rMenu.menu.bindings = $(); - $.each(items, function(index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append("
  • " + item.category + "
  • "); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr("aria-label", item.category + " : " + item.l); - li.attr("class", "result-item"); - } else { - li.attr("aria-label", item.l); - li.attr("class", "result-item"); - } - }); - }, - _renderItem: function(ul, item) { - var label = ""; - var matcher = createMatcher(escapeHtml(searchPattern), "g"); - var fallbackMatcher = new RegExp(fallbackPattern, "gi") - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = (item.p && item.p !== UNNAMED) - ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = (item.p && item.p !== UNNAMED) - ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $("
  • ").appendTo(ul); - var div = $("
    ").appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html(label + " (" + item.h + ")
    " - + item.d + "
    "); - } else { - div.html(label + " (" + item.h + ")"); - } - } else { - if (item.m) { - div.html(item.m + "/" + label); - } else { - div.html(label); - } - } - return li; +$(function () { + var search = $('#search-input'); + var reset = $('#reset-button'); + search.val(''); + search.prop('disabled', false); + reset.prop('disabled', false); + search.val(watermark).addClass('watermark'); + search.blur(function () { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); } -}); -function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { - leftBoundaryMatch = 0; - } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { - leftBoundaryMatch = 1; + }); + search.on('click keydown paste', function () { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf("("); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? "/" : "."; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; - } + }); + reset.click(function () { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget('custom.catcomplete', $.ui.autocomplete, { + _create: function () { + this._super(); + this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); + }, + _renderMenu: function (ul, items) { + var rMenu = this; + var currentCategory = ''; + rMenu.menu.bindings = $(); + $.each(items, function (index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append('
  • ' + item.category + '
  • '); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr('aria-label', item.category + ' : ' + item.l); + li.attr('class', 'result-item'); + } else { + li.attr('aria-label', item.l); + li.attr('class', 'result-item'); + } + }); + }, + _renderItem: function (ul, item) { + var label = ''; + var matcher = createMatcher(escapeHtml(searchPattern), 'g'); + var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = + item.p && item.p !== UNNAMED + ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = + item.p && item.p !== UNNAMED + ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) - delta += match[i].length; + var li = $('
  • ').appendTo(ul); + var div = $('
    ').appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html( + label + + ' (' + + item.h + + ')
    ' + + item.d + + '
    ', + ); + } else { + div.html(label + ' (' + item.h + ')'); + } + } else { + if (item.m) { + div.html(item.m + '/' + label); + } else { + div.html(label); + } } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) - delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) - delta += 5; + return li; + }, +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { + leftBoundaryMatch = 0; + } else if ( + '_' === input[index - 1] || + (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) + ) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf('('); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? '/' : '.'; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; } - return leftBoundaryMatch + periferalMatch + (delta / 200); - + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) delta += 5; + } + return leftBoundaryMatch + periferalMatch + delta / 200; } function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === "") { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ""); - var fallbackMatcher = new RegExp(fallbackPattern, "i"); + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === '') { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ''); + var fallbackMatcher = new RegExp(fallbackPattern, 'i'); - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ranking: ranking, item: item}); - } - return newResults.length <= MAX_RESULTS; - }); - return newResults.sort(function(e1, e2) { - return e1.ranking - e2.ranking; - }).map(function(e) { - return e.item; - }); + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ ranking: ranking, item: item }); } - return []; + return newResults.length <= MAX_RESULTS; + }); + return newResults + .sort(function (e1, e2) { + return e1.ranking - e2.ranking; + }) + .map(function (e) { + return e.item; + }); } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); - result = result.concat(secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - })); - } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher( + indexArray, + fallbackMatcher, + category, + nameFunc, + ); + result = result.concat( + secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + }), + ); } + } - searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); - searchIndex(packageSearchIndex, catPackages, function(item) { - return (item.m && request.term.indexOf("/") > -1) - ? (item.m + "/" + item.l) : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function(item) { - return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function(item) { - return request.term.indexOf(".") > -1 - ? item.p + "." + item.c + "." + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + searchIndex(moduleSearchIndex, catModules, function (item) { + return item.l; + }); + searchIndex(packageSearchIndex, catPackages, function (item) { + return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function (item) { + return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function (item) { + return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function (item) { + return item.l; + }); - if (!indexFilesLoaded()) { - updateSearchResults = function() { - doSearch(request, response); - } - result.unshift(loading); - } else { - updateSearchResults = function() {}; - } - response(result); + if (!indexFilesLoaded()) { + updateSearchResults = function () { + doSearch(request, response); + }; + result.unshift(loading); + } else { + updateSearchResults = function () {}; + } + response(result); } -$(function() { - $("#search-input").catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function(event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $("#search-input").empty(); - } - }, - autoFocus: true, - focus: function(event, ui) { - return false; - }, - position: { - collision: "flip" - }, - select: function(event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += "module-summary.html"; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + ".html"; - } else { - url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + ".html" + "#"; - } else { - url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; - } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; - } - $("#search-input").focus(); - } +$(function () { + $('#search-input').catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function (event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $('#search-input').empty(); + } + }, + autoFocus: true, + focus: function (event, ui) { + return false; + }, + position: { + collision: 'flip', + }, + select: function (event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += 'module-summary.html'; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + '.html'; + } else { + url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + '.html' + '#'; + } else { + url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; } - }); + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $('#search-input').focus(); + } + }, + }); }); diff --git a/docs/TechnoLib/stylesheet.css b/docs/TechnoLib/stylesheet.css index 4a576bd2..236a306f 100644 --- a/docs/TechnoLib/stylesheet.css +++ b/docs/TechnoLib/stylesheet.css @@ -12,86 +12,89 @@ */ body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; - padding:0; - height:100%; - width:100%; + background-color: #ffffff; + color: #353833; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; + margin: 0; + padding: 0; + height: 100%; + width: 100%; } iframe { - margin:0; - padding:0; - height:100%; - width:100%; - overflow-y:scroll; - border:none; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a[href]:hover, a[href]:focus { - text-decoration:none; - color:#bb7a2a; + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow-y: scroll; + border: none; +} +a:link, +a:visited { + text-decoration: none; + color: #4a6782; +} +a[href]:hover, +a[href]:focus { + text-decoration: none; + color: #bb7a2a; } a[name] { - color:#353833; + color: #353833; } pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; } h1 { - font-size:20px; + font-size: 20px; } h2 { - font-size:18px; + font-size: 18px; } h3 { - font-size:16px; + font-size: 16px; } h4 { - font-size:15px; + font-size: 15px; } h5 { - font-size:14px; + font-size: 14px; } h6 { - font-size:13px; + font-size: 13px; } ul { - list-style-type:disc; + list-style-type: disc; } -code, tt { - font-family:'DejaVu Sans Mono', monospace; +code, +tt { + font-family: 'DejaVu Sans Mono', monospace; } :not(h1, h2, h3, h4, h5, h6) > code, :not(h1, h2, h3, h4, h5, h6) > tt { - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; + font-size: 14px; + padding-top: 4px; + margin-top: 8px; + line-height: 1.4em; } dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + padding-top: 4px; } .summary-table dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + vertical-align: top; + padding-top: 4px; } sup { - font-size:8px; + font-size: 8px; } button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; } /* * Styles for HTML generated by javadoc. @@ -103,596 +106,654 @@ button { * Styles for document title and copyright. */ .clear { - clear:both; - height:0; - overflow:hidden; + clear: both; + height: 0; + overflow: hidden; } .about-language { - float:right; - padding:0 21px 8px 8px; - font-size:11px; - margin-top:-9px; - height:2.9em; + float: right; + padding: 0 21px 8px 8px; + font-size: 11px; + margin-top: -9px; + height: 2.9em; } .legal-copy { - margin-left:.5em; + margin-left: 0.5em; } .tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; + background-color: #0066ff; + color: #ffffff; + padding: 8px; + width: 5em; + font-weight: bold; } /* * Styles for navigation bar. */ @media screen { - .flex-box { - position:fixed; - display:flex; - flex-direction:column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } + .flex-box { + position: fixed; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } } .top-nav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - min-height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; + background-color: #4d7a97; + color: #ffffff; + float: left; + padding: 0; + width: 100%; + clear: right; + min-height: 2.8em; + padding-top: 10px; + overflow: hidden; + font-size: 12px; } .sub-nav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; + background-color: #dee3e9; + float: left; + width: 100%; + overflow: hidden; + font-size: 12px; } .sub-nav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; + clear: left; + float: left; + padding: 0 0 5px 6px; + text-transform: uppercase; } .sub-nav .nav-list { - padding-top:5px; + padding-top: 5px; } ul.nav-list { - display:block; - margin:0 25px 0 0; - padding:0; + display: block; + margin: 0 25px 0 0; + padding: 0; } ul.sub-nav-list { - float:left; - margin:0 25px 0 0; - padding:0; + float: left; + margin: 0 25px 0 0; + padding: 0; } ul.nav-list li { - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; + list-style: none; + float: left; + padding: 5px 6px; + text-transform: uppercase; } .sub-nav .nav-list-search { - float:right; - margin:0 0 0 0; - padding:5px 6px; - clear:none; + float: right; + margin: 0 0 0 0; + padding: 5px 6px; + clear: none; } .nav-list-search label { - position:relative; - right:-16px; + position: relative; + right: -16px; } ul.sub-nav-list li { - list-style:none; - float:left; - padding-top:10px; + list-style: none; + float: left; + padding-top: 10px; } -.top-nav a:link, .top-nav a:active, .top-nav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; +.top-nav a:link, +.top-nav a:active, +.top-nav a:visited { + color: #ffffff; + text-decoration: none; + text-transform: uppercase; } .top-nav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; + text-decoration: none; + color: #bb7a2a; + text-transform: uppercase; } .nav-bar-cell1-rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; + background-color: #f8981d; + color: #253441; + margin: auto 5px; } .skip-nav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; + position: absolute; + top: auto; + left: -9999px; + overflow: hidden; } /* * Hide navigation links and search box in print layout */ @media print { - ul.nav-list, div.sub-nav { - display:none; - } + ul.nav-list, + div.sub-nav { + display: none; + } } /* * Styles for page header and footer. */ .title { - color:#2c4557; - margin:10px 0; + color: #2c4557; + margin: 10px 0; } .sub-title { - margin:5px 0 0 0; + margin: 5px 0 0 0; } .header ul { - margin:0 0 15px 0; - padding:0; + margin: 0 0 15px 0; + padding: 0; } -.header ul li, .footer ul li { - list-style:none; - font-size:13px; +.header ul li, +.footer ul li { + list-style: none; + font-size: 13px; } /* * Styles for headings. */ body.class-declaration-page .summary h2, body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding:0; - margin:15px 0; +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding: 0; + margin: 15px 0; } body.class-declaration-page .summary h3, body.class-declaration-page .details h3, body.class-declaration-page .summary .inherited-list h2 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; + background-color: #dee3e9; + border: 1px solid #d0d9e0; + margin: 0 0 6px -8px; + padding: 7px 5px; } /* * Styles for page layout containers. */ main { - clear:both; - padding:10px 20px; - position:relative; + clear: both; + padding: 10px 20px; + position: relative; } dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: bold; + margin: 10px 0 0 0; + color: #4e4e4e; } dl.notes > dd { - margin:5px 10px 10px 0; - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + margin: 5px 10px 10px 0; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; } dl.name-value > dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; + margin-left: 1px; + font-size: 1.1em; + display: inline; + font-weight: bold; } dl.name-value > dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; + margin: 0 0 0 1px; + font-size: 1.1em; + display: inline; } /* * Styles for lists. */ li.circle { - list-style:circle; + list-style: circle; } ul.horizontal li { - display:inline; - font-size:0.9em; + display: inline; + font-size: 0.9em; } div.inheritance { - margin:0; - padding:0; + margin: 0; + padding: 0; } div.inheritance div.inheritance { - margin-left:2em; + margin-left: 2em; } ul.block-list, ul.details-list, ul.member-list, ul.summary-list { - margin:10px 0 10px 0; - padding:0; + margin: 10px 0 10px 0; + padding: 0; } ul.block-list > li, ul.details-list > li, ul.member-list > li, ul.summary-list > li { - list-style:none; - margin-bottom:15px; - line-height:1.4; + list-style: none; + margin-bottom: 15px; + line-height: 1.4; } -.summary-table dl, .summary-table dl dt, .summary-table dl dd { - margin-top:0; - margin-bottom:1px; +.summary-table dl, +.summary-table dl dt, +.summary-table dl dd { + margin-top: 0; + margin-bottom: 1px; } -ul.see-list, ul.see-list-long { - padding-left: 0; - list-style: none; +ul.see-list, +ul.see-list-long { + padding-left: 0; + list-style: none; } ul.see-list li { - display: inline; + display: inline; } ul.see-list li:not(:last-child):after, ul.see-list-long li:not(:last-child):after { - content: ", "; - white-space: pre-wrap; + content: ', '; + white-space: pre-wrap; } /* * Styles for tables. */ -.summary-table, .details-table { - width:100%; - border-spacing:0; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; - padding:0; +.summary-table, +.details-table { + width: 100%; + border-spacing: 0; + border-left: 1px solid #eee; + border-right: 1px solid #eee; + border-bottom: 1px solid #eee; + padding: 0; } .caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0; - padding-top:10px; - padding-left:1px; - margin:0; - white-space:pre; -} -.caption a:link, .caption a:visited { - color:#1f389c; + position: relative; + text-align: left; + background-repeat: no-repeat; + color: #253441; + font-weight: bold; + clear: none; + overflow: hidden; + padding: 0; + padding-top: 10px; + padding-left: 1px; + margin: 0; + white-space: pre; +} +.caption a:link, +.caption a:visited { + color: #1f389c; } .caption a:hover, .caption a:active { - color:#FFFFFF; + color: #ffffff; } .caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; + white-space: nowrap; + padding-top: 5px; + padding-left: 12px; + padding-right: 12px; + padding-bottom: 7px; + display: inline-block; + float: left; + background-color: #f8981d; + border: none; + height: 16px; } div.table-tabs { - padding:10px 0 0 1px; - margin:0; + padding: 10px 0 0 1px; + margin: 0; } div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; } div.table-tabs > button.active-table-tab { - background: #F8981D; - color: #253441; + background: #f8981d; + color: #253441; } div.table-tabs > button.table-tab { - background: #4D7A97; - color: #FFFFFF; + background: #4d7a97; + color: #ffffff; } .two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); } .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); } .four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( + 10%, + auto + ); } @media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } } @media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } } @media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, .details-table > div { - text-align:left; - padding: 8px 3px 3px 7px; -} -.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { - vertical-align:top; - padding-right:0; - padding-top:8px; - padding-bottom:3px; + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, +.details-table > div { + text-align: left; + padding: 8px 3px 3px 7px; +} +.col-first, +.col-second, +.col-last, +.col-constructor-name, +.col-summary-item-name { + vertical-align: top; + padding-right: 0; + padding-top: 8px; + padding-bottom: 3px; } .table-header { - background:#dee3e9; - font-weight: bold; -} -.col-first, .col-first { - font-size:13px; -} -.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { - font-size:13px; + background: #dee3e9; + font-weight: bold; +} +.col-first, +.col-first { + font-size: 13px; +} +.col-second, +.col-second, +.col-last, +.col-constructor-name, +.col-summary-item-name, +.col-last { + font-size: 13px; } -.col-first, .col-second, .col-constructor-name { - vertical-align:top; - overflow: auto; +.col-first, +.col-second, +.col-constructor-name { + vertical-align: top; + overflow: auto; } .col-last { - white-space:normal; -} -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-constructor-name a:link, .col-constructor-name a:visited, -.col-summary-item-name a:link, .col-summary-item-name a:visited, -.constant-values-container a:link, .constant-values-container a:visited, -.all-classes-container a:link, .all-classes-container a:visited, -.all-packages-container a:link, .all-packages-container a:visited { - font-weight:bold; + white-space: normal; +} +.col-first a:link, +.col-first a:visited, +.col-second a:link, +.col-second a:visited, +.col-first a:link, +.col-first a:visited, +.col-second a:link, +.col-second a:visited, +.col-constructor-name a:link, +.col-constructor-name a:visited, +.col-summary-item-name a:link, +.col-summary-item-name a:visited, +.constant-values-container a:link, +.constant-values-container a:visited, +.all-classes-container a:link, +.all-classes-container a:visited, +.all-packages-container a:link, +.all-packages-container a:visited { + font-weight: bold; } .table-sub-heading-color { - background-color:#EEEEFF; + background-color: #eeeeff; } -.even-row-color, .even-row-color .table-header { - background-color:#FFFFFF; +.even-row-color, +.even-row-color .table-header { + background-color: #ffffff; } -.odd-row-color, .odd-row-color .table-header { - background-color:#EEEEEF; +.odd-row-color, +.odd-row-color .table-header { + background-color: #eeeeef; } /* * Styles for contents. */ .deprecated-content { - margin:0; - padding:10px 0; + margin: 0; + padding: 10px 0; } div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; } .col-last div { - padding-top:0; + padding-top: 0; } .col-last a { - padding-bottom:3px; + padding-bottom: 3px; } .module-signature, .package-signature, .type-signature, .member-signature { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - margin:14px 0; - white-space: pre-wrap; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + margin: 14px 0; + white-space: pre-wrap; } .module-signature, .package-signature, .type-signature { - margin-top: 0; + margin-top: 0; } .member-signature .type-parameters-long, .member-signature .parameters, .member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; + display: inline-block; + vertical-align: top; + white-space: pre; } .member-signature .type-parameters { - white-space: normal; + white-space: normal; } /* * Styles for formatting effect. */ .source-line-no { - color:green; - padding:0 30px 0 0; + color: green; + padding: 0 30px 0 0; } h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; + visibility: hidden; + overflow: hidden; + font-size: 10px; } .block { - display:block; - margin:0 10px 5px 0; - color:#474747; -} -.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, -.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, -.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { - font-weight:bold; -} -.deprecation-comment, .help-footnote, .preview-comment { - font-style:italic; + display: block; + margin: 0 10px 5px 0; + color: #474747; +} +.deprecated-label, +.descfrm-type-label, +.implementation-label, +.member-name-label, +.member-name-link, +.module-label-in-package, +.module-label-in-type, +.override-specify-label, +.package-label-in-type, +.package-hierarchy-label, +.type-name-label, +.type-name-link, +.search-tag-link, +.preview-label { + font-weight: bold; +} +.deprecation-comment, +.help-footnote, +.preview-comment { + font-style: italic; } .deprecation-block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + border-style: solid; + border-width: thin; + border-radius: 10px; + padding: 10px; + margin-bottom: 10px; + margin-right: 10px; + display: inline-block; } .preview-block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + border-style: solid; + border-width: thin; + border-radius: 10px; + padding: 10px; + margin-bottom: 10px; + margin-right: 10px; + display: inline-block; } div.block div.deprecation-comment { - font-style:normal; + font-style: normal; } /* * Styles specific to HTML5 elements. */ -main, nav, header, footer, section { - display:block; +main, +nav, +header, +footer, +section { + display: block; } /* * Styles for javadoc search. */ .ui-autocomplete-category { - font-weight:bold; - font-size:15px; - padding:7px 0 7px 3px; - background-color:#4D7A97; - color:#FFFFFF; + font-weight: bold; + font-size: 15px; + padding: 7px 0 7px 3px; + background-color: #4d7a97; + color: #ffffff; } .result-item { - font-size:13px; + font-size: 13px; } .ui-autocomplete { - max-height:85%; - max-width:65%; - overflow-y:scroll; - overflow-x:scroll; - white-space:nowrap; - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + max-height: 85%; + max-width: 65%; + overflow-y: scroll; + overflow-x: scroll; + white-space: nowrap; + box-shadow: + 0 3px 6px rgba(0, 0, 0, 0.16), + 0 3px 6px rgba(0, 0, 0, 0.23); } ul.ui-autocomplete { - position:fixed; - z-index:999999; - background-color: #FFFFFF; + position: fixed; + z-index: 999999; + background-color: #ffffff; } -ul.ui-autocomplete li { - float:left; - clear:both; - width:100%; +ul.ui-autocomplete li { + float: left; + clear: both; + width: 100%; } .result-highlight { - font-weight:bold; + font-weight: bold; } .ui-autocomplete .result-item { - font-size: inherit; + font-size: inherit; } #search-input { - background-image:url('resources/glass.png'); - background-size:13px; - background-repeat:no-repeat; - background-position:2px 3px; - padding-left:20px; - position:relative; - right:-18px; - width:400px; + background-image: url('resources/glass.png'); + background-size: 13px; + background-repeat: no-repeat; + background-position: 2px 3px; + padding-left: 20px; + position: relative; + right: -18px; + width: 400px; } #reset-button { - background-color: rgb(255,255,255); - background-image:url('resources/x.png'); - background-position:center; - background-repeat:no-repeat; - background-size:12px; - border:0 none; - width:16px; - height:16px; - position:relative; - left:-4px; - top:-4px; - font-size:0px; + background-color: rgb(255, 255, 255); + background-image: url('resources/x.png'); + background-position: center; + background-repeat: no-repeat; + background-size: 12px; + border: 0 none; + width: 16px; + height: 16px; + position: relative; + left: -4px; + top: -4px; + font-size: 0px; } .watermark { - color:#545454; + color: #545454; } .search-tag-desc-result { - font-style:italic; - font-size:11px; + font-style: italic; + font-size: 11px; } .search-tag-holder-result { - font-style:italic; - font-size:12px; + font-style: italic; + font-size: 12px; } .search-tag-result:target { - background-color:yellow; + background-color: yellow; } .module-graph span { - display:none; - position:absolute; + display: none; + position: absolute; } .module-graph:hover span { - display:block; - margin: -100px 0 0 100px; - z-index: 1; + display: block; + margin: -100px 0 0 100px; + z-index: 1; } .inherited-list { - margin: 10px 0 10px 0; + margin: 10px 0 10px 0; } section.class-description { - line-height: 1.4; -} -.summary section[class$="-summary"], .details section[class$="-details"], -.class-uses .detail, .serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, section[class$="-details"] .detail { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; + line-height: 1.4; +} +.summary section[class$='-summary'], +.details section[class$='-details'], +.class-uses .detail, +.serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, +section[class$='-details'] .detail { + padding: 0 0 5px 8px; + background-color: #ffffff; + border: none; } .vertical-separator { - padding: 0 5px; + padding: 0 5px; } ul.help-section-list { - margin: 0; + margin: 0; } ul.help-subtoc > li { display: inline-block; @@ -700,32 +761,34 @@ ul.help-subtoc > li { font-size: smaller; } ul.help-subtoc > li::before { - content: "\2022" ; - padding-right:2px; + content: '\2022'; + padding-right: 2px; } span.help-note { - font-style: italic; + font-style: italic; } /* * Indicator icon for external links. */ -main a[href*="://"]::after { - content:""; - display:inline-block; - background-image:url('data:image/svg+xml; utf8, \ +main a[href*="://"]::after +{ + content: ''; + display: inline-block; + background-image: url('data:image/svg+xml; utf8, \ \ \ '); - background-size:100% 100%; - width:7px; - height:7px; - margin-left:2px; - margin-bottom:4px; + background-size: 100% 100%; + width: 7px; + height: 7px; + margin-left: 2px; + margin-bottom: 4px; } main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after { - background-image:url('data:image/svg+xml; utf8, \ +main a[href*="://"]:focus::after +{ + background-image: url('data:image/svg+xml; utf8, \ \ \ @@ -754,116 +817,135 @@ main a[href*="://"]:focus::after { table.borderless, table.plain, table.striped { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } table.borderless > caption, table.plain > caption, table.striped > caption { - font-weight: bold; - font-size: smaller; + font-weight: bold; + font-size: smaller; } -table.borderless th, table.borderless td, -table.plain th, table.plain td, -table.striped th, table.striped td { - padding: 2px 5px; +table.borderless th, +table.borderless td, +table.plain th, +table.plain td, +table.striped th, +table.striped td { + padding: 2px 5px; } table.borderless, -table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, -table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { - background-color: transparent; +table.borderless > thead > tr > th, +table.borderless > tbody > tr > th, +table.borderless > tr > th, +table.borderless > thead > tr > td, +table.borderless > tbody > tr > td, +table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, +table.borderless > tbody > tr, +table.borderless > tr { + background-color: transparent; } table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, -table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, +table.plain > tbody tr, +table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, +table.plain > tbody > tr > th, +table.plain > tr > th, +table.plain > thead > tr > td, +table.plain > tbody > tr > td, +table.plain > tr > td { + border: 1px solid black; } table.striped { - border-collapse: collapse; - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; } table.striped > thead { - background-color: #E3E3E3; + background-color: #e3e3e3; } -table.striped > thead > tr > th, table.striped > thead > tr > td { - border: 1px solid black; +table.striped > thead > tr > th, +table.striped > thead > tr > td { + border: 1px solid black; } table.striped > tbody > tr:nth-child(even) { - background-color: #EEE + background-color: #eee; } table.striped > tbody > tr:nth-child(odd) { - background-color: #FFF + background-color: #fff; } -table.striped > tbody > tr > th, table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; +table.striped > tbody > tr > th, +table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; } table.striped > tbody > tr > th { - font-weight: normal; + font-weight: normal; } /** * Tweak font sizes and paddings for small screens. */ @media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } + #search-input { + width: 300px; + } } @media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$="-summary"], .details section[class$="-details"], - .class-uses .detail, .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$='-summary'], + .details section[class$='-details'], + .class-uses .detail, + .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } } @media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } } diff --git a/docs/TechnoLib/tag-search-index.js b/docs/TechnoLib/tag-search-index.js index f2a440c7..c559e8b6 100644 --- a/docs/TechnoLib/tag-search-index.js +++ b/docs/TechnoLib/tag-search-index.js @@ -1 +1,2 @@ -tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"}];updateSearchResults(); \ No newline at end of file +tagSearchIndex = [{ l: 'Constant Field Values', h: '', u: 'constant-values.html' }]; +updateSearchResults(); diff --git a/docs/TechnoLib/type-search-index.js b/docs/TechnoLib/type-search-index.js index bfa37814..584356d1 100644 --- a/docs/TechnoLib/type-search-index.js +++ b/docs/TechnoLib/type-search-index.js @@ -1 +1,114 @@ -typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.technototes.library.util","l":"Alliance"},{"p":"com.technototes.library.logger","l":"LogConfig.AllowList"},{"p":"com.technototes.library.hardware2","l":"AnalogBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"AnalogSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IMU.AxesSigns"},{"p":"com.technototes.library.hardware2","l":"IMUBuilder.AxesSigns"},{"p":"com.technototes.library.control","l":"GamepadBase.Axis"},{"p":"com.technototes.library.control","l":"AxisBase"},{"p":"com.technototes.library.control","l":"Binding"},{"p":"com.technototes.library.util","l":"Alliance.Blue"},{"p":"com.technototes.library.logger","l":"Log.Boolean"},{"p":"com.technototes.library.logger.entry","l":"BooleanEntry"},{"p":"com.technototes.library.control","l":"GamepadBase.Button"},{"p":"com.technototes.library.control","l":"ButtonBase"},{"p":"com.technototes.library.util","l":"Characters"},{"p":"com.technototes.library.command","l":"ChoiceCommand"},{"p":"com.technototes.library.util","l":"Color"},{"p":"com.technototes.library.hardware2","l":"ColorBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"ColorDistanceSensor"},{"p":"com.technototes.library.hardware2","l":"ColorRangeBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"ColorSensor"},{"p":"com.technototes.library.command","l":"Command"},{"p":"com.technototes.library.control","l":"CommandAxis"},{"p":"com.technototes.library.command","l":"CommandBase"},{"p":"com.technototes.library.control","l":"CommandBinding"},{"p":"com.technototes.library.control","l":"CommandButton"},{"p":"com.technototes.library.control","l":"CommandGamepad"},{"p":"com.technototes.library.command","l":"CommandGroup"},{"p":"com.technototes.library.control","l":"CommandInput"},{"p":"com.technototes.library.structure","l":"CommandOpMode"},{"p":"com.technototes.library.command","l":"CommandScheduler"},{"p":"com.technototes.library.command","l":"Command.CommandState"},{"p":"com.technototes.library.command","l":"ConditionalCommand"},{"p":"com.technototes.library.hardware.servo","l":"ServoProfiler.Constraints"},{"p":"com.technototes.library.hardware2","l":"CRServoBuilder"},{"p":"com.technototes.library.logger","l":"LogConfig.DenyList"},{"p":"com.technototes.library.subsystem","l":"DeviceSubsystem"},{"p":"com.technototes.library.util","l":"Differential"},{"p":"com.technototes.library.util","l":"Differential.DifferentialPriority"},{"p":"com.technototes.library.hardware2","l":"DigitalBuilder"},{"p":"com.technototes.library.hardware.sensor","l":"DigitalSensor"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"MotorEncoder.Direction"},{"p":"com.technototes.library.logger","l":"LogConfig.Disabled"},{"p":"com.technototes.library.hardware2","l":"DistanceBuilder"},{"p":"com.technototes.library.subsystem.drivebase","l":"DrivebaseSubsystem"},{"p":"com.technototes.library.hardware","l":"DummyDevice"},{"p":"com.technototes.library.general","l":"Enablable"},{"p":"com.technototes.library.hardware.motor","l":"EncodedMotor"},{"p":"com.technototes.library.hardware.motor","l":"EncodedMotorGroup"},{"p":"com.technototes.library.subsystem.motor","l":"EncodedMotorSubsystem"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"Encoder"},{"p":"com.technototes.library.logger.entry","l":"Entry"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"ExternalEncoder"},{"p":"com.technototes.library.control","l":"GamepadBase"},{"p":"com.technototes.library.control","l":"GamepadDpad"},{"p":"com.technototes.library.control","l":"GamepadStick"},{"p":"com.technototes.library.hardware2","l":"HardwareBuilder"},{"p":"com.technototes.library.hardware","l":"HardwareDevice"},{"p":"com.technototes.library.hardware","l":"HardwareDeviceGroup"},{"p":"com.technototes.library.hardware.sensor","l":"IColorSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IDistanceSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IGyro"},{"p":"com.technototes.library.hardware.sensor","l":"ILightSensor"},{"p":"com.technototes.library.hardware.sensor","l":"IMU"},{"p":"com.technototes.library.hardware2","l":"IMUBuilder"},{"p":"com.technototes.library.util","l":"Integral"},{"p":"com.technototes.library.general","l":"Invertable"},{"p":"com.technototes.library.command","l":"IterativeCommand"},{"p":"com.technototes.library.logger","l":"Log"},{"p":"com.technototes.library.logger","l":"LogConfig"},{"p":"com.technototes.library.logger","l":"Loggable"},{"p":"com.technototes.library.logger","l":"Logger"},{"p":"com.technototes.library.logger","l":"Log.Logs"},{"p":"com.technototes.library.util","l":"MapUtils"},{"p":"com.technototes.library.util","l":"MathUtils"},{"p":"com.technototes.library.hardware.motor","l":"Motor"},{"p":"com.technototes.library.hardware2","l":"MotorBuilder"},{"p":"com.technototes.library.hardware.sensor.encoder","l":"MotorEncoder"},{"p":"com.technototes.library.hardware.motor","l":"MotorGroup"},{"p":"com.technototes.library.subsystem.motor","l":"MotorSubsystem"},{"p":"com.technototes.library.logger","l":"Log.Number"},{"p":"com.technototes.library.logger.entry","l":"NumberEntry"},{"p":"com.technototes.library.structure","l":"CommandOpMode.OpModeState"},{"p":"com.technototes.library.command","l":"ParallelCommandGroup"},{"p":"com.technototes.library.command","l":"ParallelDeadlineGroup"},{"p":"com.technototes.library.command","l":"ParallelRaceGroup"},{"p":"com.technototes.library.general","l":"Periodic"},{"p":"com.technototes.library.util","l":"Range"},{"p":"com.technototes.library.util","l":"Alliance.Red"},{"p":"com.technototes.library.hardware.sensor","l":"Rev2MDistanceSensor"},{"p":"com.technototes.library","l":"RobotLibrary"},{"p":"com.technototes.library.logger","l":"LogConfig.Run"},{"p":"com.technototes.library.util","l":"Alliance.Selector"},{"p":"com.technototes.library.hardware.sensor","l":"Sensor"},{"p":"com.technototes.library.hardware","l":"Sensored"},{"p":"com.technototes.library.command","l":"SequentialCommandGroup"},{"p":"com.technototes.library.hardware.servo","l":"Servo"},{"p":"com.technototes.library.hardware2","l":"ServoBuilder"},{"p":"com.technototes.library.hardware.servo","l":"ServoGroup"},{"p":"com.technototes.library.hardware.servo","l":"ServoProfiler"},{"p":"com.technototes.library.subsystem.servo","l":"ServoSubsystem"},{"p":"com.technototes.library.subsystem.drivebase","l":"SimpleMecanumDrivebaseSubsystem"},{"p":"com.technototes.library.util","l":"SmartConsumer"},{"p":"com.technototes.library.hardware","l":"Speaker"},{"p":"com.technototes.library.control","l":"Stick"},{"p":"com.technototes.library.logger.entry","l":"StringEntry"},{"p":"com.technototes.library.subsystem","l":"Subsystem"},{"p":"com.technototes.library.subsystem.drivebase","l":"TankDrivebaseSubsystem"},{"p":"com.technototes.library.control","l":"Binding.Type"},{"p":"com.technototes.library.command","l":"WaitCommand"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [ + { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, + { p: 'com.technototes.library.util', l: 'Alliance' }, + { p: 'com.technototes.library.logger', l: 'LogConfig.AllowList' }, + { p: 'com.technototes.library.hardware2', l: 'AnalogBuilder' }, + { p: 'com.technototes.library.hardware.sensor', l: 'AnalogSensor' }, + { p: 'com.technototes.library.hardware.sensor', l: 'IMU.AxesSigns' }, + { p: 'com.technototes.library.hardware2', l: 'IMUBuilder.AxesSigns' }, + { p: 'com.technototes.library.control', l: 'GamepadBase.Axis' }, + { p: 'com.technototes.library.control', l: 'AxisBase' }, + { p: 'com.technototes.library.control', l: 'Binding' }, + { p: 'com.technototes.library.util', l: 'Alliance.Blue' }, + { p: 'com.technototes.library.logger', l: 'Log.Boolean' }, + { p: 'com.technototes.library.logger.entry', l: 'BooleanEntry' }, + { p: 'com.technototes.library.control', l: 'GamepadBase.Button' }, + { p: 'com.technototes.library.control', l: 'ButtonBase' }, + { p: 'com.technototes.library.util', l: 'Characters' }, + { p: 'com.technototes.library.command', l: 'ChoiceCommand' }, + { p: 'com.technototes.library.util', l: 'Color' }, + { p: 'com.technototes.library.hardware2', l: 'ColorBuilder' }, + { p: 'com.technototes.library.hardware.sensor', l: 'ColorDistanceSensor' }, + { p: 'com.technototes.library.hardware2', l: 'ColorRangeBuilder' }, + { p: 'com.technototes.library.hardware.sensor', l: 'ColorSensor' }, + { p: 'com.technototes.library.command', l: 'Command' }, + { p: 'com.technototes.library.control', l: 'CommandAxis' }, + { p: 'com.technototes.library.command', l: 'CommandBase' }, + { p: 'com.technototes.library.control', l: 'CommandBinding' }, + { p: 'com.technototes.library.control', l: 'CommandButton' }, + { p: 'com.technototes.library.control', l: 'CommandGamepad' }, + { p: 'com.technototes.library.command', l: 'CommandGroup' }, + { p: 'com.technototes.library.control', l: 'CommandInput' }, + { p: 'com.technototes.library.structure', l: 'CommandOpMode' }, + { p: 'com.technototes.library.command', l: 'CommandScheduler' }, + { p: 'com.technototes.library.command', l: 'Command.CommandState' }, + { p: 'com.technototes.library.command', l: 'ConditionalCommand' }, + { p: 'com.technototes.library.hardware.servo', l: 'ServoProfiler.Constraints' }, + { p: 'com.technototes.library.hardware2', l: 'CRServoBuilder' }, + { p: 'com.technototes.library.logger', l: 'LogConfig.DenyList' }, + { p: 'com.technototes.library.subsystem', l: 'DeviceSubsystem' }, + { p: 'com.technototes.library.util', l: 'Differential' }, + { p: 'com.technototes.library.util', l: 'Differential.DifferentialPriority' }, + { p: 'com.technototes.library.hardware2', l: 'DigitalBuilder' }, + { p: 'com.technototes.library.hardware.sensor', l: 'DigitalSensor' }, + { p: 'com.technototes.library.hardware.sensor.encoder', l: 'MotorEncoder.Direction' }, + { p: 'com.technototes.library.logger', l: 'LogConfig.Disabled' }, + { p: 'com.technototes.library.hardware2', l: 'DistanceBuilder' }, + { p: 'com.technototes.library.subsystem.drivebase', l: 'DrivebaseSubsystem' }, + { p: 'com.technototes.library.hardware', l: 'DummyDevice' }, + { p: 'com.technototes.library.general', l: 'Enablable' }, + { p: 'com.technototes.library.hardware.motor', l: 'EncodedMotor' }, + { p: 'com.technototes.library.hardware.motor', l: 'EncodedMotorGroup' }, + { p: 'com.technototes.library.subsystem.motor', l: 'EncodedMotorSubsystem' }, + { p: 'com.technototes.library.hardware.sensor.encoder', l: 'Encoder' }, + { p: 'com.technototes.library.logger.entry', l: 'Entry' }, + { p: 'com.technototes.library.hardware.sensor.encoder', l: 'ExternalEncoder' }, + { p: 'com.technototes.library.control', l: 'GamepadBase' }, + { p: 'com.technototes.library.control', l: 'GamepadDpad' }, + { p: 'com.technototes.library.control', l: 'GamepadStick' }, + { p: 'com.technototes.library.hardware2', l: 'HardwareBuilder' }, + { p: 'com.technototes.library.hardware', l: 'HardwareDevice' }, + { p: 'com.technototes.library.hardware', l: 'HardwareDeviceGroup' }, + { p: 'com.technototes.library.hardware.sensor', l: 'IColorSensor' }, + { p: 'com.technototes.library.hardware.sensor', l: 'IDistanceSensor' }, + { p: 'com.technototes.library.hardware.sensor', l: 'IGyro' }, + { p: 'com.technototes.library.hardware.sensor', l: 'ILightSensor' }, + { p: 'com.technototes.library.hardware.sensor', l: 'IMU' }, + { p: 'com.technototes.library.hardware2', l: 'IMUBuilder' }, + { p: 'com.technototes.library.util', l: 'Integral' }, + { p: 'com.technototes.library.general', l: 'Invertable' }, + { p: 'com.technototes.library.command', l: 'IterativeCommand' }, + { p: 'com.technototes.library.logger', l: 'Log' }, + { p: 'com.technototes.library.logger', l: 'LogConfig' }, + { p: 'com.technototes.library.logger', l: 'Loggable' }, + { p: 'com.technototes.library.logger', l: 'Logger' }, + { p: 'com.technototes.library.logger', l: 'Log.Logs' }, + { p: 'com.technototes.library.util', l: 'MapUtils' }, + { p: 'com.technototes.library.util', l: 'MathUtils' }, + { p: 'com.technototes.library.hardware.motor', l: 'Motor' }, + { p: 'com.technototes.library.hardware2', l: 'MotorBuilder' }, + { p: 'com.technototes.library.hardware.sensor.encoder', l: 'MotorEncoder' }, + { p: 'com.technototes.library.hardware.motor', l: 'MotorGroup' }, + { p: 'com.technototes.library.subsystem.motor', l: 'MotorSubsystem' }, + { p: 'com.technototes.library.logger', l: 'Log.Number' }, + { p: 'com.technototes.library.logger.entry', l: 'NumberEntry' }, + { p: 'com.technototes.library.structure', l: 'CommandOpMode.OpModeState' }, + { p: 'com.technototes.library.command', l: 'ParallelCommandGroup' }, + { p: 'com.technototes.library.command', l: 'ParallelDeadlineGroup' }, + { p: 'com.technototes.library.command', l: 'ParallelRaceGroup' }, + { p: 'com.technototes.library.general', l: 'Periodic' }, + { p: 'com.technototes.library.util', l: 'Range' }, + { p: 'com.technototes.library.util', l: 'Alliance.Red' }, + { p: 'com.technototes.library.hardware.sensor', l: 'Rev2MDistanceSensor' }, + { p: 'com.technototes.library', l: 'RobotLibrary' }, + { p: 'com.technototes.library.logger', l: 'LogConfig.Run' }, + { p: 'com.technototes.library.util', l: 'Alliance.Selector' }, + { p: 'com.technototes.library.hardware.sensor', l: 'Sensor' }, + { p: 'com.technototes.library.hardware', l: 'Sensored' }, + { p: 'com.technototes.library.command', l: 'SequentialCommandGroup' }, + { p: 'com.technototes.library.hardware.servo', l: 'Servo' }, + { p: 'com.technototes.library.hardware2', l: 'ServoBuilder' }, + { p: 'com.technototes.library.hardware.servo', l: 'ServoGroup' }, + { p: 'com.technototes.library.hardware.servo', l: 'ServoProfiler' }, + { p: 'com.technototes.library.subsystem.servo', l: 'ServoSubsystem' }, + { p: 'com.technototes.library.subsystem.drivebase', l: 'SimpleMecanumDrivebaseSubsystem' }, + { p: 'com.technototes.library.util', l: 'SmartConsumer' }, + { p: 'com.technototes.library.hardware', l: 'Speaker' }, + { p: 'com.technototes.library.control', l: 'Stick' }, + { p: 'com.technototes.library.logger.entry', l: 'StringEntry' }, + { p: 'com.technototes.library.subsystem', l: 'Subsystem' }, + { p: 'com.technototes.library.subsystem.drivebase', l: 'TankDrivebaseSubsystem' }, + { p: 'com.technototes.library.control', l: 'Binding.Type' }, + { p: 'com.technototes.library.command', l: 'WaitCommand' }, +]; +updateSearchResults(); diff --git a/docs/Vision/allclasses-index.html b/docs/Vision/allclasses-index.html index 71dfe5d5..b45450bf 100644 --- a/docs/Vision/allclasses-index.html +++ b/docs/Vision/allclasses-index.html @@ -1,84 +1,136 @@ - + - - -All Classes and Interfaces (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    Classes
    -
    -
    Class
    -
    Description
    -
    Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice>
    -
    -
    This is an OpenCVCamera interface using the FTC SDK camera hardware
    -
    - -
    -
    This is a Camera for use with a phone's internal camera
    -
    - -
    -
    A vision streaming pipeline to enable vision processing during an opmode
    -
    - -
    -
    A webcam device interface that allows you to switch between multiple cameras!
    -
    - -
    -
    Acquire webcamera is just a quit constructor away :)
    -
    -
    -
    -
    -
    -
    - + + + All Classes and Interfaces (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes and Interfaces

    +
    +
    +
    Classes
    +
    +
    Class
    +
    Description
    +
    + Camera<T + extends org.openftc.easyopencv.OpenCvCamera,U + extends com.qualcomm.robotcore.hardware.HardwareDevice> +
    +
    +
    + This is an OpenCVCamera interface using the FTC SDK camera hardware +
    +
    + +
    +
    This is a Camera for use with a phone's internal camera
    +
    + +
    +
    + A vision streaming pipeline to enable vision processing during an opmode +
    +
    + +
    +
    + A webcam device interface that allows you to switch between multiple cameras! +
    +
    +
    + Webcam +
    +
    +
    Acquire webcamera is just a quit constructor away :)
    +
    +
    +
    +
    +
    +
    + diff --git a/docs/Vision/allpackages-index.html b/docs/Vision/allpackages-index.html index 8d98dc33..4bb32373 100644 --- a/docs/Vision/allpackages-index.html +++ b/docs/Vision/allpackages-index.html @@ -1,66 +1,80 @@ - + - - -All Packages (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Packages

    -
    -
    Package Summary
    - -
    -
    -
    - + + + All Packages (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Packages

    +
    +
    Package Summary
    +
    +
    Package
    +
    Description
    + +
     
    + +
     
    +
    +
    +
    +
    + diff --git a/docs/Vision/deprecated-list.html b/docs/Vision/deprecated-list.html index 86b1821d..f8cef183 100644 --- a/docs/Vision/deprecated-list.html +++ b/docs/Vision/deprecated-list.html @@ -1,74 +1,84 @@ - + - - -Deprecated List (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Deprecated API

    -

    Contents

    - -
    - -
    -
    -
    - + + + Deprecated List (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Deprecated API

    +

    Contents

    + +
    + +
    +
    +
    + diff --git a/docs/Vision/help-doc.html b/docs/Vision/help-doc.html index 23a3c98b..c5e91762 100644 --- a/docs/Vision/help-doc.html +++ b/docs/Vision/help-doc.html @@ -1,181 +1,261 @@ - + - - -API Help (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    -Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    -The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    -
    -
    -

    Package

    -

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    -

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    -
    -
    -

    Other Files

    -

    Packages and modules may contain pages with additional information related to the declarations nearby.

    -
    -
    -

    Tree (Class Hierarchy)

    -

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    -
      -
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • -
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • -
    -
    -
    -

    Deprecated API

    -

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    -
    -
    -

    All Packages

    -

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    -
    -
    -

    All Classes and Interfaces

    -

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    -
    -
    -

    Index

    -

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    -
    -
    -
    -This help file applies to API documentation generated by the standard doclet.
    -
    -
    - + + + API Help (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    + Starting from the Overview page, you can browse the + documentation using the links in each page, and in the navigation bar at the top of each + page. The Index and Search box allow you to navigate to + specific declarations and summary pages, including: + All Packages, + All Classes and Interfaces + +
    +
    +
    +

    Kinds of Pages

    + The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    +

    + The Overview page is the front page of this API document + and provides a list of all packages with a summary for each. This page can also + contain an overall description of the set of packages. +

    +
    +
    +

    Package

    +

    + Each package has a page that contains a list of its classes and interfaces, with a + summary for each. These pages may contain the following categories: +

    +
      +
    • Interfaces
    • +
    • Classes
    • +
    • Enum Classes
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Interfaces
    • +
    +
    +
    +

    Class or Interface

    +

    + Each class, interface, nested class and nested interface has its own separate page. + Each of these pages has three sections consisting of a declaration and description, + member summary tables, and detailed member descriptions. Entries in each of these + sections are omitted if they are empty or not applicable. +

    +
      +
    • Class Inheritance Diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class or Interface Declaration
    • +
    • Class or Interface Description
    • +
    +
    +
      +
    • Nested Class Summary
    • +
    • Enum Constant Summary
    • +
    • Field Summary
    • +
    • Property Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    + Note: Annotation interfaces have required and + optional elements, but not methods. Only enum classes have enum constants. The + components of a record class are displayed as part of the declaration of the record + class. Properties are a feature of JavaFX. +

    +

    + The summary entries are alphabetical, while the detailed descriptions are in the + order they appear in the source code. This preserves the logical groupings + established by the programmer. +

    +
    +
    +

    Other Files

    +

    + Packages and modules may contain pages with additional information related to the + declarations nearby. +

    +
    +
    +

    Tree (Class Hierarchy)

    +

    + There is a Class Hierarchy page for all packages, + plus a hierarchy for each package. Each hierarchy page contains a list of classes + and a list of interfaces. Classes are organized by inheritance structure starting + with java.lang.Object. Interfaces do not inherit from + java.lang.Object. +

    +
      +
    • + When viewing the Overview page, clicking on TREE displays the hierarchy for all + packages. +
    • +
    • + When viewing a particular package, class or interface page, clicking on TREE + displays the hierarchy for only that package. +
    • +
    +
    +
    +

    Deprecated API

    +

    + The Deprecated API page lists all of the API that + have been deprecated. A deprecated API is not recommended for use, generally due to + shortcomings, and a replacement API is usually given. Deprecated APIs may be removed + in future implementations. +

    +
    +
    +

    All Packages

    +

    + The All Packages page contains an alphabetic + index of all packages contained in the documentation. +

    +
    +
    +

    All Classes and Interfaces

    +

    + The All Classes and Interfaces page contains an + alphabetic index of all classes and interfaces contained in the documentation, + including annotation interfaces, enum classes, and record classes. +

    +
    +
    +

    Index

    +

    + The Index contains an alphabetic index of all classes, + interfaces, constructors, methods, and fields in the documentation, as well as + summary pages such as All Packages, + All Classes and Interfaces. +

    +
    +
    +
    + This help file applies to API documentation generated by the standard doclet. +
    +
    +
    + diff --git a/docs/Vision/index-all.html b/docs/Vision/index-all.html index f8693534..09df77c7 100644 --- a/docs/Vision/index-all.html +++ b/docs/Vision/index-all.html @@ -1,262 +1,916 @@ - + - - -Index (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -C G I O P R S W 
    All Classes and Interfaces|All Packages -

    C

    -
    -
    camera - Variable in class com.technototes.vision.subsystem.PipelineSubsystem
    -
    -
    The Camera object this subsystem is processing frames from
    -
    -
    Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in com.technototes.vision.hardware
    -
    -
    This is an OpenCVCamera interface using the FTC SDK camera hardware
    -
    -
    Camera(String) - Constructor for class com.technototes.vision.hardware.Camera
    -
    -
    Create a Camera device from the HardwareDevice provided
    -
    -
    Camera(U) - Constructor for class com.technototes.vision.hardware.Camera
    -
    -
    Create a Camera device from the HardwareDevice provided
    -
    -
    closeCameraDevice() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    com.technototes.vision.hardware - package com.technototes.vision.hardware
    -
     
    -
    com.technototes.vision.subsystem - package com.technototes.vision.subsystem
    -
     
    -
    createCamera() - Method in class com.technototes.vision.hardware.InternalCamera
    -
    -
    Create an OpenCvInternalCamera from this Camera
    -
    -
    createCamera() - Method in class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Get the switchable webcam object to use with your pipeline
    -
    -
    createCamera() - Method in class com.technototes.vision.hardware.Webcam
    -
    -
    Create an OpenCvWebcam, which can then be used in your vision pipeline
    -
    -
    -

    G

    -
    -
    getActiveCamera() - Method in class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Get the currently selected camera
    -
    -
    getCameraDirection() - Method in class com.technototes.vision.hardware.InternalCamera
    -
    -
    Get which internal camera is being used
    -
    -
    getCurrentPipelineMaxFps() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    getDevice() - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    -
    -
    Get the Camera device that frames are being processed from
    -
    -
    getFps() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    getFrameBitmap(Continuation<? extends Consumer<Bitmap>>) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    getFrameCount() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    getOpenCvCamera() - Method in class com.technototes.vision.hardware.Camera
    -
    -
    get the camera created
    -
    -
    getOverheadTimeMs() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    getPipelineTimeMs() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    getTotalFrameTimeMs() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    -

    I

    -
    -
    InternalCamera - Class in com.technototes.vision.hardware
    -
    -
    This is a Camera for use with a phone's internal camera
    -
    -
    InternalCamera() - Constructor for class com.technototes.vision.hardware.InternalCamera
    -
    -
    Create the front-facing internal camera
    -
    -
    InternalCamera(OpenCvInternalCamera.CameraDirection) - Constructor for class com.technototes.vision.hardware.InternalCamera
    -
    -
    Create a camera (using the one on the phone for the CameraDirection)
    -
    -
    -

    O

    -
    -
    openCameraDevice() - Method in class com.technototes.vision.hardware.Camera
    -
    -
    Deprecated.
    -
    -
    openCameraDeviceAsync(Runnable) - Method in class com.technototes.vision.hardware.Camera
    -
    -
    Invokes the Runnable's run() method when the camera has been opened.
    -
    -
    openCameraDeviceAsync(Runnable, IntConsumer) - Method in class com.technototes.vision.hardware.Camera
    -
    -
    Invokes the Runnable's run() method when the camera has been opened, - and calls the IntConsumer's accept() method if an error occurs
    -
    -
    openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    openCvCamera - Variable in class com.technototes.vision.hardware.Camera
    -
    -
    This is the OpenCvCamera object created
    -
    -
    -

    P

    -
    -
    pauseViewport() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    PipelineSubsystem - Class in com.technototes.vision.subsystem
    -
    -
    A vision streaming pipeline to enable vision processing during an opmode
    -
    -
    PipelineSubsystem(Camera) - Constructor for class com.technototes.vision.subsystem.PipelineSubsystem
    -
    -
    Create the subsystem with the Camera provided
    -
    -
    -

    R

    -
    -
    resumeViewport() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    -

    S

    -
    -
    setActiveCamera(Webcam) - Method in class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Set the active camera (and return it!)
    -
    -
    setActiveCamera(String) - Method in class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Set the active camera (and return it!)
    -
    -
    setActiveCamera(WebcamName) - Method in class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Set the active camera (and return it!)
    -
    -
    setPipeline(OpenCvPipeline) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    setViewportRenderer(OpenCvCamera.ViewportRenderer) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    showFpsMeterOnViewport(boolean) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    startRecordingPipeline(PipelineRecordingParameters) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    startStreaming(int, int) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    startStreaming(int, int) - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    -
    -
    This begins streaming frames from the camera
    -
    -
    startStreaming(int, int, OpenCvCameraRotation) - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    startStreaming(int, int, OpenCvCameraRotation) - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    -
    -
    This begins streaming frames from the camera
    -
    -
    stopRecordingPipeline() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    stopStreaming() - Method in class com.technototes.vision.hardware.Camera
    -
     
    -
    stopStreaming() - Method in class com.technototes.vision.subsystem.PipelineSubsystem
    -
    -
    Stop frame processing
    -
    -
    SwitchableWebcam - Class in com.technototes.vision.hardware
    -
    -
    A webcam device interface that allows you to switch between multiple cameras!
    -
    -
    SwitchableWebcam(Webcam...) - Constructor for class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Constructor that takes already-created Webcam's so they can be accessed - through the switchable interface
    -
    -
    SwitchableWebcam(String...) - Constructor for class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Constructor to create the switchable webcam object
    -
    -
    SwitchableWebcam(WebcamName...) - Constructor for class com.technototes.vision.hardware.SwitchableWebcam
    -
    -
    Constructor to create the switchable webcam object
    -
    -
    -

    W

    -
    -
    Webcam - Class in com.technototes.vision.hardware
    -
    -
    Acquire webcamera is just a quit constructor away :)
    -
    -
    Webcam(String) - Constructor for class com.technototes.vision.hardware.Webcam
    -
    -
    Create a webcam device configured on the device with the given name
    -
    -
    Webcam(WebcamName) - Constructor for class com.technototes.vision.hardware.Webcam
    -
    -
    TODO: I'm not sure where WebcamName comes from.
    -
    -
    -C G I O P R S W 
    All Classes and Interfaces|All Packages
    -
    -
    - + + + Index (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Index

    +
    + C G I O P R S W 
    All Classes and Interfaces|All Packages +

    C

    +
    +
    + camera + - Variable in class com.technototes.vision.subsystem.PipelineSubsystem +
    +
    +
    The Camera object this subsystem is processing frames from
    +
    +
    + Camera<T + extends org.openftc.easyopencv.OpenCvCamera,U + extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in + com.technototes.vision.hardware +
    +
    +
    + This is an OpenCVCamera interface using the FTC SDK camera hardware +
    +
    +
    + Camera(String) + - Constructor for class com.technototes.vision.hardware.Camera +
    +
    +
    Create a Camera device from the HardwareDevice provided
    +
    +
    + Camera(U) + - Constructor for class com.technototes.vision.hardware.Camera +
    +
    +
    Create a Camera device from the HardwareDevice provided
    +
    +
    + closeCameraDevice() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + com.technototes.vision.hardware + - package com.technototes.vision.hardware +
    +
     
    +
    + com.technototes.vision.subsystem + - package com.technototes.vision.subsystem +
    +
     
    +
    + createCamera() + - Method in class com.technototes.vision.hardware.InternalCamera +
    +
    +
    Create an OpenCvInternalCamera from this Camera
    +
    +
    + createCamera() + - Method in class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Get the switchable webcam object to use with your pipeline
    +
    +
    + createCamera() + - Method in class com.technototes.vision.hardware.Webcam +
    +
    +
    + Create an OpenCvWebcam, which can then be used in your vision pipeline +
    +
    +
    +

    G

    +
    +
    + getActiveCamera() + - Method in class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Get the currently selected camera
    +
    +
    + getCameraDirection() + - Method in class com.technototes.vision.hardware.InternalCamera +
    +
    +
    Get which internal camera is being used
    +
    +
    + getCurrentPipelineMaxFps() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + getDevice() + - Method in class com.technototes.vision.subsystem.PipelineSubsystem +
    +
    +
    Get the Camera device that frames are being processed from
    +
    +
    + getFps() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + getFrameBitmap(Continuation<? extends Consumer<Bitmap>>) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + getFrameCount() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + getOpenCvCamera() + - Method in class com.technototes.vision.hardware.Camera +
    +
    +
    get the camera created
    +
    +
    + getOverheadTimeMs() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + getPipelineTimeMs() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + getTotalFrameTimeMs() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    +

    I

    +
    +
    + InternalCamera + - Class in + com.technototes.vision.hardware +
    +
    +
    This is a Camera for use with a phone's internal camera
    +
    +
    + InternalCamera() + - Constructor for class com.technototes.vision.hardware.InternalCamera +
    +
    +
    Create the front-facing internal camera
    +
    +
    + InternalCamera(OpenCvInternalCamera.CameraDirection) + - Constructor for class com.technototes.vision.hardware.InternalCamera +
    +
    +
    + Create a camera (using the one on the phone for the CameraDirection) +
    +
    +
    +

    O

    +
    +
    + openCameraDevice() + - Method in class com.technototes.vision.hardware.Camera +
    +
    +
    Deprecated.
    +
    +
    + openCameraDeviceAsync(Runnable) + - Method in class com.technototes.vision.hardware.Camera +
    +
    +
    + Invokes the Runnable's run() method when the camera has been opened. +
    +
    +
    + openCameraDeviceAsync(Runnable, IntConsumer) + - Method in class com.technototes.vision.hardware.Camera +
    +
    +
    + Invokes the Runnable's run() method when the camera has been opened, and calls the + IntConsumer's accept() method if an error occurs +
    +
    +
    + openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + openCvCamera + - Variable in class com.technototes.vision.hardware.Camera +
    +
    +
    This is the OpenCvCamera object created
    +
    +
    +

    P

    +
    +
    + pauseViewport() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + PipelineSubsystem + - Class in + com.technototes.vision.subsystem +
    +
    +
    + A vision streaming pipeline to enable vision processing during an opmode +
    +
    +
    + PipelineSubsystem(Camera) + - Constructor for class com.technototes.vision.subsystem.PipelineSubsystem +
    +
    +
    Create the subsystem with the Camera provided
    +
    +
    +

    R

    +
    +
    + resumeViewport() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    +

    S

    +
    +
    + setActiveCamera(Webcam) + - Method in class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Set the active camera (and return it!)
    +
    +
    + setActiveCamera(String) + - Method in class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Set the active camera (and return it!)
    +
    +
    + setActiveCamera(WebcamName) + - Method in class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Set the active camera (and return it!)
    +
    +
    + setPipeline(OpenCvPipeline) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + setViewportRenderer(OpenCvCamera.ViewportRenderer) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + showFpsMeterOnViewport(boolean) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + startRecordingPipeline(PipelineRecordingParameters) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + startStreaming(int, int) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + startStreaming(int, int) + - Method in class com.technototes.vision.subsystem.PipelineSubsystem +
    +
    +
    This begins streaming frames from the camera
    +
    +
    + startStreaming(int, int, OpenCvCameraRotation) + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + startStreaming(int, int, OpenCvCameraRotation) + - Method in class com.technototes.vision.subsystem.PipelineSubsystem +
    +
    +
    This begins streaming frames from the camera
    +
    +
    + stopRecordingPipeline() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + stopStreaming() + - Method in class com.technototes.vision.hardware.Camera +
    +
     
    +
    + stopStreaming() + - Method in class com.technototes.vision.subsystem.PipelineSubsystem +
    +
    +
    Stop frame processing
    +
    +
    + SwitchableWebcam + - Class in + com.technototes.vision.hardware +
    +
    +
    + A webcam device interface that allows you to switch between multiple cameras! +
    +
    +
    + SwitchableWebcam(Webcam...) + - Constructor for class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    + Constructor that takes already-created Webcam's so they can be accessed through the + switchable interface +
    +
    +
    + SwitchableWebcam(String...) + - Constructor for class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Constructor to create the switchable webcam object
    +
    +
    + SwitchableWebcam(WebcamName...) + - Constructor for class com.technototes.vision.hardware.SwitchableWebcam +
    +
    +
    Constructor to create the switchable webcam object
    +
    +
    +

    W

    +
    +
    + Webcam + - Class in + com.technototes.vision.hardware +
    +
    +
    Acquire webcamera is just a quit constructor away :)
    +
    +
    + Webcam(String) + - Constructor for class com.technototes.vision.hardware.Webcam +
    +
    +
    + Create a webcam device configured on the device with the given name +
    +
    +
    + Webcam(WebcamName) + - Constructor for class com.technototes.vision.hardware.Webcam +
    +
    +
    TODO: I'm not sure where WebcamName comes from.
    +
    +
    + C G I O P R S W 
    All Classes and Interfaces|All Packages +
    +
    +
    + diff --git a/docs/Vision/index.html b/docs/Vision/index.html index 3add7e80..70a53db1 100644 --- a/docs/Vision/index.html +++ b/docs/Vision/index.html @@ -1,68 +1,86 @@ - + - - -Overview (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Vision API

    -
    -
    -
    Packages
    - -
    -
    -
    -
    - + + + Overview (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Vision API

    +
    +
    +
    Packages
    +
    +
    Package
    +
    Description
    + +
    +   +
    + +
    +   +
    +
    +
    +
    +
    +
    + diff --git a/docs/Vision/jquery-ui.overrides.css b/docs/Vision/jquery-ui.overrides.css index facf852c..bc437535 100644 --- a/docs/Vision/jquery-ui.overrides.css +++ b/docs/Vision/jquery-ui.overrides.css @@ -29,7 +29,7 @@ a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #F8981D; - border: 1px solid #F8981D; + /* Overrides the color of selection used in jQuery UI */ + background: #f8981d; + border: 1px solid #f8981d; } diff --git a/docs/Vision/member-search-index.js b/docs/Vision/member-search-index.js index c18770de..f63548dc 100644 --- a/docs/Vision/member-search-index.js +++ b/docs/Vision/member-search-index.js @@ -1 +1,177 @@ -memberSearchIndex = [{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"camera"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"Camera(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"Camera(U)","u":"%3Cinit%3E(U)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"closeCameraDevice()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener)","u":"closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener)"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"createCamera()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"createCamera()"},{"p":"com.technototes.vision.hardware","c":"Webcam","l":"createCamera()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"getActiveCamera()"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"getCameraDirection()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getCurrentPipelineMaxFps()"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"getDevice()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getFps()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getFrameBitmap(Continuation>)","u":"getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getFrameCount()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getOpenCvCamera()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getOverheadTimeMs()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getPipelineTimeMs()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"getTotalFrameTimeMs()"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"InternalCamera()","u":"%3Cinit%3E()"},{"p":"com.technototes.vision.hardware","c":"InternalCamera","l":"InternalCamera(OpenCvInternalCamera.CameraDirection)","u":"%3Cinit%3E(org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDevice()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener)","u":"openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDeviceAsync(Runnable)","u":"openCameraDeviceAsync(java.lang.Runnable)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCameraDeviceAsync(Runnable, IntConsumer)","u":"openCameraDeviceAsync(java.lang.Runnable,java.util.function.IntConsumer)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"openCvCamera"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"pauseViewport()"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"PipelineSubsystem(Camera)","u":"%3Cinit%3E(com.technototes.vision.hardware.Camera)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"resumeViewport()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"setActiveCamera(String)","u":"setActiveCamera(java.lang.String)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"setActiveCamera(Webcam)","u":"setActiveCamera(com.technototes.vision.hardware.Webcam)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"setActiveCamera(WebcamName)","u":"setActiveCamera(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"setPipeline(OpenCvPipeline)","u":"setPipeline(org.openftc.easyopencv.OpenCvPipeline)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"setViewportRenderer(OpenCvCamera.ViewportRenderer)","u":"setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy)","u":"setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"showFpsMeterOnViewport(boolean)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"startRecordingPipeline(PipelineRecordingParameters)","u":"startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"startStreaming(int, int)","u":"startStreaming(int,int)"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"startStreaming(int, int)","u":"startStreaming(int,int)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"startStreaming(int, int, OpenCvCameraRotation)","u":"startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"startStreaming(int, int, OpenCvCameraRotation)","u":"startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"stopRecordingPipeline()"},{"p":"com.technototes.vision.hardware","c":"Camera","l":"stopStreaming()"},{"p":"com.technototes.vision.subsystem","c":"PipelineSubsystem","l":"stopStreaming()"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"SwitchableWebcam(String...)","u":"%3Cinit%3E(java.lang.String...)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"SwitchableWebcam(Webcam...)","u":"%3Cinit%3E(com.technototes.vision.hardware.Webcam...)"},{"p":"com.technototes.vision.hardware","c":"SwitchableWebcam","l":"SwitchableWebcam(WebcamName...)","u":"%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName...)"},{"p":"com.technototes.vision.hardware","c":"Webcam","l":"Webcam(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.technototes.vision.hardware","c":"Webcam","l":"Webcam(WebcamName)","u":"%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [ + { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'camera' }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'Camera(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'Camera(U)', u: '%3Cinit%3E(U)' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'closeCameraDevice()' }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener)', + u: 'closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener)', + }, + { p: 'com.technototes.vision.hardware', c: 'InternalCamera', l: 'createCamera()' }, + { p: 'com.technototes.vision.hardware', c: 'SwitchableWebcam', l: 'createCamera()' }, + { p: 'com.technototes.vision.hardware', c: 'Webcam', l: 'createCamera()' }, + { p: 'com.technototes.vision.hardware', c: 'SwitchableWebcam', l: 'getActiveCamera()' }, + { p: 'com.technototes.vision.hardware', c: 'InternalCamera', l: 'getCameraDirection()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getCurrentPipelineMaxFps()' }, + { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'getDevice()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getFps()' }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'getFrameBitmap(Continuation>)', + u: 'getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getFrameCount()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getOpenCvCamera()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getOverheadTimeMs()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getPipelineTimeMs()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getTotalFrameTimeMs()' }, + { + p: 'com.technototes.vision.hardware', + c: 'InternalCamera', + l: 'InternalCamera()', + u: '%3Cinit%3E()', + }, + { + p: 'com.technototes.vision.hardware', + c: 'InternalCamera', + l: 'InternalCamera(OpenCvInternalCamera.CameraDirection)', + u: '%3Cinit%3E(org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'openCameraDevice()' }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener)', + u: 'openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'openCameraDeviceAsync(Runnable)', + u: 'openCameraDeviceAsync(java.lang.Runnable)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'openCameraDeviceAsync(Runnable, IntConsumer)', + u: 'openCameraDeviceAsync(java.lang.Runnable,java.util.function.IntConsumer)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'openCvCamera' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'pauseViewport()' }, + { + p: 'com.technototes.vision.subsystem', + c: 'PipelineSubsystem', + l: 'PipelineSubsystem(Camera)', + u: '%3Cinit%3E(com.technototes.vision.hardware.Camera)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'resumeViewport()' }, + { + p: 'com.technototes.vision.hardware', + c: 'SwitchableWebcam', + l: 'setActiveCamera(String)', + u: 'setActiveCamera(java.lang.String)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'SwitchableWebcam', + l: 'setActiveCamera(Webcam)', + u: 'setActiveCamera(com.technototes.vision.hardware.Webcam)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'SwitchableWebcam', + l: 'setActiveCamera(WebcamName)', + u: 'setActiveCamera(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'setPipeline(OpenCvPipeline)', + u: 'setPipeline(org.openftc.easyopencv.OpenCvPipeline)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'setViewportRenderer(OpenCvCamera.ViewportRenderer)', + u: 'setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy)', + u: 'setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'showFpsMeterOnViewport(boolean)' }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'startRecordingPipeline(PipelineRecordingParameters)', + u: 'startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'startStreaming(int, int)', + u: 'startStreaming(int,int)', + }, + { + p: 'com.technototes.vision.subsystem', + c: 'PipelineSubsystem', + l: 'startStreaming(int, int)', + u: 'startStreaming(int,int)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Camera', + l: 'startStreaming(int, int, OpenCvCameraRotation)', + u: 'startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)', + }, + { + p: 'com.technototes.vision.subsystem', + c: 'PipelineSubsystem', + l: 'startStreaming(int, int, OpenCvCameraRotation)', + u: 'startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)', + }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'stopRecordingPipeline()' }, + { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'stopStreaming()' }, + { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'stopStreaming()' }, + { + p: 'com.technototes.vision.hardware', + c: 'SwitchableWebcam', + l: 'SwitchableWebcam(String...)', + u: '%3Cinit%3E(java.lang.String...)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'SwitchableWebcam', + l: 'SwitchableWebcam(Webcam...)', + u: '%3Cinit%3E(com.technototes.vision.hardware.Webcam...)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'SwitchableWebcam', + l: 'SwitchableWebcam(WebcamName...)', + u: '%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName...)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Webcam', + l: 'Webcam(String)', + u: '%3Cinit%3E(java.lang.String)', + }, + { + p: 'com.technototes.vision.hardware', + c: 'Webcam', + l: 'Webcam(WebcamName)', + u: '%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)', + }, +]; +updateSearchResults(); diff --git a/docs/Vision/module-search-index.js b/docs/Vision/module-search-index.js index 0d59754f..a6f96499 100644 --- a/docs/Vision/module-search-index.js +++ b/docs/Vision/module-search-index.js @@ -1 +1,2 @@ -moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file +moduleSearchIndex = []; +updateSearchResults(); diff --git a/docs/Vision/overview-summary.html b/docs/Vision/overview-summary.html index 34041fef..dcf83320 100644 --- a/docs/Vision/overview-summary.html +++ b/docs/Vision/overview-summary.html @@ -1,25 +1,27 @@ - + - - -Vision API - - - - - - - - - - -
    - -

    index.html

    -
    - + + + Vision API + + + + + + + + + + +
    + +

    index.html

    +
    + diff --git a/docs/Vision/overview-tree.html b/docs/Vision/overview-tree.html index 7d279c47..e677c81b 100644 --- a/docs/Vision/overview-tree.html +++ b/docs/Vision/overview-tree.html @@ -1,83 +1,139 @@ - + - - -Class Hierarchy (Vision API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For All Packages

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    -
      -
    • java.lang.Object -
        -
      • com.technototes.library.hardware.HardwareDevice<T> -
          -
        • com.technototes.vision.hardware.Camera<T,U> (implements org.openftc.easyopencv.OpenCvCamera) - -
        • -
        -
      • -
      • com.technototes.vision.subsystem.PipelineSubsystem (implements com.technototes.library.subsystem.Subsystem)
      • -
      -
    • -
    -
    -
    -
    -
    - + + + Class Hierarchy (Vision API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchy For All Packages

    + Package Hierarchies: + +
    +
    +

    Class Hierarchy

    +
      +
    • + java.lang.Object +
        +
      • + com.technototes.library.hardware.HardwareDevice<T> +
          +
        • + com.technototes.vision.hardware.Camera<T,U> (implements org.openftc.easyopencv.OpenCvCamera) + +
        • +
        +
      • +
      • + com.technototes.vision.subsystem.PipelineSubsystem + (implements com.technototes.library.subsystem.Subsystem) +
      • +
      +
    • +
    +
    +
    +
    +
    + diff --git a/docs/Vision/package-search-index.js b/docs/Vision/package-search-index.js index 8b461665..d142fd68 100644 --- a/docs/Vision/package-search-index.js +++ b/docs/Vision/package-search-index.js @@ -1 +1,6 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.technototes.vision.hardware"},{"l":"com.technototes.vision.subsystem"}];updateSearchResults(); \ No newline at end of file +packageSearchIndex = [ + { l: 'All Packages', u: 'allpackages-index.html' }, + { l: 'com.technototes.vision.hardware' }, + { l: 'com.technototes.vision.subsystem' }, +]; +updateSearchResults(); diff --git a/docs/Vision/script.js b/docs/Vision/script.js index 864989cf..a6efd285 100644 --- a/docs/Vision/script.js +++ b/docs/Vision/script.js @@ -29,104 +29,106 @@ var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); + createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); } function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); } function show(tableId, selected, columns) { - if (tableId !== selected) { - document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function(elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected) - .forEach(function(elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); + if (tableId !== selected) { + document + .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function (elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected).forEach(function (elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); } function updateTabs(tableId, selected) { - document.querySelector('div#' + tableId +' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]') - .forEach(function(tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex',0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex',-1); - } - }); + document + .querySelector('div#' + tableId + ' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex', 0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex', -1); + } + }); } function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); - } + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); } + } } -var updateSearchResults = function() {}; +var updateSearchResults = function () {}; function indexFilesLoaded() { - return moduleSearchIndex - && packageSearchIndex - && typeSearchIndex - && memberSearchIndex - && tagSearchIndex; + return ( + moduleSearchIndex && + packageSearchIndex && + typeSearchIndex && + memberSearchIndex && + tagSearchIndex + ); } // Workaround for scroll position not being included in browser history (8249133) -document.addEventListener("DOMContentLoaded", function(e) { - var contentDiv = document.querySelector("div.flex-content"); - window.addEventListener("popstate", function(e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener("hashchange", function(e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener("scroll", function(e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function() { - history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); - } - }); - if (!location.hash) { +document.addEventListener('DOMContentLoaded', function (e) { + var contentDiv = document.querySelector('div.flex-content'); + window.addEventListener('popstate', function (e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener('hashchange', function (e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener('scroll', function (e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function () { history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } }); diff --git a/docs/Vision/search.js b/docs/Vision/search.js index db3b2f4a..3ba91721 100644 --- a/docs/Vision/search.js +++ b/docs/Vision/search.js @@ -23,332 +23,354 @@ * questions. */ -var noResult = {l: "No results found"}; -var loading = {l: "Loading search index..."}; -var catModules = "Modules"; -var catPackages = "Packages"; -var catTypes = "Classes and Interfaces"; -var catMembers = "Members"; -var catSearchTags = "Search Tags"; -var highlight = "$&"; -var searchPattern = ""; -var fallbackPattern = ""; +var noResult = { l: 'No results found' }; +var loading = { l: 'Loading search index...' }; +var catModules = 'Modules'; +var catPackages = 'Packages'; +var catTypes = 'Classes and Interfaces'; +var catMembers = 'Members'; +var catSearchTags = 'Search Tags'; +var highlight = '$&'; +var searchPattern = ''; +var fallbackPattern = ''; var RANKING_THRESHOLD = 2; var NO_MATCH = 0xffff; var MIN_RESULTS = 3; var MAX_RESULTS = 500; -var UNNAMED = ""; +var UNNAMED = ''; function escapeHtml(str) { - return str.replace(//g, ">"); + return str.replace(//g, '>'); } function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight) - } - return highlighted; + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight); + } + return highlighted; } function getURLPrefix(ui) { - var urlPrefix=""; - var slash = "/"; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function(index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; - } - }); + var urlPrefix = ''; + var slash = '/'; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function (index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; } + }); } - return urlPrefix; + } + return urlPrefix; } function createSearchPattern(term) { - var pattern = ""; - var isWordToken = false; - term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + var pattern = ''; + var isWordToken = false; + term + .replace(/,\s*/g, ', ') + .trim() + .split(/\s+/) + .forEach(function (w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === '') { + continue; } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === "") { - continue; - } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += "([a-z0-9_$<>\\[\\]]*?)"; - } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += '([a-z0-9_$<>\\[\\]]*?)'; } + } }); - return pattern; + return pattern; } function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); } var watermark = 'Search'; -$(function() { - var search = $("#search-input"); - var reset = $("#reset-button"); - search.val(''); - search.prop("disabled", false); - reset.prop("disabled", false); - search.val(watermark).addClass('watermark'); - search.blur(function() { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function() { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function() { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget("custom.catcomplete", $.ui.autocomplete, { - _create: function() { - this._super(); - this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); - }, - _renderMenu: function(ul, items) { - var rMenu = this; - var currentCategory = ""; - rMenu.menu.bindings = $(); - $.each(items, function(index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append("
  • " + item.category + "
  • "); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr("aria-label", item.category + " : " + item.l); - li.attr("class", "result-item"); - } else { - li.attr("aria-label", item.l); - li.attr("class", "result-item"); - } - }); - }, - _renderItem: function(ul, item) { - var label = ""; - var matcher = createMatcher(escapeHtml(searchPattern), "g"); - var fallbackMatcher = new RegExp(fallbackPattern, "gi") - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = (item.p && item.p !== UNNAMED) - ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = (item.p && item.p !== UNNAMED) - ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $("
  • ").appendTo(ul); - var div = $("
    ").appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html(label + " (" + item.h + ")
    " - + item.d + "
    "); - } else { - div.html(label + " (" + item.h + ")"); - } - } else { - if (item.m) { - div.html(item.m + "/" + label); - } else { - div.html(label); - } - } - return li; +$(function () { + var search = $('#search-input'); + var reset = $('#reset-button'); + search.val(''); + search.prop('disabled', false); + reset.prop('disabled', false); + search.val(watermark).addClass('watermark'); + search.blur(function () { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); } -}); -function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { - leftBoundaryMatch = 0; - } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { - leftBoundaryMatch = 1; + }); + search.on('click keydown paste', function () { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf("("); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? "/" : "."; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; - } + }); + reset.click(function () { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget('custom.catcomplete', $.ui.autocomplete, { + _create: function () { + this._super(); + this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); + }, + _renderMenu: function (ul, items) { + var rMenu = this; + var currentCategory = ''; + rMenu.menu.bindings = $(); + $.each(items, function (index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append('
  • ' + item.category + '
  • '); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr('aria-label', item.category + ' : ' + item.l); + li.attr('class', 'result-item'); + } else { + li.attr('aria-label', item.l); + li.attr('class', 'result-item'); + } + }); + }, + _renderItem: function (ul, item) { + var label = ''; + var matcher = createMatcher(escapeHtml(searchPattern), 'g'); + var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = + item.p && item.p !== UNNAMED + ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = + item.p && item.p !== UNNAMED + ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) - delta += match[i].length; + var li = $('
  • ').appendTo(ul); + var div = $('
    ').appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html( + label + + ' (' + + item.h + + ')
    ' + + item.d + + '
    ', + ); + } else { + div.html(label + ' (' + item.h + ')'); + } + } else { + if (item.m) { + div.html(item.m + '/' + label); + } else { + div.html(label); + } } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) - delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) - delta += 5; + return li; + }, +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { + leftBoundaryMatch = 0; + } else if ( + '_' === input[index - 1] || + (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) + ) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf('('); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? '/' : '.'; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; } - return leftBoundaryMatch + periferalMatch + (delta / 200); - + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) delta += 5; + } + return leftBoundaryMatch + periferalMatch + delta / 200; } function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === "") { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ""); - var fallbackMatcher = new RegExp(fallbackPattern, "i"); + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === '') { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ''); + var fallbackMatcher = new RegExp(fallbackPattern, 'i'); - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ranking: ranking, item: item}); - } - return newResults.length <= MAX_RESULTS; - }); - return newResults.sort(function(e1, e2) { - return e1.ranking - e2.ranking; - }).map(function(e) { - return e.item; - }); + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ ranking: ranking, item: item }); } - return []; + return newResults.length <= MAX_RESULTS; + }); + return newResults + .sort(function (e1, e2) { + return e1.ranking - e2.ranking; + }) + .map(function (e) { + return e.item; + }); } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); - result = result.concat(secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - })); - } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher( + indexArray, + fallbackMatcher, + category, + nameFunc, + ); + result = result.concat( + secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + }), + ); } + } - searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); - searchIndex(packageSearchIndex, catPackages, function(item) { - return (item.m && request.term.indexOf("/") > -1) - ? (item.m + "/" + item.l) : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function(item) { - return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function(item) { - return request.term.indexOf(".") > -1 - ? item.p + "." + item.c + "." + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + searchIndex(moduleSearchIndex, catModules, function (item) { + return item.l; + }); + searchIndex(packageSearchIndex, catPackages, function (item) { + return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function (item) { + return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function (item) { + return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function (item) { + return item.l; + }); - if (!indexFilesLoaded()) { - updateSearchResults = function() { - doSearch(request, response); - } - result.unshift(loading); - } else { - updateSearchResults = function() {}; - } - response(result); + if (!indexFilesLoaded()) { + updateSearchResults = function () { + doSearch(request, response); + }; + result.unshift(loading); + } else { + updateSearchResults = function () {}; + } + response(result); } -$(function() { - $("#search-input").catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function(event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $("#search-input").empty(); - } - }, - autoFocus: true, - focus: function(event, ui) { - return false; - }, - position: { - collision: "flip" - }, - select: function(event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += "module-summary.html"; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + ".html"; - } else { - url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + ".html" + "#"; - } else { - url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; - } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; - } - $("#search-input").focus(); - } +$(function () { + $('#search-input').catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function (event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $('#search-input').empty(); + } + }, + autoFocus: true, + focus: function (event, ui) { + return false; + }, + position: { + collision: 'flip', + }, + select: function (event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += 'module-summary.html'; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + '.html'; + } else { + url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + '.html' + '#'; + } else { + url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; } - }); + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $('#search-input').focus(); + } + }, + }); }); diff --git a/docs/Vision/stylesheet.css b/docs/Vision/stylesheet.css index 4a576bd2..236a306f 100644 --- a/docs/Vision/stylesheet.css +++ b/docs/Vision/stylesheet.css @@ -12,86 +12,89 @@ */ body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; - padding:0; - height:100%; - width:100%; + background-color: #ffffff; + color: #353833; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; + margin: 0; + padding: 0; + height: 100%; + width: 100%; } iframe { - margin:0; - padding:0; - height:100%; - width:100%; - overflow-y:scroll; - border:none; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a[href]:hover, a[href]:focus { - text-decoration:none; - color:#bb7a2a; + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow-y: scroll; + border: none; +} +a:link, +a:visited { + text-decoration: none; + color: #4a6782; +} +a[href]:hover, +a[href]:focus { + text-decoration: none; + color: #bb7a2a; } a[name] { - color:#353833; + color: #353833; } pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; } h1 { - font-size:20px; + font-size: 20px; } h2 { - font-size:18px; + font-size: 18px; } h3 { - font-size:16px; + font-size: 16px; } h4 { - font-size:15px; + font-size: 15px; } h5 { - font-size:14px; + font-size: 14px; } h6 { - font-size:13px; + font-size: 13px; } ul { - list-style-type:disc; + list-style-type: disc; } -code, tt { - font-family:'DejaVu Sans Mono', monospace; +code, +tt { + font-family: 'DejaVu Sans Mono', monospace; } :not(h1, h2, h3, h4, h5, h6) > code, :not(h1, h2, h3, h4, h5, h6) > tt { - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; + font-size: 14px; + padding-top: 4px; + margin-top: 8px; + line-height: 1.4em; } dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + padding-top: 4px; } .summary-table dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + vertical-align: top; + padding-top: 4px; } sup { - font-size:8px; + font-size: 8px; } button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; } /* * Styles for HTML generated by javadoc. @@ -103,596 +106,654 @@ button { * Styles for document title and copyright. */ .clear { - clear:both; - height:0; - overflow:hidden; + clear: both; + height: 0; + overflow: hidden; } .about-language { - float:right; - padding:0 21px 8px 8px; - font-size:11px; - margin-top:-9px; - height:2.9em; + float: right; + padding: 0 21px 8px 8px; + font-size: 11px; + margin-top: -9px; + height: 2.9em; } .legal-copy { - margin-left:.5em; + margin-left: 0.5em; } .tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; + background-color: #0066ff; + color: #ffffff; + padding: 8px; + width: 5em; + font-weight: bold; } /* * Styles for navigation bar. */ @media screen { - .flex-box { - position:fixed; - display:flex; - flex-direction:column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } + .flex-box { + position: fixed; + display: flex; + flex-direction: column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } } .top-nav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - min-height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; + background-color: #4d7a97; + color: #ffffff; + float: left; + padding: 0; + width: 100%; + clear: right; + min-height: 2.8em; + padding-top: 10px; + overflow: hidden; + font-size: 12px; } .sub-nav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; + background-color: #dee3e9; + float: left; + width: 100%; + overflow: hidden; + font-size: 12px; } .sub-nav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; + clear: left; + float: left; + padding: 0 0 5px 6px; + text-transform: uppercase; } .sub-nav .nav-list { - padding-top:5px; + padding-top: 5px; } ul.nav-list { - display:block; - margin:0 25px 0 0; - padding:0; + display: block; + margin: 0 25px 0 0; + padding: 0; } ul.sub-nav-list { - float:left; - margin:0 25px 0 0; - padding:0; + float: left; + margin: 0 25px 0 0; + padding: 0; } ul.nav-list li { - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; + list-style: none; + float: left; + padding: 5px 6px; + text-transform: uppercase; } .sub-nav .nav-list-search { - float:right; - margin:0 0 0 0; - padding:5px 6px; - clear:none; + float: right; + margin: 0 0 0 0; + padding: 5px 6px; + clear: none; } .nav-list-search label { - position:relative; - right:-16px; + position: relative; + right: -16px; } ul.sub-nav-list li { - list-style:none; - float:left; - padding-top:10px; + list-style: none; + float: left; + padding-top: 10px; } -.top-nav a:link, .top-nav a:active, .top-nav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; +.top-nav a:link, +.top-nav a:active, +.top-nav a:visited { + color: #ffffff; + text-decoration: none; + text-transform: uppercase; } .top-nav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; + text-decoration: none; + color: #bb7a2a; + text-transform: uppercase; } .nav-bar-cell1-rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; + background-color: #f8981d; + color: #253441; + margin: auto 5px; } .skip-nav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; + position: absolute; + top: auto; + left: -9999px; + overflow: hidden; } /* * Hide navigation links and search box in print layout */ @media print { - ul.nav-list, div.sub-nav { - display:none; - } + ul.nav-list, + div.sub-nav { + display: none; + } } /* * Styles for page header and footer. */ .title { - color:#2c4557; - margin:10px 0; + color: #2c4557; + margin: 10px 0; } .sub-title { - margin:5px 0 0 0; + margin: 5px 0 0 0; } .header ul { - margin:0 0 15px 0; - padding:0; + margin: 0 0 15px 0; + padding: 0; } -.header ul li, .footer ul li { - list-style:none; - font-size:13px; +.header ul li, +.footer ul li { + list-style: none; + font-size: 13px; } /* * Styles for headings. */ body.class-declaration-page .summary h2, body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding:0; - margin:15px 0; +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding: 0; + margin: 15px 0; } body.class-declaration-page .summary h3, body.class-declaration-page .details h3, body.class-declaration-page .summary .inherited-list h2 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; + background-color: #dee3e9; + border: 1px solid #d0d9e0; + margin: 0 0 6px -8px; + padding: 7px 5px; } /* * Styles for page layout containers. */ main { - clear:both; - padding:10px 20px; - position:relative; + clear: both; + padding: 10px 20px; + position: relative; } dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 12px; + font-weight: bold; + margin: 10px 0 0 0; + color: #4e4e4e; } dl.notes > dd { - margin:5px 10px 10px 0; - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + margin: 5px 10px 10px 0; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; } dl.name-value > dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; + margin-left: 1px; + font-size: 1.1em; + display: inline; + font-weight: bold; } dl.name-value > dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; + margin: 0 0 0 1px; + font-size: 1.1em; + display: inline; } /* * Styles for lists. */ li.circle { - list-style:circle; + list-style: circle; } ul.horizontal li { - display:inline; - font-size:0.9em; + display: inline; + font-size: 0.9em; } div.inheritance { - margin:0; - padding:0; + margin: 0; + padding: 0; } div.inheritance div.inheritance { - margin-left:2em; + margin-left: 2em; } ul.block-list, ul.details-list, ul.member-list, ul.summary-list { - margin:10px 0 10px 0; - padding:0; + margin: 10px 0 10px 0; + padding: 0; } ul.block-list > li, ul.details-list > li, ul.member-list > li, ul.summary-list > li { - list-style:none; - margin-bottom:15px; - line-height:1.4; + list-style: none; + margin-bottom: 15px; + line-height: 1.4; } -.summary-table dl, .summary-table dl dt, .summary-table dl dd { - margin-top:0; - margin-bottom:1px; +.summary-table dl, +.summary-table dl dt, +.summary-table dl dd { + margin-top: 0; + margin-bottom: 1px; } -ul.see-list, ul.see-list-long { - padding-left: 0; - list-style: none; +ul.see-list, +ul.see-list-long { + padding-left: 0; + list-style: none; } ul.see-list li { - display: inline; + display: inline; } ul.see-list li:not(:last-child):after, ul.see-list-long li:not(:last-child):after { - content: ", "; - white-space: pre-wrap; + content: ', '; + white-space: pre-wrap; } /* * Styles for tables. */ -.summary-table, .details-table { - width:100%; - border-spacing:0; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; - padding:0; +.summary-table, +.details-table { + width: 100%; + border-spacing: 0; + border-left: 1px solid #eee; + border-right: 1px solid #eee; + border-bottom: 1px solid #eee; + padding: 0; } .caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0; - padding-top:10px; - padding-left:1px; - margin:0; - white-space:pre; -} -.caption a:link, .caption a:visited { - color:#1f389c; + position: relative; + text-align: left; + background-repeat: no-repeat; + color: #253441; + font-weight: bold; + clear: none; + overflow: hidden; + padding: 0; + padding-top: 10px; + padding-left: 1px; + margin: 0; + white-space: pre; +} +.caption a:link, +.caption a:visited { + color: #1f389c; } .caption a:hover, .caption a:active { - color:#FFFFFF; + color: #ffffff; } .caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; + white-space: nowrap; + padding-top: 5px; + padding-left: 12px; + padding-right: 12px; + padding-bottom: 7px; + display: inline-block; + float: left; + background-color: #f8981d; + border: none; + height: 16px; } div.table-tabs { - padding:10px 0 0 1px; - margin:0; + padding: 10px 0 0 1px; + margin: 0; } div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; } div.table-tabs > button.active-table-tab { - background: #F8981D; - color: #253441; + background: #f8981d; + color: #253441; } div.table-tabs > button.table-tab { - background: #4D7A97; - color: #FFFFFF; + background: #4d7a97; + color: #ffffff; } .two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); } .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); } .four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( + 10%, + auto + ); } @media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } } @media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } } @media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, .details-table > div { - text-align:left; - padding: 8px 3px 3px 7px; -} -.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { - vertical-align:top; - padding-right:0; - padding-top:8px; - padding-bottom:3px; + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, +.details-table > div { + text-align: left; + padding: 8px 3px 3px 7px; +} +.col-first, +.col-second, +.col-last, +.col-constructor-name, +.col-summary-item-name { + vertical-align: top; + padding-right: 0; + padding-top: 8px; + padding-bottom: 3px; } .table-header { - background:#dee3e9; - font-weight: bold; -} -.col-first, .col-first { - font-size:13px; -} -.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { - font-size:13px; + background: #dee3e9; + font-weight: bold; +} +.col-first, +.col-first { + font-size: 13px; +} +.col-second, +.col-second, +.col-last, +.col-constructor-name, +.col-summary-item-name, +.col-last { + font-size: 13px; } -.col-first, .col-second, .col-constructor-name { - vertical-align:top; - overflow: auto; +.col-first, +.col-second, +.col-constructor-name { + vertical-align: top; + overflow: auto; } .col-last { - white-space:normal; -} -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-constructor-name a:link, .col-constructor-name a:visited, -.col-summary-item-name a:link, .col-summary-item-name a:visited, -.constant-values-container a:link, .constant-values-container a:visited, -.all-classes-container a:link, .all-classes-container a:visited, -.all-packages-container a:link, .all-packages-container a:visited { - font-weight:bold; + white-space: normal; +} +.col-first a:link, +.col-first a:visited, +.col-second a:link, +.col-second a:visited, +.col-first a:link, +.col-first a:visited, +.col-second a:link, +.col-second a:visited, +.col-constructor-name a:link, +.col-constructor-name a:visited, +.col-summary-item-name a:link, +.col-summary-item-name a:visited, +.constant-values-container a:link, +.constant-values-container a:visited, +.all-classes-container a:link, +.all-classes-container a:visited, +.all-packages-container a:link, +.all-packages-container a:visited { + font-weight: bold; } .table-sub-heading-color { - background-color:#EEEEFF; + background-color: #eeeeff; } -.even-row-color, .even-row-color .table-header { - background-color:#FFFFFF; +.even-row-color, +.even-row-color .table-header { + background-color: #ffffff; } -.odd-row-color, .odd-row-color .table-header { - background-color:#EEEEEF; +.odd-row-color, +.odd-row-color .table-header { + background-color: #eeeeef; } /* * Styles for contents. */ .deprecated-content { - margin:0; - padding:10px 0; + margin: 0; + padding: 10px 0; } div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; } .col-last div { - padding-top:0; + padding-top: 0; } .col-last a { - padding-bottom:3px; + padding-bottom: 3px; } .module-signature, .package-signature, .type-signature, .member-signature { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - margin:14px 0; - white-space: pre-wrap; + font-family: 'DejaVu Sans Mono', monospace; + font-size: 14px; + margin: 14px 0; + white-space: pre-wrap; } .module-signature, .package-signature, .type-signature { - margin-top: 0; + margin-top: 0; } .member-signature .type-parameters-long, .member-signature .parameters, .member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; + display: inline-block; + vertical-align: top; + white-space: pre; } .member-signature .type-parameters { - white-space: normal; + white-space: normal; } /* * Styles for formatting effect. */ .source-line-no { - color:green; - padding:0 30px 0 0; + color: green; + padding: 0 30px 0 0; } h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; + visibility: hidden; + overflow: hidden; + font-size: 10px; } .block { - display:block; - margin:0 10px 5px 0; - color:#474747; -} -.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, -.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, -.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { - font-weight:bold; -} -.deprecation-comment, .help-footnote, .preview-comment { - font-style:italic; + display: block; + margin: 0 10px 5px 0; + color: #474747; +} +.deprecated-label, +.descfrm-type-label, +.implementation-label, +.member-name-label, +.member-name-link, +.module-label-in-package, +.module-label-in-type, +.override-specify-label, +.package-label-in-type, +.package-hierarchy-label, +.type-name-label, +.type-name-link, +.search-tag-link, +.preview-label { + font-weight: bold; +} +.deprecation-comment, +.help-footnote, +.preview-comment { + font-style: italic; } .deprecation-block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + border-style: solid; + border-width: thin; + border-radius: 10px; + padding: 10px; + margin-bottom: 10px; + margin-right: 10px; + display: inline-block; } .preview-block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; + font-size: 14px; + font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; + border-style: solid; + border-width: thin; + border-radius: 10px; + padding: 10px; + margin-bottom: 10px; + margin-right: 10px; + display: inline-block; } div.block div.deprecation-comment { - font-style:normal; + font-style: normal; } /* * Styles specific to HTML5 elements. */ -main, nav, header, footer, section { - display:block; +main, +nav, +header, +footer, +section { + display: block; } /* * Styles for javadoc search. */ .ui-autocomplete-category { - font-weight:bold; - font-size:15px; - padding:7px 0 7px 3px; - background-color:#4D7A97; - color:#FFFFFF; + font-weight: bold; + font-size: 15px; + padding: 7px 0 7px 3px; + background-color: #4d7a97; + color: #ffffff; } .result-item { - font-size:13px; + font-size: 13px; } .ui-autocomplete { - max-height:85%; - max-width:65%; - overflow-y:scroll; - overflow-x:scroll; - white-space:nowrap; - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + max-height: 85%; + max-width: 65%; + overflow-y: scroll; + overflow-x: scroll; + white-space: nowrap; + box-shadow: + 0 3px 6px rgba(0, 0, 0, 0.16), + 0 3px 6px rgba(0, 0, 0, 0.23); } ul.ui-autocomplete { - position:fixed; - z-index:999999; - background-color: #FFFFFF; + position: fixed; + z-index: 999999; + background-color: #ffffff; } -ul.ui-autocomplete li { - float:left; - clear:both; - width:100%; +ul.ui-autocomplete li { + float: left; + clear: both; + width: 100%; } .result-highlight { - font-weight:bold; + font-weight: bold; } .ui-autocomplete .result-item { - font-size: inherit; + font-size: inherit; } #search-input { - background-image:url('resources/glass.png'); - background-size:13px; - background-repeat:no-repeat; - background-position:2px 3px; - padding-left:20px; - position:relative; - right:-18px; - width:400px; + background-image: url('resources/glass.png'); + background-size: 13px; + background-repeat: no-repeat; + background-position: 2px 3px; + padding-left: 20px; + position: relative; + right: -18px; + width: 400px; } #reset-button { - background-color: rgb(255,255,255); - background-image:url('resources/x.png'); - background-position:center; - background-repeat:no-repeat; - background-size:12px; - border:0 none; - width:16px; - height:16px; - position:relative; - left:-4px; - top:-4px; - font-size:0px; + background-color: rgb(255, 255, 255); + background-image: url('resources/x.png'); + background-position: center; + background-repeat: no-repeat; + background-size: 12px; + border: 0 none; + width: 16px; + height: 16px; + position: relative; + left: -4px; + top: -4px; + font-size: 0px; } .watermark { - color:#545454; + color: #545454; } .search-tag-desc-result { - font-style:italic; - font-size:11px; + font-style: italic; + font-size: 11px; } .search-tag-holder-result { - font-style:italic; - font-size:12px; + font-style: italic; + font-size: 12px; } .search-tag-result:target { - background-color:yellow; + background-color: yellow; } .module-graph span { - display:none; - position:absolute; + display: none; + position: absolute; } .module-graph:hover span { - display:block; - margin: -100px 0 0 100px; - z-index: 1; + display: block; + margin: -100px 0 0 100px; + z-index: 1; } .inherited-list { - margin: 10px 0 10px 0; + margin: 10px 0 10px 0; } section.class-description { - line-height: 1.4; -} -.summary section[class$="-summary"], .details section[class$="-details"], -.class-uses .detail, .serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, section[class$="-details"] .detail { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; + line-height: 1.4; +} +.summary section[class$='-summary'], +.details section[class$='-details'], +.class-uses .detail, +.serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, +section[class$='-details'] .detail { + padding: 0 0 5px 8px; + background-color: #ffffff; + border: none; } .vertical-separator { - padding: 0 5px; + padding: 0 5px; } ul.help-section-list { - margin: 0; + margin: 0; } ul.help-subtoc > li { display: inline-block; @@ -700,32 +761,34 @@ ul.help-subtoc > li { font-size: smaller; } ul.help-subtoc > li::before { - content: "\2022" ; - padding-right:2px; + content: '\2022'; + padding-right: 2px; } span.help-note { - font-style: italic; + font-style: italic; } /* * Indicator icon for external links. */ -main a[href*="://"]::after { - content:""; - display:inline-block; - background-image:url('data:image/svg+xml; utf8, \ +main a[href*="://"]::after +{ + content: ''; + display: inline-block; + background-image: url('data:image/svg+xml; utf8, \ \ \ '); - background-size:100% 100%; - width:7px; - height:7px; - margin-left:2px; - margin-bottom:4px; + background-size: 100% 100%; + width: 7px; + height: 7px; + margin-left: 2px; + margin-bottom: 4px; } main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after { - background-image:url('data:image/svg+xml; utf8, \ +main a[href*="://"]:focus::after +{ + background-image: url('data:image/svg+xml; utf8, \ \ \ @@ -754,116 +817,135 @@ main a[href*="://"]:focus::after { table.borderless, table.plain, table.striped { - margin-top: 10px; - margin-bottom: 10px; + margin-top: 10px; + margin-bottom: 10px; } table.borderless > caption, table.plain > caption, table.striped > caption { - font-weight: bold; - font-size: smaller; + font-weight: bold; + font-size: smaller; } -table.borderless th, table.borderless td, -table.plain th, table.plain td, -table.striped th, table.striped td { - padding: 2px 5px; +table.borderless th, +table.borderless td, +table.plain th, +table.plain td, +table.striped th, +table.striped td { + padding: 2px 5px; } table.borderless, -table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, -table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { - background-color: transparent; +table.borderless > thead > tr > th, +table.borderless > tbody > tr > th, +table.borderless > tr > th, +table.borderless > thead > tr > td, +table.borderless > tbody > tr > td, +table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, +table.borderless > tbody > tr, +table.borderless > tr { + background-color: transparent; } table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, -table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, +table.plain > tbody tr, +table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, +table.plain > tbody > tr > th, +table.plain > tr > th, +table.plain > thead > tr > td, +table.plain > tbody > tr > td, +table.plain > tr > td { + border: 1px solid black; } table.striped { - border-collapse: collapse; - border: 1px solid black; + border-collapse: collapse; + border: 1px solid black; } table.striped > thead { - background-color: #E3E3E3; + background-color: #e3e3e3; } -table.striped > thead > tr > th, table.striped > thead > tr > td { - border: 1px solid black; +table.striped > thead > tr > th, +table.striped > thead > tr > td { + border: 1px solid black; } table.striped > tbody > tr:nth-child(even) { - background-color: #EEE + background-color: #eee; } table.striped > tbody > tr:nth-child(odd) { - background-color: #FFF + background-color: #fff; } -table.striped > tbody > tr > th, table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; +table.striped > tbody > tr > th, +table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; } table.striped > tbody > tr > th { - font-weight: normal; + font-weight: normal; } /** * Tweak font sizes and paddings for small screens. */ @media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } + #search-input { + width: 300px; + } } @media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$="-summary"], .details section[class$="-details"], - .class-uses .detail, .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$='-summary'], + .details section[class$='-details'], + .class-uses .detail, + .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } } @media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } } diff --git a/docs/Vision/tag-search-index.js b/docs/Vision/tag-search-index.js index 0367dae6..8f19e1f9 100644 --- a/docs/Vision/tag-search-index.js +++ b/docs/Vision/tag-search-index.js @@ -1 +1,2 @@ -tagSearchIndex = [];updateSearchResults(); \ No newline at end of file +tagSearchIndex = []; +updateSearchResults(); diff --git a/docs/Vision/type-search-index.js b/docs/Vision/type-search-index.js index f0bb9b4c..7b85e10a 100644 --- a/docs/Vision/type-search-index.js +++ b/docs/Vision/type-search-index.js @@ -1 +1,9 @@ -typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.technototes.vision.hardware","l":"Camera"},{"p":"com.technototes.vision.hardware","l":"InternalCamera"},{"p":"com.technototes.vision.subsystem","l":"PipelineSubsystem"},{"p":"com.technototes.vision.hardware","l":"SwitchableWebcam"},{"p":"com.technototes.vision.hardware","l":"Webcam"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [ + { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, + { p: 'com.technototes.vision.hardware', l: 'Camera' }, + { p: 'com.technototes.vision.hardware', l: 'InternalCamera' }, + { p: 'com.technototes.vision.subsystem', l: 'PipelineSubsystem' }, + { p: 'com.technototes.vision.hardware', l: 'SwitchableWebcam' }, + { p: 'com.technototes.vision.hardware', l: 'Webcam' }, +]; +updateSearchResults(); diff --git a/package.json b/package.json index 123f70a8..d68dbeff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "technolib", - "version": "1.0.0", + "version": "1.3.1", "description": "TechnoLib automation scripts", "main": "build/automation.js", "repository": "https://github.com/technototes/TechnoLib.git", From 060c1484e12f01cb1785a585b8699ed0001296fe Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Wed, 4 Oct 2023 20:56:07 -0700 Subject: [PATCH 07/47] Undeprecated some stuff (for now) added Motor.setDir/setFwd/setBack, and staticified CmdScheduler --- .../library/command/CommandScheduler.java | 96 +++++++++---------- .../library/command/ConditionalCommand.java | 6 +- .../library/command/ParallelCommandGroup.java | 2 +- .../command/ParallelDeadlineGroup.java | 2 +- .../library/command/ParallelRaceGroup.java | 2 +- .../command/SequentialCommandGroup.java | 4 +- .../library/control/CommandGamepad.java | 4 +- .../library/control/CommandInput.java | 2 +- .../library/hardware/HardwareDevice.java | 1 - .../library/hardware/HardwareDeviceGroup.java | 1 - .../library/hardware/Sensored.java | 1 - .../technototes/library/hardware/Speaker.java | 3 +- .../library/hardware/motor/EncodedMotor.java | 25 +++++ .../library/hardware/motor/Motor.java | 40 ++++++++ .../hardware/sensor/Rev2MDistanceSensor.java | 1 - .../library/hardware/servo/Servo.java | 1 - .../library/hardware/servo/ServoGroup.java | 1 - .../technototes/library/logger/Logger.java | 5 +- .../library/structure/CommandOpMode.java | 11 ++- .../library/subsystem/Subsystem.java | 6 +- 20 files changed, 136 insertions(+), 78 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index 94ea925e..41e15ef3 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -23,23 +23,21 @@ */ public final class CommandScheduler { - private final Map commandMap; - private final Map> requirementMap; - private final Map defaultMap; + private static Map commandMap = new HashMap<>(); + private static Map> requirementMap = new HashMap<>(); + private static Map defaultMap = new HashMap<>(); - private final Set registered; + private static Set registered = new LinkedHashSet<>(); - private CommandOpMode opMode; + private static CommandOpMode opMode; /** * Set the scheduler's opmode * * @param c the opmode - * @return the CommandScheduler (useful for chaining) */ - public CommandScheduler setOpMode(CommandOpMode c) { + public static void setOpMode(CommandOpMode c) { opMode = c; - return this; } /** @@ -47,9 +45,8 @@ public CommandScheduler setOpMode(CommandOpMode c) { * * @return the CommandScheduler (useful for chaining) */ - public CommandScheduler terminateOpMode() { + public static void terminateOpMode() { opMode.terminate(); - return this; } /** @@ -57,24 +54,24 @@ public CommandScheduler terminateOpMode() { * * @return elapsed time since opmode was started, in seconds */ - public double getOpModeRuntime() { + public static double getOpModeRuntime() { return opMode.getOpModeRuntime(); } // The Singleton CommandScheduler - private static CommandScheduler instance; + // private static CommandScheduler instance; /** * Get (or create) the singleton CommandScheduler object * * @return The CommandScheduler singleton - */ public static synchronized CommandScheduler getInstance() { if (instance == null) { instance = new CommandScheduler(); } return instance; } + */ /** * Alex had a comment "be careful with this" and he's not wrong. @@ -82,18 +79,18 @@ public static synchronized CommandScheduler getInstance() { * * @return a *new* singleton object (which makes very little sense) */ - public static synchronized CommandScheduler resetScheduler() { - instance = null; + public static void resetScheduler() { Command.clear(); - return getInstance(); } + /* private CommandScheduler() { commandMap = new HashMap<>(); requirementMap = new HashMap<>(); defaultMap = new HashMap<>(); registered = new LinkedHashSet<>(); } + */ /** * Schedule a command to run @@ -101,8 +98,8 @@ private CommandScheduler() { * @param command the command to schedule * @return the CommandScheduler (useful for chaining) */ - public CommandScheduler schedule(Command command) { - return schedule(command, () -> true); + public static void schedule(Command command) { + schedule(command, () -> true); } /** @@ -111,8 +108,8 @@ public CommandScheduler schedule(Command command) { * @param command the command to schedule * @return the CommandScheduler (useful for chaining) */ - public CommandScheduler scheduleOnce(Command command) { - return schedule(command); + public static void scheduleOnce(Command command) { + schedule(command); } /** @@ -122,8 +119,8 @@ public CommandScheduler scheduleOnce(Command command) { * @param state the state during which the command should be scheduled * @return the CommandScheduler (useful for chaining) */ - public CommandScheduler scheduleOnceForState(Command command, CommandOpMode.OpModeState state) { - return scheduleForState(command, state); + public static void scheduleOnceForState(Command command, CommandOpMode.OpModeState state) { + scheduleForState(command, state); } /** @@ -136,8 +133,8 @@ public CommandScheduler scheduleOnceForState(Command command, CommandOpMode.OpMo * @param supplier The condition which also must be true to run the command * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleInit(Command command, BooleanSupplier supplier) { - return scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); + public static void scheduleInit(Command command, BooleanSupplier supplier) { + scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); } /** @@ -148,8 +145,8 @@ public CommandScheduler scheduleInit(Command command, BooleanSupplier supplier) * @param command The command to run * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleInit(Command command) { - return scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); + public static void scheduleInit(Command command) { + scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); } /** @@ -163,8 +160,8 @@ public CommandScheduler scheduleInit(Command command) { * @param supplier The condition which must also be true to run the command * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleJoystick(Command command, BooleanSupplier supplier) { - return scheduleForState(command, supplier, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); + public static void scheduleJoystick(Command command, BooleanSupplier supplier) { + scheduleForState(command, supplier, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); } /** @@ -176,8 +173,8 @@ public CommandScheduler scheduleJoystick(Command command, BooleanSupplier suppli * @param command The command to run repeatedly. * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleJoystick(Command command) { - return scheduleForState(command, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); + public static void scheduleJoystick(Command command) { + scheduleForState(command, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); } /** @@ -189,12 +186,12 @@ public CommandScheduler scheduleJoystick(Command command) { * @param supplier The function to determin in the command should be scheduled * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleForState( + public static void scheduleForState( Command command, BooleanSupplier supplier, CommandOpMode.OpModeState... states ) { - return schedule( + schedule( command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), () -> supplier.getAsBoolean() && opMode.getOpModeState().isState(states) ); @@ -207,8 +204,8 @@ public CommandScheduler scheduleForState( * @param states The list of states to schedule the command * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleForState(Command command, CommandOpMode.OpModeState... states) { - return schedule( + public static void scheduleForState(Command command, CommandOpMode.OpModeState... states) { + schedule( command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), () -> opMode.getOpModeState().isState(states) ); @@ -222,8 +219,8 @@ public CommandScheduler scheduleForState(Command command, CommandOpMode.OpModeSt * @param other The command to schedule when 'dependency' has finished * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleAfterOther(Command dependency, Command other) { - return schedule(other, dependency::justFinishedNoCancel); + public static void scheduleAfterOther(Command dependency, Command other) { + schedule(other, dependency::justFinishedNoCancel); } /** @@ -234,8 +231,8 @@ public CommandScheduler scheduleAfterOther(Command dependency, Command other) { * @param other The command to schedule when 'dependency' has started * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleWithOther(Command dependency, Command other) { - return schedule(other, dependency::justStarted); + public static void scheduleWithOther(Command dependency, Command other) { + schedule(other, dependency::justStarted); } /** @@ -247,8 +244,8 @@ public CommandScheduler scheduleWithOther(Command dependency, Command other) { * @param additionalCondition The additional condition necessary to be true to schedule the 'other' command * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleAfterOther(Command dependency, Command other, BooleanSupplier additionalCondition) { - return schedule(other, () -> dependency.justFinishedNoCancel() && additionalCondition.getAsBoolean()); + public static void scheduleAfterOther(Command dependency, Command other, BooleanSupplier additionalCondition) { + schedule(other, () -> dependency.justFinishedNoCancel() && additionalCondition.getAsBoolean()); } /** @@ -260,8 +257,8 @@ public CommandScheduler scheduleAfterOther(Command dependency, Command other, Bo * @param additionalCondition The additional condition necessary to be true to schedule the 'other' command * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleWithOther(Command dependency, Command other, BooleanSupplier additionalCondition) { - return schedule(other, () -> dependency.justStarted() && additionalCondition.getAsBoolean()); + public static void scheduleWithOther(Command dependency, Command other, BooleanSupplier additionalCondition) { + schedule(other, () -> dependency.justStarted() && additionalCondition.getAsBoolean()); } /** @@ -272,14 +269,13 @@ public CommandScheduler scheduleWithOther(Command dependency, Command other, Boo * @param subsystem The subsystem to run the command against when it's unused * @return The CommandScheduler singleton for chaining */ - public CommandScheduler scheduleDefault(Command command, Subsystem subsystem) { + public static void scheduleDefault(Command command, Subsystem subsystem) { if (command.getRequirements().contains(subsystem)) { defaultMap.put(subsystem, command); schedule(command, () -> getCurrent(subsystem) == command); } else { System.err.println("default commands must require their subsystem: " + command.getClass().toString()); } - return this; } /** @@ -288,9 +284,8 @@ public CommandScheduler scheduleDefault(Command command, Subsystem subsystem) { * @param p The Periodic function to run * @return The CommandScheduler singleton for chaining */ - public CommandScheduler register(Periodic p) { + public static void register(Periodic p) { registered.add(p); - return this; } /** @@ -300,7 +295,7 @@ public CommandScheduler register(Periodic p) { * @return the default command for the subsystem, or null if there is none */ @Nullable - public Command getDefault(Subsystem s) { + public static Command getDefault(Subsystem s) { return opMode.getOpModeState() == CommandOpMode.OpModeState.RUN ? defaultMap.get(s) : null; } @@ -313,7 +308,7 @@ public Command getDefault(Subsystem s) { * command usint the subsystem, nor a default command */ @Nullable - public Command getCurrent(Subsystem s) { + public static Command getCurrent(Subsystem s) { if (requirementMap.get(s) == null) return null; for (Command c : requirementMap.get(s)) { if (c.isRunning()) return c; @@ -329,21 +324,20 @@ public Command getCurrent(Subsystem s) { * @param supplier The function that returns true when the command should be run * @return the CommandScheduler singleton for easy chaining */ - public CommandScheduler schedule(Command command, BooleanSupplier supplier) { + public static void schedule(Command command, BooleanSupplier supplier) { commandMap.put(command, supplier); for (Subsystem s : command.getRequirements()) { requirementMap.putIfAbsent(s, new LinkedHashSet<>()); requirementMap.get(s).add(command); register(s); } - return this; } /** * This is invoked from inside the CommandOpMode method, during the opCode. * It it the core logic of actually scheduling & running the commands. */ - public void run() { + public static void run() { // For each newly scheduled command, // cancel any existing command that is using the new command's subsystem requirements commandMap.forEach((c1, b) -> { diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ConditionalCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ConditionalCommand.java index 375981db..5676b893 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ConditionalCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ConditionalCommand.java @@ -45,7 +45,7 @@ public ConditionalCommand(BooleanSupplier condition) { public ConditionalCommand(BooleanSupplier condition, Command command) { supplier = condition; trueCommand = command; - CommandScheduler.getInstance().scheduleWithOther(this, trueCommand, condition); + CommandScheduler.scheduleWithOther(this, trueCommand, condition); falseCommand = null; } @@ -60,8 +60,8 @@ public ConditionalCommand(BooleanSupplier condition, Command trueC, Command fals supplier = condition; trueCommand = trueC; falseCommand = falseC; - CommandScheduler.getInstance().scheduleWithOther(this, trueCommand, condition); - CommandScheduler.getInstance().scheduleWithOther(this, falseCommand, () -> !condition.getAsBoolean()); + CommandScheduler.scheduleWithOther(this, trueCommand, condition); + CommandScheduler.scheduleWithOther(this, falseCommand, () -> !condition.getAsBoolean()); } @Override diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParallelCommandGroup.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParallelCommandGroup.java index ee53b828..2ba12847 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParallelCommandGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParallelCommandGroup.java @@ -18,7 +18,7 @@ public ParallelCommandGroup(Command... commands) { @Override public void schedule(Command c) { - CommandScheduler.getInstance().scheduleWithOther(this, c); + CommandScheduler.scheduleWithOther(this, c); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParallelDeadlineGroup.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParallelDeadlineGroup.java index 2171a191..7b358279 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParallelDeadlineGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParallelDeadlineGroup.java @@ -28,7 +28,7 @@ public ParallelDeadlineGroup(Command command, Command... commands) { */ @Override public void schedule(Command c) { - CommandScheduler.getInstance().scheduleWithOther(this, c); + CommandScheduler.scheduleWithOther(this, c); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParallelRaceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParallelRaceGroup.java index 9d9cd541..bc111b44 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParallelRaceGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParallelRaceGroup.java @@ -23,7 +23,7 @@ public ParallelRaceGroup(Command... commands) { */ @Override public void schedule(Command c) { - CommandScheduler.getInstance().scheduleWithOther(this, c); + CommandScheduler.scheduleWithOther(this, c); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SequentialCommandGroup.java b/RobotLibrary/src/main/java/com/technototes/library/command/SequentialCommandGroup.java index f4f43c1b..c8bfaee0 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SequentialCommandGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SequentialCommandGroup.java @@ -27,9 +27,9 @@ public SequentialCommandGroup(Command... commands) { @Override public void schedule(Command c) { if (lastCommand == null) { - CommandScheduler.getInstance().scheduleWithOther(this, c); + CommandScheduler.scheduleWithOther(this, c); } else { - CommandScheduler.getInstance().scheduleAfterOther(lastCommand, c); + CommandScheduler.scheduleAfterOther(lastCommand, c); } lastCommand = c; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandGamepad.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandGamepad.java index 00f93fa8..8ff15a73 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandGamepad.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandGamepad.java @@ -44,12 +44,12 @@ public CommandGamepad scheduleDpad(BiConsumer f) { } public CommandGamepad scheduleStick(Stick s, BiFunction f) { - CommandScheduler.getInstance().scheduleJoystick(f.apply(s.getXAxis(), s.getXAxis())); + CommandScheduler.scheduleJoystick(f.apply(s.getXAxis(), s.getXAxis())); return this; } public CommandGamepad scheduleStick(Stick s, BiConsumer f) { - CommandScheduler.getInstance().scheduleJoystick(() -> f.accept(s.getXAxis(), s.getXAxis())); + CommandScheduler.scheduleJoystick(() -> f.accept(s.getXAxis(), s.getXAxis())); return this; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index 750df3de..e1fffe63 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -145,7 +145,7 @@ default T whileInverseToggled(Command command) { * @return The CommandInput<T> instance */ default T schedule(BooleanSupplier condition, Command command) { - CommandScheduler.getInstance().scheduleJoystick(command, condition); + CommandScheduler.scheduleJoystick(command, condition); return getInstance(); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java index 6205b678..be850c7d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java @@ -9,7 +9,6 @@ * @param The class for the default device (ones found in ftcsdk) * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public abstract class HardwareDevice { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java index 509f884b..a956e9ea 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java @@ -10,7 +10,6 @@ * * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public interface HardwareDeviceGroup { /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/Sensored.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/Sensored.java index 81d43481..905ab470 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/Sensored.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/Sensored.java @@ -10,7 +10,6 @@ * * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public interface Sensored extends DoubleSupplier { /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java index 179f17d9..a03f418b 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java @@ -9,7 +9,8 @@ /** * There's just no possible way I care about this. I think there are rules about *not* playing - * anything through the speaker now, anyway. This is going away. + * anything through the speaker now, anyway. This is going away. (The rules were created because + * of Alex, if I recall correctly... */ @Deprecated public class Speaker { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index ae726fba..b111b26a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -143,6 +143,31 @@ public EncodedMotor invert() { return setInverted(!getInverted()); } + /** + * Set the motor to go *backward* + */ + @Override + public EncodedMotor setBackward() { + super.setBackward(); + return this; + } + + /** + * Set the motor to go *forward* + */ + public EncodedMotor setForward() { + super.setForward(); + return this; + } + + /** + * Set the motor to go in a particular direction + */ + public EncodedMotor setDirection(DcMotorSimple.Direction dir) { + super.setDirection(dir); + return this; + } + /** * Get the encoder position value * diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index e3bae9fa..bb1ef7ca 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -54,34 +54,74 @@ public Motor setLimits(double mi, double ma) { /** * Returns whether the motor is inverted. WARNING: THIS RETURNS TRUE FOR A "FORWARD" SETTING! + * Use getDirection() instead! * * @return True for inverted (forward) false for not inverted (reverse) */ @Override + @Deprecated public boolean getInverted() { return invert; } + /** + * Returns the DcMotorSimple.Direction the motor is traveling + */ + public DcMotorSimple.Direction getDirection() { + return getDevice().getDirection(); + } + /** * Set the Inverted state for the motor. WARNING: THIS IS BACKWARD TO WHAT YOU MIGHT THINK! * True - Motor goes *forward*. False - motor goes *reverse*. + * Use setForward()/setBackward() instead! * * @param inv true for forward, false for reverse (probably not what you were expecting) * @return The motor (for chaining) */ @Override + @Deprecated public Motor setInverted(boolean inv) { getDevice().setDirection(inv ? DcMotorSimple.Direction.FORWARD : DcMotorSimple.Direction.REVERSE); invert = inv; return this; } + /** + * Set the motor to go *backward* + */ + public Motor setBackward() { + getDevice().setDirection(DcMotorSimple.Direction.REVERSE); + invert = true; + return this; + } + + /** + * Set the motor to go *forward* + */ + public Motor setForward() { + getDevice().setDirection(DcMotorSimple.Direction.FORWARD); + invert = false; + return this; + } + + /** + * Set the motor to go in a particular direction + */ + public Motor setDirection(DcMotorSimple.Direction dir) { + getDevice().setDirection(dir); + invert = dir == DcMotorSimple.Direction.FORWARD; + return this; + } + /** * Invert the motor (toggle inversion) + * Use setForward()/setBackward() instead! * * @return The motor (for chaining) */ @Override + @Deprecated public Motor invert() { return setInverted(!getInverted()); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java index 942bccf2..343160d2 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java @@ -9,7 +9,6 @@ * * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public class Rev2MDistanceSensor extends Sensor implements IDistanceSensor { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java index 701f0192..5420a9f4 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java @@ -15,7 +15,6 @@ * * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public class Servo extends HardwareDevice diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java index c80ef063..3f5828b3 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java @@ -8,7 +8,6 @@ * * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public class ServoGroup extends Servo implements HardwareDeviceGroup { diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index 9bfef275..bbb2ddfc 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -31,6 +31,7 @@ public class Logger { public Entry[] initEntries; private final Set> unindexedRunEntries; private final Set> unindexedInitEntries; + private final Set recordedAlready; private final Telemetry telemetry; private final OpMode opMode; /** @@ -49,6 +50,7 @@ public Logger(OpMode op) { telemetry.setDisplayFormat(Telemetry.DisplayFormat.HTML); unindexedRunEntries = new LinkedHashSet<>(); unindexedInitEntries = new LinkedHashSet<>(); + recordedAlready = new LinkedHashSet<>(); configure(op); runEntries = generate(unindexedRunEntries); initEntries = generate(unindexedInitEntries); @@ -58,9 +60,10 @@ private void configure(Object root) { for (Field field : root.getClass().getFields()) { try { Object o = field.get(root); - if (isFieldAllowed(field)) { + if (!recordedAlready.contains(o) && isFieldAllowed(field)) { if (o instanceof Loggable) { configure(o); + recordedAlready.add(o); } else if ( field.isAnnotationPresent(Log.class) || field.isAnnotationPresent(Log.Number.class) || diff --git a/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java b/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java index 81419465..c8dd453f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java +++ b/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java @@ -61,7 +61,8 @@ public double getOpModeRuntime() { @Override public final void runOpMode() { opModeState = OpModeState.INIT; - CommandScheduler.resetScheduler().setOpMode(this); + CommandScheduler.resetScheduler(); + CommandScheduler.setOpMode(this); hubs = hardwareMap.getAll(LynxModule.class); hubs.forEach(e -> e.setBulkCachingMode(LynxModule.BulkCachingMode.MANUAL)); HardwareBuilder.initMap(hardwareMap); @@ -73,20 +74,20 @@ public final void runOpMode() { while (!(isStarted() && additionalInitConditions()) && !terminated && !isStopRequested()) { initLoop(); universalLoop(); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); logger.initUpdate(); driverGamepad.periodic(); codriverGamepad.periodic(); hubs.forEach(LynxModule::clearBulkCache); } opModeState = OpModeState.RUN; - CommandScheduler.getInstance().run(); + CommandScheduler.run(); uponStart(); opModeTimer.reset(); while (opModeIsActive() && !terminated && !isStopRequested()) { runLoop(); universalLoop(); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); logger.runUpdate(); driverGamepad.periodic(); codriverGamepad.periodic(); @@ -94,7 +95,7 @@ public final void runOpMode() { } opModeState = OpModeState.END; end(); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); CommandScheduler.resetScheduler(); opModeTimer.reset(); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/Subsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/Subsystem.java index 5661c3ff..bc7a21b8 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/Subsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/Subsystem.java @@ -6,16 +6,16 @@ public interface Subsystem extends Periodic { default void register() { - CommandScheduler.getInstance().register(this); + CommandScheduler.register(this); } default Subsystem setDefaultCommand(Command c) { - CommandScheduler.getInstance().scheduleDefault(c, this); + CommandScheduler.scheduleDefault(c, this); return this; } default Command getDefaultCommand() { - return CommandScheduler.getInstance().getDefault(this); + return CommandScheduler.getDefault(this); } @Override From bf1474050178f3eaa9f5ddba0e005ff09823b8c3 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Wed, 4 Oct 2023 21:05:35 -0700 Subject: [PATCH 08/47] Removed some deprecated stuff --- .../library/command/CommandBase.java | 26 ---------- .../library/hardware/HardwareDeviceGroup.java | 12 ----- .../library/hardware/motor/EncodedMotor.java | 27 +--------- .../library/hardware/motor/Motor.java | 49 +------------------ .../library/hardware/sensor/Sensor.java | 1 - 5 files changed, 3 insertions(+), 112 deletions(-) delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/CommandBase.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandBase.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandBase.java deleted file mode 100644 index 0051d4b6..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandBase.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.technototes.library.command; - -/** - * Command base class for people who like parity with wpilib - *

    - * Deprecated because I don't care about wpilib in the least - */ -@Deprecated -public abstract class CommandBase implements Command { - - /** - * Execute the command - */ - @Override - public void execute() {} - - /** - * Is this command finished - * - * @return - */ - @Override - public boolean isFinished() { - return false; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java index a956e9ea..d5785348 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java @@ -34,20 +34,8 @@ default List getAllDeviceList() { return Arrays.asList(getAllDevices()); } - /** - * Propogate actions across the followers - *

    - * Note to self: Alex couldn't spell :) - * - * @param value the value to propogate - */ - @Deprecated - default void propogate(double value) {} - /** * Propagate actions across the followers - *

    - * Note to self: Alex couldn't spell :) * * @param value the value to propagate */ diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index b111b26a..9159bac8 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -118,31 +118,6 @@ public EncodedMotor setRunMode(DcMotor.RunMode m) { return this; } - /** - * Set the Inverted state for the motor. WARNING: THIS IS BACKWARD TO WHAT YOU MIGHT THINK! - * True - Motor goes *forward*. False - motor goes *reverse*. - *

    - * This is overridden so it can return an EncodedMotor, and not just a Motor - * - * @param invert true for forward, false for reverse (probably not what you were expecting) - * @return The motor (for chaining) - */ - @Override - public EncodedMotor setInverted(boolean invert) { - super.setInverted(invert); - return this; - } - - /** - * Invert the motor (toggle inversion) - * - * @return The motor (for chaining) - */ - @Override - public EncodedMotor invert() { - return setInverted(!getInverted()); - } - /** * Set the motor to go *backward* */ @@ -155,6 +130,7 @@ public EncodedMotor setBackward() { /** * Set the motor to go *forward* */ + @Override public EncodedMotor setForward() { super.setForward(); return this; @@ -163,6 +139,7 @@ public EncodedMotor setForward() { /** * Set the motor to go in a particular direction */ + @Override public EncodedMotor setDirection(DcMotorSimple.Direction dir) { super.setDirection(dir); return this; diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index bb1ef7ca..01c5321f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -3,7 +3,6 @@ import com.qualcomm.robotcore.hardware.DcMotor; import com.qualcomm.robotcore.hardware.DcMotorSimple; import com.qualcomm.robotcore.util.Range; -import com.technototes.library.general.Invertable; import com.technototes.library.hardware.HardwareDevice; import java.util.function.Supplier; @@ -14,11 +13,8 @@ * @author Alex Stedman */ @SuppressWarnings("unused") -public class Motor - extends HardwareDevice - implements Invertable>, Supplier { +public class Motor extends HardwareDevice implements Supplier { - private boolean invert = false; private double min = -1, max = 1; /** @@ -52,18 +48,6 @@ public Motor setLimits(double mi, double ma) { return this; } - /** - * Returns whether the motor is inverted. WARNING: THIS RETURNS TRUE FOR A "FORWARD" SETTING! - * Use getDirection() instead! - * - * @return True for inverted (forward) false for not inverted (reverse) - */ - @Override - @Deprecated - public boolean getInverted() { - return invert; - } - /** * Returns the DcMotorSimple.Direction the motor is traveling */ @@ -71,28 +55,11 @@ public DcMotorSimple.Direction getDirection() { return getDevice().getDirection(); } - /** - * Set the Inverted state for the motor. WARNING: THIS IS BACKWARD TO WHAT YOU MIGHT THINK! - * True - Motor goes *forward*. False - motor goes *reverse*. - * Use setForward()/setBackward() instead! - * - * @param inv true for forward, false for reverse (probably not what you were expecting) - * @return The motor (for chaining) - */ - @Override - @Deprecated - public Motor setInverted(boolean inv) { - getDevice().setDirection(inv ? DcMotorSimple.Direction.FORWARD : DcMotorSimple.Direction.REVERSE); - invert = inv; - return this; - } - /** * Set the motor to go *backward* */ public Motor setBackward() { getDevice().setDirection(DcMotorSimple.Direction.REVERSE); - invert = true; return this; } @@ -101,7 +68,6 @@ public Motor setBackward() { */ public Motor setForward() { getDevice().setDirection(DcMotorSimple.Direction.FORWARD); - invert = false; return this; } @@ -110,22 +76,9 @@ public Motor setForward() { */ public Motor setDirection(DcMotorSimple.Direction dir) { getDevice().setDirection(dir); - invert = dir == DcMotorSimple.Direction.FORWARD; return this; } - /** - * Invert the motor (toggle inversion) - * Use setForward()/setBackward() instead! - * - * @return The motor (for chaining) - */ - @Override - @Deprecated - public Motor invert() { - return setInverted(!getInverted()); - } - /** * Gets the power value for the motor * diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java index 667f2b4a..423dca7f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java @@ -8,7 +8,6 @@ * @param The Sensor hardware device * @author Alex Stedman */ -@Deprecated @SuppressWarnings("unused") public abstract class Sensor extends HardwareDevice { From aa5a2284115a9dd2b4d184976aed0e47a4394599 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 6 Oct 2023 10:31:03 -0700 Subject: [PATCH 09/47] Steps toward a simplified vision pipeline --- .../java/com/technototes/vision/HSVRange.java | 61 +++++++ .../subsystem/BasicVisionSubsystem.java | 153 ++++++++++++++++++ .../vision/subsystem/PipelineSubsystem.java | 70 -------- 3 files changed, 214 insertions(+), 70 deletions(-) create mode 100644 Vision/src/main/java/com/technototes/vision/HSVRange.java create mode 100644 Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java delete mode 100644 Vision/src/main/java/com/technototes/vision/subsystem/PipelineSubsystem.java diff --git a/Vision/src/main/java/com/technototes/vision/HSVRange.java b/Vision/src/main/java/com/technototes/vision/HSVRange.java new file mode 100644 index 00000000..658753db --- /dev/null +++ b/Vision/src/main/java/com/technototes/vision/HSVRange.java @@ -0,0 +1,61 @@ +package com.technototes.vision; + +import org.opencv.core.Scalar; + +public class HSVRange { + + int hueLow; + int hueHigh; + int satLow; + int satHigh; + int valLow; + int valHigh; + + // Private constructor for wrap around/truncation stuff + private HSVRange(int hLo, int hHi, HSVRange copyFrom) { + hueLow = hLo; + hueHigh = hHi; + satLow = copyFrom.satLow; + satHigh = copyFrom.satHigh; + valLow = copyFrom.valLow; + valHigh = copyFrom.valHigh; + } + + // Create an HSV color range, around 'hue' (0-180, 2 degrees) + public HSVRange(int hue, int hRange, int sLo, int sHi, int vLo, int vHi) { + while (hue > 180) { + hue -= 180; + } + while (hue < 0) { + hue += 180; + } + hueLow = hue - Math.min(Math.abs(hRange), 89); + hueHigh = hue + Math.min(Math.abs(hRange), 89); + satLow = Math.min(sLo, sHi); + satHigh = Math.max(sLo, sHi); + valLow = Math.min(vLo, vHi); + valHigh = Math.max(vLo, vHi); + } + + public HSVRange makeWrapAround() { + if (hueLow >= 0) { + return null; + } + return new HSVRange(180 + hueLow, 180, this); + } + + public HSVRange truncateRange() { + if (hueLow < 0) { + return new HSVRange(0, hueHigh, this); + } + return null; + } + + public Scalar lowEdge() { + return new Scalar(hueLow, satLow, valLow); + } + + public Scalar highEdge() { + return new Scalar(hueHigh, satHigh, valHigh); + } +} diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java new file mode 100644 index 00000000..0722b143 --- /dev/null +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -0,0 +1,153 @@ +package com.technototes.vision.subsystem; + +import com.technototes.library.subsystem.Subsystem; +import com.technototes.vision.HSVRange; +import com.technototes.vision.hardware.Camera; +import org.opencv.core.Core; +import org.opencv.core.Mat; +import org.opencv.core.Rect; +import org.opencv.core.Scalar; +import org.opencv.imgproc.Imgproc; +import org.openftc.easyopencv.OpenCvCameraRotation; +import org.openftc.easyopencv.OpenCvPipeline; + +/** + * A vision streaming pipeline to enable vision processing during an opmode + */ +@SuppressWarnings("unused") +public abstract class BasicVisionSubsystem extends OpenCvPipeline implements Subsystem { + + /** + * The Camera object this subsystem is processing frames from + */ + protected Camera camera; + protected int width, height; + protected OpenCvCameraRotation rotation; + protected Mat curFrameRGB; + protected boolean pipelineSet; + + /** + * Create the subsystem with the Camera provided + * + * @param c The camera to process frames from + */ + public BasicVisionSubsystem(Camera c, int w, int h, OpenCvCameraRotation rot) { + camera = c; + width = w; + height = h; + rotation = rot; + curFrameRGB = null; + pipelineSet = false; + } + + /** + * Get the Camera device that frames are being processed from + * + * @return the Camera device in use + */ + public Camera getDevice() { + return camera; + } + + protected void beginStreaming() { + camera.startStreaming(width, height, rotation); + } + + public void startVisionPipeline() { + camera.setPipeline(this); + pipelineSet = true; + // The i -> lambda appears to be for *error reporting* so this line is silly: + camera.openCameraDeviceAsync(this::beginStreaming, i -> startVisionPipeline()); + } + + public void stopVisionPipeline() { + camera.setPipeline(null); + pipelineSet = false; + camera.closeCameraDeviceAsync(() -> { + /* Do we need to do anything to stop the vision pipeline? */ + }); + } + + public BasicVisionSubsystem startStreaming() { + beginStreaming(); + return this; + } + + /** + * Stop frame processing + * + * @return this PipelineSubsystem (for chaining) + */ + public BasicVisionSubsystem stopStreaming() { + if (pipelineSet) { + stopVisionPipeline(); + } + camera.stopStreaming(); + return this; + } + + abstract int numRectangles(); + + abstract Rect getRect(int rectNumber); + + public abstract void runDetection(Mat inputHSV, int rectNumber); + + protected void detectionProcessing(Mat frame) { + // Put the input matrix in a member variable, so that other functions can draw on it + curFrameRGB = frame; + int count = numRectangles(); + + for (int i = 0; i < count; i++) { + // First, slice the smaller rectangle out of the overall bitmap: + Rect r = getRect(i); + Mat subRectRGB = curFrameRGB.submat(r.y, r.y + r.height, r.x, r.x + r.width); + + // Next, convert the RGB image to HSV, because HUE is much easier to identify colors in + // The output is in 'customColorSpace' + Mat subRectHSV = new Mat(); + Imgproc.cvtColor(subRectRGB, subRectHSV, Imgproc.COLOR_RGB2HSV); + runDetection(subRectHSV, i); + } + } + + @Override + public Mat processFrame(Mat input) { + detectionProcessing(input); + return input; + } + + public void init(Mat firstFrame) { + detectionProcessing(firstFrame); + } + + protected int countColorsInRect(HSVRange range, Mat imgHSV, Mat telemetryRGB, int xOffset, int yOffset) { + int totalColorCount = 0; + // Since we might have a hue range of -15 to 15 to detect red, + // make the range 165 to 180 and run countColorsInRect with just that range first + HSVRange handleRedWrap = range.makeWrapAround(); + if (handleRedWrap != null) { + totalColorCount += countColorsInRect(handleRedWrap, imgHSV, telemetryRGB, xOffset, yOffset); + range = range.truncateRange(); + } + Scalar low = range.lowEdge(); + Scalar high = range.highEdge(); + // Check to see which pixels are between low and high, output into a boolean matrix Cr + Mat count = new Mat(); + Core.inRange(imgHSV, low, high, count); + // TODO: It seems like there should be a more optimized way to do this. + for (int i = 0; i < count.width(); i++) { + for (int j = 0; j < count.height(); j++) { + if (count.get(j, i)[0] > 0) { + totalColorCount++; + // Draw a dots on the image at this point - input was put into img + if (telemetryRGB != null) { + // The color choice makes things stripey, which makes it easier to identify + double[] colorToDraw = ((j + i) & 3) != 0 ? low.val : high.val; + imgHSV.put(j + yOffset, i + xOffset, colorToDraw); + } + } + } + } + return totalColorCount; + } +} diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/PipelineSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/PipelineSubsystem.java deleted file mode 100644 index 63d98d35..00000000 --- a/Vision/src/main/java/com/technototes/vision/subsystem/PipelineSubsystem.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.technototes.vision.subsystem; - -import com.technototes.library.subsystem.Subsystem; -import com.technototes.vision.hardware.Camera; -import org.openftc.easyopencv.OpenCvCameraRotation; - -/** - * A vision streaming pipeline to enable vision processing during an opmode - */ -@SuppressWarnings("unused") -public class PipelineSubsystem implements Subsystem { - - /** - * The Camera object this subsystem is processing frames from - */ - protected Camera camera; - - /** - * Create the subsystem with the Camera provided - * - * @param c The camera to process frames from - */ - public PipelineSubsystem(Camera c) { - camera = c; - } - - /** - * Get the Camera device that frames are being processed from - * - * @return the Camera device in use - */ - public Camera getDevice() { - return camera; - } - - /** - * This begins streaming frames from the camera - * - * @param width The width of the frame (constrained to a specific range, based on the camera device) - * @param height The height of the frame (constrained based on the camera device) - * @return this PipelineSubsystem (for chaining, I guess?) - */ - public PipelineSubsystem startStreaming(int width, int height) { - camera.startStreaming(width, height); - return this; - } - - /** - * This begins streaming frames from the camera - * - * @param width The width of the frame (constrained to a specific range, based on the camera device) - * @param height The height of the frame (consrained based on the camera device) - * @param rotation The rotation of the frame to acquire - * @return this PipelineSubsystem (for chaining, I guess?) - */ - public PipelineSubsystem startStreaming(int width, int height, OpenCvCameraRotation rotation) { - camera.startStreaming(width, height, rotation); - return this; - } - - /** - * Stop frame processing - * - * @return this PipelineSubsystem (for chaining) - */ - public PipelineSubsystem stopStreaming() { - camera.stopStreaming(); - return this; - } -} From 7986261c4a6d6e75c7da407f586a33fe618eb1d1 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 13 Oct 2023 22:17:30 -0700 Subject: [PATCH 10/47] Finished spelling fix for propogate->propagate --- .../library/hardware/motor/EncodedMotorGroup.java | 6 +++--- .../com/technototes/library/hardware/motor/MotorGroup.java | 4 ++-- .../com/technototes/library/hardware/servo/ServoGroup.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java index 6931cff9..94104972 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java @@ -37,7 +37,7 @@ public Motor[] getAllDevices() { } @Override - public void propogate(double value) { + public void propagate(double value) { for (Motor m : followers) { m.setSpeed(value); } @@ -46,13 +46,13 @@ public void propogate(double value) { @Override public void setVelocity(double tps) { super.setVelocity(tps); - propogate(super.getSpeed()); + propagate(super.getSpeed()); } @Override public boolean setPosition(double ticks, double speed) { boolean b = super.setPosition(ticks, speed); - propogate(super.getSpeed()); + propagate(super.getSpeed()); return b; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java index 77744e0d..aa8db24b 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java @@ -37,7 +37,7 @@ public Motor[] getAllDevices() { } @Override - public void propogate(double value) { + public void propagate(double value) { for (Motor m : followers) { m.setSpeed(value); } @@ -46,6 +46,6 @@ public void propogate(double value) { @Override public void setSpeed(double speed) { super.setSpeed(speed); - propogate(speed); + propagate(speed); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java index 3f5828b3..616b977a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java @@ -39,7 +39,7 @@ public Servo[] getAllDevices() { } @Override - public void propogate(double value) { + public void propagate(double value) { for (Servo s : followers) { s.setPosition(value); } @@ -48,7 +48,7 @@ public void propogate(double value) { @Override public void setPosition(double position) { super.setPosition(position); - propogate(position); + propagate(position); } @Override From 75466e9171f01815a70a877ce244e525eb757f93 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 13 Oct 2023 22:38:23 -0700 Subject: [PATCH 11/47] Not yet used, but the PowerPlay branch is building with everything else --- .../java/com/technototes/vision/HSVRange.java | 9 +++------ .../vision/subsystem/BasicVisionSubsystem.java | 16 +++++++++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Vision/src/main/java/com/technototes/vision/HSVRange.java b/Vision/src/main/java/com/technototes/vision/HSVRange.java index 658753db..db9e4d88 100644 --- a/Vision/src/main/java/com/technototes/vision/HSVRange.java +++ b/Vision/src/main/java/com/technototes/vision/HSVRange.java @@ -4,12 +4,9 @@ public class HSVRange { - int hueLow; - int hueHigh; - int satLow; - int satHigh; - int valLow; - int valHigh; + int hueLow, hueHigh; + int satLow, satHigh; + int valLow, valHigh; // Private constructor for wrap around/truncation stuff private HSVRange(int hLo, int hHi, HSVRange copyFrom) { diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index 0722b143..bd816fe7 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -86,10 +86,16 @@ public BasicVisionSubsystem stopStreaming() { return this; } - abstract int numRectangles(); + // These are the three functions you need to implement. + // I use this so that you can edit your rectangles in realtime from the FtcDashboard. + // If you don't use FtcDashboard, just make an array of Rect's and be done with it. + // But really, you should be using FtcDashboard. It's much faster to get this right. + // How many rectangles are you checking? + abstract int numRectangles(); + // Get the specific rectangle number abstract Rect getRect(int rectNumber); - + // Process the particular rectangle (you probably want to call countPixelsOfColor ;) ) public abstract void runDetection(Mat inputHSV, int rectNumber); protected void detectionProcessing(Mat frame) { @@ -120,13 +126,13 @@ public void init(Mat firstFrame) { detectionProcessing(firstFrame); } - protected int countColorsInRect(HSVRange range, Mat imgHSV, Mat telemetryRGB, int xOffset, int yOffset) { + protected int countPixelsOfColor(HSVRange range, Mat imgHSV, Mat telemetryRGB, int xOffset, int yOffset) { int totalColorCount = 0; // Since we might have a hue range of -15 to 15 to detect red, // make the range 165 to 180 and run countColorsInRect with just that range first HSVRange handleRedWrap = range.makeWrapAround(); if (handleRedWrap != null) { - totalColorCount += countColorsInRect(handleRedWrap, imgHSV, telemetryRGB, xOffset, yOffset); + totalColorCount += countPixelsOfColor(handleRedWrap, imgHSV, telemetryRGB, xOffset, yOffset); range = range.truncateRange(); } Scalar low = range.lowEdge(); @@ -143,7 +149,7 @@ protected int countColorsInRect(HSVRange range, Mat imgHSV, Mat telemetryRGB, in if (telemetryRGB != null) { // The color choice makes things stripey, which makes it easier to identify double[] colorToDraw = ((j + i) & 3) != 0 ? low.val : high.val; - imgHSV.put(j + yOffset, i + xOffset, colorToDraw); + telemetryRGB.put(j + yOffset, i + xOffset, colorToDraw); } } } From 7d16862a1d502ef3515134c890b527a353c6aad5 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 13 Oct 2023 23:28:58 -0700 Subject: [PATCH 12/47] Okay, more than just Vision improvements. [move to new branch] --- .../library/command/CommandScheduler.java | 33 +++++++------------ .../command/ParameterCommandWrapper.java | 25 ++++++++++++++ .../library/command/SimpleCommandWrapper.java | 22 +++++++++++++ 3 files changed, 58 insertions(+), 22 deletions(-) create mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java create mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index 41e15ef3..2376f719 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -8,7 +8,9 @@ import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; +import java.util.function.BiConsumer; import java.util.function.BooleanSupplier; +import java.util.function.Consumer; /** * This is a "singleton" object for scheduling commands. Most usage originates from {@link Command} @@ -22,7 +24,6 @@ * TODO: yoink that method and make static methods for next year's release... */ public final class CommandScheduler { - private static Map commandMap = new HashMap<>(); private static Map> requirementMap = new HashMap<>(); private static Map defaultMap = new HashMap<>(); @@ -42,8 +43,6 @@ public static void setOpMode(CommandOpMode c) { /** * Forcefully halt the opmode - * - * @return the CommandScheduler (useful for chaining) */ public static void terminateOpMode() { opMode.terminate(); @@ -75,9 +74,8 @@ public static synchronized CommandScheduler getInstance() { /** * Alex had a comment "be careful with this" and he's not wrong. - * This removes the old Singleton and creates a new one. That's pretty dangerous... - * - * @return a *new* singleton object (which makes very little sense) + * This used to remove the old Singleton and creates a new one. That was pretty dangerous... + * Now it just resets the scheduler... */ public static void resetScheduler() { Command.clear(); @@ -96,7 +94,6 @@ private CommandScheduler() { * Schedule a command to run * * @param command the command to schedule - * @return the CommandScheduler (useful for chaining) */ public static void schedule(Command command) { schedule(command, () -> true); @@ -106,7 +103,6 @@ public static void schedule(Command command) { * Schedule a command to run * * @param command the command to schedule - * @return the CommandScheduler (useful for chaining) */ public static void scheduleOnce(Command command) { schedule(command); @@ -117,7 +113,6 @@ public static void scheduleOnce(Command command) { * * @param command the command to schedule * @param state the state during which the command should be scheduled - * @return the CommandScheduler (useful for chaining) */ public static void scheduleOnceForState(Command command, CommandOpMode.OpModeState state) { scheduleForState(command, state); @@ -131,7 +126,6 @@ public static void scheduleOnceForState(Command command, CommandOpMode.OpModeSta * * @param command The command to run * @param supplier The condition which also must be true to run the command - * @return The CommandScheduler singleton for chaining */ public static void scheduleInit(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); @@ -143,7 +137,6 @@ public static void scheduleInit(Command command, BooleanSupplier supplier) { * drive team ensure that the robot is appropriately positioned on the field. * * @param command The command to run - * @return The CommandScheduler singleton for chaining */ public static void scheduleInit(Command command) { scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); @@ -158,7 +151,6 @@ public static void scheduleInit(Command command) { * * @param command The command to run repeatedly * @param supplier The condition which must also be true to run the command - * @return The CommandScheduler singleton for chaining */ public static void scheduleJoystick(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); @@ -171,7 +163,6 @@ public static void scheduleJoystick(Command command, BooleanSupplier supplier) { * just runs repeatedly * * @param command The command to run repeatedly. - * @return The CommandScheduler singleton for chaining */ public static void scheduleJoystick(Command command) { scheduleForState(command, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); @@ -184,7 +175,6 @@ public static void scheduleJoystick(Command command) { * @param command The command to run * @param states The list of states to schedule the command * @param supplier The function to determin in the command should be scheduled - * @return The CommandScheduler singleton for chaining */ public static void scheduleForState( Command command, @@ -202,7 +192,6 @@ public static void scheduleForState( * * @param command The command to run * @param states The list of states to schedule the command - * @return The CommandScheduler singleton for chaining */ public static void scheduleForState(Command command, CommandOpMode.OpModeState... states) { schedule( @@ -217,7 +206,6 @@ public static void scheduleForState(Command command, CommandOpMode.OpModeState.. * * @param dependency The command upon which 'other' depends * @param other The command to schedule when 'dependency' has finished - * @return The CommandScheduler singleton for chaining */ public static void scheduleAfterOther(Command dependency, Command other) { schedule(other, dependency::justFinishedNoCancel); @@ -229,7 +217,6 @@ public static void scheduleAfterOther(Command dependency, Command other) { * * @param dependency The command upon which 'other' depends * @param other The command to schedule when 'dependency' has started - * @return The CommandScheduler singleton for chaining */ public static void scheduleWithOther(Command dependency, Command other) { schedule(other, dependency::justStarted); @@ -242,7 +229,6 @@ public static void scheduleWithOther(Command dependency, Command other) { * @param dependency The command upon which 'other' depends * @param other The command to schedule when 'dependency' has finished * @param additionalCondition The additional condition necessary to be true to schedule the 'other' command - * @return The CommandScheduler singleton for chaining */ public static void scheduleAfterOther(Command dependency, Command other, BooleanSupplier additionalCondition) { schedule(other, () -> dependency.justFinishedNoCancel() && additionalCondition.getAsBoolean()); @@ -255,7 +241,6 @@ public static void scheduleAfterOther(Command dependency, Command other, Boolean * @param dependency The command upon which 'other' depends * @param other The command to schedule when 'dependency' has started * @param additionalCondition The additional condition necessary to be true to schedule the 'other' command - * @return The CommandScheduler singleton for chaining */ public static void scheduleWithOther(Command dependency, Command other, BooleanSupplier additionalCondition) { schedule(other, () -> dependency.justStarted() && additionalCondition.getAsBoolean()); @@ -267,7 +252,6 @@ public static void scheduleWithOther(Command dependency, Command other, BooleanS * * @param command The command to be run when others aren't using that subsystem * @param subsystem The subsystem to run the command against when it's unused - * @return The CommandScheduler singleton for chaining */ public static void scheduleDefault(Command command, Subsystem subsystem) { if (command.getRequirements().contains(subsystem)) { @@ -282,7 +266,6 @@ public static void scheduleDefault(Command command, Subsystem subsystem) { * Register a periodic function to be run once each schedule loop * * @param p The Periodic function to run - * @return The CommandScheduler singleton for chaining */ public static void register(Periodic p) { registered.add(p); @@ -322,7 +305,6 @@ public static Command getCurrent(Subsystem s) { * * @param command The command to schedule * @param supplier The function that returns true when the command should be run - * @return the CommandScheduler singleton for easy chaining */ public static void schedule(Command command, BooleanSupplier supplier) { commandMap.put(command, supplier); @@ -333,6 +315,13 @@ public static void schedule(Command command, BooleanSupplier supplier) { } } + public static void schedule(S req, Consumer methodRef, BooleanSupplier sup) { + schedule(new SimpleCommandWrapper(req, methodRef), sup); + } + public static void schedule(S req, BiConsumer methodRef, T param, BooleanSupplier sup) { + schedule(new ParameterCommandWrapper(req, methodRef, param), sup); + } + /** * This is invoked from inside the CommandOpMode method, during the opCode. * It it the core logic of actually scheduling & running the commands. diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java new file mode 100644 index 00000000..8d023f2d --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java @@ -0,0 +1,25 @@ +package com.technototes.library.command; + +import com.technototes.library.subsystem.Subsystem; + +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class ParameterCommandWrapper implements Command { + T sub; + U param; + BiConsumer method; + + public ParameterCommandWrapper(T s, BiConsumer m, U arg) { + super(); + s = sub; + param = arg; + method = m; + addRequirements(sub); + } + + @Override + public void execute() { + method.accept(sub, param); + } +} \ No newline at end of file diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java new file mode 100644 index 00000000..0ff478ff --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java @@ -0,0 +1,22 @@ +package com.technototes.library.command; + +import com.technototes.library.subsystem.Subsystem; + +import java.util.function.Consumer; + +public class SimpleCommandWrapper implements Command { + T sub; + Consumer method; + + public SimpleCommandWrapper(T s, Consumer m) { + super(); + s = sub; + method = m; + addRequirements(sub); + } + + @Override + public void execute() { + method.accept(sub); + } +} From b38a93ed3ca052d3216de9b76eeac731c291f3e0 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 14 Oct 2023 08:14:07 -0700 Subject: [PATCH 13/47] Added consumer/biconsumer versions of CommandSchedule.schedule* functions --- .../library/command/CommandScheduler.java | 75 +++++++++++++++---- ...mandWrapper.java => ParameterCommand.java} | 5 +- ...CommandWrapper.java => SimpleCommand.java} | 4 +- 3 files changed, 66 insertions(+), 18 deletions(-) rename RobotLibrary/src/main/java/com/technototes/library/command/{ParameterCommandWrapper.java => ParameterCommand.java} (67%) rename RobotLibrary/src/main/java/com/technototes/library/command/{SimpleCommandWrapper.java => SimpleCommand.java} (72%) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index 2376f719..b5b0eecc 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -1,9 +1,11 @@ package com.technototes.library.command; import androidx.annotation.Nullable; + import com.technototes.library.general.Periodic; import com.technototes.library.structure.CommandOpMode; import com.technototes.library.subsystem.Subsystem; + import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; @@ -65,10 +67,10 @@ public static double getOpModeRuntime() { * * @return The CommandScheduler singleton public static synchronized CommandScheduler getInstance() { - if (instance == null) { - instance = new CommandScheduler(); - } - return instance; + if (instance == null) { + instance = new CommandScheduler(); + } + return instance; } */ @@ -98,6 +100,12 @@ private CommandScheduler() { public static void schedule(Command command) { schedule(command, () -> true); } + public static void schedule(S req, Consumer methodRef) { + schedule(new SimpleCommand(req, methodRef), () -> true); + } + public static void schedule(S req, BiConsumer methodRef, T param) { + schedule(new ParameterCommand(req, methodRef, param), () -> true); + } /** * Schedule a command to run @@ -130,6 +138,12 @@ public static void scheduleOnceForState(Command command, CommandOpMode.OpModeSta public static void scheduleInit(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); } + public static void scheduleInit(S req, Consumer methodRef, BooleanSupplier supplier) { + scheduleInit(new SimpleCommand(req, methodRef), supplier); + } + public static void scheduleInit(S req, BiConsumer methodRef, T param, BooleanSupplier supplier) { + scheduleInit(new ParameterCommand(req, methodRef, param), supplier); + } /** * Schedule a command to be run recurringly during the 'Init' phase of an opmode. @@ -141,6 +155,12 @@ public static void scheduleInit(Command command, BooleanSupplier supplier) { public static void scheduleInit(Command command) { scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); } + public static void scheduleInit(S req, Consumer methodRef) { + scheduleInit(new SimpleCommand(req, methodRef)); + } + public static void scheduleInit(S req, BiConsumer methodRef, T param) { + scheduleInit(new ParameterCommand(req, methodRef, param)); + } /** * Schedules a command to be run during Run and End states, all the time. @@ -177,16 +197,26 @@ public static void scheduleJoystick(Command command) { * @param supplier The function to determin in the command should be scheduled */ public static void scheduleForState( - Command command, - BooleanSupplier supplier, - CommandOpMode.OpModeState... states + Command command, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states ) { schedule( - command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), - () -> supplier.getAsBoolean() && opMode.getOpModeState().isState(states) + command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), + () -> supplier.getAsBoolean() && opMode.getOpModeState().isState(states) ); } + public static void scheduleForState(S req, Consumer methodRef, BooleanSupplier supplier, + CommandOpMode.OpModeState... states) { + scheduleForState(new SimpleCommand(req, methodRef), supplier, states); + } + + public static void scheduleForState(S req, BiConsumer methodRef, T param, BooleanSupplier supplier, + CommandOpMode.OpModeState... states) { + scheduleForState(new ParameterCommand(req, methodRef, param), supplier, states); + } + /** * Schedule a command to be run when the OpMode is one of the provided list of states. * @@ -195,11 +225,20 @@ public static void scheduleForState( */ public static void scheduleForState(Command command, CommandOpMode.OpModeState... states) { schedule( - command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), - () -> opMode.getOpModeState().isState(states) + command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), + () -> opMode.getOpModeState().isState(states) ); } + public static void scheduleForState(S req, Consumer methodRef, CommandOpMode.OpModeState... states) { + scheduleForState(new SimpleCommand(req, methodRef), states); + } + + public static void scheduleForState(S req, BiConsumer methodRef, T param, CommandOpMode.OpModeState... states) { + scheduleForState(new ParameterCommand(req, methodRef, param), states); + } + + /** * Schedule the 'other' command (the second one) when the 'dependency' command has * finished (but *not* been cancelled!). @@ -262,6 +301,15 @@ public static void scheduleDefault(Command command, Subsystem subsystem) { } } + public static void scheduleDefault(S req, Consumer methodRef) { + scheduleDefault(new SimpleCommand(req, methodRef), req); + } + + public static void scheduleDefault(S req, BiConsumer methodRef, T param) { + scheduleDefault(new ParameterCommand(req, methodRef, param), req); + } + + /** * Register a periodic function to be run once each schedule loop * @@ -316,10 +364,11 @@ public static void schedule(Command command, BooleanSupplier supplier) { } public static void schedule(S req, Consumer methodRef, BooleanSupplier sup) { - schedule(new SimpleCommandWrapper(req, methodRef), sup); + schedule(new SimpleCommand(req, methodRef), sup); } + public static void schedule(S req, BiConsumer methodRef, T param, BooleanSupplier sup) { - schedule(new ParameterCommandWrapper(req, methodRef, param), sup); + schedule(new ParameterCommand(req, methodRef, param), sup); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java similarity index 67% rename from RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java rename to RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java index 8d023f2d..b65331cb 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommandWrapper.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java @@ -3,14 +3,13 @@ import com.technototes.library.subsystem.Subsystem; import java.util.function.BiConsumer; -import java.util.function.Consumer; -public class ParameterCommandWrapper implements Command { +public class ParameterCommand implements Command { T sub; U param; BiConsumer method; - public ParameterCommandWrapper(T s, BiConsumer m, U arg) { + public ParameterCommand(T s, BiConsumer m, U arg) { super(); s = sub; param = arg; diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java similarity index 72% rename from RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java rename to RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java index 0ff478ff..8f345c49 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommandWrapper.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java @@ -4,11 +4,11 @@ import java.util.function.Consumer; -public class SimpleCommandWrapper implements Command { +public class SimpleCommand implements Command { T sub; Consumer method; - public SimpleCommandWrapper(T s, Consumer m) { + public SimpleCommand(T s, Consumer m) { super(); s = sub; method = m; From 90c051e9bd180bfa913d421b1b6e6609509b173b Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 14 Oct 2023 15:00:45 -0700 Subject: [PATCH 14/47] Updated tests --- .../library/command/CancelCommandTest.java | 4 +-- .../library/command/CommandGroupTest.java | 4 +-- .../library/command/CommandTest.java | 4 +-- .../command/RequirementCommandTest.java | 8 +++--- .../library/command/SimpleCommandTest.java | 28 +++++++++---------- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/RobotLibrary/src/test/java/com/technototes/library/command/CancelCommandTest.java b/RobotLibrary/src/test/java/com/technototes/library/command/CancelCommandTest.java index 4c4ec725..a47ac886 100644 --- a/RobotLibrary/src/test/java/com/technototes/library/command/CancelCommandTest.java +++ b/RobotLibrary/src/test/java/com/technototes/library/command/CancelCommandTest.java @@ -29,9 +29,9 @@ public void scheduleCommand() { Command c = new cmd(); ElapsedTime t = new ElapsedTime(); t.reset(); - CommandScheduler.getInstance().scheduleOnce(c.cancelUpon(() -> c.getRuntime().seconds() > 1)); + CommandScheduler.scheduleOnce(c.cancelUpon(() -> c.getRuntime().seconds() > 1)); while (t.seconds() < 5.5) { - CommandScheduler.getInstance().run(); + CommandScheduler.run(); if (c.justFinished()) System.out.println("finish"); // System.out.println(e++); } diff --git a/RobotLibrary/src/test/java/com/technototes/library/command/CommandGroupTest.java b/RobotLibrary/src/test/java/com/technototes/library/command/CommandGroupTest.java index bf25f7a0..08bada05 100644 --- a/RobotLibrary/src/test/java/com/technototes/library/command/CommandGroupTest.java +++ b/RobotLibrary/src/test/java/com/technototes/library/command/CommandGroupTest.java @@ -15,9 +15,9 @@ public void setup() { @Test public void scheduleCommand() { CommandGroup g = new SequentialCommandGroup(c1, c2, c3, c4, c5); - CommandScheduler.getInstance().schedule(g); + CommandScheduler.schedule(g); for (int i = 0; i < 100; i++) { - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // System.out.println(e++);' } } diff --git a/RobotLibrary/src/test/java/com/technototes/library/command/CommandTest.java b/RobotLibrary/src/test/java/com/technototes/library/command/CommandTest.java index c7a60c51..45a1dbce 100644 --- a/RobotLibrary/src/test/java/com/technototes/library/command/CommandTest.java +++ b/RobotLibrary/src/test/java/com/technototes/library/command/CommandTest.java @@ -20,9 +20,9 @@ public void setup() { public void scheduleCommand() { long i = System.currentTimeMillis(); int e = 0; - CommandScheduler.getInstance().schedule(c.sleep(1)); + CommandScheduler.schedule(c.sleep(1)); while (System.currentTimeMillis() - i < 10500) { - CommandScheduler.getInstance().run(); + CommandScheduler.run(); if (c.justFinished()) System.out.println("finish"); // System.out.println(e++); } diff --git a/RobotLibrary/src/test/java/com/technototes/library/command/RequirementCommandTest.java b/RobotLibrary/src/test/java/com/technototes/library/command/RequirementCommandTest.java index 9fec1e2d..1e4ad95a 100644 --- a/RobotLibrary/src/test/java/com/technototes/library/command/RequirementCommandTest.java +++ b/RobotLibrary/src/test/java/com/technototes/library/command/RequirementCommandTest.java @@ -36,12 +36,12 @@ public void setup() { @Test public void run() { int[] i = new int[1]; - CommandScheduler.getInstance().schedule(command1, () -> i[0] == 0); - CommandScheduler.getInstance().schedule(command2, () -> i[0] == 1); - CommandScheduler.getInstance().schedule(command3, () -> i[0] == 2); + CommandScheduler.schedule(command1, () -> i[0] == 0); + CommandScheduler.schedule(command2, () -> i[0] == 1); + CommandScheduler.schedule(command3, () -> i[0] == 2); for (i[0] = 0; i[0] < 100; i[0]++) { - CommandScheduler.getInstance().run(); + CommandScheduler.run(); System.out.println(" - " + command1.getState() + " - " + command2.getState() + " - " + command3.getState()); } } diff --git a/RobotLibrary/src/test/java/com/technototes/library/command/SimpleCommandTest.java b/RobotLibrary/src/test/java/com/technototes/library/command/SimpleCommandTest.java index 2058e9bc..6ab2ef29 100644 --- a/RobotLibrary/src/test/java/com/technototes/library/command/SimpleCommandTest.java +++ b/RobotLibrary/src/test/java/com/technototes/library/command/SimpleCommandTest.java @@ -43,13 +43,13 @@ public void scheduleCommandNoCancel() { InstantCommand command = new InstantCommand(); // Creating a command shouldn't cause it to be scheduled - CommandScheduler.getInstance().run(); + CommandScheduler.run(); assertEquals(0, command.initialized); assertEquals(0, command.executed); assertEquals(0, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().schedule(command); + CommandScheduler.schedule(command); // Scheduling a command won't cause it to run until after run() assertEquals(0, command.initialized); @@ -57,7 +57,7 @@ public void scheduleCommandNoCancel() { assertEquals(0, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // ?? The first run after scheduling a command doesn't do anything for the command // Yes because the first one puts the command into the state of intialization, @@ -68,7 +68,7 @@ public void scheduleCommandNoCancel() { assertEquals(0, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); /* KBF: This is a little odd. For reasons that are obvious in the code, the initialized state exists only before first execution, but not between command @@ -83,7 +83,7 @@ public void scheduleCommandNoCancel() { // assertEquals(0, command.ended); // assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // The third run after scheduling a command finally runs it assertEquals(1, command.initialized); @@ -91,7 +91,7 @@ public void scheduleCommandNoCancel() { assertEquals(0, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // The fourth run after scheduling a 'one-shot' command finally ends it assertEquals(1, command.initialized); @@ -99,14 +99,14 @@ public void scheduleCommandNoCancel() { assertEquals(1, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // An ended command doesn't get scheduled anymore assertEquals(1, command.initialized); assertEquals(1, command.executed); assertEquals(1, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // An ended command doesn't get scheduled anymore // ?? But it does get initialized // when you schedule a command, its added to a loop. @@ -121,7 +121,7 @@ public void scheduleCommandNoCancel() { // assertEquals(1, command.ended); // assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // An ended command doesn't get scheduled anymore // ?? But it does get initialized // ?? And executed?? @@ -130,7 +130,7 @@ public void scheduleCommandNoCancel() { assertEquals(1, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // An ended command doesn't get scheduled anymore // ?? But it does get initialized // ?? And executed?? @@ -140,13 +140,13 @@ public void scheduleCommandNoCancel() { assertEquals(2, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); assertEquals(2, command.initialized); assertEquals(2, command.executed); assertEquals(2, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); // KBF: Commented out, see comment above // assertEquals(3, command.initialized); @@ -154,13 +154,13 @@ public void scheduleCommandNoCancel() { // assertEquals(2, command.ended); // assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); assertEquals(3, command.initialized); assertEquals(3, command.executed); assertEquals(2, command.ended); assertEquals(0, command.canceled); - CommandScheduler.getInstance().run(); + CommandScheduler.run(); assertEquals(3, command.initialized); assertEquals(3, command.executed); assertEquals(3, command.ended); From 20af31d153afab315a2c920fdbb4be0e63aed092 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 14 Oct 2023 16:06:39 -0700 Subject: [PATCH 15/47] Added some comments and examples, plus non-controlling commands --- .../library/command/CommandScheduler.java | 270 ++++++++++++------ .../library/command/ParameterCommand.java | 12 +- .../command/ParameterRequiredCommand.java | 24 ++ .../library/command/SimpleCommand.java | 11 +- .../command/SimpleRequiredCommand.java | 22 ++ 5 files changed, 241 insertions(+), 98 deletions(-) create mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java create mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index b5b0eecc..3a7f1882 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -26,11 +26,11 @@ * TODO: yoink that method and make static methods for next year's release... */ public final class CommandScheduler { - private static Map commandMap = new HashMap<>(); - private static Map> requirementMap = new HashMap<>(); - private static Map defaultMap = new HashMap<>(); + private static final Map commandMap = new HashMap<>(); + private static final Map> requirementMap = new HashMap<>(); + private static final Map defaultMap = new HashMap<>(); - private static Set registered = new LinkedHashSet<>(); + private static final Set registered = new LinkedHashSet<>(); private static CommandOpMode opMode; @@ -59,39 +59,56 @@ public static double getOpModeRuntime() { return opMode.getOpModeRuntime(); } - // The Singleton CommandScheduler - // private static CommandScheduler instance; + /** + * Reset the scheduler... + */ + public static void resetScheduler() { + Command.clear(); + } /** - * Get (or create) the singleton CommandScheduler object + * Schedule a command to run (just use "schedule") * - * @return The CommandScheduler singleton - public static synchronized CommandScheduler getInstance() { - if (instance == null) { - instance = new CommandScheduler(); + * @param command the command to schedule + */ + public static void scheduleOnce(Command command) { + schedule(command); } - return instance; + /** + * Schedule a command to run during a particular OpModeState + * You can just use scheduleForState instead... + * + * @param command the command to schedule + * @param state the state during which the command should be scheduled + */ + public static void scheduleOnceForState(Command command, CommandOpMode.OpModeState state) { + scheduleForState(command, state); } + /** + * Schedules a command to be run during Run and End states, all the time. + * This is called "Schedule for Joystick" because joysticks don't really have a + * condition you might consider 'useful for triggering', so the command + * just runs repeatedly. This adds the requirement that the BooleanSupplier function + * is also true for the command to be run. + * + * @param command The command to run repeatedly + * @param supplier The condition which must also be true to run the command */ - + public static void scheduleJoystick(Command command, BooleanSupplier supplier) { + scheduleForState(command, supplier, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); + } /** - * Alex had a comment "be careful with this" and he's not wrong. - * This used to remove the old Singleton and creates a new one. That was pretty dangerous... - * Now it just resets the scheduler... + * Schedules a command to be run during Run and End states, all the time. + * This is called "Schedule for Joystick" because joysticks don't really have a + * condition you might consider 'useful for triggering', so the command + * just runs repeatedly + * + * @param command The command to run repeatedly. */ - public static void resetScheduler() { - Command.clear(); + public static void scheduleJoystick(Command command) { + scheduleForState(command, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); } - /* - private CommandScheduler() { - commandMap = new HashMap<>(); - requirementMap = new HashMap<>(); - defaultMap = new HashMap<>(); - registered = new LinkedHashSet<>(); - } - */ - /** * Schedule a command to run * @@ -100,30 +117,56 @@ private CommandScheduler() { public static void schedule(Command command) { schedule(command, () -> true); } + /** + * Schedule a method on a subsystem to run as a command: + * {@code + * CommandScheduler.schedule(robot.intakeSubsystem, IntakeSubsystem::activate) + * } + * + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + */ public static void schedule(S req, Consumer methodRef) { - schedule(new SimpleCommand(req, methodRef), () -> true); + schedule(req, methodRef, () -> true); } + /** + * Schedule a method on a subsystem to run as a command, that takes an extra parameter: + * {@code + * // This command effectively calls robot.liftSubsys.GoToPosition(LiftPos.MIDDLE) + * CommandScheduler.schedule(robot.liftSubsys, LiftSubsystem::GoToPosition, LiftPos.MIDDLE) + * } + * + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + * @param param the parameter to pass to the function being called + */ public static void schedule(S req, BiConsumer methodRef, T param) { - schedule(new ParameterCommand(req, methodRef, param), () -> true); + schedule(req, methodRef, param, () -> true); } - /** - * Schedule a command to run + * Schedule a method to run as a command that does not require controlling a subsystem! + * {@code + * CommandScheduler.schedule(robot.signalSubsystem::blinkLights) + * } * - * @param command the command to schedule + * @param methodRef the function to invoke on the subsystem */ - public static void scheduleOnce(Command command) { - schedule(command); + public static void schedule(Runnable methodRef) { + schedule(methodRef, () -> true); } - /** - * Schedule a command to run during a particular OpModeState + * Schedule a method on a subsystem to run as a command, that takes an extra parameter: + * {@code + * // This command effectively calls robot.liftSubsys.GoToPosition(LiftPos.MIDDLE) + * CommandScheduler.schedule(robot.liftSubsys, LiftSubsystem::GoToPosition, LiftPos.MIDDLE) + * } * - * @param command the command to schedule - * @param state the state during which the command should be scheduled + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + * @param param the parameter to pass to the function being called */ - public static void scheduleOnceForState(Command command, CommandOpMode.OpModeState state) { - scheduleForState(command, state); + public static void schedule(Consumer methodRef, T param) { + schedule(methodRef, param, () -> true); } /** @@ -138,11 +181,77 @@ public static void scheduleOnceForState(Command command, CommandOpMode.OpModeSta public static void scheduleInit(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); } + /** + * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode. + * This can be used for vision, as well as running any system to help the + * drive team ensure that the robot is appropriately positioned on the field. + * This will only be run if the BooleanSupplier 'supplier' is also true! + * {@code + * // This command effectively calls robot.visionSystem.seeTheThing() + * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) + * } + * + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + * @param supplier the boolean function to run to determine if the function should be run + */ public static void scheduleInit(S req, Consumer methodRef, BooleanSupplier supplier) { - scheduleInit(new SimpleCommand(req, methodRef), supplier); + scheduleInit(new SimpleRequiredCommand<>(req, methodRef), supplier); } + /** + * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode, + * that also takes a parameter. + * This can be used for vision, as well as running any system to help the + * drive team ensure that the robot is appropriately positioned on the field. + * This will only be run if the BooleanSupplier 'supplier' is also true! + * {@code + * // This command effectively calls robot.visionSystem.seeTheThing(Alliance.RED), + * // but only if TokenIdentifyingSubsystem.CAMERA_CONNECTED is also true + * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, Alliance.RED, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) + * } + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + * @param param the argument passed to the methodRef function + * @param supplier the boolean function to run to determine if the function should be run + */ public static void scheduleInit(S req, BiConsumer methodRef, T param, BooleanSupplier supplier) { - scheduleInit(new ParameterCommand(req, methodRef, param), supplier); + scheduleInit(new ParameterRequiredCommand(req, methodRef, param), supplier); + } + /** + * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode. + * This can be used for vision, as well as running any system to help the + * drive team ensure that the robot is appropriately positioned on the field. + * This will only be run if the BooleanSupplier 'supplier' is also true! + * {@code + * // This command effectively calls robot.visionSystem.seeTheThing() + * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) + * } + * + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + * @param supplier the boolean function to run to determine if the function should be run + */ + public static void scheduleInit(Runnable methodRef, BooleanSupplier supplier) { + scheduleInit(new SimpleCommand(methodRef), supplier); + } + /** + * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode, + * that also takes a parameter. + * This can be used for vision, as well as running any system to help the + * drive team ensure that the robot is appropriately positioned on the field. + * This will only be run if the BooleanSupplier 'supplier' is also true! + * {@code + * // This command effectively calls robot.visionSystem.seeTheThing(Alliance.RED), + * // but only if TokenIdentifyingSubsystem.CAMERA_CONNECTED is also true + * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, Alliance.RED, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) + * } + * @param req the subsystem required + * @param methodRef the function to invoke on the subsystem + * @param param the argument passed to the methodRef function + * @param supplier the boolean function to run to determine if the function should be run + */ + public static void scheduleInit(Consumer methodRef, T param, BooleanSupplier supplier) { + scheduleInit(new ParameterCommand<>(methodRef, param), supplier); } /** @@ -156,38 +265,19 @@ public static void scheduleInit(Command command) { scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); } public static void scheduleInit(S req, Consumer methodRef) { - scheduleInit(new SimpleCommand(req, methodRef)); + scheduleInit(new SimpleRequiredCommand(req, methodRef)); } public static void scheduleInit(S req, BiConsumer methodRef, T param) { - scheduleInit(new ParameterCommand(req, methodRef, param)); + scheduleInit(new ParameterRequiredCommand(req, methodRef, param)); } - - /** - * Schedules a command to be run during Run and End states, all the time. - * This is called "Schedule for Joystick" because joysticks don't really have a - * condition you might consider 'useful for triggering', so the command - * just runs repeatedly. This adds the requirement that the BooleanSupplier function - * is also true for the command to be run. - * - * @param command The command to run repeatedly - * @param supplier The condition which must also be true to run the command - */ - public static void scheduleJoystick(Command command, BooleanSupplier supplier) { - scheduleForState(command, supplier, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); + public static void scheduleInit(Runnable methodRef) { + scheduleInit(new SimpleCommand(methodRef)); } - - /** - * Schedules a command to be run during Run and End states, all the time. - * This is called "Schedule for Joystick" because joysticks don't really have a - * condition you might consider 'useful for triggering', so the command - * just runs repeatedly - * - * @param command The command to run repeatedly. - */ - public static void scheduleJoystick(Command command) { - scheduleForState(command, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); + public static void scheduleInit(Consumer methodRef, T param) { + scheduleInit(new ParameterCommand<>(methodRef, param)); } + /** * Schedule a command to be run when the OpMode is one of the provided list of states and the * 'supplier' boolean function is also true. @@ -209,12 +299,19 @@ public static void scheduleForState( public static void scheduleForState(S req, Consumer methodRef, BooleanSupplier supplier, CommandOpMode.OpModeState... states) { - scheduleForState(new SimpleCommand(req, methodRef), supplier, states); + scheduleForState(new SimpleRequiredCommand(req, methodRef), supplier, states); } - public static void scheduleForState(S req, BiConsumer methodRef, T param, BooleanSupplier supplier, CommandOpMode.OpModeState... states) { - scheduleForState(new ParameterCommand(req, methodRef, param), supplier, states); + scheduleForState(new ParameterRequiredCommand(req, methodRef, param), supplier, states); + } + public static void scheduleForState(Runnable methodRef, BooleanSupplier supplier, + CommandOpMode.OpModeState... states) { + scheduleForState(new SimpleCommand(methodRef), supplier, states); + } + public static void scheduleForState(Consumer methodRef, T param, BooleanSupplier supplier, + CommandOpMode.OpModeState... states) { + scheduleForState(new ParameterCommand<>(methodRef, param), supplier, states); } /** @@ -229,13 +326,17 @@ public static void scheduleForState(Command command, CommandOpMode.OpModeState.. () -> opMode.getOpModeState().isState(states) ); } - public static void scheduleForState(S req, Consumer methodRef, CommandOpMode.OpModeState... states) { - scheduleForState(new SimpleCommand(req, methodRef), states); + scheduleForState(new SimpleRequiredCommand(req, methodRef), states); } - public static void scheduleForState(S req, BiConsumer methodRef, T param, CommandOpMode.OpModeState... states) { - scheduleForState(new ParameterCommand(req, methodRef, param), states); + scheduleForState(new ParameterRequiredCommand(req, methodRef, param), states); + } + public static void scheduleForState(Runnable methodRef, CommandOpMode.OpModeState... states) { + scheduleForState(new SimpleCommand(methodRef), states); + } + public static void scheduleForState(Consumer methodRef, T param, CommandOpMode.OpModeState... states) { + scheduleForState(new ParameterCommand<>(methodRef, param), states); } @@ -300,16 +401,13 @@ public static void scheduleDefault(Command command, Subsystem subsystem) { System.err.println("default commands must require their subsystem: " + command.getClass().toString()); } } - public static void scheduleDefault(S req, Consumer methodRef) { - scheduleDefault(new SimpleCommand(req, methodRef), req); + scheduleDefault(new SimpleRequiredCommand(req, methodRef), req); } - public static void scheduleDefault(S req, BiConsumer methodRef, T param) { - scheduleDefault(new ParameterCommand(req, methodRef, param), req); + scheduleDefault(new ParameterRequiredCommand(req, methodRef, param), req); } - /** * Register a periodic function to be run once each schedule loop * @@ -362,13 +460,17 @@ public static void schedule(Command command, BooleanSupplier supplier) { register(s); } } - public static void schedule(S req, Consumer methodRef, BooleanSupplier sup) { - schedule(new SimpleCommand(req, methodRef), sup); + schedule(new SimpleRequiredCommand(req, methodRef), sup); } - public static void schedule(S req, BiConsumer methodRef, T param, BooleanSupplier sup) { - schedule(new ParameterCommand(req, methodRef, param), sup); + schedule(new ParameterRequiredCommand(req, methodRef, param), sup); + } + public static void schedule(Runnable methodRef, BooleanSupplier sup) { + schedule(new SimpleCommand(methodRef), sup); + } + public static void schedule(Consumer methodRef, T param, BooleanSupplier sup) { + schedule(new ParameterCommand<>(methodRef, param), sup); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java index b65331cb..fa5b2c31 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java @@ -3,22 +3,20 @@ import com.technototes.library.subsystem.Subsystem; import java.util.function.BiConsumer; +import java.util.function.Consumer; -public class ParameterCommand implements Command { - T sub; +public class ParameterCommand implements Command { U param; - BiConsumer method; + Consumer method; - public ParameterCommand(T s, BiConsumer m, U arg) { + public ParameterCommand(Consumer m, U arg) { super(); - s = sub; param = arg; method = m; - addRequirements(sub); } @Override public void execute() { - method.accept(sub, param); + method.accept(param); } } \ No newline at end of file diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java new file mode 100644 index 00000000..38877e8c --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java @@ -0,0 +1,24 @@ +package com.technototes.library.command; + +import com.technototes.library.subsystem.Subsystem; + +import java.util.function.BiConsumer; + +public class ParameterRequiredCommand implements Command { + T sub; + U param; + BiConsumer method; + + public ParameterRequiredCommand(T s, BiConsumer m, U arg) { + super(); + s = sub; + param = arg; + method = m; + addRequirements(sub); + } + + @Override + public void execute() { + method.accept(sub, param); + } +} \ No newline at end of file diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java index 8f345c49..7c3c7cda 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java @@ -4,19 +4,16 @@ import java.util.function.Consumer; -public class SimpleCommand implements Command { - T sub; - Consumer method; +public class SimpleCommand implements Command { + Runnable method; - public SimpleCommand(T s, Consumer m) { + public SimpleCommand(Runnable m) { super(); - s = sub; method = m; - addRequirements(sub); } @Override public void execute() { - method.accept(sub); + method.run(); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java new file mode 100644 index 00000000..195a1b11 --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java @@ -0,0 +1,22 @@ +package com.technototes.library.command; + +import com.technototes.library.subsystem.Subsystem; + +import java.util.function.Consumer; + +public class SimpleRequiredCommand implements Command { + T sub; + Consumer method; + + public SimpleRequiredCommand(T s, Consumer m) { + super(); + s = sub; + method = m; + addRequirements(sub); + } + + @Override + public void execute() { + method.accept(sub); + } +} From 0430a59c165ad8fde5297c1114c04c032176e0f1 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 14 Oct 2023 16:30:50 -0700 Subject: [PATCH 16/47] Added method-ref based command stuff for controls --- .../library/control/CommandInput.java | 154 +++++++++++++++++- .../technototes/library/hardware/Speaker.java | 2 +- 2 files changed, 151 insertions(+), 5 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index e1fffe63..8275eba8 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -2,7 +2,15 @@ import com.technototes.library.command.Command; import com.technototes.library.command.CommandScheduler; +import com.technototes.library.command.ParameterCommand; +import com.technototes.library.command.ParameterRequiredCommand; +import com.technototes.library.command.SimpleCommand; +import com.technototes.library.command.SimpleRequiredCommand; +import com.technototes.library.subsystem.Subsystem; + +import java.util.function.BiConsumer; import java.util.function.BooleanSupplier; +import java.util.function.Consumer; /** * Class for gamepad-command integration @@ -20,6 +28,18 @@ public interface CommandInput extends BooleanSupplier { default T whenPressed(Command command) { return schedule(getInstance()::isJustPressed, command); } + default T whenPressed(S req, Consumer methodRef) { + return whenPressed(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whenPressed(S req, BiConsumer methodRef, R param) { + return whenPressed(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whenPressed(Runnable methodRef) { + return whenPressed(new SimpleCommand(methodRef)); + } + default T whenPressed(Consumer methodRef, R param) { + return whenPressed(new ParameterCommand<>(methodRef, param)); + } /** * Schedule a command to be run once the input is released. @@ -30,6 +50,19 @@ default T whenPressed(Command command) { default T whenReleased(Command command) { return schedule(getInstance()::isJustReleased, command); } + default T whenReleased(S req, Consumer methodRef) { + return whenReleased(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whenReleased(S req, BiConsumer methodRef, R param) { + return whenReleased(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whenReleased(Runnable methodRef) { + return whenReleased(new SimpleCommand(methodRef)); + } + default T whenReleased(Consumer methodRef, R param) { + return whenReleased(new ParameterCommand<>(methodRef, param)); + } + /** * Schedule a command to be run over & over while the input is pressed, @@ -41,6 +74,18 @@ default T whenReleased(Command command) { default T whilePressed(Command command) { return schedule(getInstance()::isPressed, command.cancelUpon(getInstance()::isReleased)); } + default T whilePressed(S req, Consumer methodRef) { + return whilePressed(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whilePressed(S req, BiConsumer methodRef, R param) { + return whilePressed(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whilePressed(Runnable methodRef) { + return whilePressed(new SimpleCommand(methodRef)); + } + default T whilePressed(Consumer methodRef, R param) { + return whilePressed(new ParameterCommand<>(methodRef, param)); + } /** * Schedule a command to be run over & over while the input is released, @@ -52,6 +97,18 @@ default T whilePressed(Command command) { default T whileReleased(Command command) { return schedule(getInstance()::isReleased, command.cancelUpon(getInstance()::isPressed)); } + default T whileReleased(S req, Consumer methodRef) { + return whileReleased(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whileReleased(S req, BiConsumer methodRef, R param) { + return whileReleased(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whileReleased(Runnable methodRef) { + return whileReleased(new SimpleCommand(methodRef)); + } + default T whileReleased(Consumer methodRef, R param) { + return whileReleased(new ParameterCommand<>(methodRef, param)); + } /** * Schedule a command to be run while the input is pressed, but only once, @@ -64,7 +121,18 @@ default T whileReleased(Command command) { default T whilePressedOnce(Command command) { return schedule(getInstance()::isJustPressed, command.cancelUpon(getInstance()::isReleased)); } - + default T whilePressedOnce(S req, Consumer methodRef) { + return whilePressedOnce(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whilePressedOnce(S req, BiConsumer methodRef, R param) { + return whilePressedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whilePressedOnce(Runnable methodRef) { + return whilePressedOnce(new SimpleCommand(methodRef)); + } + default T whilePressedOnce(Consumer methodRef, R param) { + return whilePressedOnce(new ParameterCommand<>(methodRef, param)); + } /** * Schedule a command to be run over & over while the input is pressed * @@ -74,9 +142,20 @@ default T whilePressedOnce(Command command) { default T whilePressedContinuous(Command command) { return schedule(getInstance()::isPressed, command); } - + default T whilePressedContinuous(S req, Consumer methodRef) { + return whilePressedContinuous(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whilePressedContinuous(S req, BiConsumer methodRef, R param) { + return whilePressedContinuous(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whilePressedContinuous(Runnable methodRef) { + return whilePressedContinuous(new SimpleCommand(methodRef)); + } + default T whilePressedContinuous(Consumer methodRef, R param) { + return whilePressedContinuous(new ParameterCommand<>(methodRef, param)); + } /** - * Schdule the command to be run when the input is released, but only once! + * Schedule the command to be run when the input is released, but only once! * * @param command The command to be run * @return The CommandInput<T> instance @@ -84,6 +163,18 @@ default T whilePressedContinuous(Command command) { default T whileReleasedOnce(Command command) { return schedule(getInstance()::isJustReleased, command.cancelUpon(getInstance()::isPressed)); } + default T whileReleasedOnce(S req, Consumer methodRef) { + return whileReleasedOnce(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whileReleasedOnce(S req, BiConsumer methodRef, R param) { + return whileReleasedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whileReleasedOnce(Runnable methodRef) { + return whileReleasedOnce(new SimpleCommand(methodRef)); + } + default T whileReleasedOnce(Consumer methodRef, R param) { + return whileReleasedOnce(new ParameterCommand<>(methodRef, param)); + } /** * Schedule a command to be run when the input was just toggled @@ -95,6 +186,18 @@ default T whileReleasedOnce(Command command) { default T whenToggled(Command command) { return schedule(getInstance()::isJustToggled, command); } + default T whenToggled(S req, Consumer methodRef) { + return whenToggled(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whenToggled(S req, BiConsumer methodRef, R param) { + return whenToggled(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whenToggled(Runnable methodRef) { + return whenToggled(new SimpleCommand(methodRef)); + } + default T whenToggled(Consumer methodRef, R param) { + return whenToggled(new ParameterCommand<>(methodRef, param)); + } /** * Schedule the command to be run when the input has only stopped being toggled @@ -105,6 +208,18 @@ default T whenToggled(Command command) { default T whenInverseToggled(Command command) { return schedule(getInstance()::isJustInverseToggled, command); } + default T whenInverseToggled(S req, Consumer methodRef) { + return whenInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whenInverseToggled(S req, BiConsumer methodRef, R param) { + return whenInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whenInverseToggled(Runnable methodRef) { + return whenInverseToggled(new SimpleCommand(methodRef)); + } + default T whenInverseToggled(Consumer methodRef, R param) { + return whenInverseToggled(new ParameterCommand<>(methodRef, param)); + } /** * Schedule the command to be run while the input is changing. @@ -118,6 +233,18 @@ default T whenInverseToggled(Command command) { default T whileToggled(Command command) { return schedule(getInstance()::isToggled, command.cancelUpon(getInstance()::isInverseToggled)); } + default T whileToggled(S req, Consumer methodRef) { + return whileToggled(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whileToggled(S req, BiConsumer methodRef, R param) { + return whileToggled(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whileToggled(Runnable methodRef) { + return whileToggled(new SimpleCommand(methodRef)); + } + default T whileToggled(Consumer methodRef, R param) { + return whileToggled(new ParameterCommand<>(methodRef, param)); + } /** * Schedule the command to run over & over while the input is *not* changing @@ -129,6 +256,18 @@ default T whileToggled(Command command) { default T whileInverseToggled(Command command) { return schedule(getInstance()::isInverseToggled, command.cancelUpon(getInstance()::isToggled)); } + default T whileInverseToggled(S req, Consumer methodRef) { + return whileInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); + } + default T whileInverseToggled(S req, BiConsumer methodRef, R param) { + return whileInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); + } + default T whileInverseToggled(Runnable methodRef) { + return whileInverseToggled(new SimpleCommand(methodRef)); + } + default T whileInverseToggled(Consumer methodRef, R param) { + return whileInverseToggled(new ParameterCommand<>(methodRef, param)); + } /** * Return instance of class parameter @@ -164,6 +303,8 @@ default T schedule(Command command) { * 'press' will be executed once when the input is pressed. * 'release' will be executed once when the input is released. * + * You could just use button.whenPressed(press).whenRelease(release) + * * @param press The command to run on Press * @param release The command to run on Release * @return The CommandInput<T> instance @@ -176,7 +317,9 @@ default T whenPressedReleased(Command press, Command release) { /** * For scheduling a pair commands for while the input is pressed and released. * 'press' will be executed over & over while the input is pressed. - * 'release' will be exeucted over & over while the input is released. + * 'release' will be executed over & over while the input is released. + * + * Just use button.whilePressed(...).whileReleased(...) * * @param press The command to run on Press * @param release The command to run on Release @@ -191,6 +334,9 @@ default T whilePressedReleased(Command press, Command release) { * For scheduling a pair of "opposite" commands for toggling when something * is or is not being toggled * + * For non-command (method ref) usage, just use + * button.whenToggled(toggled).whenInverseToggled(notToggled) + * * @param toggle The command to run when the input flips states * @param itoggle The command to run when the input has not changed states * @return The CommandInput<T> instance diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java index a03f418b..9fd0780c 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java @@ -10,7 +10,7 @@ /** * There's just no possible way I care about this. I think there are rules about *not* playing * anything through the speaker now, anyway. This is going away. (The rules were created because - * of Alex, if I recall correctly... + * of Alex, if I recall correctly...) */ @Deprecated public class Speaker { From 2f016de7d0d43111639f0dccb63db0c545023f06 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 14 Oct 2023 21:43:46 -0700 Subject: [PATCH 17/47] Syntactic helpers for auto paths --- .../trajectorysequence/TrajectoryPath.java | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java diff --git a/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java b/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java new file mode 100644 index 00000000..a4416cea --- /dev/null +++ b/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java @@ -0,0 +1,67 @@ +package com.technototes.path.trajectorysequence; + +import com.acmerobotics.roadrunner.geometry.Pose2d; +import com.technototes.path.geometry.ConfigurablePose; +import com.technototes.path.geometry.ConfigurablePoseD; + +import java.util.function.Function; + +public interface TrajectoryPath extends Function, TrajectorySequence> { + + static TrajectoryPath lineTo(ConfigurablePose start, ConfigurablePose end) { + return b -> b.apply(start.toPose()).lineTo(end.toPose().vec()).build(); + } + + static TrajectoryPath lineTo(ConfigurablePoseD start, ConfigurablePoseD end) { + return b -> b.apply(start.toPose()).lineTo(end.toPose().vec()).build(); + } + + static TrajectoryPath linesTo(ConfigurablePoseD start, ConfigurablePoseD... points) { + return b -> { + TrajectorySequenceBuilder bld = b.apply(start.toPose()); + for (ConfigurablePoseD d : points) { + bld = bld.lineTo(d.toPose().vec()); + } + return bld.build(); + }; + } + + static TrajectoryPath linesTo(ConfigurablePose start, ConfigurablePose... points) { + return b -> { + TrajectorySequenceBuilder bld = b.apply(start.toPose()); + for (ConfigurablePose d : points) { + bld = bld.lineTo(d.toPose().vec()); + } + return bld.build(); + }; + } + + static TrajectoryPath lineToLinearHeading(ConfigurablePose start, ConfigurablePose end) { + return b -> b.apply(start.toPose()).lineToLinearHeading(end.toPose()).build(); + } + + static TrajectoryPath lineToLinearHeading(ConfigurablePoseD start, ConfigurablePoseD end) { + return b -> b.apply(start.toPose()).lineToLinearHeading(end.toPose()).build(); + } + + static TrajectoryPath linesToLinearHeadings(ConfigurablePoseD start, ConfigurablePoseD... points) { + return b -> { + TrajectorySequenceBuilder bld = b.apply(start.toPose()); + for (ConfigurablePoseD d : points) { + bld = bld.lineToLinearHeading(d.toPose()); + } + return bld.build(); + }; + } + + static TrajectoryPath linesToLinearHeadings(ConfigurablePose start, ConfigurablePose... points) { + return b -> { + TrajectorySequenceBuilder bld = b.apply(start.toPose()); + for (ConfigurablePose d : points) { + bld = bld.lineToLinearHeading(d.toPose()); + } + return bld.build(); + }; + } +} + From 0634a1c33f57c8eae13000d393f473b6cc93615f Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 14 Oct 2023 22:19:43 -0700 Subject: [PATCH 18/47] Source Formatting --- .../trajectorysequence/TrajectoryPath.java | 3 - .../library/command/CommandScheduler.java | 114 +++++++++++++----- .../library/command/ParameterCommand.java | 4 +- .../command/ParameterRequiredCommand.java | 4 +- .../library/command/SimpleCommand.java | 2 +- .../command/SimpleRequiredCommand.java | 2 +- .../library/control/CommandInput.java | 48 +++++++- .../subsystem/BasicVisionSubsystem.java | 2 + 8 files changed, 141 insertions(+), 38 deletions(-) diff --git a/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java b/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java index a4416cea..288145c0 100644 --- a/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java +++ b/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java @@ -3,11 +3,9 @@ import com.acmerobotics.roadrunner.geometry.Pose2d; import com.technototes.path.geometry.ConfigurablePose; import com.technototes.path.geometry.ConfigurablePoseD; - import java.util.function.Function; public interface TrajectoryPath extends Function, TrajectorySequence> { - static TrajectoryPath lineTo(ConfigurablePose start, ConfigurablePose end) { return b -> b.apply(start.toPose()).lineTo(end.toPose().vec()).build(); } @@ -64,4 +62,3 @@ static TrajectoryPath linesToLinearHeadings(ConfigurablePose start, Configurable }; } } - diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index 3a7f1882..7e5a0c27 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -1,11 +1,9 @@ package com.technototes.library.command; import androidx.annotation.Nullable; - import com.technototes.library.general.Periodic; import com.technototes.library.structure.CommandOpMode; import com.technototes.library.subsystem.Subsystem; - import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; @@ -26,6 +24,7 @@ * TODO: yoink that method and make static methods for next year's release... */ public final class CommandScheduler { + private static final Map commandMap = new HashMap<>(); private static final Map> requirementMap = new HashMap<>(); private static final Map defaultMap = new HashMap<>(); @@ -74,6 +73,7 @@ public static void resetScheduler() { public static void scheduleOnce(Command command) { schedule(command); } + /** * Schedule a command to run during a particular OpModeState * You can just use scheduleForState instead... @@ -84,6 +84,7 @@ public static void scheduleOnce(Command command) { public static void scheduleOnceForState(Command command, CommandOpMode.OpModeState state) { scheduleForState(command, state); } + /** * Schedules a command to be run during Run and End states, all the time. * This is called "Schedule for Joystick" because joysticks don't really have a @@ -97,6 +98,7 @@ public static void scheduleOnceForState(Command command, CommandOpMode.OpModeSta public static void scheduleJoystick(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.RUN, CommandOpMode.OpModeState.END); } + /** * Schedules a command to be run during Run and End states, all the time. * This is called "Schedule for Joystick" because joysticks don't really have a @@ -117,6 +119,7 @@ public static void scheduleJoystick(Command command) { public static void schedule(Command command) { schedule(command, () -> true); } + /** * Schedule a method on a subsystem to run as a command: * {@code @@ -127,8 +130,9 @@ public static void schedule(Command command) { * @param methodRef the function to invoke on the subsystem */ public static void schedule(S req, Consumer methodRef) { - schedule(req, methodRef, () -> true); + schedule(req, methodRef, () -> true); } + /** * Schedule a method on a subsystem to run as a command, that takes an extra parameter: * {@code @@ -141,8 +145,9 @@ public static void schedule(S req, Consumer methodRef) * @param param the parameter to pass to the function being called */ public static void schedule(S req, BiConsumer methodRef, T param) { - schedule(req, methodRef, param, () -> true); + schedule(req, methodRef, param, () -> true); } + /** * Schedule a method to run as a command that does not require controlling a subsystem! * {@code @@ -152,8 +157,9 @@ public static void schedule(S req, BiConsumer met * @param methodRef the function to invoke on the subsystem */ public static void schedule(Runnable methodRef) { - schedule(methodRef, () -> true); + schedule(methodRef, () -> true); } + /** * Schedule a method on a subsystem to run as a command, that takes an extra parameter: * {@code @@ -166,7 +172,7 @@ public static void schedule(Runnable methodRef) { * @param param the parameter to pass to the function being called */ public static void schedule(Consumer methodRef, T param) { - schedule(methodRef, param, () -> true); + schedule(methodRef, param, () -> true); } /** @@ -181,6 +187,7 @@ public static void schedule(Consumer methodRef, T pa public static void scheduleInit(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); } + /** * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode. * This can be used for vision, as well as running any system to help the @@ -198,6 +205,7 @@ public static void scheduleInit(Command command, BooleanSupplier supplier) { public static void scheduleInit(S req, Consumer methodRef, BooleanSupplier supplier) { scheduleInit(new SimpleRequiredCommand<>(req, methodRef), supplier); } + /** * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode, * that also takes a parameter. @@ -214,9 +222,15 @@ public static void scheduleInit(S req, Consumer methodR * @param param the argument passed to the methodRef function * @param supplier the boolean function to run to determine if the function should be run */ - public static void scheduleInit(S req, BiConsumer methodRef, T param, BooleanSupplier supplier) { + public static void scheduleInit( + S req, + BiConsumer methodRef, + T param, + BooleanSupplier supplier + ) { scheduleInit(new ParameterRequiredCommand(req, methodRef, param), supplier); } + /** * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode. * This can be used for vision, as well as running any system to help the @@ -234,6 +248,7 @@ public static void scheduleInit(S req, BiConsumer public static void scheduleInit(Runnable methodRef, BooleanSupplier supplier) { scheduleInit(new SimpleCommand(methodRef), supplier); } + /** * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode, * that also takes a parameter. @@ -264,20 +279,23 @@ public static void scheduleInit(Consumer methodRef, T param, BooleanSuppl public static void scheduleInit(Command command) { scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); } + public static void scheduleInit(S req, Consumer methodRef) { scheduleInit(new SimpleRequiredCommand(req, methodRef)); } + public static void scheduleInit(S req, BiConsumer methodRef, T param) { scheduleInit(new ParameterRequiredCommand(req, methodRef, param)); } + public static void scheduleInit(Runnable methodRef) { scheduleInit(new SimpleCommand(methodRef)); } + public static void scheduleInit(Consumer methodRef, T param) { scheduleInit(new ParameterCommand<>(methodRef, param)); } - /** * Schedule a command to be run when the OpMode is one of the provided list of states and the * 'supplier' boolean function is also true. @@ -287,30 +305,49 @@ public static void scheduleInit(Consumer methodRef, T param) { * @param supplier The function to determin in the command should be scheduled */ public static void scheduleForState( - Command command, - BooleanSupplier supplier, - CommandOpMode.OpModeState... states + Command command, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states ) { schedule( - command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), - () -> supplier.getAsBoolean() && opMode.getOpModeState().isState(states) + command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), + () -> supplier.getAsBoolean() && opMode.getOpModeState().isState(states) ); } - public static void scheduleForState(S req, Consumer methodRef, BooleanSupplier supplier, - CommandOpMode.OpModeState... states) { + public static void scheduleForState( + S req, + Consumer methodRef, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states + ) { scheduleForState(new SimpleRequiredCommand(req, methodRef), supplier, states); } - public static void scheduleForState(S req, BiConsumer methodRef, T param, BooleanSupplier supplier, - CommandOpMode.OpModeState... states) { + + public static void scheduleForState( + S req, + BiConsumer methodRef, + T param, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states + ) { scheduleForState(new ParameterRequiredCommand(req, methodRef, param), supplier, states); } - public static void scheduleForState(Runnable methodRef, BooleanSupplier supplier, - CommandOpMode.OpModeState... states) { + + public static void scheduleForState( + Runnable methodRef, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states + ) { scheduleForState(new SimpleCommand(methodRef), supplier, states); } - public static void scheduleForState(Consumer methodRef, T param, BooleanSupplier supplier, - CommandOpMode.OpModeState... states) { + + public static void scheduleForState( + Consumer methodRef, + T param, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states + ) { scheduleForState(new ParameterCommand<>(methodRef, param), supplier, states); } @@ -322,24 +359,36 @@ public static void scheduleForState(Consumer methodRef, T param, BooleanS */ public static void scheduleForState(Command command, CommandOpMode.OpModeState... states) { schedule( - command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), - () -> opMode.getOpModeState().isState(states) + command.cancelUpon(() -> !opMode.getOpModeState().isState(states)), + () -> opMode.getOpModeState().isState(states) ); } - public static void scheduleForState(S req, Consumer methodRef, CommandOpMode.OpModeState... states) { + + public static void scheduleForState( + S req, + Consumer methodRef, + CommandOpMode.OpModeState... states + ) { scheduleForState(new SimpleRequiredCommand(req, methodRef), states); } - public static void scheduleForState(S req, BiConsumer methodRef, T param, CommandOpMode.OpModeState... states) { + + public static void scheduleForState( + S req, + BiConsumer methodRef, + T param, + CommandOpMode.OpModeState... states + ) { scheduleForState(new ParameterRequiredCommand(req, methodRef, param), states); } + public static void scheduleForState(Runnable methodRef, CommandOpMode.OpModeState... states) { scheduleForState(new SimpleCommand(methodRef), states); } + public static void scheduleForState(Consumer methodRef, T param, CommandOpMode.OpModeState... states) { scheduleForState(new ParameterCommand<>(methodRef, param), states); } - /** * Schedule the 'other' command (the second one) when the 'dependency' command has * finished (but *not* been cancelled!). @@ -401,9 +450,11 @@ public static void scheduleDefault(Command command, Subsystem subsystem) { System.err.println("default commands must require their subsystem: " + command.getClass().toString()); } } + public static void scheduleDefault(S req, Consumer methodRef) { scheduleDefault(new SimpleRequiredCommand(req, methodRef), req); } + public static void scheduleDefault(S req, BiConsumer methodRef, T param) { scheduleDefault(new ParameterRequiredCommand(req, methodRef, param), req); } @@ -460,15 +511,24 @@ public static void schedule(Command command, BooleanSupplier supplier) { register(s); } } + public static void schedule(S req, Consumer methodRef, BooleanSupplier sup) { schedule(new SimpleRequiredCommand(req, methodRef), sup); } - public static void schedule(S req, BiConsumer methodRef, T param, BooleanSupplier sup) { + + public static void schedule( + S req, + BiConsumer methodRef, + T param, + BooleanSupplier sup + ) { schedule(new ParameterRequiredCommand(req, methodRef, param), sup); } + public static void schedule(Runnable methodRef, BooleanSupplier sup) { schedule(new SimpleCommand(methodRef), sup); } + public static void schedule(Consumer methodRef, T param, BooleanSupplier sup) { schedule(new ParameterCommand<>(methodRef, param), sup); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java index fa5b2c31..9fbf3292 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java @@ -1,11 +1,11 @@ package com.technototes.library.command; import com.technototes.library.subsystem.Subsystem; - import java.util.function.BiConsumer; import java.util.function.Consumer; public class ParameterCommand implements Command { + U param; Consumer method; @@ -19,4 +19,4 @@ public ParameterCommand(Consumer m, U arg) { public void execute() { method.accept(param); } -} \ No newline at end of file +} diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java index 38877e8c..73b4fcf2 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java @@ -1,10 +1,10 @@ package com.technototes.library.command; import com.technototes.library.subsystem.Subsystem; - import java.util.function.BiConsumer; public class ParameterRequiredCommand implements Command { + T sub; U param; BiConsumer method; @@ -21,4 +21,4 @@ public ParameterRequiredCommand(T s, BiConsumer m, U arg) { public void execute() { method.accept(sub, param); } -} \ No newline at end of file +} diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java index 7c3c7cda..3a64b9b7 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java @@ -1,10 +1,10 @@ package com.technototes.library.command; import com.technototes.library.subsystem.Subsystem; - import java.util.function.Consumer; public class SimpleCommand implements Command { + Runnable method; public SimpleCommand(Runnable m) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java index 195a1b11..41ab957e 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java @@ -1,10 +1,10 @@ package com.technototes.library.command; import com.technototes.library.subsystem.Subsystem; - import java.util.function.Consumer; public class SimpleRequiredCommand implements Command { + T sub; Consumer method; diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index 8275eba8..1437dfcb 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -7,7 +7,6 @@ import com.technototes.library.command.SimpleCommand; import com.technototes.library.command.SimpleRequiredCommand; import com.technototes.library.subsystem.Subsystem; - import java.util.function.BiConsumer; import java.util.function.BooleanSupplier; import java.util.function.Consumer; @@ -28,15 +27,19 @@ public interface CommandInput extends BooleanSupplier { default T whenPressed(Command command) { return schedule(getInstance()::isJustPressed, command); } + default T whenPressed(S req, Consumer methodRef) { return whenPressed(new SimpleRequiredCommand<>(req, methodRef)); } + default T whenPressed(S req, BiConsumer methodRef, R param) { return whenPressed(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whenPressed(Runnable methodRef) { return whenPressed(new SimpleCommand(methodRef)); } + default T whenPressed(Consumer methodRef, R param) { return whenPressed(new ParameterCommand<>(methodRef, param)); } @@ -50,20 +53,23 @@ default T whenPressed(Consumer methodRef, R param) { default T whenReleased(Command command) { return schedule(getInstance()::isJustReleased, command); } + default T whenReleased(S req, Consumer methodRef) { return whenReleased(new SimpleRequiredCommand<>(req, methodRef)); } + default T whenReleased(S req, BiConsumer methodRef, R param) { return whenReleased(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whenReleased(Runnable methodRef) { return whenReleased(new SimpleCommand(methodRef)); } + default T whenReleased(Consumer methodRef, R param) { return whenReleased(new ParameterCommand<>(methodRef, param)); } - /** * Schedule a command to be run over & over while the input is pressed, * but once it's released, the command will be cancelled. @@ -74,15 +80,19 @@ default T whenReleased(Consumer methodRef, R param) { default T whilePressed(Command command) { return schedule(getInstance()::isPressed, command.cancelUpon(getInstance()::isReleased)); } + default T whilePressed(S req, Consumer methodRef) { return whilePressed(new SimpleRequiredCommand<>(req, methodRef)); } + default T whilePressed(S req, BiConsumer methodRef, R param) { return whilePressed(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whilePressed(Runnable methodRef) { return whilePressed(new SimpleCommand(methodRef)); } + default T whilePressed(Consumer methodRef, R param) { return whilePressed(new ParameterCommand<>(methodRef, param)); } @@ -97,15 +107,19 @@ default T whilePressed(Consumer methodRef, R param) { default T whileReleased(Command command) { return schedule(getInstance()::isReleased, command.cancelUpon(getInstance()::isPressed)); } + default T whileReleased(S req, Consumer methodRef) { return whileReleased(new SimpleRequiredCommand<>(req, methodRef)); } + default T whileReleased(S req, BiConsumer methodRef, R param) { return whileReleased(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whileReleased(Runnable methodRef) { return whileReleased(new SimpleCommand(methodRef)); } + default T whileReleased(Consumer methodRef, R param) { return whileReleased(new ParameterCommand<>(methodRef, param)); } @@ -121,18 +135,23 @@ default T whileReleased(Consumer methodRef, R param) { default T whilePressedOnce(Command command) { return schedule(getInstance()::isJustPressed, command.cancelUpon(getInstance()::isReleased)); } + default T whilePressedOnce(S req, Consumer methodRef) { return whilePressedOnce(new SimpleRequiredCommand<>(req, methodRef)); } + default T whilePressedOnce(S req, BiConsumer methodRef, R param) { return whilePressedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whilePressedOnce(Runnable methodRef) { return whilePressedOnce(new SimpleCommand(methodRef)); } + default T whilePressedOnce(Consumer methodRef, R param) { return whilePressedOnce(new ParameterCommand<>(methodRef, param)); } + /** * Schedule a command to be run over & over while the input is pressed * @@ -142,18 +161,23 @@ default T whilePressedOnce(Consumer methodRef, R param) { default T whilePressedContinuous(Command command) { return schedule(getInstance()::isPressed, command); } + default T whilePressedContinuous(S req, Consumer methodRef) { return whilePressedContinuous(new SimpleRequiredCommand<>(req, methodRef)); } + default T whilePressedContinuous(S req, BiConsumer methodRef, R param) { return whilePressedContinuous(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whilePressedContinuous(Runnable methodRef) { return whilePressedContinuous(new SimpleCommand(methodRef)); } + default T whilePressedContinuous(Consumer methodRef, R param) { return whilePressedContinuous(new ParameterCommand<>(methodRef, param)); } + /** * Schedule the command to be run when the input is released, but only once! * @@ -163,15 +187,19 @@ default T whilePressedContinuous(Consumer methodRef, R param) { default T whileReleasedOnce(Command command) { return schedule(getInstance()::isJustReleased, command.cancelUpon(getInstance()::isPressed)); } + default T whileReleasedOnce(S req, Consumer methodRef) { return whileReleasedOnce(new SimpleRequiredCommand<>(req, methodRef)); } + default T whileReleasedOnce(S req, BiConsumer methodRef, R param) { return whileReleasedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whileReleasedOnce(Runnable methodRef) { return whileReleasedOnce(new SimpleCommand(methodRef)); } + default T whileReleasedOnce(Consumer methodRef, R param) { return whileReleasedOnce(new ParameterCommand<>(methodRef, param)); } @@ -186,15 +214,19 @@ default T whileReleasedOnce(Consumer methodRef, R param) { default T whenToggled(Command command) { return schedule(getInstance()::isJustToggled, command); } + default T whenToggled(S req, Consumer methodRef) { return whenToggled(new SimpleRequiredCommand<>(req, methodRef)); } + default T whenToggled(S req, BiConsumer methodRef, R param) { return whenToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whenToggled(Runnable methodRef) { return whenToggled(new SimpleCommand(methodRef)); } + default T whenToggled(Consumer methodRef, R param) { return whenToggled(new ParameterCommand<>(methodRef, param)); } @@ -208,15 +240,19 @@ default T whenToggled(Consumer methodRef, R param) { default T whenInverseToggled(Command command) { return schedule(getInstance()::isJustInverseToggled, command); } + default T whenInverseToggled(S req, Consumer methodRef) { return whenInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); } + default T whenInverseToggled(S req, BiConsumer methodRef, R param) { return whenInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whenInverseToggled(Runnable methodRef) { return whenInverseToggled(new SimpleCommand(methodRef)); } + default T whenInverseToggled(Consumer methodRef, R param) { return whenInverseToggled(new ParameterCommand<>(methodRef, param)); } @@ -233,15 +269,19 @@ default T whenInverseToggled(Consumer methodRef, R param) { default T whileToggled(Command command) { return schedule(getInstance()::isToggled, command.cancelUpon(getInstance()::isInverseToggled)); } + default T whileToggled(S req, Consumer methodRef) { return whileToggled(new SimpleRequiredCommand<>(req, methodRef)); } + default T whileToggled(S req, BiConsumer methodRef, R param) { return whileToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whileToggled(Runnable methodRef) { return whileToggled(new SimpleCommand(methodRef)); } + default T whileToggled(Consumer methodRef, R param) { return whileToggled(new ParameterCommand<>(methodRef, param)); } @@ -256,15 +296,19 @@ default T whileToggled(Consumer methodRef, R param) { default T whileInverseToggled(Command command) { return schedule(getInstance()::isInverseToggled, command.cancelUpon(getInstance()::isToggled)); } + default T whileInverseToggled(S req, Consumer methodRef) { return whileInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); } + default T whileInverseToggled(S req, BiConsumer methodRef, R param) { return whileInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + default T whileInverseToggled(Runnable methodRef) { return whileInverseToggled(new SimpleCommand(methodRef)); } + default T whileInverseToggled(Consumer methodRef, R param) { return whileInverseToggled(new ParameterCommand<>(methodRef, param)); } diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index bd816fe7..3a0c3245 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -93,8 +93,10 @@ public BasicVisionSubsystem stopStreaming() { // How many rectangles are you checking? abstract int numRectangles(); + // Get the specific rectangle number abstract Rect getRect(int rectNumber); + // Process the particular rectangle (you probably want to call countPixelsOfColor ;) ) public abstract void runDetection(Mat inputHSV, int rectNumber); From 5a50d0ed557ffcd5a9e66a8adbd9ab1bced4d165 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 15 Oct 2023 11:04:12 -0700 Subject: [PATCH 19/47] Added a little bit to the Vision stuff as I'm porting PowerPlay --- .../src/main/java/com/technototes/vision/HSVRange.java | 4 ++++ .../vision/subsystem/BasicVisionSubsystem.java | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Vision/src/main/java/com/technototes/vision/HSVRange.java b/Vision/src/main/java/com/technototes/vision/HSVRange.java index db9e4d88..14c6454c 100644 --- a/Vision/src/main/java/com/technototes/vision/HSVRange.java +++ b/Vision/src/main/java/com/technototes/vision/HSVRange.java @@ -48,6 +48,10 @@ public HSVRange truncateRange() { return null; } + public HSVRange newHue(int newHue, int hRange) { + return new HSVRange(newHue, hRange, satLow, satHigh, valLow, valHigh); + } + public Scalar lowEdge() { return new Scalar(hueLow, satLow, valLow); } diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index 3a0c3245..d0344e8d 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -92,19 +92,22 @@ public BasicVisionSubsystem stopStreaming() { // But really, you should be using FtcDashboard. It's much faster to get this right. // How many rectangles are you checking? - abstract int numRectangles(); + public abstract int numRectangles(); // Get the specific rectangle number - abstract Rect getRect(int rectNumber); + public abstract Rect getRect(int rectNumber); // Process the particular rectangle (you probably want to call countPixelsOfColor ;) ) public abstract void runDetection(Mat inputHSV, int rectNumber); + protected void detectionStart() {} + protected void detectionEnd() {} + protected void detectionProcessing(Mat frame) { // Put the input matrix in a member variable, so that other functions can draw on it curFrameRGB = frame; int count = numRectangles(); - + detectionStart(); for (int i = 0; i < count; i++) { // First, slice the smaller rectangle out of the overall bitmap: Rect r = getRect(i); @@ -116,6 +119,7 @@ protected void detectionProcessing(Mat frame) { Imgproc.cvtColor(subRectRGB, subRectHSV, Imgproc.COLOR_RGB2HSV); runDetection(subRectHSV, i); } + detectionEnd(); } @Override From 4181cc78a618ed046c11659c4e4c04e87e1f8caf Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 15 Oct 2023 15:14:39 -0700 Subject: [PATCH 20/47] Moved detectionStart before numRectangles --- .../com/technototes/vision/subsystem/BasicVisionSubsystem.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index d0344e8d..a1ea8f18 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -106,8 +106,8 @@ protected void detectionEnd() {} protected void detectionProcessing(Mat frame) { // Put the input matrix in a member variable, so that other functions can draw on it curFrameRGB = frame; - int count = numRectangles(); detectionStart(); + int count = numRectangles(); for (int i = 0; i < count; i++) { // First, slice the smaller rectangle out of the overall bitmap: Rect r = getRect(i); From 3bb5a9b2d80003dce6e97a98837988fbd4a2abd3 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 15 Oct 2023 20:51:26 -0700 Subject: [PATCH 21/47] Some doc updates. I should go dig up how to deploy stuff to github.io again --- .../library/command/CommandScheduler.java | 12 +- .../library/control/ButtonBase.java | 22 + .../library/control/CommandInput.java | 506 +++++++++++++++++- .../com/technototes/library/util/Range.java | 2 +- .../java/com/technototes/vision/HSVRange.java | 31 +- .../subsystem/BasicVisionSubsystem.java | 73 ++- 6 files changed, 635 insertions(+), 11 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index 7e5a0c27..f9e593d6 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -128,6 +128,7 @@ public static void schedule(Command command) { * * @param req the subsystem required * @param methodRef the function to invoke on the subsystem + * @param The type of the subsystem required by the method */ public static void schedule(S req, Consumer methodRef) { schedule(req, methodRef, () -> true); @@ -143,6 +144,8 @@ public static void schedule(S req, Consumer methodRef) * @param req the subsystem required * @param methodRef the function to invoke on the subsystem * @param param the parameter to pass to the function being called + * @param The type of the subsystem required by the method + * @param The type of the parameter to pass to the method */ public static void schedule(S req, BiConsumer methodRef, T param) { schedule(req, methodRef, param, () -> true); @@ -167,9 +170,10 @@ public static void schedule(Runnable methodRef) { * CommandScheduler.schedule(robot.liftSubsys, LiftSubsystem::GoToPosition, LiftPos.MIDDLE) * } * - * @param req the subsystem required * @param methodRef the function to invoke on the subsystem * @param param the parameter to pass to the function being called + * @param The type of the subsystem required by the method + * @param The type of the parameter to pass to the method */ public static void schedule(Consumer methodRef, T param) { schedule(methodRef, param, () -> true); @@ -201,6 +205,7 @@ public static void scheduleInit(Command command, BooleanSupplier supplier) { * @param req the subsystem required * @param methodRef the function to invoke on the subsystem * @param supplier the boolean function to run to determine if the function should be run + * @param The type of the subsystem required by the method */ public static void scheduleInit(S req, Consumer methodRef, BooleanSupplier supplier) { scheduleInit(new SimpleRequiredCommand<>(req, methodRef), supplier); @@ -221,6 +226,8 @@ public static void scheduleInit(S req, Consumer methodR * @param methodRef the function to invoke on the subsystem * @param param the argument passed to the methodRef function * @param supplier the boolean function to run to determine if the function should be run + * @param The type of the subsystem required by the method + * @param The type of the parameter to pass to the method */ public static void scheduleInit( S req, @@ -241,7 +248,6 @@ public static void scheduleInit( * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) * } * - * @param req the subsystem required * @param methodRef the function to invoke on the subsystem * @param supplier the boolean function to run to determine if the function should be run */ @@ -260,10 +266,10 @@ public static void scheduleInit(Runnable methodRef, BooleanSupplier supplier) { * // but only if TokenIdentifyingSubsystem.CAMERA_CONNECTED is also true * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, Alliance.RED, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) * } - * @param req the subsystem required * @param methodRef the function to invoke on the subsystem * @param param the argument passed to the methodRef function * @param supplier the boolean function to run to determine if the function should be run + * @param The type of the parameter to pass to the method */ public static void scheduleInit(Consumer methodRef, T param, BooleanSupplier supplier) { scheduleInit(new ParameterCommand<>(methodRef, param), supplier); diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java b/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java index 07164d6b..cdb643cd 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java @@ -115,26 +115,48 @@ public boolean isInverseToggled() { */ @Override public boolean getAsBoolean() { + // Alex had to get some of that sweet, sweet exclusive or operator... + // For the non-bit-twiddly among us, this is (bs.get() != inverted) && isEnabled() + // Or, verbally: flip the booleanSupplier if it's inverted, and it's only true if + // it's also enabled... return booleanSupplier.getAsBoolean() ^ inverted && isEnabled(); } + /** + * Inverts the button, such that "isPressed" and "isReleased" are opposite, along with everything + * that entails + * + * @param invert Inversion value (true inverts, false leaves the values as is) + * @return the ButtonBase object + */ @Override public ButtonBase setInverted(boolean invert) { inverted = invert; return this; } + /** + * @return True if the button is inverted (pressed registers as released, etc...) + */ @Override public boolean getInverted() { return inverted; } + /** + * Enable or disable the button + * @param enable True for enabled, false for disabled + * @return + */ @Override public ButtonBase setEnabled(boolean enable) { enabled = enable; return this; } + /** + * @return True if the button is enabled + */ @Override public boolean isEnabled() { return enabled; diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index 1437dfcb..a773b521 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -28,18 +28,66 @@ default T whenPressed(Command command) { return schedule(getInstance()::isJustPressed, command); } + /** + * Schedule a method of a required subsystem to be run once the input is pressed. + * + * {@code + * // This command calls robot.liftSubsys.MoveUp() + * gamepad.dpad.up.whenPressed(robot.liftSubsys, LiftSubsystem::MoveUp) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenPressed(S req, Consumer methodRef) { return whenPressed(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method of a required subsystem (with a parameter) to be run once the input is pressed. + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whenPressed(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the subsystem required by the method + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whenPressed(S req, BiConsumer methodRef, R param) { return whenPressed(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run once the input is pressed. + * + * {@code + * // This command calls robot.brightenLights + * gamepad.dpad.up.whenPressed(robot::brightenLights) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whenPressed(Runnable methodRef) { return whenPressed(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run once the input is pressed. + * + * {@code + * // This command calls robot.blinkLights(RGB_PURPLE) + * gamepad.dpad.up.whenPressed(robot::blinkLights, RGB_PURPLE) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whenPressed(Consumer methodRef, R param) { return whenPressed(new ParameterCommand<>(methodRef, param)); } @@ -54,18 +102,66 @@ default T whenReleased(Command command) { return schedule(getInstance()::isJustReleased, command); } + /** + * Schedule a method of a required subsystem to be run once the input is released. + * + * {@code + * // This command calls robot.liftSubsys.MoveUp() + * gamepad.dpad.up.whenReleased(robot.liftSubsys, LiftSubsystem::MoveUp) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenReleased(S req, Consumer methodRef) { return whenReleased(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method of a required subsystem (with a parameter) to be run once the input is released. + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whenReleased(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenReleased(S req, BiConsumer methodRef, R param) { return whenReleased(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run once the input is released. + * + * {@code + * // This command calls robot.brightenLights + * gamepad.dpad.up.whenReleased(robot::brightenLights) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whenReleased(Runnable methodRef) { return whenReleased(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run once the input is released. + * + * {@code + * // This command calls robot.blinkLights(RGB_PURPLE) + * gamepad.dpad.up.whenReleased(robot::blinkLights, RGB_PURPLE) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whenReleased(Consumer methodRef, R param) { return whenReleased(new ParameterCommand<>(methodRef, param)); } @@ -81,18 +177,70 @@ default T whilePressed(Command command) { return schedule(getInstance()::isPressed, command.cancelUpon(getInstance()::isReleased)); } + /** + * Schedule a method of a required subsystem to be run over & over while the input is pressed, + * but once it's released, the command will be cancelled. + * + * {@code + * // This command calls robot.liftSubsys.MoveUp() + * gamepad.dpad.up.whilePressed(robot.liftSubsys, LiftSubsystem::MoveUp) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whilePressed(S req, Consumer methodRef) { return whilePressed(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method of a required subsystem (with a parameter) to be run over & over while the input is pressed, + * but once it's released, the command will be cancelled. + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whilePressed(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whilePressed(S req, BiConsumer methodRef, R param) { return whilePressed(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run over & over while the input is pressed, + * but once it's released, the command will be cancelled. + * + * {@code + * // This command calls robot.brightenLights + * gamepad.dpad.up.whilePressed(robot::brightenLights) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whilePressed(Runnable methodRef) { return whilePressed(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run over & over while the input is pressed, + * but once it's released, the command will be cancelled. + * + * {@code + * // This command calls robot.blinkLights(RGB_PURPLE) + * gamepad.dpad.up.whilePressed(robot::blinkLights, RGB_PURPLE) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whilePressed(Consumer methodRef, R param) { return whilePressed(new ParameterCommand<>(methodRef, param)); } @@ -108,18 +256,70 @@ default T whileReleased(Command command) { return schedule(getInstance()::isReleased, command.cancelUpon(getInstance()::isPressed)); } + /** + * Schedule a method of a required subsystem to be run over & over while the input is released, + * but once it's pressed, the command will be cancelled. + * + * {@code + * // This command calls robot.liftSubsys.StayPut() + * gamepad.dpad.up.whileReleased(robot.liftSubsys, LiftSubsystem::StayPut) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileReleased(S req, Consumer methodRef) { return whileReleased(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method of a required subsystem (with a parameter) to be run over & over while the input is released, + * but once it's pressed, the command will be cancelled. + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whileReleased(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileReleased(S req, BiConsumer methodRef, R param) { return whileReleased(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run over & over while the input is released, + * but once it's pressed, the command will be cancelled. + * + * {@code + * // This command calls robot.brightenLights + * gamepad.dpad.up.whileReleased(robot::brightenLights) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whileReleased(Runnable methodRef) { return whileReleased(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run over & over while the input is released, + * but once it's pressed, the command will be cancelled. + * + * {@code + * // This command calls robot.blinkLights(RGB_PURPLE) + * gamepad.dpad.up.whileReleased(robot::blinkLights, RGB_PURPLE) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whileReleased(Consumer methodRef, R param) { return whileReleased(new ParameterCommand<>(methodRef, param)); } @@ -136,18 +336,74 @@ default T whilePressedOnce(Command command) { return schedule(getInstance()::isJustPressed, command.cancelUpon(getInstance()::isReleased)); } + /** + * Schedule a method of a required subsystem to be run while the input is pressed, but only once, + * and if the command takes so long that the input is released, the command + * will be cancelled. + * + * {@code + * // This command calls robot.liftSubsys.StayPut() + * gamepad.dpad.up.whilePressedOnce(robot.liftSubsys, LiftSubsystem::StayPut) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whilePressedOnce(S req, Consumer methodRef) { return whilePressedOnce(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method of a required subsystem (with a parameter) to be run while the input is pressed, but only once, + * and if the command takes so long that the input is released, the command + * will be cancelled. + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whilePressedOnce(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whilePressedOnce(S req, BiConsumer methodRef, R param) { return whilePressedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run while the input is pressed, but only once, + * and if the command takes so long that the input is released, the command + * will be cancelled. + * + * {@code + * // This command calls robot.brightenLights + * gamepad.dpad.up.whilePressedOnce(robot::brightenLights) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whilePressedOnce(Runnable methodRef) { return whilePressedOnce(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run while the input is pressed, but only once, + * and if the command takes so long that the input is released, the command + * will be cancelled. + * + * {@code + * // This command calls robot.blinkLights(RGB_PURPLE) + * gamepad.dpad.up.whilePressedOnce(robot::blinkLights, RGB_PURPLE) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whilePressedOnce(Consumer methodRef, R param) { return whilePressedOnce(new ParameterCommand<>(methodRef, param)); } @@ -162,18 +418,66 @@ default T whilePressedContinuous(Command command) { return schedule(getInstance()::isPressed, command); } + /** + * Schedule a method of a required subsystem to be run over & over while the input is pressed + * + * {@code + * // This command calls robot.liftSubsys.MoveUp() + * gamepad.dpad.up.whilePressedContinuous(robot.liftSubsys, LiftSubsystem::MoveUp) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whilePressedContinuous(S req, Consumer methodRef) { return whilePressedContinuous(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method of a required subsystem (with a parameter) to be run over & over while the input is pressed + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whilePressedContinuous(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whilePressedContinuous(S req, BiConsumer methodRef, R param) { return whilePressedContinuous(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run over & over while the input is pressed + * + * {@code + * // This command calls robot.brightenLights + * gamepad.dpad.up.whilePressedContinuous(robot::brightenLights) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whilePressedContinuous(Runnable methodRef) { return whilePressedContinuous(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run over & over while the input is pressed + * + * {@code + * // This command calls robot.blinkLights(RGB_PURPLE) + * gamepad.dpad.up.whilePressedContinuous(robot::blinkLights, RGB_PURPLE) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whilePressedContinuous(Consumer methodRef, R param) { return whilePressedContinuous(new ParameterCommand<>(methodRef, param)); } @@ -188,18 +492,66 @@ default T whileReleasedOnce(Command command) { return schedule(getInstance()::isJustReleased, command.cancelUpon(getInstance()::isPressed)); } + /** + * Schedule the method to be run on the given subsystem to be run when the input is + * released, but only once! + * + * {@code + * // This command calls robot.liftSubsys.MoveUp() + * gamepad.dpad.up.whileReleasedOnce(robot.liftSubsys, LiftSubsystem::MoveUp) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileReleasedOnce(S req, Consumer methodRef) { return whileReleasedOnce(new SimpleRequiredCommand<>(req, methodRef)); } - + /** + * Schedule the method to be run (with the parameter provided) on the given subsystem to be + * run when the input is released, but only once! + * + * {@code + * // This command calls robot.liftSubsys.Move(LiftDirection.UP) + * gamepad.dpad.up.whileReleasedOnce(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) + * } + * @param req The subsystem to control + * @param methodRef the method on the subsystem to invoke + * @param param the value to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileReleasedOnce(S req, BiConsumer methodRef, R param) { return whileReleasedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); } - + /** + * Schedule the method to be run when the input is released, but only once! + * + * {@code + * // This command calls robot.lightsOff + * gamepad.dpad.up.whileReleasedOnce(robot::lightsOff) + * } + * @param methodRef the method on the subsystem to invoke + * @return The CommandInput<T> instance + */ default T whileReleasedOnce(Runnable methodRef) { return whileReleasedOnce(new SimpleCommand(methodRef)); } - + /** + * Schedule the method to be run (with the paramter provided) when the input is released, + * but only once! + * + * {@code + * // This command calls robot.blinkLights(2) + * gamepad.dpad.up.whileReleasedOnce(robot::blinkLights, 2) + * } + * @param methodRef the method to invoke + * @param param the parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whileReleasedOnce(Consumer methodRef, R param) { return whileReleasedOnce(new ParameterCommand<>(methodRef, param)); } @@ -215,18 +567,54 @@ default T whenToggled(Command command) { return schedule(getInstance()::isJustToggled, command); } + /** + * Schedule a method that requires a subsystem to be run when the input was just toggled + * (From pressed to released, or released to pressed) + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenToggled(S req, Consumer methodRef) { return whenToggled(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method that requires a subsystem (with a parameter) to be run when the input was just toggled + * (From pressed to released, or released to pressed) + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param param The parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenToggled(S req, BiConsumer methodRef, R param) { return whenToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run when the input was just toggled + * (From pressed to released, or released to pressed) + * + * @param methodRef The method to be invoked + * @return The CommandInput<T> instance + */ default T whenToggled(Runnable methodRef) { return whenToggled(new SimpleCommand(methodRef)); } + /** + * Schedule a method (with a parameter) to be run when the input was just toggled + * (From pressed to released, or released to pressed) + * + * @param methodRef The method to be invoked + * @param param the parameter to be passed to the method invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whenToggled(Consumer methodRef, R param) { return whenToggled(new ParameterCommand<>(methodRef, param)); } @@ -241,18 +629,50 @@ default T whenInverseToggled(Command command) { return schedule(getInstance()::isJustInverseToggled, command); } + /** + * Schedule a method on a subsystem to be run when the input has only stopped being toggled + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenInverseToggled(S req, Consumer methodRef) { return whenInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule the command to be run when the input has only stopped being toggled + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param param The parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whenInverseToggled(S req, BiConsumer methodRef, R param) { return whenInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run when the input has only stopped being toggled + * + * @param methodRef The method to be invoked + * @return The CommandInput<T> instance + */ default T whenInverseToggled(Runnable methodRef) { return whenInverseToggled(new SimpleCommand(methodRef)); } + /** + * Schedule a method with a parameter to be run when the input has only stopped being toggled + * + * @param methodRef The method to be invoked + * @param param the parameter to be passed to the method invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whenInverseToggled(Consumer methodRef, R param) { return whenInverseToggled(new ParameterCommand<>(methodRef, param)); } @@ -270,18 +690,62 @@ default T whileToggled(Command command) { return schedule(getInstance()::isToggled, command.cancelUpon(getInstance()::isInverseToggled)); } + /** + * Schedule a method to be run while the input is changing. + * It will be canceled once the input is not changing. + * This is questionably useful, as toggling over & over is a 'frequency' problem. + * I expect this is going to behave almost the same as whenToggled... + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileToggled(S req, Consumer methodRef) { return whileToggled(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule a method (with a parameter) to be run while the input is changing. + * It will be canceled once the input is not changing. + * This is questionably useful, as toggling over & over is a 'frequency' problem. + * I expect this is going to behave almost the same as whenToggled... + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param param The parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileToggled(S req, BiConsumer methodRef, R param) { return whileToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule a method to be run while the input is changing. + * It will be canceled once the input is not changing. + * This is questionably useful, as toggling over & over is a 'frequency' problem. + * I expect this is going to behave almost the same as whenToggled... + * + * @param methodRef The method to be invoked + * @return The CommandInput<T> instance + */ default T whileToggled(Runnable methodRef) { return whileToggled(new SimpleCommand(methodRef)); } + /** + * Schedule a method (with a parameter) to be run while the input is changing. + * It will be canceled once the input is not changing. + * This is questionably useful, as toggling over & over is a 'frequency' problem. + * I expect this is going to behave almost the same as whenToggled... + * + * @param methodRef The method to be invoked + * @param param the parameter to be passed to the method invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whileToggled(Consumer methodRef, R param) { return whileToggled(new ParameterCommand<>(methodRef, param)); } @@ -297,18 +761,54 @@ default T whileInverseToggled(Command command) { return schedule(getInstance()::isInverseToggled, command.cancelUpon(getInstance()::isToggled)); } + /** + * Schedule the command to run over & over while the input is *not* changing + * It will be canceled once the input is toggled. + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileInverseToggled(S req, Consumer methodRef) { return whileInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); } + /** + * Schedule the command to run over & over while the input is *not* changing + * It will be canceled once the input is toggled. + * + * @param req The required subsystem i.e. the subsystem being controlled + * @param methodRef The method of the subsystem being invoked + * @param param The parameter to pass to the method being invoked + * @param The type of the parameter to pass to the method + * @param The type of the subsystem required by the method + * @return The CommandInput<T> instance + */ default T whileInverseToggled(S req, BiConsumer methodRef, R param) { return whileInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** + * Schedule the command to run over & over while the input is *not* changing + * It will be canceled once the input is toggled. + * + * @param methodRef The method to be invoked + * @return The CommandInput<T> instance + */ default T whileInverseToggled(Runnable methodRef) { return whileInverseToggled(new SimpleCommand(methodRef)); } + /** + * Schedule the command to run over & over while the input is *not* changing + * It will be canceled once the input is toggled. + * + * @param methodRef The method to be invoked + * @param param the parameter to be passed to the method invoked + * @param The type of the parameter to pass to the method + * @return The CommandInput<T> instance + */ default T whileInverseToggled(Consumer methodRef, R param) { return whileInverseToggled(new ParameterCommand<>(methodRef, param)); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/util/Range.java b/RobotLibrary/src/main/java/com/technototes/library/util/Range.java index 5415d52f..7b1cfdac 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/util/Range.java +++ b/RobotLibrary/src/main/java/com/technototes/library/util/Range.java @@ -57,7 +57,7 @@ public void scale(double scalar) { /** * Get the 'middle' of the range * - * @return the average of min & max + * @return the average of min & max */ public double middle() { return (min + max) / 2; diff --git a/Vision/src/main/java/com/technototes/vision/HSVRange.java b/Vision/src/main/java/com/technototes/vision/HSVRange.java index 14c6454c..f0298888 100644 --- a/Vision/src/main/java/com/technototes/vision/HSVRange.java +++ b/Vision/src/main/java/com/technototes/vision/HSVRange.java @@ -2,6 +2,9 @@ import org.opencv.core.Scalar; +/** + * This is used to detect colors in a particular HSV 'range' + */ public class HSVRange { int hueLow, hueHigh; @@ -18,7 +21,16 @@ private HSVRange(int hLo, int hHi, HSVRange copyFrom) { valHigh = copyFrom.valHigh; } - // Create an HSV color range, around 'hue' (0-180, 2 degrees) + /** + * Create an HSV color range, around 'hue' (0-180, 2 degrees) + * + * @param hue The hue (0-179): each unit is *2* degrees! + * @param hRange The +/- on the hue for detection + * @param sLo The low saturation range + * @param sHi The high saturation range + * @param vLo The low value range + * @param vHi The high value range + */ public HSVRange(int hue, int hRange, int sLo, int sHi, int vLo, int vHi) { while (hue > 180) { hue -= 180; @@ -34,6 +46,9 @@ public HSVRange(int hue, int hRange, int sLo, int sHi, int vLo, int vHi) { valHigh = Math.max(vLo, vHi); } + /** + * @return An HSVRange for the 'low end' of the hue range, if it's below 0, null otherwise + */ public HSVRange makeWrapAround() { if (hueLow >= 0) { return null; @@ -41,6 +56,9 @@ public HSVRange makeWrapAround() { return new HSVRange(180 + hueLow, 180, this); } + /** + * @return An HSVRange for the positive part of a hue range if it spans across 0, null otherwise + */ public HSVRange truncateRange() { if (hueLow < 0) { return new HSVRange(0, hueHigh, this); @@ -48,14 +66,25 @@ public HSVRange truncateRange() { return null; } + /** + * @param newHue The new hue for an existing HSVrange + * @param hRange The new range for an existing HSVRange + * @return A new HSVRange using the current Saturation and Values, with a new hue & hue range + */ public HSVRange newHue(int newHue, int hRange) { return new HSVRange(newHue, hRange, satLow, satHigh, valLow, valHigh); } + /** + * @return A Scalar for OpenCV use for color detection for the low end + */ public Scalar lowEdge() { return new Scalar(hueLow, satLow, valLow); } + /** + * @return A Scalar for OpenCV use for color detection for the high end + */ public Scalar highEdge() { return new Scalar(hueHigh, satHigh, valHigh); } diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index a1ea8f18..0217b997 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -21,15 +21,30 @@ public abstract class BasicVisionSubsystem extends OpenCvPipeline implements Sub * The Camera object this subsystem is processing frames from */ protected Camera camera; + /** + * The width and height of the image requested from the camera + */ protected int width, height; + /** + * The rotation applied to the image + */ protected OpenCvCameraRotation rotation; + /** + * The current frame being processed (can be drawn on!) + */ protected Mat curFrameRGB; + /** + * True iff the pipeline is properly set and running + */ protected boolean pipelineSet; /** * Create the subsystem with the Camera provided * * @param c The camera to process frames from + * @param w The width of the camera image + * @param h The height fo the camera image + * @param rot The rotation of the camera image */ public BasicVisionSubsystem(Camera c, int w, int h, OpenCvCameraRotation rot) { camera = c; @@ -49,10 +64,17 @@ public Camera getDevice() { return camera; } + + /** + * Start the images coming from the camera + */ protected void beginStreaming() { camera.startStreaming(width, height, rotation); } + /** + * Turn on the camera and start visual processing + */ public void startVisionPipeline() { camera.setPipeline(this); pipelineSet = true; @@ -60,6 +82,9 @@ public void startVisionPipeline() { camera.openCameraDeviceAsync(this::beginStreaming, i -> startVisionPipeline()); } + /** + * Turn off the camera and enable visual processing + */ public void stopVisionPipeline() { camera.setPipeline(null); pipelineSet = false; @@ -68,6 +93,11 @@ public void stopVisionPipeline() { }); } + /** + * Turn off the camera and stop visual processing + * + * @return this for chaining if you really want... + */ public BasicVisionSubsystem startStreaming() { beginStreaming(); return this; @@ -91,18 +121,45 @@ public BasicVisionSubsystem stopStreaming() { // If you don't use FtcDashboard, just make an array of Rect's and be done with it. // But really, you should be using FtcDashboard. It's much faster to get this right. - // How many rectangles are you checking? + /** + * @return How many rectangles are you checking + */ public abstract int numRectangles(); - // Get the specific rectangle number + /** + * Get the specific rectangle number + * + * @param rectNumber Which rectangle to return + * @return The rectangle that will be processed + */ public abstract Rect getRect(int rectNumber); - // Process the particular rectangle (you probably want to call countPixelsOfColor ;) ) + + + /** + * Process the particular rectangle (you probably want to call countPixelsOfColor ;) ) + * @param inputHSV The HSV rectangle to process + * @param rectNumber The rectangle this Mat is from within the overall image + */ public abstract void runDetection(Mat inputHSV, int rectNumber); + /** + * Override this to do something before a frame is processed + */ protected void detectionStart() {} + /** + * Override this to do something after a frame is processed + */ protected void detectionEnd() {} + /** + * Run processing on the frame provided. + * This invokes detectionStart, numRectangles, getRect, runDetection, and detectionEnd. + * You probably don't want to bother overriding it, unless you can't use the rectangle + * processing facilty as is. + * + * @param frame The RGB frame from the camera + */ protected void detectionProcessing(Mat frame) { // Put the input matrix in a member variable, so that other functions can draw on it curFrameRGB = frame; @@ -132,6 +189,16 @@ public void init(Mat firstFrame) { detectionProcessing(firstFrame); } + /** + * Count the number of pixels that are in the given range + * + * @param range The HSV range to look for + * @param imgHSV A sub-rectangle to count pixels in + * @param telemetryRGB The (optional) output RGB image (to help with debugging) + * @param xOffset The x-offset fo the subrectangle within the output RGB image + * @param yOffset The y-offset fo the subrectangle within the output RGB image + * @return The number of pixels that were found to be within the specified range + */ protected int countPixelsOfColor(HSVRange range, Mat imgHSV, Mat telemetryRGB, int xOffset, int yOffset) { int totalColorCount = 0; // Since we might have a hue range of -15 to 15 to detect red, From 848fe6a6f66ee1b21064f3bbc2a3e47794499fff Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Mon, 16 Oct 2023 23:06:31 -0700 Subject: [PATCH 22/47] Added some @Deprecated tags in the IMU class, formatted code --- .../com/technototes/library/control/CommandInput.java | 3 +++ .../com/technototes/library/hardware/sensor/IMU.java | 10 ++++++++++ .../vision/subsystem/BasicVisionSubsystem.java | 4 +--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index a773b521..3e2d005a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -508,6 +508,7 @@ default T whileReleasedOnce(Command command) { default T whileReleasedOnce(S req, Consumer methodRef) { return whileReleasedOnce(new SimpleRequiredCommand<>(req, methodRef)); } + /** * Schedule the method to be run (with the parameter provided) on the given subsystem to be * run when the input is released, but only once! @@ -526,6 +527,7 @@ default T whileReleasedOnce(S req, Consumer methodRef) default T whileReleasedOnce(S req, BiConsumer methodRef, R param) { return whileReleasedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); } + /** * Schedule the method to be run when the input is released, but only once! * @@ -539,6 +541,7 @@ default T whileReleasedOnce(S req, BiConsumer met default T whileReleasedOnce(Runnable methodRef) { return whileReleasedOnce(new SimpleCommand(methodRef)); } + /** * Schedule the method to be run (with the paramter provided) when the input is released, * but only once! diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java index 9d3c330f..4c235c3a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java @@ -15,7 +15,10 @@ public class IMU extends Sensor implements /** * The direction of the axes signs when remapping the axes + * + * Probably don't use this stuff. Just use the IMU direction from the 8.1 and later SDK */ + @Deprecated public enum AxesSigns { /** * Positive, Positive, Positive @@ -74,7 +77,10 @@ public enum AxesSigns { /** * Make an imu + * + * Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ SDK */ + @Deprecated public IMU(com.qualcomm.robotcore.hardware.IMU device, com.qualcomm.robotcore.hardware.IMU.Parameters params) { super(device); angleOffset = 0.0; @@ -88,7 +94,10 @@ public IMU(com.qualcomm.robotcore.hardware.IMU device, com.qualcomm.robotcore.ha /** * Make an imu + * + * Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ SDK */ + @Deprecated public IMU(String deviceName, com.qualcomm.robotcore.hardware.IMU.Parameters params) { super(deviceName); angleOffset = 0.0; @@ -238,6 +247,7 @@ public IMU remapAxesAndSigns(AxesOrder order, AxesSigns signs) { * @param legacySigns The *legacy* signs desired * @return this (for chaining) */ + @Deprecated public IMU remapLegacyAxes(AxesOrder legacyOrder, AxesSigns legacySigns) { // The BNO055 has the X and Y axes rotated 90 degrees :/ // These are *very* untested diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index 0217b997..3f09882f 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -64,7 +64,6 @@ public Camera getDevice() { return camera; } - /** * Start the images coming from the camera */ @@ -134,8 +133,6 @@ public BasicVisionSubsystem stopStreaming() { */ public abstract Rect getRect(int rectNumber); - - /** * Process the particular rectangle (you probably want to call countPixelsOfColor ;) ) * @param inputHSV The HSV rectangle to process @@ -147,6 +144,7 @@ public BasicVisionSubsystem stopStreaming() { * Override this to do something before a frame is processed */ protected void detectionStart() {} + /** * Override this to do something after a frame is processed */ From 09b6e301ba8e2a7e6527ace624d463930718f38c Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Thu, 19 Oct 2023 07:00:03 -0700 Subject: [PATCH 23/47] Wrote up a little bit about simulation, to get it written down somewhere --- notes.md | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/notes.md b/notes.md index d917ab77..049c1152 100644 --- a/notes.md +++ b/notes.md @@ -1,6 +1,7 @@ # Notes for Kevin -(I'm the software mentor, picking up ownership of TechnLib from Alex Stedman, the original author) +(I'm the software mentor for 16750/20403 and have picked up ownership of TechnLib from Alex Stedman, +the original author, as he's doing silly things like "attending college") ## Hardware details to keep in mind @@ -9,3 +10,40 @@ The analog sticks are vertically inverted: When you push the stick up/away, the The shoulder triggers' range is from 0 to 1, not -1 to 1. I'm not currently sure what orientation the SDK 8.1+ IMU calls 0 degrees. + +## Simulation + +This has been in my head since my first year (2019, SkyStone) + +There ought to be a simulator for this stuff. It would let programmers work more independently to +validate basic stuff. I've never built a simulator, but I'm a semi competent developer, so (famous +last words) how hard can it be? ftcsim and vrs both lack some amount of flexibility, why doing a lot +more than what I really need/want for a team who's building a real bot. + +The core things that would need simulated: + +- Motors (with encoders) +- Servos (in both CR and Servo mode) +- Sensors (pick the order to get them going) + - IMU + - Bump + - Color + - 2M range + - Range + +Probably not worth simulating: + +- Vision. I could support connecting a webcam so the students could use an actual webcam, but I'm + not about to deal with AprilTags and TFOD. ML sucks. It doesn't work at level level of determinism + that makes me thing I could do anything useful with it. It's quantum physics, if the probability + of weird stuff happening is 10^-2 instead of 10^-20000000. Thanks, but no thanks. +- Controllers. Just wire them up from the computer + +Where do things get messy? I'd need some mechanism to translate rotational motion. I don't have the +interest to do a full physics simulator, so I could potentially make this pretty rudimentary. + +### What's next? + +Get through this season, then maybe start horsing around with this? Maybe learn Kotlin, since it +looks _much_ less verbose than Java (Seriously, Java, you've had almost 30 years. Why do you still +hate developers so much?) From d528e61ef24a49e7ddc7cd230179749b9ca13a04 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Thu, 19 Oct 2023 19:07:57 -0700 Subject: [PATCH 24/47] Removed a bunch of overloads to simplify the API's --- .../library/control/CommandInput.java | 679 ------------------ .../java/com/technototes/vision/HSVRange.java | 3 + 2 files changed, 3 insertions(+), 679 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index 3e2d005a..db161c3a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -28,70 +28,6 @@ default T whenPressed(Command command) { return schedule(getInstance()::isJustPressed, command); } - /** - * Schedule a method of a required subsystem to be run once the input is pressed. - * - * {@code - * // This command calls robot.liftSubsys.MoveUp() - * gamepad.dpad.up.whenPressed(robot.liftSubsys, LiftSubsystem::MoveUp) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenPressed(S req, Consumer methodRef) { - return whenPressed(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method of a required subsystem (with a parameter) to be run once the input is pressed. - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whenPressed(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the subsystem required by the method - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whenPressed(S req, BiConsumer methodRef, R param) { - return whenPressed(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run once the input is pressed. - * - * {@code - * // This command calls robot.brightenLights - * gamepad.dpad.up.whenPressed(robot::brightenLights) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whenPressed(Runnable methodRef) { - return whenPressed(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run once the input is pressed. - * - * {@code - * // This command calls robot.blinkLights(RGB_PURPLE) - * gamepad.dpad.up.whenPressed(robot::blinkLights, RGB_PURPLE) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whenPressed(Consumer methodRef, R param) { - return whenPressed(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run once the input is released. * @@ -102,70 +38,6 @@ default T whenReleased(Command command) { return schedule(getInstance()::isJustReleased, command); } - /** - * Schedule a method of a required subsystem to be run once the input is released. - * - * {@code - * // This command calls robot.liftSubsys.MoveUp() - * gamepad.dpad.up.whenReleased(robot.liftSubsys, LiftSubsystem::MoveUp) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenReleased(S req, Consumer methodRef) { - return whenReleased(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method of a required subsystem (with a parameter) to be run once the input is released. - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whenReleased(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenReleased(S req, BiConsumer methodRef, R param) { - return whenReleased(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run once the input is released. - * - * {@code - * // This command calls robot.brightenLights - * gamepad.dpad.up.whenReleased(robot::brightenLights) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whenReleased(Runnable methodRef) { - return whenReleased(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run once the input is released. - * - * {@code - * // This command calls robot.blinkLights(RGB_PURPLE) - * gamepad.dpad.up.whenReleased(robot::blinkLights, RGB_PURPLE) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whenReleased(Consumer methodRef, R param) { - return whenReleased(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run over & over while the input is pressed, * but once it's released, the command will be cancelled. @@ -177,74 +49,6 @@ default T whilePressed(Command command) { return schedule(getInstance()::isPressed, command.cancelUpon(getInstance()::isReleased)); } - /** - * Schedule a method of a required subsystem to be run over & over while the input is pressed, - * but once it's released, the command will be cancelled. - * - * {@code - * // This command calls robot.liftSubsys.MoveUp() - * gamepad.dpad.up.whilePressed(robot.liftSubsys, LiftSubsystem::MoveUp) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whilePressed(S req, Consumer methodRef) { - return whilePressed(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method of a required subsystem (with a parameter) to be run over & over while the input is pressed, - * but once it's released, the command will be cancelled. - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whilePressed(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whilePressed(S req, BiConsumer methodRef, R param) { - return whilePressed(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run over & over while the input is pressed, - * but once it's released, the command will be cancelled. - * - * {@code - * // This command calls robot.brightenLights - * gamepad.dpad.up.whilePressed(robot::brightenLights) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whilePressed(Runnable methodRef) { - return whilePressed(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run over & over while the input is pressed, - * but once it's released, the command will be cancelled. - * - * {@code - * // This command calls robot.blinkLights(RGB_PURPLE) - * gamepad.dpad.up.whilePressed(robot::blinkLights, RGB_PURPLE) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whilePressed(Consumer methodRef, R param) { - return whilePressed(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run over & over while the input is released, * but once it's pressed, the command will be cancelled. @@ -256,74 +60,6 @@ default T whileReleased(Command command) { return schedule(getInstance()::isReleased, command.cancelUpon(getInstance()::isPressed)); } - /** - * Schedule a method of a required subsystem to be run over & over while the input is released, - * but once it's pressed, the command will be cancelled. - * - * {@code - * // This command calls robot.liftSubsys.StayPut() - * gamepad.dpad.up.whileReleased(robot.liftSubsys, LiftSubsystem::StayPut) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileReleased(S req, Consumer methodRef) { - return whileReleased(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method of a required subsystem (with a parameter) to be run over & over while the input is released, - * but once it's pressed, the command will be cancelled. - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whileReleased(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileReleased(S req, BiConsumer methodRef, R param) { - return whileReleased(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run over & over while the input is released, - * but once it's pressed, the command will be cancelled. - * - * {@code - * // This command calls robot.brightenLights - * gamepad.dpad.up.whileReleased(robot::brightenLights) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whileReleased(Runnable methodRef) { - return whileReleased(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run over & over while the input is released, - * but once it's pressed, the command will be cancelled. - * - * {@code - * // This command calls robot.blinkLights(RGB_PURPLE) - * gamepad.dpad.up.whileReleased(robot::blinkLights, RGB_PURPLE) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whileReleased(Consumer methodRef, R param) { - return whileReleased(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run while the input is pressed, but only once, * and if the command takes so long that the input is released, the command @@ -336,78 +72,6 @@ default T whilePressedOnce(Command command) { return schedule(getInstance()::isJustPressed, command.cancelUpon(getInstance()::isReleased)); } - /** - * Schedule a method of a required subsystem to be run while the input is pressed, but only once, - * and if the command takes so long that the input is released, the command - * will be cancelled. - * - * {@code - * // This command calls robot.liftSubsys.StayPut() - * gamepad.dpad.up.whilePressedOnce(robot.liftSubsys, LiftSubsystem::StayPut) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whilePressedOnce(S req, Consumer methodRef) { - return whilePressedOnce(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method of a required subsystem (with a parameter) to be run while the input is pressed, but only once, - * and if the command takes so long that the input is released, the command - * will be cancelled. - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whilePressedOnce(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whilePressedOnce(S req, BiConsumer methodRef, R param) { - return whilePressedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run while the input is pressed, but only once, - * and if the command takes so long that the input is released, the command - * will be cancelled. - * - * {@code - * // This command calls robot.brightenLights - * gamepad.dpad.up.whilePressedOnce(robot::brightenLights) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whilePressedOnce(Runnable methodRef) { - return whilePressedOnce(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run while the input is pressed, but only once, - * and if the command takes so long that the input is released, the command - * will be cancelled. - * - * {@code - * // This command calls robot.blinkLights(RGB_PURPLE) - * gamepad.dpad.up.whilePressedOnce(robot::blinkLights, RGB_PURPLE) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whilePressedOnce(Consumer methodRef, R param) { - return whilePressedOnce(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run over & over while the input is pressed * @@ -418,70 +82,6 @@ default T whilePressedContinuous(Command command) { return schedule(getInstance()::isPressed, command); } - /** - * Schedule a method of a required subsystem to be run over & over while the input is pressed - * - * {@code - * // This command calls robot.liftSubsys.MoveUp() - * gamepad.dpad.up.whilePressedContinuous(robot.liftSubsys, LiftSubsystem::MoveUp) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whilePressedContinuous(S req, Consumer methodRef) { - return whilePressedContinuous(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method of a required subsystem (with a parameter) to be run over & over while the input is pressed - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whilePressedContinuous(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whilePressedContinuous(S req, BiConsumer methodRef, R param) { - return whilePressedContinuous(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run over & over while the input is pressed - * - * {@code - * // This command calls robot.brightenLights - * gamepad.dpad.up.whilePressedContinuous(robot::brightenLights) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whilePressedContinuous(Runnable methodRef) { - return whilePressedContinuous(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run over & over while the input is pressed - * - * {@code - * // This command calls robot.blinkLights(RGB_PURPLE) - * gamepad.dpad.up.whilePressedContinuous(robot::blinkLights, RGB_PURPLE) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whilePressedContinuous(Consumer methodRef, R param) { - return whilePressedContinuous(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule the command to be run when the input is released, but only once! * @@ -492,73 +92,6 @@ default T whileReleasedOnce(Command command) { return schedule(getInstance()::isJustReleased, command.cancelUpon(getInstance()::isPressed)); } - /** - * Schedule the method to be run on the given subsystem to be run when the input is - * released, but only once! - * - * {@code - * // This command calls robot.liftSubsys.MoveUp() - * gamepad.dpad.up.whileReleasedOnce(robot.liftSubsys, LiftSubsystem::MoveUp) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileReleasedOnce(S req, Consumer methodRef) { - return whileReleasedOnce(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule the method to be run (with the parameter provided) on the given subsystem to be - * run when the input is released, but only once! - * - * {@code - * // This command calls robot.liftSubsys.Move(LiftDirection.UP) - * gamepad.dpad.up.whileReleasedOnce(robot.liftSubsys, LiftSubsystem::Move, LiftDirction.UP) - * } - * @param req The subsystem to control - * @param methodRef the method on the subsystem to invoke - * @param param the value to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileReleasedOnce(S req, BiConsumer methodRef, R param) { - return whileReleasedOnce(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule the method to be run when the input is released, but only once! - * - * {@code - * // This command calls robot.lightsOff - * gamepad.dpad.up.whileReleasedOnce(robot::lightsOff) - * } - * @param methodRef the method on the subsystem to invoke - * @return The CommandInput<T> instance - */ - default T whileReleasedOnce(Runnable methodRef) { - return whileReleasedOnce(new SimpleCommand(methodRef)); - } - - /** - * Schedule the method to be run (with the paramter provided) when the input is released, - * but only once! - * - * {@code - * // This command calls robot.blinkLights(2) - * gamepad.dpad.up.whileReleasedOnce(robot::blinkLights, 2) - * } - * @param methodRef the method to invoke - * @param param the parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whileReleasedOnce(Consumer methodRef, R param) { - return whileReleasedOnce(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run when the input was just toggled * (From pressed to released, or released to pressed) @@ -570,58 +103,6 @@ default T whenToggled(Command command) { return schedule(getInstance()::isJustToggled, command); } - /** - * Schedule a method that requires a subsystem to be run when the input was just toggled - * (From pressed to released, or released to pressed) - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenToggled(S req, Consumer methodRef) { - return whenToggled(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method that requires a subsystem (with a parameter) to be run when the input was just toggled - * (From pressed to released, or released to pressed) - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param param The parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenToggled(S req, BiConsumer methodRef, R param) { - return whenToggled(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run when the input was just toggled - * (From pressed to released, or released to pressed) - * - * @param methodRef The method to be invoked - * @return The CommandInput<T> instance - */ - default T whenToggled(Runnable methodRef) { - return whenToggled(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method (with a parameter) to be run when the input was just toggled - * (From pressed to released, or released to pressed) - * - * @param methodRef The method to be invoked - * @param param the parameter to be passed to the method invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whenToggled(Consumer methodRef, R param) { - return whenToggled(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule the command to be run when the input has only stopped being toggled * @@ -632,54 +113,6 @@ default T whenInverseToggled(Command command) { return schedule(getInstance()::isJustInverseToggled, command); } - /** - * Schedule a method on a subsystem to be run when the input has only stopped being toggled - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenInverseToggled(S req, Consumer methodRef) { - return whenInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule the command to be run when the input has only stopped being toggled - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param param The parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whenInverseToggled(S req, BiConsumer methodRef, R param) { - return whenInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run when the input has only stopped being toggled - * - * @param methodRef The method to be invoked - * @return The CommandInput<T> instance - */ - default T whenInverseToggled(Runnable methodRef) { - return whenInverseToggled(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method with a parameter to be run when the input has only stopped being toggled - * - * @param methodRef The method to be invoked - * @param param the parameter to be passed to the method invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whenInverseToggled(Consumer methodRef, R param) { - return whenInverseToggled(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule the command to be run while the input is changing. * It will be canceled once the input is not changing. @@ -693,66 +126,6 @@ default T whileToggled(Command command) { return schedule(getInstance()::isToggled, command.cancelUpon(getInstance()::isInverseToggled)); } - /** - * Schedule a method to be run while the input is changing. - * It will be canceled once the input is not changing. - * This is questionably useful, as toggling over & over is a 'frequency' problem. - * I expect this is going to behave almost the same as whenToggled... - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileToggled(S req, Consumer methodRef) { - return whileToggled(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule a method (with a parameter) to be run while the input is changing. - * It will be canceled once the input is not changing. - * This is questionably useful, as toggling over & over is a 'frequency' problem. - * I expect this is going to behave almost the same as whenToggled... - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param param The parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileToggled(S req, BiConsumer methodRef, R param) { - return whileToggled(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule a method to be run while the input is changing. - * It will be canceled once the input is not changing. - * This is questionably useful, as toggling over & over is a 'frequency' problem. - * I expect this is going to behave almost the same as whenToggled... - * - * @param methodRef The method to be invoked - * @return The CommandInput<T> instance - */ - default T whileToggled(Runnable methodRef) { - return whileToggled(new SimpleCommand(methodRef)); - } - - /** - * Schedule a method (with a parameter) to be run while the input is changing. - * It will be canceled once the input is not changing. - * This is questionably useful, as toggling over & over is a 'frequency' problem. - * I expect this is going to behave almost the same as whenToggled... - * - * @param methodRef The method to be invoked - * @param param the parameter to be passed to the method invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whileToggled(Consumer methodRef, R param) { - return whileToggled(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule the command to run over & over while the input is *not* changing * It will be canceled once the input is toggled. @@ -764,58 +137,6 @@ default T whileInverseToggled(Command command) { return schedule(getInstance()::isInverseToggled, command.cancelUpon(getInstance()::isToggled)); } - /** - * Schedule the command to run over & over while the input is *not* changing - * It will be canceled once the input is toggled. - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileInverseToggled(S req, Consumer methodRef) { - return whileInverseToggled(new SimpleRequiredCommand<>(req, methodRef)); - } - - /** - * Schedule the command to run over & over while the input is *not* changing - * It will be canceled once the input is toggled. - * - * @param req The required subsystem i.e. the subsystem being controlled - * @param methodRef The method of the subsystem being invoked - * @param param The parameter to pass to the method being invoked - * @param The type of the parameter to pass to the method - * @param The type of the subsystem required by the method - * @return The CommandInput<T> instance - */ - default T whileInverseToggled(S req, BiConsumer methodRef, R param) { - return whileInverseToggled(new ParameterRequiredCommand<>(req, methodRef, param)); - } - - /** - * Schedule the command to run over & over while the input is *not* changing - * It will be canceled once the input is toggled. - * - * @param methodRef The method to be invoked - * @return The CommandInput<T> instance - */ - default T whileInverseToggled(Runnable methodRef) { - return whileInverseToggled(new SimpleCommand(methodRef)); - } - - /** - * Schedule the command to run over & over while the input is *not* changing - * It will be canceled once the input is toggled. - * - * @param methodRef The method to be invoked - * @param param the parameter to be passed to the method invoked - * @param The type of the parameter to pass to the method - * @return The CommandInput<T> instance - */ - default T whileInverseToggled(Consumer methodRef, R param) { - return whileInverseToggled(new ParameterCommand<>(methodRef, param)); - } - /** * Return instance of class parameter * diff --git a/Vision/src/main/java/com/technototes/vision/HSVRange.java b/Vision/src/main/java/com/technototes/vision/HSVRange.java index f0298888..65ec0a63 100644 --- a/Vision/src/main/java/com/technototes/vision/HSVRange.java +++ b/Vision/src/main/java/com/technototes/vision/HSVRange.java @@ -2,6 +2,9 @@ import org.opencv.core.Scalar; +/** + * This is used to detect colors in a particular HSV 'range' + */ /** * This is used to detect colors in a particular HSV 'range' */ From fe0a89b367b23af1b5aef848c24aa52a770d7897 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Thu, 19 Oct 2023 21:31:33 -0700 Subject: [PATCH 25/47] Added an extra constructor for SimpleCommand --- .../java/com/technototes/library/command/SimpleCommand.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java index 3a64b9b7..92515cf3 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java @@ -12,6 +12,11 @@ public SimpleCommand(Runnable m) { method = m; } + public SimpleCommand(Consumer m, T arg) { + super(); + method = () -> m.accept(arg); + } + @Override public void execute() { method.run(); From c4edc95d1f2b52baba1a5e9ce5b15208ed7980ba Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Thu, 19 Oct 2023 21:51:30 -0700 Subject: [PATCH 26/47] Removed a bunch of overloads to simplify the CommandScheduler API, too --- .../library/command/CommandScheduler.java | 250 ------------------ 1 file changed, 250 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index f9e593d6..10e3bebe 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -8,9 +8,7 @@ import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; -import java.util.function.BiConsumer; import java.util.function.BooleanSupplier; -import java.util.function.Consumer; /** * This is a "singleton" object for scheduling commands. Most usage originates from {@link Command} @@ -120,65 +118,6 @@ public static void schedule(Command command) { schedule(command, () -> true); } - /** - * Schedule a method on a subsystem to run as a command: - * {@code - * CommandScheduler.schedule(robot.intakeSubsystem, IntakeSubsystem::activate) - * } - * - * @param req the subsystem required - * @param methodRef the function to invoke on the subsystem - * @param The type of the subsystem required by the method - */ - public static void schedule(S req, Consumer methodRef) { - schedule(req, methodRef, () -> true); - } - - /** - * Schedule a method on a subsystem to run as a command, that takes an extra parameter: - * {@code - * // This command effectively calls robot.liftSubsys.GoToPosition(LiftPos.MIDDLE) - * CommandScheduler.schedule(robot.liftSubsys, LiftSubsystem::GoToPosition, LiftPos.MIDDLE) - * } - * - * @param req the subsystem required - * @param methodRef the function to invoke on the subsystem - * @param param the parameter to pass to the function being called - * @param The type of the subsystem required by the method - * @param The type of the parameter to pass to the method - */ - public static void schedule(S req, BiConsumer methodRef, T param) { - schedule(req, methodRef, param, () -> true); - } - - /** - * Schedule a method to run as a command that does not require controlling a subsystem! - * {@code - * CommandScheduler.schedule(robot.signalSubsystem::blinkLights) - * } - * - * @param methodRef the function to invoke on the subsystem - */ - public static void schedule(Runnable methodRef) { - schedule(methodRef, () -> true); - } - - /** - * Schedule a method on a subsystem to run as a command, that takes an extra parameter: - * {@code - * // This command effectively calls robot.liftSubsys.GoToPosition(LiftPos.MIDDLE) - * CommandScheduler.schedule(robot.liftSubsys, LiftSubsystem::GoToPosition, LiftPos.MIDDLE) - * } - * - * @param methodRef the function to invoke on the subsystem - * @param param the parameter to pass to the function being called - * @param The type of the subsystem required by the method - * @param The type of the parameter to pass to the method - */ - public static void schedule(Consumer methodRef, T param) { - schedule(methodRef, param, () -> true); - } - /** * Schedule a command to be run recurringly during the 'Init' phase of an opmode. * This can be used for vision, as well as running any system to help the @@ -192,89 +131,6 @@ public static void scheduleInit(Command command, BooleanSupplier supplier) { scheduleForState(command, supplier, CommandOpMode.OpModeState.INIT); } - /** - * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode. - * This can be used for vision, as well as running any system to help the - * drive team ensure that the robot is appropriately positioned on the field. - * This will only be run if the BooleanSupplier 'supplier' is also true! - * {@code - * // This command effectively calls robot.visionSystem.seeTheThing() - * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) - * } - * - * @param req the subsystem required - * @param methodRef the function to invoke on the subsystem - * @param supplier the boolean function to run to determine if the function should be run - * @param The type of the subsystem required by the method - */ - public static void scheduleInit(S req, Consumer methodRef, BooleanSupplier supplier) { - scheduleInit(new SimpleRequiredCommand<>(req, methodRef), supplier); - } - - /** - * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode, - * that also takes a parameter. - * This can be used for vision, as well as running any system to help the - * drive team ensure that the robot is appropriately positioned on the field. - * This will only be run if the BooleanSupplier 'supplier' is also true! - * {@code - * // This command effectively calls robot.visionSystem.seeTheThing(Alliance.RED), - * // but only if TokenIdentifyingSubsystem.CAMERA_CONNECTED is also true - * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, Alliance.RED, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) - * } - * @param req the subsystem required - * @param methodRef the function to invoke on the subsystem - * @param param the argument passed to the methodRef function - * @param supplier the boolean function to run to determine if the function should be run - * @param The type of the subsystem required by the method - * @param The type of the parameter to pass to the method - */ - public static void scheduleInit( - S req, - BiConsumer methodRef, - T param, - BooleanSupplier supplier - ) { - scheduleInit(new ParameterRequiredCommand(req, methodRef, param), supplier); - } - - /** - * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode. - * This can be used for vision, as well as running any system to help the - * drive team ensure that the robot is appropriately positioned on the field. - * This will only be run if the BooleanSupplier 'supplier' is also true! - * {@code - * // This command effectively calls robot.visionSystem.seeTheThing() - * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) - * } - * - * @param methodRef the function to invoke on the subsystem - * @param supplier the boolean function to run to determine if the function should be run - */ - public static void scheduleInit(Runnable methodRef, BooleanSupplier supplier) { - scheduleInit(new SimpleCommand(methodRef), supplier); - } - - /** - * Schedule a method on a subsystem to be run recurringly during the 'Init' phase of an opmode, - * that also takes a parameter. - * This can be used for vision, as well as running any system to help the - * drive team ensure that the robot is appropriately positioned on the field. - * This will only be run if the BooleanSupplier 'supplier' is also true! - * {@code - * // This command effectively calls robot.visionSystem.seeTheThing(Alliance.RED), - * // but only if TokenIdentifyingSubsystem.CAMERA_CONNECTED is also true - * CommandScheduler.scheduleInit(robot.visionSystem, TokenIdentifyingSubsystem::seeTheThing, Alliance.RED, () -> TokenIdentifyingSubsystem.CAMERA_CONNECTED) - * } - * @param methodRef the function to invoke on the subsystem - * @param param the argument passed to the methodRef function - * @param supplier the boolean function to run to determine if the function should be run - * @param The type of the parameter to pass to the method - */ - public static void scheduleInit(Consumer methodRef, T param, BooleanSupplier supplier) { - scheduleInit(new ParameterCommand<>(methodRef, param), supplier); - } - /** * Schedule a command to be run recurringly during the 'Init' phase of an opmode. * This can be used for vision, as well as running any system to help the @@ -286,22 +142,6 @@ public static void scheduleInit(Command command) { scheduleForState(command, () -> true, CommandOpMode.OpModeState.INIT); } - public static void scheduleInit(S req, Consumer methodRef) { - scheduleInit(new SimpleRequiredCommand(req, methodRef)); - } - - public static void scheduleInit(S req, BiConsumer methodRef, T param) { - scheduleInit(new ParameterRequiredCommand(req, methodRef, param)); - } - - public static void scheduleInit(Runnable methodRef) { - scheduleInit(new SimpleCommand(methodRef)); - } - - public static void scheduleInit(Consumer methodRef, T param) { - scheduleInit(new ParameterCommand<>(methodRef, param)); - } - /** * Schedule a command to be run when the OpMode is one of the provided list of states and the * 'supplier' boolean function is also true. @@ -321,42 +161,6 @@ public static void scheduleForState( ); } - public static void scheduleForState( - S req, - Consumer methodRef, - BooleanSupplier supplier, - CommandOpMode.OpModeState... states - ) { - scheduleForState(new SimpleRequiredCommand(req, methodRef), supplier, states); - } - - public static void scheduleForState( - S req, - BiConsumer methodRef, - T param, - BooleanSupplier supplier, - CommandOpMode.OpModeState... states - ) { - scheduleForState(new ParameterRequiredCommand(req, methodRef, param), supplier, states); - } - - public static void scheduleForState( - Runnable methodRef, - BooleanSupplier supplier, - CommandOpMode.OpModeState... states - ) { - scheduleForState(new SimpleCommand(methodRef), supplier, states); - } - - public static void scheduleForState( - Consumer methodRef, - T param, - BooleanSupplier supplier, - CommandOpMode.OpModeState... states - ) { - scheduleForState(new ParameterCommand<>(methodRef, param), supplier, states); - } - /** * Schedule a command to be run when the OpMode is one of the provided list of states. * @@ -370,31 +174,6 @@ public static void scheduleForState(Command command, CommandOpMode.OpModeState.. ); } - public static void scheduleForState( - S req, - Consumer methodRef, - CommandOpMode.OpModeState... states - ) { - scheduleForState(new SimpleRequiredCommand(req, methodRef), states); - } - - public static void scheduleForState( - S req, - BiConsumer methodRef, - T param, - CommandOpMode.OpModeState... states - ) { - scheduleForState(new ParameterRequiredCommand(req, methodRef, param), states); - } - - public static void scheduleForState(Runnable methodRef, CommandOpMode.OpModeState... states) { - scheduleForState(new SimpleCommand(methodRef), states); - } - - public static void scheduleForState(Consumer methodRef, T param, CommandOpMode.OpModeState... states) { - scheduleForState(new ParameterCommand<>(methodRef, param), states); - } - /** * Schedule the 'other' command (the second one) when the 'dependency' command has * finished (but *not* been cancelled!). @@ -457,14 +236,6 @@ public static void scheduleDefault(Command command, Subsystem subsystem) { } } - public static void scheduleDefault(S req, Consumer methodRef) { - scheduleDefault(new SimpleRequiredCommand(req, methodRef), req); - } - - public static void scheduleDefault(S req, BiConsumer methodRef, T param) { - scheduleDefault(new ParameterRequiredCommand(req, methodRef, param), req); - } - /** * Register a periodic function to be run once each schedule loop * @@ -518,27 +289,6 @@ public static void schedule(Command command, BooleanSupplier supplier) { } } - public static void schedule(S req, Consumer methodRef, BooleanSupplier sup) { - schedule(new SimpleRequiredCommand(req, methodRef), sup); - } - - public static void schedule( - S req, - BiConsumer methodRef, - T param, - BooleanSupplier sup - ) { - schedule(new ParameterRequiredCommand(req, methodRef, param), sup); - } - - public static void schedule(Runnable methodRef, BooleanSupplier sup) { - schedule(new SimpleCommand(methodRef), sup); - } - - public static void schedule(Consumer methodRef, T param, BooleanSupplier sup) { - schedule(new ParameterCommand<>(methodRef, param), sup); - } - /** * This is invoked from inside the CommandOpMode method, during the opCode. * It it the core logic of actually scheduling & running the commands. From 4d09f6db25b4d79ae2e0f57ce4c14c30a2355c8a Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Thu, 19 Oct 2023 22:11:24 -0700 Subject: [PATCH 27/47] Deprecated the Paramater*Command classes, and made SimpleRequiredCommand also handle a parameter --- .../technototes/library/command/ParameterCommand.java | 6 ++++++ .../library/command/ParameterRequiredCommand.java | 8 ++++++++ .../library/command/SimpleRequiredCommand.java | 10 +++++++++- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java index 9fbf3292..3900597c 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java @@ -4,6 +4,12 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; +/** + * Use SimpleCommand: It can handle a single Function (Runnable) + * or a F(T) (Consumer) + * @param + */ +@Deprecated public class ParameterCommand implements Command { U param; diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java index 73b4fcf2..305ec5cf 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java @@ -3,6 +3,14 @@ import com.technototes.library.subsystem.Subsystem; import java.util.function.BiConsumer; +/** + * Use SimplerRequiredCommand instead of this. It's more flexible: + * It works with or without a parameter, so it needed renamed... + * + * @param + * @param + */ +@Deprecated public class ParameterRequiredCommand implements Command { T sub; diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java index 41ab957e..213acdf7 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java @@ -1,6 +1,7 @@ package com.technototes.library.command; import com.technototes.library.subsystem.Subsystem; +import java.util.function.BiConsumer; import java.util.function.Consumer; public class SimpleRequiredCommand implements Command { @@ -10,11 +11,18 @@ public class SimpleRequiredCommand implements Command { public SimpleRequiredCommand(T s, Consumer m) { super(); - s = sub; + sub = s; method = m; addRequirements(sub); } + public SimpleRequiredCommand(T s, BiConsumer m, U arg) { + super(); + sub = s; + method = subsys -> m.accept(subsys, arg); + addRequirements(sub); + } + @Override public void execute() { method.accept(sub); From 745313e09a944bd77648e9214b06001c16aa8033 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 20 Oct 2023 20:51:19 -0700 Subject: [PATCH 28/47] Added comments --- .../trajectorysequence/TrajectoryPath.java | 112 ++++++++++++++++++ .../library/command/CommandScheduler.java | 1 + 2 files changed, 113 insertions(+) diff --git a/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java b/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java index 288145c0..35941384 100644 --- a/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java +++ b/Path/src/main/java/com/technototes/path/trajectorysequence/TrajectoryPath.java @@ -6,14 +6,91 @@ import java.util.function.Function; public interface TrajectoryPath extends Function, TrajectorySequence> { + /** + * Create a spline between two poses + * + * @param start The beginning of a spline + * @param end The end of a spline + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ + static TrajectoryPath splineTo(ConfigurablePose start, ConfigurablePose end) { + return b -> b.apply(start.toPose()).splineTo(end.toVec(), end.getHeading()).build(); + } + + /** + * Create a spline between two poses + * + * @param start The beginning of a spline + * @param end The end of a spline + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ + static TrajectoryPath splineTo(ConfigurablePoseD start, ConfigurablePoseD end) { + return b -> b.apply(start.toPose()).splineTo(end.toVec(), end.getHeading()).build(); + } + + /** + * Create a spline between a list of poses + * + * @param start The beginning of a spline + * @param points The remaing points of the spline + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ + static TrajectoryPath splinesTo(ConfigurablePoseD start, ConfigurablePoseD... points) { + return b -> { + TrajectorySequenceBuilder bld = b.apply(start.toPose()); + for (ConfigurablePoseD d : points) { + bld = bld.splineTo(d.toVec(), d.getHeading()); + } + return bld.build(); + }; + } + + /** + * Create a spline between a list of poses + * + * @param start The beginning of a spline + * @param points The remaing points of the spline + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ + static TrajectoryPath splinesTo(ConfigurablePose start, ConfigurablePose... points) { + return b -> { + TrajectorySequenceBuilder bld = b.apply(start.toPose()); + for (ConfigurablePose d : points) { + bld = bld.splineTo(d.toVec(), d.getHeading()); + } + return bld.build(); + }; + } + + /** + * Create a line between two poses + * + * @param start The beginning of the line + * @param end The end of the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath lineTo(ConfigurablePose start, ConfigurablePose end) { return b -> b.apply(start.toPose()).lineTo(end.toPose().vec()).build(); } + /** + * Create a line between two poses + * + * @param start The beginning of the line + * @param end The end of the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath lineTo(ConfigurablePoseD start, ConfigurablePoseD end) { return b -> b.apply(start.toPose()).lineTo(end.toPose().vec()).build(); } + /** + * Create a line between a list of poses + * + * @param start The beginning of the line + * @param points The points of the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath linesTo(ConfigurablePoseD start, ConfigurablePoseD... points) { return b -> { TrajectorySequenceBuilder bld = b.apply(start.toPose()); @@ -24,6 +101,13 @@ static TrajectoryPath linesTo(ConfigurablePoseD start, ConfigurablePoseD... poin }; } + /** + * Create a line between a list of poses + * + * @param start The beginning of the line + * @param points The points of the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath linesTo(ConfigurablePose start, ConfigurablePose... points) { return b -> { TrajectorySequenceBuilder bld = b.apply(start.toPose()); @@ -34,14 +118,35 @@ static TrajectoryPath linesTo(ConfigurablePose start, ConfigurablePose... points }; } + /** + * Create a line between two poses on a specific linear heading + * + * @param start The beginning of the line + * @param end The end of the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath lineToLinearHeading(ConfigurablePose start, ConfigurablePose end) { return b -> b.apply(start.toPose()).lineToLinearHeading(end.toPose()).build(); } + /** + * Create a line between two poses on a specific linear heading + * + * @param start The beginning of the line + * @param end The end of the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath lineToLinearHeading(ConfigurablePoseD start, ConfigurablePoseD end) { return b -> b.apply(start.toPose()).lineToLinearHeading(end.toPose()).build(); } + /** + * Create a set of lines between a list of poses on a specific linear heading + * + * @param start The beginning of the line + * @param points The list of points in the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath linesToLinearHeadings(ConfigurablePoseD start, ConfigurablePoseD... points) { return b -> { TrajectorySequenceBuilder bld = b.apply(start.toPose()); @@ -52,6 +157,13 @@ static TrajectoryPath linesToLinearHeadings(ConfigurablePoseD start, Configurabl }; } + /** + * Create a set of lines between a list of poses on a specific linear heading + * + * @param start The beginning of the line + * @param points The list of points in the line + * @return A function that takes a 'start' location and returns a TrajectorySequenceBuilder + */ static TrajectoryPath linesToLinearHeadings(ConfigurablePose start, ConfigurablePose... points) { return b -> { TrajectorySequenceBuilder bld = b.apply(start.toPose()); diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java index 10e3bebe..60e4d542 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/CommandScheduler.java @@ -283,6 +283,7 @@ public static Command getCurrent(Subsystem s) { public static void schedule(Command command, BooleanSupplier supplier) { commandMap.put(command, supplier); for (Subsystem s : command.getRequirements()) { + // TODO: Fail if a required subsystem is null, and maybe log something requirementMap.putIfAbsent(s, new LinkedHashSet<>()); requirementMap.get(s).add(command); register(s); From cf64d2674e4c1ccd03d8f7dcb6850cbfe442b08a Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 22 Oct 2023 13:18:32 -0700 Subject: [PATCH 29/47] Deprecated the {Device}Subsystem classes, added TwoDeadWheelLocalizer --- .../path/subsystem/TwoDeadWheelLocalizer.java | 104 ++++++++++++++++++ .../library/command/ParameterCommand.java | 28 ----- .../command/ParameterRequiredCommand.java | 32 ------ .../library/control/CommandInput.java | 7 -- .../library/hardware/HardwareDeviceGroup.java | 7 ++ .../hardware/motor/EncodedMotorGroup.java | 16 ++- .../library/hardware/motor/MotorGroup.java | 16 ++- .../library/hardware2/AnalogBuilder.java | 2 + .../library/hardware2/CRServoBuilder.java | 1 + .../library/hardware2/ColorBuilder.java | 1 + .../library/hardware2/ColorRangeBuilder.java | 1 + .../library/hardware2/DigitalBuilder.java | 1 + .../library/hardware2/DistanceBuilder.java | 1 + .../library/hardware2/HardwareBuilder.java | 1 + .../library/hardware2/IMUBuilder.java | 1 + .../library/hardware2/MotorBuilder.java | 1 + .../library/hardware2/ServoBuilder.java | 1 + .../library/subsystem/DeviceSubsystem.java | 5 +- .../drivebase/DrivebaseSubsystem.java | 9 +- .../SimpleMecanumDrivebaseSubsystem.java | 47 ++++---- .../drivebase/TankDrivebaseSubsystem.java | 28 +++-- .../motor/EncodedMotorSubsystem.java | 7 +- .../subsystem/motor/MotorSubsystem.java | 7 +- .../subsystem/servo/ServoSubsystem.java | 7 +- 24 files changed, 217 insertions(+), 114 deletions(-) create mode 100644 Path/src/main/java/com/technototes/path/subsystem/TwoDeadWheelLocalizer.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java diff --git a/Path/src/main/java/com/technototes/path/subsystem/TwoDeadWheelLocalizer.java b/Path/src/main/java/com/technototes/path/subsystem/TwoDeadWheelLocalizer.java new file mode 100644 index 00000000..75e5b7bd --- /dev/null +++ b/Path/src/main/java/com/technototes/path/subsystem/TwoDeadWheelLocalizer.java @@ -0,0 +1,104 @@ +package com.technototes.path.subsystem; + +import static com.technototes.path.subsystem.DeadWheelConstants.EncoderOverflow; +import static com.technototes.path.subsystem.DeadWheelConstants.ForwardOffset; +import static com.technototes.path.subsystem.DeadWheelConstants.GearRatio; +import static com.technototes.path.subsystem.DeadWheelConstants.LateralDistance; +import static com.technototes.path.subsystem.DeadWheelConstants.TicksPerRev; +import static com.technototes.path.subsystem.DeadWheelConstants.WheelRadius; + +import androidx.annotation.NonNull; +import com.acmerobotics.roadrunner.geometry.Pose2d; +import com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer; +import com.acmerobotics.roadrunner.localization.TwoTrackingWheelLocalizer; +import com.technototes.library.hardware.sensor.IMU; +import com.technototes.library.hardware.sensor.encoder.MotorEncoder; +import com.technototes.library.subsystem.Subsystem; +import java.util.Arrays; +import java.util.List; +import java.util.function.DoubleSupplier; + +/* + * Sample tracking wheel localizer implementation assuming a standard configuration: + * + * /---------------\ + * | ____ | + * | ---- | + * | || ^ | + * | ||<- lr | | + * | fb | + * | | + * \---------------/ + * + * COMPLETELY UNTESTED!! + */ +public class TwoDeadWheelLocalizer extends TwoTrackingWheelLocalizer implements Subsystem { + + protected MotorEncoder leftrightEncoder, frontbackEncoder; + protected DoubleSupplier headingSupplier; + protected double lateralDistance, forwardOffset, gearRatio, wheelRadius, ticksPerRev; + + protected boolean encoderOverflow; + + public TwoDeadWheelLocalizer(IMU imu, MotorEncoder lr, MotorEncoder fb, DeadWheelConstants constants) { + super( + Arrays.asList( + new Pose2d(0, constants.getDouble(LateralDistance.class), 0), // left + new Pose2d(constants.getDouble(ForwardOffset.class), 0, Math.toRadians(90)) // front + ) + ); + leftrightEncoder = lr; + frontbackEncoder = fb; + headingSupplier = () -> imu.gyroHeading(); + + lateralDistance = constants.getDouble(LateralDistance.class); + forwardOffset = constants.getDouble(ForwardOffset.class); + encoderOverflow = constants.getBoolean(EncoderOverflow.class); + gearRatio = constants.getDouble(GearRatio.class); + ticksPerRev = constants.getDouble(TicksPerRev.class); + wheelRadius = constants.getDouble(WheelRadius.class); + } + + public double encoderTicksToInches(double ticks) { + return ((getWheelRadius() * 2 * Math.PI * getGearRatio() * ticks) / getTicksPerRev()); + } + + @NonNull + @Override + public List getWheelPositions() { + return Arrays.asList( + encoderTicksToInches(leftrightEncoder.getCurrentPosition()), + encoderTicksToInches(frontbackEncoder.getCurrentPosition()) + ); + } + + @NonNull + @Override + public List getWheelVelocities() { + // TODO: If your encoder velocity can exceed 32767 counts / second (such as the REV Through Bore and other + // competing magnetic encoders), change Encoder.getRawVelocity() to Encoder.getCorrectedVelocity() to enable a + // compensation method + + return Arrays.asList( + encoderTicksToInches(leftrightEncoder.getCorrectedVelocity()), + encoderTicksToInches(frontbackEncoder.getCorrectedVelocity()) + ); + } + + public double getTicksPerRev() { + return ticksPerRev; + } + + public double getWheelRadius() { + return wheelRadius; + } + + public double getGearRatio() { + return gearRatio; + } + + @Override + public double getHeading() { + return headingSupplier.getAsDouble(); + } +} diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java deleted file mode 100644 index 3900597c..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterCommand.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.technototes.library.command; - -import com.technototes.library.subsystem.Subsystem; -import java.util.function.BiConsumer; -import java.util.function.Consumer; - -/** - * Use SimpleCommand: It can handle a single Function (Runnable) - * or a F(T) (Consumer) - * @param - */ -@Deprecated -public class ParameterCommand implements Command { - - U param; - Consumer method; - - public ParameterCommand(Consumer m, U arg) { - super(); - param = arg; - method = m; - } - - @Override - public void execute() { - method.accept(param); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java deleted file mode 100644 index 305ec5cf..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/command/ParameterRequiredCommand.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.technototes.library.command; - -import com.technototes.library.subsystem.Subsystem; -import java.util.function.BiConsumer; - -/** - * Use SimplerRequiredCommand instead of this. It's more flexible: - * It works with or without a parameter, so it needed renamed... - * - * @param - * @param - */ -@Deprecated -public class ParameterRequiredCommand implements Command { - - T sub; - U param; - BiConsumer method; - - public ParameterRequiredCommand(T s, BiConsumer m, U arg) { - super(); - s = sub; - param = arg; - method = m; - addRequirements(sub); - } - - @Override - public void execute() { - method.accept(sub, param); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java index db161c3a..fc7afd8f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/CommandInput.java @@ -2,14 +2,7 @@ import com.technototes.library.command.Command; import com.technototes.library.command.CommandScheduler; -import com.technototes.library.command.ParameterCommand; -import com.technototes.library.command.ParameterRequiredCommand; -import com.technototes.library.command.SimpleCommand; -import com.technototes.library.command.SimpleRequiredCommand; -import com.technototes.library.subsystem.Subsystem; -import java.util.function.BiConsumer; import java.util.function.BooleanSupplier; -import java.util.function.Consumer; /** * Class for gamepad-command integration diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java index d5785348..126428b2 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java @@ -1,5 +1,6 @@ package com.technototes.library.hardware; +import com.technototes.library.hardware.motor.Motor; import java.util.Arrays; import java.util.List; @@ -40,4 +41,10 @@ default List getAllDeviceList() { * @param value the value to propagate */ default void propagate(double value) {} + + T getDeviceNum(int i); + + default int getDeviceCount() { + return getFollowers().length + 1; + } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java index 94104972..0c31b40c 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java @@ -11,26 +11,26 @@ public class EncodedMotorGroup extends EncodedMotor implements HardwareDeviceGroup> { - private final Motor[] followers; + private final EncodedMotor[] followers; /** Create an encoded motor groupM * * @param leader The Lead motor * @param followers The following motors */ - public EncodedMotorGroup(EncodedMotor leader, Motor... followers) { + public EncodedMotorGroup(EncodedMotor leader, EncodedMotor... followers) { super(leader.getDevice()); this.followers = followers; } @Override - public Motor[] getFollowers() { + public EncodedMotor[] getFollowers() { return followers; } @Override - public Motor[] getAllDevices() { - Motor[] m = new Motor[followers.length + 1]; + public EncodedMotor[] getAllDevices() { + EncodedMotor[] m = new EncodedMotor[followers.length + 1]; m[0] = this; System.arraycopy(followers, 0, m, 1, m.length - 1); return m; @@ -38,7 +38,7 @@ public Motor[] getAllDevices() { @Override public void propagate(double value) { - for (Motor m : followers) { + for (EncodedMotor m : followers) { m.setSpeed(value); } } @@ -55,4 +55,8 @@ public boolean setPosition(double ticks, double speed) { propagate(super.getSpeed()); return b; } + + public EncodedMotor getDeviceNum(int i) { + return (i == 0) ? this : followers[i - 1]; + } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java index aa8db24b..9e778a3d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java @@ -3,7 +3,8 @@ import com.qualcomm.robotcore.hardware.DcMotorSimple; import com.technototes.library.hardware.HardwareDeviceGroup; -/** Class for a group of motors +/** + * Class for a group of motors * * @param The type of motors to group */ @@ -12,7 +13,8 @@ public class MotorGroup extends Motor implements Har private final Motor[] followers; - /** Make a motor group + /** + * Make a motor group * * @param motors The motors */ @@ -48,4 +50,14 @@ public void setSpeed(double speed) { super.setSpeed(speed); propagate(speed); } + + public void setSpeeds(double... speeds) { + for (int i = 0; i < speeds.length && i < getDeviceCount(); i++) { + getDeviceNum(i).setSpeed(speeds[i]); + } + } + + public Motor getDeviceNum(int i) { + return (i == 0) ? this : followers[i - 1]; + } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java index 07e3b6ed..adaa1088 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java @@ -5,7 +5,9 @@ /** * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. + * */ +@Deprecated public class AnalogBuilder extends HardwareBuilder { public AnalogBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java index 87e03c77..b00a1248 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java @@ -7,6 +7,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class CRServoBuilder extends HardwareBuilder { public CRServoBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java index e8c1fc60..52d9264e 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java @@ -6,6 +6,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class ColorBuilder extends HardwareBuilder { public ColorBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java index 95d26915..8d760997 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java @@ -6,6 +6,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class ColorRangeBuilder extends HardwareBuilder { public ColorRangeBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java index 86fc59aa..1842ffc7 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java @@ -6,6 +6,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class DigitalBuilder extends HardwareBuilder { /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java index 42aadcc7..094fc57a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java @@ -6,6 +6,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class DistanceBuilder extends HardwareBuilder { public DistanceBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java index 0dd694e8..d0d2d209 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java @@ -7,6 +7,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class HardwareBuilder { private static HardwareMap hardwareMap = null; diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java index 3555d0ee..d3bebe9a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java @@ -9,6 +9,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class IMUBuilder extends HardwareBuilder { /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java index d5fa7db8..d6dbc61a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java @@ -9,6 +9,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class MotorBuilder extends HardwareBuilder { public MotorBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java index b2119fe0..6589318a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java @@ -7,6 +7,7 @@ * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but * it's in all the documentation, so just read it, see it in the examples, and you're done. */ +@Deprecated public class ServoBuilder extends HardwareBuilder { public ServoBuilder(String name) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java index 51ffdf88..f48abf52 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java @@ -2,10 +2,13 @@ import com.technototes.library.hardware.HardwareDevice; -/** class for subsystems +/** + * Don't do this, don't use this. Subsystems should be used for encapsulation, not for exposing + * the rest of the system to a hardware device * @author Alex Stedman * @param The {@link HardwareDevice} for this subsystem */ +@Deprecated public abstract class DeviceSubsystem> implements Subsystem { protected T device; diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java index 4e43fd42..a6b649be 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java @@ -3,7 +3,6 @@ import com.qualcomm.robotcore.hardware.DcMotorSimple; import com.technototes.library.hardware.motor.Motor; import com.technototes.library.hardware.motor.MotorGroup; -import com.technototes.library.subsystem.DeviceSubsystem; import java.util.function.DoubleSupplier; /** @@ -12,7 +11,9 @@ * @param The type of motors for the drivebase * @author Alex Stedman The motors for the drivebase */ -public abstract class DrivebaseSubsystem extends DeviceSubsystem> { +public abstract class DrivebaseSubsystem { + + protected MotorGroup motors; /** * Override this to get the gyroscope heading. @@ -26,7 +27,7 @@ public abstract class DrivebaseSubsystem extends Device * @param motors The drive motors */ public DrivebaseSubsystem(Motor... motors) { - super(new MotorGroup(motors)); + this.motors = new MotorGroup(motors); } /** @@ -36,7 +37,7 @@ public DrivebaseSubsystem(Motor... motors) { * @param motors The drive motors */ public DrivebaseSubsystem(DoubleSupplier gyro, Motor... motors) { - super(new MotorGroup(motors)); + this.motors = new MotorGroup(motors); gyroSupplier = gyro; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java index 3ec21f5b..fea4021d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java @@ -5,18 +5,35 @@ import com.technototes.library.hardware.motor.Motor; import java.util.function.DoubleSupplier; -/** Class for mecanum/xdrive drivebases - * @author Alex Stedman +/** + * Class for mecanum/xdrive drivebases + * * @param The motor type for the subsystem + * @author Alex Stedman */ public class SimpleMecanumDrivebaseSubsystem extends DrivebaseSubsystem { - /** Drive motors - * + /** + * Drive motors */ - public Motor flMotor, frMotor, rlMotor, rrMotor; + protected Motor flMotor() { + return motors.getDeviceNum(0); + } + + protected Motor frMotor() { + return motors.getDeviceNum(1); + } + + protected Motor rlMotor() { + return motors.getDeviceNum(2); + } + + protected Motor rrMotor() { + return motors.getDeviceNum(3); + } - /** Create mecanum drivebase + /** + * Create mecanum drivebase * * @param flMotor The front left motor for the drivebase * @param frMotor The front right motor for the drivebase @@ -25,15 +42,12 @@ public class SimpleMecanumDrivebaseSubsystem extends Dr */ public SimpleMecanumDrivebaseSubsystem(Motor flMotor, Motor frMotor, Motor rlMotor, Motor rrMotor) { super(flMotor, frMotor, rlMotor, rrMotor); - this.flMotor = flMotor; - this.frMotor = frMotor; - this.rlMotor = rlMotor; - this.rrMotor = rrMotor; } - /** Create mecanum drivebase + /** + * Create mecanum drivebase * - * @param gyro The gyro supplier + * @param gyro The gyro supplier * @param flMotor The front left motor for the drivebase * @param frMotor The front right motor for the drivebase * @param rlMotor The rear left motor for the drivebase @@ -47,10 +61,6 @@ public SimpleMecanumDrivebaseSubsystem( Motor rrMotor ) { super(gyro, flMotor, frMotor, rlMotor, rrMotor); - this.flMotor = flMotor; - this.frMotor = frMotor; - this.rlMotor = rlMotor; - this.rrMotor = rrMotor; } public void joystickDrive(double x, double y, double rotation) { @@ -89,9 +99,6 @@ public void stop() { } public void drive(double flSpeed, double frSpeed, double rlSpeed, double rrSpeed) { - flMotor.setSpeed(flSpeed * getSpeed()); - frMotor.setSpeed(frSpeed * getSpeed()); - rlMotor.setSpeed(rlSpeed * getSpeed()); - rrMotor.setSpeed(rrSpeed * getSpeed()); + motors.setSpeeds(flSpeed * getSpeed(), frSpeed * getSpeed(), rlSpeed * getSpeed(), rrSpeed * getSpeed()); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java index 69b7eafb..75a6f670 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java @@ -4,26 +4,33 @@ import com.qualcomm.robotcore.util.Range; import com.technototes.library.hardware.motor.Motor; -/** Class for drivebase subsystems - * @author Alex Stedman +/** + * Class for drivebase subsystems + * * @param The type of motor for the drivebase + * @author Alex Stedman */ public class TankDrivebaseSubsystem extends DrivebaseSubsystem { - /** Drive motors - * + /** + * Drive motors */ - public Motor leftSide, rightSide; + protected Motor leftSide() { + return motors.getDeviceNum(0); + } + + protected Motor rightSide() { + return motors.getDeviceNum(1); + } - /** Create tank drivebase + /** + * Create tank drivebase * - * @param leftMotor The motor/motorgroup for the left side of the drivebase + * @param leftMotor The motor/motorgroup for the left side of the drivebase * @param rightMotor The motor/motorgroup for the right side of the drivebase */ public TankDrivebaseSubsystem(Motor leftMotor, Motor rightMotor) { super(leftMotor, rightMotor); - leftSide = leftMotor; - rightSide = rightMotor; } public void arcadeDrive(double y, double x) { @@ -40,7 +47,6 @@ public void stop() { } public void drive(double l, double r) { - leftSide.setSpeed(l * getSpeed()); - rightSide.setSpeed(r * getSpeed()); + motors.setSpeeds(l * getSpeed(), r * getSpeed()); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java index 79664970..e9b15f79 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java @@ -2,9 +2,14 @@ import com.technototes.library.hardware.motor.EncodedMotor; -/** Class for encoded motor subsystems +/** + * A bad example class for encoded motor subsystems + * + * This is an anti-pattern. + * Subsystems are levels of abstraction. This doesn't provide a real level of abstraction. * @author Alex Stedman */ +@Deprecated public class EncodedMotorSubsystem extends MotorSubsystem> { /** Max speed diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java index 19d61407..b2b47c06 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java @@ -3,10 +3,15 @@ import com.technototes.library.hardware.motor.Motor; import com.technototes.library.subsystem.DeviceSubsystem; -/** Class for motor subsystems +/** + * a bad example class for motor subsystems: + * Don't expose a device as a subsystem. Subsystems should control/mediate access to the devices, + * not just expose a device. + * * @author Alex Stedman * @param The motor type */ +@Deprecated public class MotorSubsystem> extends DeviceSubsystem { /** Create motor subsystem diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java index 9cbea8f4..b460c606 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java @@ -4,9 +4,14 @@ import com.technototes.library.hardware.servo.ServoGroup; import com.technototes.library.subsystem.DeviceSubsystem; -/** Class for servo subsystems +/** + * a bad example class for servo subsystems + * + * This is an anti-pattern: Don't expose a servo as a subsystem. Expose capabilities of the + * subsystem, for use by commands * @author Alex Stedman */ +@Deprecated public class ServoSubsystem extends DeviceSubsystem { /** Create servo subsystem From 8ffdfa6746cbdc3f6735d6d1c364b3d01de5821f Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 22 Oct 2023 14:49:44 -0700 Subject: [PATCH 30/47] Finished cleaning up the *Group types --- .../library/hardware/HardwareDeviceGroup.java | 2 +- .../hardware/motor/EncodedMotorGroup.java | 29 +++++++++++++++---- .../library/hardware/servo/ServoGroup.java | 11 +++++++ .../drivebase/DrivebaseSubsystem.java | 3 +- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java index 126428b2..30a13ee0 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java @@ -20,7 +20,7 @@ public interface HardwareDeviceGroup { */ T[] getFollowers(); - default List getFollowerist() { + default List getFollowerList() { return Arrays.asList(getFollowers()); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java index 0c31b40c..c148cf47 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java @@ -3,7 +3,9 @@ import com.qualcomm.robotcore.hardware.DcMotorSimple; import com.technototes.library.hardware.HardwareDeviceGroup; -/** Class for encoded motor groups +/** + * Class for encoded motor groups + * * @author Alex Stedman */ @SuppressWarnings("unused") @@ -13,9 +15,10 @@ public class EncodedMotorGroup private final EncodedMotor[] followers; - /** Create an encoded motor groupM + /** + * Create an encoded motor groupM * - * @param leader The Lead motor + * @param leader The Lead motor * @param followers The following motors */ public EncodedMotorGroup(EncodedMotor leader, EncodedMotor... followers) { @@ -49,10 +52,26 @@ public void setVelocity(double tps) { propagate(super.getSpeed()); } + public void setVelocities(double... tps) { + for (int i = 0; i < tps.length && i < getDeviceCount(); i++) { + getDeviceNum(i).setVelocity(tps[i]); + } + } + @Override public boolean setPosition(double ticks, double speed) { - boolean b = super.setPosition(ticks, speed); - propagate(super.getSpeed()); + boolean b = true; + for (int i = 0; i < getDeviceCount(); i++) { + b = getDeviceNum(i).setPosition(ticks, speed) && b; + } + return b; + } + + public boolean setPositions(double... ticks_then_speeds) { + boolean b = true; + for (int i = 0; i < ticks_then_speeds.length / 2 && i < getDeviceCount(); i++) { + b = getDeviceNum(i).setPosition(ticks_then_speeds[i * 2], ticks_then_speeds[i * 2 + 1]) && b; + } return b; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java index 616b977a..bd4d2d44 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java @@ -45,12 +45,23 @@ public void propagate(double value) { } } + @Override + public Servo getDeviceNum(int i) { + return (i == 0) ? this : followers[i - 1]; + } + @Override public void setPosition(double position) { super.setPosition(position); propagate(position); } + public void setPositions(double... positions) { + for (int i = 0; i < positions.length && i < getDeviceCount(); i++) { + getDeviceNum(i).setPosition(positions[i]); + } + } + @Override public ServoGroup startAt(double position) { return (ServoGroup) super.startAt(position); diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java index a6b649be..5d377a10 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java @@ -3,6 +3,7 @@ import com.qualcomm.robotcore.hardware.DcMotorSimple; import com.technototes.library.hardware.motor.Motor; import com.technototes.library.hardware.motor.MotorGroup; +import com.technototes.library.subsystem.Subsystem; import java.util.function.DoubleSupplier; /** @@ -11,7 +12,7 @@ * @param The type of motors for the drivebase * @author Alex Stedman The motors for the drivebase */ -public abstract class DrivebaseSubsystem { +public abstract class DrivebaseSubsystem implements Subsystem { protected MotorGroup motors; From f2bb58958284e85ddbb0eb94a5e6f6de1abb8c1b Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 22 Oct 2023 15:17:19 -0700 Subject: [PATCH 31/47] Modified propagate to take (effectively) a method ref to run --- .../library/hardware/HardwareDeviceGroup.java | 9 +++++++-- .../library/hardware/motor/EncodedMotorGroup.java | 11 ++--------- .../library/hardware/motor/MotorGroup.java | 9 +-------- .../library/hardware/servo/ServoGroup.java | 9 +-------- 4 files changed, 11 insertions(+), 27 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java index 30a13ee0..802e135b 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java @@ -3,6 +3,7 @@ import com.technototes.library.hardware.motor.Motor; import java.util.Arrays; import java.util.List; +import java.util.function.Consumer; /** * Interface for hardware device groups @@ -38,9 +39,13 @@ default List getAllDeviceList() { /** * Propagate actions across the followers * - * @param value the value to propagate + * @param func the action to propagate */ - default void propagate(double value) {} + default void propagate(Consumer func) { + for (T obj : getFollowers()) { + func.accept(obj); + } + } T getDeviceNum(int i); diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java index c148cf47..77c92ca2 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java @@ -11,7 +11,7 @@ @SuppressWarnings("unused") public class EncodedMotorGroup extends EncodedMotor - implements HardwareDeviceGroup> { + implements HardwareDeviceGroup> { private final EncodedMotor[] followers; @@ -39,17 +39,10 @@ public EncodedMotor[] getAllDevices() { return m; } - @Override - public void propagate(double value) { - for (EncodedMotor m : followers) { - m.setSpeed(value); - } - } - @Override public void setVelocity(double tps) { super.setVelocity(tps); - propagate(super.getSpeed()); + propagate(obj -> obj.setVelocity(tps)); } public void setVelocities(double... tps) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java index 9e778a3d..347739e3 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java @@ -38,17 +38,10 @@ public Motor[] getAllDevices() { return m; } - @Override - public void propagate(double value) { - for (Motor m : followers) { - m.setSpeed(value); - } - } - @Override public void setSpeed(double speed) { super.setSpeed(speed); - propagate(speed); + propagate(obj -> obj.setSpeed(speed)); } public void setSpeeds(double... speeds) { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java index bd4d2d44..931e7660 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java @@ -38,13 +38,6 @@ public Servo[] getAllDevices() { return m; } - @Override - public void propagate(double value) { - for (Servo s : followers) { - s.setPosition(value); - } - } - @Override public Servo getDeviceNum(int i) { return (i == 0) ? this : followers[i - 1]; @@ -53,7 +46,7 @@ public Servo getDeviceNum(int i) { @Override public void setPosition(double position) { super.setPosition(position); - propagate(position); + propagate(obj -> obj.setPosition(position)); } public void setPositions(double... positions) { From e0314bd286ccd7fb039357635ffeb02ace1ac3d0 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 3 Nov 2023 10:44:30 -0700 Subject: [PATCH 32/47] Added some stuff to readme --- readme.md | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/readme.md b/readme.md index 54c0f6d9..89ef362b 100644 --- a/readme.md +++ b/readme.md @@ -9,9 +9,7 @@ TechnoLib is a FTC Library for everyone: - Annotation based Telemetry - And much much more -**The goal of this library is stated as follows** The goal of TechnoLib is not only to provide -versatile resources that assist in software development and strengthen code structure, but to also -abstract out redundancy. +### The goal of this library is not only to provide versatile resources that assist in software development and strengthen code structure, but to also abstract out redundancy. ## Installation @@ -25,11 +23,11 @@ But if this library is so good, it must be hard to install right? wrong: } ``` - And add this to the dependencies block in TeamCode/build.gradle: - `implementation 'com.github.technototes:TechnoLib:1.2.0'` **(replace 1.2.0 with the latest + `implementation 'com.github.technototes:TechnoLib:1.3.0'` **(replace 1.3.0 with the latest release)** - Build the code and you are good to go -### Version 1.2.0 has breaking changes. +### Both versions 1.2.0 and 1.2.0 have breaking changes. See below for details @@ -81,3 +79,41 @@ to use the remapAxes function (which has been renamed) and the constructor for t that you specify the orientation of your control hub. The SDK also changed the axes' orientation on the hub. You'll be happier by just switching your mental model to the new IMU class (but it's weird that FIRST changed it :/ ) + +# Notes from Kevin Frei + +Hi, the original author of this libary (Alex Stedman) graduated and went off to college. So now I'm +maintaining it. + +I'm an FTC mentor, not an FRC mentor. My goals are to enable capable programmers (often times coming +from Python) to be able to create a functional, _reliable_ robot quickly and easily. Java, and +particularly some Java conventions however, are not always the most conducive language to these +goals. I've made a few minor edits/improvements in the 1.3.0 release, but I'm also prototyping a new +2.0 release during the 2023/2024 season (our students are still using 1.3.0). The point of me +working on the prototype during build/competition season is primarily because I'm watching what +students struggle with, what I'm stuck explaining over & over, etc... and am trying to adjust +the library to be more approachable and easier to interact with. + +## Small Ideas + +Initially, I found the hardware wrapper types to be mostly just a waste of effort. Now, however, I'm +considering building out MUCH more capability in them. The 2 primary things I'd like to add are: + +1. Resilience to disconnected hardware +2. Easy, code-free logging opt-in/opt-out + +For item 1, we have a typical setup where we have flags in the "robot" object where we can +'disconnect' a subsystem, thus allowing the bot to continue to function even when specific hardware +isn't connected. This could be done without too much effort, and could potentially also be a nice +stepping stone to some level of hardware simulation. + +For item 2, for most of the hardware types, it's often useful to log data from those types (current +power/velocity, current tick values, etc...) but doing so is somewhat clunky. It would be nice if +you could set a flag in the dashboard, or perhaps just add a top-level to the constructor or a +subsystem that would enable/disable logging with little-to-no code changes. + +## Big Ideas + +Full simulation of a robot would be _tremendously_ helpful. Initially just being able to simulate +all the hardware would be useful. Being able to configure motors, servos, and sensors in a 3 +dimensional model, with connections to parts would be MUCH more work (but also MUCH cooler) From d28c873cf3b76e5c73382898a6549560560d74ba Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 26 Nov 2023 12:21:59 -0800 Subject: [PATCH 33/47] Added (NYI) CRServo and MotorAsServo hardware devices --- .../library/hardware/motor/CRServo.java | 36 ++++++++++++ .../library/hardware/motor/Motor.java | 31 ++++++++-- .../library/hardware/servo/MotorAsServo.java | 56 +++++++++++++++++++ 3 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java create mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/servo/MotorAsServo.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java new file mode 100644 index 00000000..4b508e58 --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java @@ -0,0 +1,36 @@ +package com.technototes.library.hardware.motor; + +import com.technototes.library.hardware.HardwareDevice; +import java.io.InvalidClassException; +import java.util.function.Supplier; + +/** + * This is for "continuous rotation" servos. They work, unfortunately, like motors + * without encoders: You can set a power (from 0 to 1, typically, with .5 as "stop") and the + * servo will spin in the direct, at the provided speed... + * + * Not Yet Implemented! + * TODO: Implement this + */ +public class CRServo extends HardwareDevice implements Supplier { + + public CRServo(com.qualcomm.robotcore.hardware.CRServo device, String deviceName) throws InvalidClassException { + super(device, deviceName); + throw new InvalidClassException("com.technototes.library.hardware.motor.CRServo", "Not Yet Implemented"); + } + + protected CRServo(String deviceName) throws InvalidClassException { + super(deviceName); + throw new InvalidClassException("com.technototes.library.hardware.motor.CRServo", "Not Yet Implemented"); + } + + @Override + public String LogLine() { + return null; + } + + @Override + public Double get() { + return null; + } +} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index 01c5321f..eac04003 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -43,8 +43,10 @@ public Motor(String deviceName) { * @return The Motor (for chaining) */ public Motor setLimits(double mi, double ma) { - min = Range.clip(mi, -1, 1); - max = Range.clip(ma, -1, 1); + mi = Range.clip(mi, -1, 1); + ma = Range.clip(ma, -1, 1); + min = Math.min(mi, ma); + max = Math.max(mi, ma); return this; } @@ -83,18 +85,39 @@ public Motor setDirection(DcMotorSimple.Direction dir) { * Gets the power value for the motor * * @return the power value (as a double) + * @deprecated use getPower() instead */ + @Deprecated public double getSpeed() { + return getPower(); + } + + /** + * Gets the power value for the motor + * + * @return the power value (as a double) + */ + public double getPower() { return device.getPower(); } /** - * Set speed of motor + * Set the (range-clipped) speed of motor * * @param speed The speed of the motor */ + @Deprecated public void setSpeed(double speed) { - device.setPower(Range.clip(speed, min, max)); + setPower(speed); + } + + /** + * Set the (range-clipped) power of the motor + * + * @param pow The power value (-1 -> 1) + */ + public void setPower(double pow) { + device.setPower(Range.clip(pow, min, max)); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/MotorAsServo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/MotorAsServo.java new file mode 100644 index 00000000..36db14cb --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/MotorAsServo.java @@ -0,0 +1,56 @@ +package com.technototes.library.hardware.servo; + +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.hardware.DcMotorEx; +import com.technototes.library.hardware.HardwareDevice; +import com.technototes.library.hardware.Sensored; +import java.io.InvalidClassException; + +/** + * This is to use a motor as a servo using the built-in capabilities (instead of doing it manually) + * + * One rather important feature would be to hand control back & forth between a normal encoded + * motor. The alternative would be to extend EncodedMotor to just "do" this stuff automatically. + * Honestly, that probably makes more sense, but requires some thought about state transitions. + * + * @param + * Not Yet Implemented! + * TODO: Implement this + * + */ +public class MotorAsServo extends HardwareDevice implements Sensored { + + public MotorAsServo(T device, String deviceName) throws InvalidClassException { + super(device, deviceName); + throw new InvalidClassException("com.technototes.library.hardware.servo.MotorAsServo", "Not Yet Implemented"); + } + + protected MotorAsServo(String deviceName) throws InvalidClassException { + super(deviceName); + throw new InvalidClassException("com.technototes.library.hardware.servo.MotorAsServo", "Not Yet Implemented"); + } + + /** + * @return + */ + @Override + public String LogLine() { + return null; + } + + /** + * @return + */ + @Override + public double getSensorValue() { + return 0; + } + + /** + * @return + */ + @Override + public double getAsDouble() { + return getSensorValue(); + } +} From 99b2b55774520339f84bb7ac0ef543fa334f3aba Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 26 Nov 2023 14:32:59 -0800 Subject: [PATCH 34/47] A few more updates, cleaned up getting the motor --- .../PathingMecanumDrivebaseSubsystem.java | 8 ++++---- .../library/hardware/motor/EncodedMotor.java | 6 ++++++ .../sensor/encoder/ExternalEncoder.java | 6 +++++- .../hardware/sensor/encoder/MotorEncoder.java | 4 ---- .../vision/subsystem/BasicVisionSubsystem.java | 18 +++++++++--------- 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/Path/src/main/java/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.java b/Path/src/main/java/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.java index 20c7b813..fecd2046 100644 --- a/Path/src/main/java/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.java +++ b/Path/src/main/java/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.java @@ -123,10 +123,10 @@ public PathingMecanumDrivebaseSubsystem( c.getDouble(WheelBase.class), c.getDouble(LateralMult.class) ); - leftFront = fl.getDevice(); - leftRear = rl.getDevice(); - rightRear = rr.getDevice(); - rightFront = fr.getDevice(); + leftFront = fl.getRawMotor(DcMotorEx.class); + leftRear = rl.getRawMotor(DcMotorEx.class); + rightRear = rr.getRawMotor(DcMotorEx.class); + rightFront = fr.getRawMotor(DcMotorEx.class); motors = Arrays.asList(leftFront, leftRear, rightRear, rightFront); diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index 9159bac8..bf52cee5 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -291,4 +291,10 @@ public EncodedMotor coast() { public EncodedMotor setLimits(double mi, double ma) { return (EncodedMotor) super.setLimits(mi, ma); } + + // Ah, Java, you're such a hideous language... + public U getRawMotor(Class type) { + T device = getRawDevice(); + return (device != null && type.isInstance(device)) ? type.cast(device) : null; + } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java index d3ce9a95..6f1cd74b 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java @@ -43,6 +43,10 @@ public void zeroEncoder() { */ @Override public double getSensorValue() { - return getDevice().getVoltage() - zero; + AnalogInput device = getRawDevice(); + if (device != null) { + val = device.getVoltage(); + } + return val - zero; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java index 15eb8f36..140c71a4 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java @@ -75,10 +75,6 @@ public MotorEncoder(DcMotorEx motor) { this(motor, new ElapsedTime()); } - public MotorEncoder(EncodedMotor motor) { - this(motor.getDevice()); - } - public MotorEncoder(String deviceName) { this(hardwareMap.get(DcMotorEx.class, deviceName)); } diff --git a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java index 3f09882f..c5613a83 100644 --- a/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java +++ b/Vision/src/main/java/com/technototes/vision/subsystem/BasicVisionSubsystem.java @@ -60,7 +60,7 @@ public BasicVisionSubsystem(Camera c, int w, int h, OpenCvCameraRotation rot) { * * @return the Camera device in use */ - public Camera getDevice() { + protected Camera getRawDevice() { return camera; } @@ -211,15 +211,15 @@ protected int countPixelsOfColor(HSVRange range, Mat imgHSV, Mat telemetryRGB, i // Check to see which pixels are between low and high, output into a boolean matrix Cr Mat count = new Mat(); Core.inRange(imgHSV, low, high, count); - // TODO: It seems like there should be a more optimized way to do this. - for (int i = 0; i < count.width(); i++) { - for (int j = 0; j < count.height(); j++) { - if (count.get(j, i)[0] > 0) { - totalColorCount++; - // Draw a dots on the image at this point - input was put into img - if (telemetryRGB != null) { + totalColorCount = Core.countNonZero(count); + if (telemetryRGB != null) { + // TODO: It seems like there should be a more optimized way to do this. + for (int i = 0; i < count.width(); i++) { + for (int j = 0; j < count.height(); j++) { + if (count.get(j, i)[0] > 0) { + // Draw a dots on the image at this point - input was put into img // The color choice makes things stripey, which makes it easier to identify - double[] colorToDraw = ((j + i) & 3) != 0 ? low.val : high.val; + double[] colorToDraw = ((j + i) & 2) != 0 ? low.val : high.val; telemetryRGB.put(j + yOffset, i + xOffset, colorToDraw); } } From a75701a4bd6939bd1439b27e2b2d510080681db7 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Tue, 14 Nov 2023 22:40:06 -0800 Subject: [PATCH 35/47] Got log data for all the sensors. Motors then let's try to use it --- .../library/hardware/HardwareDevice.java | 31 ++++++++++-- .../library/hardware/sensor/AnalogSensor.java | 14 ++++-- .../hardware/sensor/ColorDistanceSensor.java | 49 +++++++++++++++++-- .../library/hardware/sensor/ColorSensor.java | 21 ++++++-- .../hardware/sensor/DigitalSensor.java | 15 ++++-- .../library/hardware/sensor/IMU.java | 32 +++++++----- .../hardware/sensor/Rev2MDistanceSensor.java | 13 +++-- .../library/hardware/sensor/Sensor.java | 4 +- .../sensor/encoder/ExternalEncoder.java | 10 +++- .../hardware/sensor/encoder/MotorEncoder.java | 41 +++++++++++----- .../library/hardware/servo/Servo.java | 13 ++++- 11 files changed, 194 insertions(+), 49 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java index be850c7d..9e3684b2 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java @@ -17,15 +17,21 @@ public abstract class HardwareDevice) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName)); + try { + device = + hardwareMap.get((Class) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName); + } catch (Exception e) { + device = null; + } } /** @@ -44,6 +55,20 @@ protected HardwareDevice(String deviceName) { * @return The device */ public T getDevice() { + // TODO: Assert that we've got a device, yeah? return device; } + + /** + * Get the logging expression + */ + protected String logData(String info) { + return String.format("%s: %s", name, info); + } + + /** + * This is used for logging stuff by name and/or device type + * @return + */ + public abstract String LogLine(); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java index 02787d39..9db79037 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java @@ -8,12 +8,14 @@ @SuppressWarnings("unused") public class AnalogSensor extends Sensor { + private double val; + /** Make an analog sensor * * @param device The analog device */ - public AnalogSensor(AnalogInput device) { - super(device); + public AnalogSensor(AnalogInput device, String nm) { + super(device, nm); } /** Make an analog sensor @@ -24,7 +26,13 @@ public AnalogSensor(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + return logData(String.format("%f1.4", val)); + } + public double getSensorValue() { - return getDevice().getMaxVoltage(); + val = getDevice().getMaxVoltage(); + return val; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java index a3fc03a0..df244e9a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java @@ -6,18 +6,55 @@ public class ColorDistanceSensor extends Sensor implements IDistanceSensor, IColorSensor { private DistanceUnit distanceUnit; + private double dist; + private double light; + private int color; public ColorDistanceSensor(String name) { super(name); + distanceUnit = DistanceUnit.CM; } - public ColorDistanceSensor(ColorRangeSensor device) { - super(device); + @Override + public String LogLine() { + int alpha = (color >> 24) & 0xFF; + if (alpha != 0 && alpha != 0xFF) { + return logData( + String.format( + "d:%f1.2%s A(%d)R(%d)G(%d)B(%d) [%f1.3]", + dist, + distanceUnit, + alpha, + (color >> 16) & 0xFF, + (color >> 8) & 0xFF, + color & 0xFF, + light + ) + ); + } else { + return logData( + String.format( + "d:%f1.2%s R(%d)G(%d)B(%d) [%f1.3]", + dist, + distanceUnit, + (color >> 16) & 0xFF, + (color >> 8) & 0xFF, + color & 0xFF, + light + ) + ); + } + } + + public ColorDistanceSensor(ColorRangeSensor device, String nm) { + super(device, nm); } @Override public double getDistance(DistanceUnit unit) { - return getDevice().getDistance(unit); + double val = getDevice().getDistance(unit); + dist = distanceUnit.fromUnit(unit, val); + return val; } @Override @@ -33,10 +70,12 @@ public DistanceUnit getUnit() { @Override public int argb() { - return getDevice().argb(); + color = getDevice().argb(); + return color; } public double getLight() { - return getDevice().getRawLightDetected(); + light = getDevice().getRawLightDetected(); + return light; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java index 94f43657..0a6303da 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java @@ -6,12 +6,14 @@ @SuppressWarnings("unused") public class ColorSensor extends Sensor implements IColorSensor { + public int val; + /** Make a color Sensor * * @param device The hardware device */ - public ColorSensor(com.qualcomm.robotcore.hardware.ColorSensor device) { - super(device); + public ColorSensor(com.qualcomm.robotcore.hardware.ColorSensor device, String nm) { + super(device, nm); } /** Make a color sensor @@ -22,8 +24,21 @@ public ColorSensor(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + int alpha = (val >> 24) & 0xFF; + if (alpha != 0 && alpha != 0xFF) { + return logData( + String.format("A(%d)R(%d)G(%d)B(%d)", alpha, (val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF) + ); + } else { + return logData(String.format("R(%d)G(%d)B(%d)", (val >> 16) & 0xFF, (val >> 8) & 0xFF, val & 0xFF)); + } + } + @Override public int argb() { - return getDevice().argb(); + val = getDevice().argb(); + return val; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java index 42ef6a91..6bedf015 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java @@ -8,12 +8,15 @@ @SuppressWarnings("unused") public class DigitalSensor extends Sensor { + private boolean val; + /** Make a digital sensor * * @param device The device */ - public DigitalSensor(DigitalChannel device) { - super(device); + public DigitalSensor(DigitalChannel device, String nm) { + super(device, nm); + val = false; } /** Make a digital sensor @@ -24,11 +27,17 @@ public DigitalSensor(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + return logData(val ? "T" : "F"); + } + /** Get the sensor value as a boolean * * @return Sensor value as boolean */ public boolean getValue() { - return getDevice().getState(); + val = getDevice().getState(); + return val; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java index 4c235c3a..90f7bffb 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java @@ -13,6 +13,17 @@ @SuppressWarnings("unused") public class IMU extends Sensor implements IGyro { + private Orientation orientation; + public AngularVelocity angularVelocity; + + // TODO: Make this report zero-ing info properly + @Override + public String LogLine() { + return logData( + String.format("%f1.3,%f1.3,%f1.3 ", orientation.firstAngle, orientation.secondAngle, orientation.thirdAngle) + ); + } + /** * The direction of the axes signs when remapping the axes * @@ -80,9 +91,8 @@ public enum AxesSigns { * * Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ SDK */ - @Deprecated - public IMU(com.qualcomm.robotcore.hardware.IMU device, com.qualcomm.robotcore.hardware.IMU.Parameters params) { - super(device); + protected IMU(com.qualcomm.robotcore.hardware.IMU device, com.qualcomm.robotcore.hardware.IMU.Parameters params) { + super(device, "imu"); angleOffset = 0.0; axesSigns = AxesSigns.PPP; @@ -97,8 +107,7 @@ public IMU(com.qualcomm.robotcore.hardware.IMU device, com.qualcomm.robotcore.ha * * Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ SDK */ - @Deprecated - public IMU(String deviceName, com.qualcomm.robotcore.hardware.IMU.Parameters params) { + protected IMU(String deviceName, com.qualcomm.robotcore.hardware.IMU.Parameters params) { super(deviceName); angleOffset = 0.0; @@ -308,7 +317,8 @@ public IMU remapLegacyAxes(AxesOrder legacyOrder, AxesSigns legacySigns) { * @return The Angular Velocity */ public AngularVelocity getAngularVelocity(AngleUnit units) { - return device.getRobotAngularVelocity(units); + angularVelocity = getDevice().getRobotAngularVelocity(units); + return angularVelocity; } public AngularVelocity getAngularVelocity() { @@ -321,17 +331,17 @@ public AngularVelocity getAngularVelocity() { * @return the Orientation of the IMU */ public Orientation getAngularOrientation(AngleUnit units) { - Orientation res = getDevice().getRobotOrientation(AxesReference.INTRINSIC, axesOrder, units); + orientation = getDevice().getRobotOrientation(AxesReference.INTRINSIC, axesOrder, units); if ((axesSigns.bVal & AxesSigns.NPP.bVal) == AxesSigns.NPP.bVal) { - res.firstAngle = -res.firstAngle; + orientation.firstAngle = -orientation.firstAngle; } if ((axesSigns.bVal & AxesSigns.PNP.bVal) == AxesSigns.PNP.bVal) { - res.secondAngle = -res.secondAngle; + orientation.secondAngle = -orientation.secondAngle; } if ((axesSigns.bVal & AxesSigns.PPN.bVal) == AxesSigns.PPN.bVal) { - res.thirdAngle = -res.thirdAngle; + orientation.thirdAngle = -orientation.thirdAngle; } - return res; + return orientation; } public Orientation getAngularOrientation() { diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java index 343160d2..f6d17897 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java @@ -13,14 +13,15 @@ public class Rev2MDistanceSensor extends Sensor implements IDistanceSensor { private DistanceUnit distanceUnit; + private double dist; /** * Create a range sensor * * @param device The sensor device */ - public Rev2MDistanceSensor(DistanceSensor device) { - super(device); + public Rev2MDistanceSensor(DistanceSensor device, String nm) { + super(device, nm); } /** @@ -32,6 +33,11 @@ public Rev2MDistanceSensor(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + return logData(String.format("%f1.3%s", this.dist, this.distanceUnit)); + } + /** * Get the value with a specified distance Unit * @@ -40,7 +46,8 @@ public Rev2MDistanceSensor(String deviceName) { */ @Override public double getDistance(DistanceUnit distanceUnit) { - return getDevice().getDistance(distanceUnit); + this.dist = getDevice().getDistance(distanceUnit); + return dist; } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java index 423dca7f..1d57597d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Sensor.java @@ -16,8 +16,8 @@ public abstract class Sensor implements Encoder { private double zero = 0; + private double val = 0; /** * Create an ExternalEncoder from an arbitrary AnalogInput * * @param device the AnalogInput device */ - public ExternalEncoder(AnalogInput device) { - super(device); + public ExternalEncoder(AnalogInput device, String nm) { + super(device, nm); } /** @@ -28,6 +29,11 @@ public ExternalEncoder(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + return logData(String.format("%f1.3 (raw: %f1.3)", val - zero, val)); + } + /** * Set the current device value as "zero" */ diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java index 140c71a4..ddb6bab0 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/MotorEncoder.java @@ -15,6 +15,12 @@ public class MotorEncoder extends Sensor implements Encoder { private static final int CPS_STEP = 0x10000; public int offset = 0; + private int curPos; + private int rawPos; + private double curVel; + private double rawVel; + private double corVel; + private static double inverseOverflow(double input, double estimate) { double real = input; while (Math.abs(estimate - real) > CPS_STEP / 2.0) { @@ -57,8 +63,8 @@ public int getMultiplier() { private double velocityEstimate; private double lastUpdateTime; - public MotorEncoder(DcMotorEx motor, ElapsedTime clock) { - super(motor); + public MotorEncoder(DcMotorEx motor, ElapsedTime clock, String nm) { + super(motor, nm); // motor.setMode(DcMotor.RunMode.RUN_USING_ENCODER); this.motor = motor; this.clock = clock; @@ -71,12 +77,19 @@ public MotorEncoder(DcMotorEx motor, ElapsedTime clock) { this.lastUpdateTime = clock.seconds(); } - public MotorEncoder(DcMotorEx motor) { - this(motor, new ElapsedTime()); + public MotorEncoder(DcMotorEx motor, String nm) { + this(motor, new ElapsedTime(), nm); } public MotorEncoder(String deviceName) { - this(hardwareMap.get(DcMotorEx.class, deviceName)); + this(hardwareMap.get(DcMotorEx.class, deviceName), deviceName); + } + + @Override + public String LogLine() { + return logData( + String.format("%d (Raw: %d), Vel %f1.3 (Raw: %f1.3, Cor: %f1.)", curPos, rawPos, curVel, rawVel, corVel) + ); } public Direction getDirection() { @@ -102,23 +115,27 @@ public MotorEncoder invert() { public int getCurrentPosition() { int multiplier = getMultiplier(); - int currentPosition = (motor.getCurrentPosition() - offset) * multiplier; - if (currentPosition != lastPosition) { + rawPos = motor.getCurrentPosition(); + curPos = (rawPos - offset) * multiplier; + if (curPos != lastPosition) { double currentTime = clock.seconds(); double dt = currentTime - lastUpdateTime; - velocityEstimate = (currentPosition - lastPosition) / dt; - lastPosition = currentPosition; + velocityEstimate = (curPos - lastPosition) / dt; + lastPosition = curPos; lastUpdateTime = currentTime; } - return currentPosition; + return curPos; } public double getRawVelocity() { int multiplier = getMultiplier(); - return motor.getVelocity() * multiplier; + rawVel = motor.getVelocity(); + curVel = rawVel * multiplier; + return curVel; } public double getCorrectedVelocity() { - return inverseOverflow(getRawVelocity(), velocityEstimate); + corVel = inverseOverflow(getRawVelocity(), velocityEstimate); + return corVel; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java index 5420a9f4..90d63dcb 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java @@ -21,6 +21,7 @@ public class Servo implements Sensored, Invertable { private boolean inverted = false; + private double pos = 0.0; /** * Create servo object @@ -40,6 +41,12 @@ public Servo(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + // Could also include the min/max stuff, and "inverted" + return logData(String.format("%1.3", pos)); + } + /** * Set position for the servo and return this * @@ -79,7 +86,8 @@ public Servo setInverted(boolean invert) { * @param position The position to set the servo to */ public void setPosition(double position) { - device.setPosition(Range.clip(!inverted ? position : 1 - position, 0, 1)); + this.pos = Range.clip(!inverted ? position : 1 - position, 0, 1); + device.setPosition(this.pos); } public void incrementPosition(double incAmount) { @@ -88,7 +96,8 @@ public void incrementPosition(double incAmount) { @Override public double getSensorValue() { - return inverted ? 1 - device.getPosition() : device.getPosition(); + this.pos = device.getPosition(); + return inverted ? 1 - this.pos : this.pos; } /** From 5994a673aeb1a7ad370eff29954e1fdb16f50466 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Wed, 15 Nov 2023 17:28:55 -0800 Subject: [PATCH 36/47] LogLine overrides for all hardware types. Config-based logging next --- .../library/hardware/motor/EncodedMotor.java | 44 +++++--------- .../hardware/motor/EncodedMotorGroup.java | 12 +++- .../library/hardware/motor/Motor.java | 57 ++++++++++++++++--- .../library/hardware/motor/MotorGroup.java | 12 +++- .../library/hardware/servo/Servo.java | 8 +-- .../library/hardware/servo/ServoGroup.java | 12 +++- .../technototes/vision/hardware/Camera.java | 2 +- .../vision/hardware/InternalCamera.java | 6 ++ .../vision/hardware/SwitchableWebcam.java | 6 ++ .../technototes/vision/hardware/Webcam.java | 6 ++ 10 files changed, 118 insertions(+), 47 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index bf52cee5..11753d9d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -23,6 +23,7 @@ public class EncodedMotor extends Motor implements S public double positionThreshold = 50; private Encoder encoder; + private DcMotor.RunMode runMode; /** * Make encoded motor @@ -30,8 +31,8 @@ public class EncodedMotor extends Motor implements S * @param device The dcmotor object * @param e The encoder for the motor */ - public EncodedMotor(T device, Encoder e) { - super(device); + public EncodedMotor(T device, Encoder e, String nm) { + super(device, nm); encoder = e; } @@ -51,10 +52,10 @@ public EncodedMotor(String device, Encoder e) { * * @param device The dcmotor object */ - public EncodedMotor(T device) { - super(device); + public EncodedMotor(T device, String nm) { + super(device, nm); if (device instanceof DcMotorEx) { - encoder = new MotorEncoder((DcMotorEx) device); + encoder = new MotorEncoder((DcMotorEx) device, nm); } } @@ -66,7 +67,7 @@ public EncodedMotor(T device) { public EncodedMotor(String deviceName) { super(deviceName); if (getDevice() instanceof DcMotorEx) { - encoder = new MotorEncoder((DcMotorEx) getDevice()); + encoder = new MotorEncoder((DcMotorEx) getDevice(), deviceName); } } @@ -114,7 +115,11 @@ public EncodedMotor setPIDFCoeffecients(PIDFCoefficients coeffecients) { * @return The motor (for chaining) */ public EncodedMotor setRunMode(DcMotor.RunMode m) { - if (getDevice() instanceof DcMotor) ((DcMotor) getDevice()).setMode(m); + T device = getDevice(); + if (device instanceof DcMotor) { + ((DcMotor) device).setMode(m); + runMode = m; + } return this; } @@ -242,7 +247,7 @@ public Double get() { */ public void setVelocity(double tps) { if (getDevice() instanceof DcMotor) { - ((DcMotor) getDevice()).setMode(DcMotor.RunMode.RUN_USING_ENCODER); + setRunMode(DcMotor.RunMode.RUN_USING_ENCODER); getDevice().setPower(tps); } } @@ -253,28 +258,7 @@ public void setVelocity(double tps) { * @return the power for the motor */ public double getVelocity() { - return getDevice().getPower(); - } - - /** - * Gets the power set for the motor - * - * @return THe power for the motor - */ - @Override - public double getSpeed() { - return getDevice().getPower(); - } - - /** - * Sets the (clipped) speed for the motor - * - * @param speed The speed of the motor - */ - @Override - public void setSpeed(double speed) { - // if(getDevice() instanceof DcMotor) ((DcMotor) getDevice()).setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); - super.setSpeed(speed); + return getSpeed(); } @Override diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java index 77c92ca2..4d61070f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java @@ -15,6 +15,16 @@ public class EncodedMotorGroup private final EncodedMotor[] followers; + @Override + public String LogLine() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < getDeviceCount(); i++) { + sb.append(i == 0 ? "group:" : ";"); + sb.append(getDeviceNum(i).LogLine()); + } + return sb.toString(); + } + /** * Create an encoded motor groupM * @@ -22,7 +32,7 @@ public class EncodedMotorGroup * @param followers The following motors */ public EncodedMotorGroup(EncodedMotor leader, EncodedMotor... followers) { - super(leader.getDevice()); + super(leader.getDevice(), "emGrp"); this.followers = followers; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index eac04003..8bdb5c85 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -16,14 +16,36 @@ public class Motor extends HardwareDevice implements Supplier { private double min = -1, max = 1; + protected double power; + protected DcMotorSimple.Direction dir; + protected DcMotor.ZeroPowerBehavior zeroBehavior; + + private String dirStr() { + return dir == DcMotorSimple.Direction.FORWARD ? "Fwd" : "Rev"; + } + + private String zBehavior() { + boolean simple = (getDevice() instanceof DcMotor); + if (simple) { + return ""; + } + if (zeroBehavior == DcMotor.ZeroPowerBehavior.BRAKE) { + return "Brk"; + } else { + return "Flt"; + } + } /** * Create a motor * * @param device The hardware device */ - public Motor(T device) { - super(device); + public Motor(T device, String nm) { + super(device, nm); + power = 0; + dir = DcMotorSimple.Direction.FORWARD; + zeroBehavior = DcMotor.ZeroPowerBehavior.FLOAT; } /** @@ -35,6 +57,15 @@ public Motor(String deviceName) { super(deviceName); } + @Override + public String LogLine() { + if (min <= -1.0 && max >= 1.0) { + return logData(String.format("%1.2f%s%s", power, dirStr(), zBehavior())); + } else { + return logData(String.format("%1.2f%s%s[%1.2f-%1.2f]", power, dirStr(), zBehavior(), min, max)); + } + } + /** * Sets the min & max values for the motor power (still clipped to -1/1) * @@ -54,7 +85,8 @@ public Motor setLimits(double mi, double ma) { * Returns the DcMotorSimple.Direction the motor is traveling */ public DcMotorSimple.Direction getDirection() { - return getDevice().getDirection(); + dir = getDevice().getDirection(); + return dir; } /** @@ -62,6 +94,7 @@ public DcMotorSimple.Direction getDirection() { */ public Motor setBackward() { getDevice().setDirection(DcMotorSimple.Direction.REVERSE); + dir = DcMotorSimple.Direction.REVERSE; return this; } @@ -70,6 +103,7 @@ public Motor setBackward() { */ public Motor setForward() { getDevice().setDirection(DcMotorSimple.Direction.FORWARD); + dir = DcMotorSimple.Direction.FORWARD; return this; } @@ -77,6 +111,7 @@ public Motor setForward() { * Set the motor to go in a particular direction */ public Motor setDirection(DcMotorSimple.Direction dir) { + this.dir = dir; getDevice().setDirection(dir); return this; } @@ -126,9 +161,11 @@ public void setPower(double pow) { * @return The Motor device (for chaining) */ public Motor brake() { - if (getDevice() instanceof DcMotor) ((DcMotor) getDevice()).setZeroPowerBehavior( - DcMotor.ZeroPowerBehavior.BRAKE - ); + T device = getDevice(); + if (device instanceof DcMotor) { + ((DcMotor) device).setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + zeroBehavior = DcMotor.ZeroPowerBehavior.BRAKE; + } return this; } @@ -138,9 +175,11 @@ public Motor brake() { * @return The Motor device (for chaining) */ public Motor coast() { - if (getDevice() instanceof DcMotor) ((DcMotor) getDevice()).setZeroPowerBehavior( - DcMotor.ZeroPowerBehavior.FLOAT - ); + T device = getDevice(); + if (device instanceof DcMotor) { + ((DcMotor) device).setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); + zeroBehavior = DcMotor.ZeroPowerBehavior.FLOAT; + } return this; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java index 347739e3..bf645caf 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java @@ -13,6 +13,16 @@ public class MotorGroup extends Motor implements Har private final Motor[] followers; + @Override + public String LogLine() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < getDeviceCount(); i++) { + sb.append(i == 0 ? "group:" : ";"); + sb.append(getDeviceNum(i).LogLine()); + } + return sb.toString(); + } + /** * Make a motor group * @@ -20,7 +30,7 @@ public class MotorGroup extends Motor implements Har */ @SafeVarargs public MotorGroup(Motor... motors) { - super(motors[0].getDevice()); + super(motors[0].getDevice(), "grp"); followers = new Motor[motors.length - 1]; System.arraycopy(motors, 1, followers, 0, followers.length); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java index 90d63dcb..5c10e518 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java @@ -28,8 +28,8 @@ public class Servo * * @param device The servo */ - public Servo(com.qualcomm.robotcore.hardware.Servo device) { - super(device); + public Servo(com.qualcomm.robotcore.hardware.Servo device, String nm) { + super(device, nm); } /** @@ -87,7 +87,7 @@ public Servo setInverted(boolean invert) { */ public void setPosition(double position) { this.pos = Range.clip(!inverted ? position : 1 - position, 0, 1); - device.setPosition(this.pos); + getDevice().setPosition(this.pos); } public void incrementPosition(double incAmount) { @@ -96,7 +96,7 @@ public void incrementPosition(double incAmount) { @Override public double getSensorValue() { - this.pos = device.getPosition(); + this.pos = getDevice().getPosition(); return inverted ? 1 - this.pos : this.pos; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java index 931e7660..1ed12629 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java @@ -13,13 +13,23 @@ public class ServoGroup extends Servo implements HardwareDeviceGroup { private final Servo[] followers; + @Override + public String LogLine() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < getDeviceCount(); i++) { + sb.append(i == 0 ? "group:" : ";"); + sb.append(getDeviceNum(i).LogLine()); + } + return sb.toString(); + } + /** * Create a servo group * * @param servos the servos */ public ServoGroup(Servo... servos) { - super(servos[0].getDevice()); + super(servos[0].getDevice(), "group"); super.setInverted(servos[0].getInverted()); followers = new Servo[servos.length - 1]; System.arraycopy(servos, 1, followers, 0, followers.length); diff --git a/Vision/src/main/java/com/technototes/vision/hardware/Camera.java b/Vision/src/main/java/com/technototes/vision/hardware/Camera.java index a5c4260e..0afaf6ae 100644 --- a/Vision/src/main/java/com/technototes/vision/hardware/Camera.java +++ b/Vision/src/main/java/com/technototes/vision/hardware/Camera.java @@ -31,7 +31,7 @@ public abstract class Camera Date: Wed, 15 Nov 2023 23:10:46 -0800 Subject: [PATCH 37/47] Not using the logging capabilities yet, but maybe soon --- .../technototes/library/command/Command.java | 3 +- .../library/hardware/FailedDevice.java | 36 +++ .../library/hardware/HardwareDevice.java | 13 +- .../technototes/library/hardware/Speaker.java | 67 ----- .../library/hardware2/AnalogBuilder.java | 24 -- .../library/hardware2/CRServoBuilder.java | 37 --- .../library/hardware2/ColorBuilder.java | 19 -- .../library/hardware2/ColorRangeBuilder.java | 37 --- .../library/hardware2/DigitalBuilder.java | 67 ----- .../library/hardware2/DistanceBuilder.java | 19 -- .../library/hardware2/HardwareBuilder.java | 254 ------------------ .../library/hardware2/IMUBuilder.java | 170 ------------ .../library/hardware2/MotorBuilder.java | 93 ------- .../library/hardware2/ServoBuilder.java | 60 ----- .../technototes/library/logger/Logger.java | 10 +- .../library/structure/CommandOpMode.java | 4 +- .../library/subsystem/DeviceSubsystem.java | 34 --- .../motor/EncodedMotorSubsystem.java | 56 ---- .../subsystem/motor/MotorSubsystem.java | 44 --- .../subsystem/servo/ServoSubsystem.java | 44 --- .../library/hardware/ServoProfilerTest.java | 2 +- 21 files changed, 61 insertions(+), 1032 deletions(-) create mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/FailedDevice.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/Command.java b/RobotLibrary/src/main/java/com/technototes/library/command/Command.java index 0c403ec5..a06c07ba 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/Command.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/Command.java @@ -1,7 +1,6 @@ package com.technototes.library.command; import com.qualcomm.robotcore.util.ElapsedTime; -import com.technototes.library.subsystem.DeviceSubsystem; import com.technototes.library.subsystem.Subsystem; import java.util.Arrays; import java.util.HashMap; @@ -300,7 +299,7 @@ default Command setState(CommandState s) { /** * Return the subsystem requirements for this command * - * @return The {@link DeviceSubsystem} requirements + * @return The {@link Subsystem} requirements */ default Set getRequirements() { requirementMap.putIfAbsent(this, new LinkedHashSet<>()); diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/FailedDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/FailedDevice.java new file mode 100644 index 00000000..e5070cb4 --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/FailedDevice.java @@ -0,0 +1,36 @@ +package com.technototes.library.hardware; + +public class FailedDevice implements com.qualcomm.robotcore.hardware.HardwareDevice { + + protected String name; + + protected FailedDevice(String deviceName) { + name = deviceName; + } + + @Override + public Manufacturer getManufacturer() { + return Manufacturer.Other; + } + + @Override + public String getDeviceName() { + return name; + } + + @Override + public String getConnectionInfo() { + return "NC"; + } + + @Override + public int getVersion() { + return 0; + } + + @Override + public void resetDeviceConfigurationForOpMode() {} + + @Override + public void close() {} +} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java index 9e3684b2..5b094ee1 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java @@ -1,6 +1,9 @@ package com.technototes.library.hardware; import com.qualcomm.robotcore.hardware.HardwareMap; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; /** * Class for hardware devices @@ -16,6 +19,13 @@ public abstract class HardwareDevice> names = new HashMap<>(); + + public static void initMap(HardwareMap h) { + hardwareMap = h; + } + + public static Set> devices = null; private T device; @@ -32,6 +42,7 @@ public abstract class HardwareDevice) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName); } catch (Exception e) { - device = null; + device = null; // (T) new FailedDevice(deviceName); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java deleted file mode 100644 index 9fd0780c..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/Speaker.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.technototes.library.hardware; - -import static com.technototes.library.hardware.HardwareDevice.hardwareMap; - -import com.qualcomm.ftccommon.SoundPlayer; -import java.util.HashMap; -import java.util.Map; -import javax.annotation.Nullable; - -/** - * There's just no possible way I care about this. I think there are rules about *not* playing - * anything through the speaker now, anyway. This is going away. (The rules were created because - * of Alex, if I recall correctly...) - */ -@Deprecated -public class Speaker { - - private final Map list; - - private String currentSong = null; - - public Speaker(String... songs) { - this(1f, songs); - } - - public Speaker(float volume, String... songs) { - list = new HashMap<>(); - addSongs(songs); - setVolume(volume); - } - - public Speaker addSongs(String... name) { - for (String s : name) { - list.put( - s, - hardwareMap.appContext.getResources().getIdentifier(s, "raw", hardwareMap.appContext.getPackageName()) - ); - } - return this; - } - - public Speaker start(String name) { - SoundPlayer.getInstance().startPlaying(hardwareMap.appContext, list.get(name)); - currentSong = name; - return this; - } - - public Speaker stop() { - SoundPlayer.getInstance().stopPlayingAll(); - currentSong = null; - return this; - } - - public Speaker setVolume(float volume) { - SoundPlayer.getInstance().setMasterVolume(volume); - return this; - } - - public float getVolume() { - return SoundPlayer.getInstance().getMasterVolume(); - } - - @Nullable - public String getCurrentSong() { - return currentSong; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java deleted file mode 100644 index adaa1088..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/AnalogBuilder.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.AnalogSensor; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - * - */ -@Deprecated -public class AnalogBuilder extends HardwareBuilder { - - public AnalogBuilder(String name) { - super(name); - } - - public AnalogBuilder(AnalogSensor device) { - super(device); - } - - public AnalogBuilder(int port) { - super(port); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java deleted file mode 100644 index b00a1248..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/CRServoBuilder.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.CRServo; -import com.qualcomm.robotcore.hardware.DcMotorSimple; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class CRServoBuilder extends HardwareBuilder { - - public CRServoBuilder(String name) { - super(name); - } - - public CRServoBuilder(CRServo device) { - super(device); - } - - public CRServoBuilder(int port) { - super(port); - } - - public CRServoBuilder direction(DcMotorSimple.Direction dir) { - product.setDirection(dir); - return this; - } - - public CRServoBuilder forward() { - return direction(DcMotorSimple.Direction.FORWARD); - } - - public CRServoBuilder reverse() { - return direction(DcMotorSimple.Direction.REVERSE); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java deleted file mode 100644 index 52d9264e..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorBuilder.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.ColorSensor; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class ColorBuilder extends HardwareBuilder { - - public ColorBuilder(String name) { - super(name); - } - - public ColorBuilder(ColorSensor device) { - super(device); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java deleted file mode 100644 index 8d760997..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ColorRangeBuilder.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.ColorRangeSensor; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class ColorRangeBuilder extends HardwareBuilder { - - public ColorRangeBuilder(String name) { - super(name); - } - - public ColorRangeBuilder(ColorRangeSensor device) { - super(device); - } - - public ColorRangeBuilder gain(float val) { - product.setGain(val); - return this; - } - - public ColorRangeBuilder led(boolean l) { - product.enableLed(l); - return this; - } - - public ColorRangeBuilder enable() { - return led(true); - } - - public ColorRangeBuilder disable() { - return led(false); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java deleted file mode 100644 index 1842ffc7..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DigitalBuilder.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.DigitalChannel; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class DigitalBuilder extends HardwareBuilder { - - /** - * Don't use this in the future - * - * @param name undoc - */ - public DigitalBuilder(String name) { - super(name); - } - - /** - * Don't use this in the future - * - * @param device undoc - */ - public DigitalBuilder(DigitalChannel device) { - super(device); - } - - /** - * Don't use this in the future - * - * @param port undoc - */ - public DigitalBuilder(int port) { - super(port); - } - - /** - * Don't use this in the future - * - * @param mode undoc - * @return undoc - */ - public DigitalBuilder mode(DigitalChannel.Mode mode) { - product.setMode(mode); - return this; - } - - /** - * Don't use this in the future - * - * @return undoc - */ - public DigitalBuilder input() { - return mode(DigitalChannel.Mode.INPUT); - } - - /** - * Don't use this in the future - * - * @return undoc - */ - public DigitalBuilder output() { - return mode(DigitalChannel.Mode.OUTPUT); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java deleted file mode 100644 index 094fc57a..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/DistanceBuilder.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.DistanceSensor; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class DistanceBuilder extends HardwareBuilder { - - public DistanceBuilder(String name) { - super(name); - } - - public DistanceBuilder(DistanceSensor device) { - super(device); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java deleted file mode 100644 index d0d2d209..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/HardwareBuilder.java +++ /dev/null @@ -1,254 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.HardwareMap; -import java.util.function.UnaryOperator; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class HardwareBuilder { - - private static HardwareMap hardwareMap = null; - - public static HardwareMap getMap() { - return hardwareMap; - } - - /** - * Deprecated - * - * @param h deprecated - */ - public static void initMap(HardwareMap h) { - // fix to maintain old code - com.technototes.library.hardware.HardwareDevice.hardwareMap = h; - hardwareMap = h; - } - - /** - * Deprecated - * - * @param s Deprecated - * @param Deprecated - * @return Deprecated - */ - @SuppressWarnings("unchecked cast") - public static T create(String s) { - if (hardwareMap == null) return null; - return hardwareMap.get((Class) Object.class, s); - } - - /** - * Deprecated - * - * @param port Deprecated - * @param Deprecated - * @return Deprecated - */ - // TODO - public static T create(int port) { - if (hardwareMap == null) return null; - return null; - } - - /** - * Deprecated - */ - protected T product; - - /** - * Deprecated - * - * @param name Deprecated - */ - public HardwareBuilder(String name) { - this(HardwareBuilder.create(name)); - } - - /** - * Deprecated - * - * @param device Deprecated - */ - public HardwareBuilder(T device) { - product = device; - } - - /** - * Deprecated - * - * @param port Deprecated - */ - public HardwareBuilder(int port) { - this(HardwareBuilder.create(port)); - } - - /** - * Deprecated - * - * @param Deprecated - * @return Deprecated - */ - @SuppressWarnings("unchecked cast") - public U build() { - try { - return (U) product; - } catch (ClassCastException e) { - e.printStackTrace(); - return null; - } - } - - /** - * Deprecated - * - * @param operator Deprecated - * @return Deprecated - */ - public HardwareBuilder apply(UnaryOperator operator) { - product = operator.apply(product); - return this; - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static AnalogBuilder analog(String name) { - return new AnalogBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static ColorBuilder color(String name) { - return new ColorBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static ColorRangeBuilder colorRange(String name) { - return new ColorRangeBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static CRServoBuilder crServo(String name) { - return new CRServoBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static DigitalBuilder digital(String name) { - return new DigitalBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static DistanceBuilder distance(String name) { - return new DistanceBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static IMUBuilder imu(String name) { - return new IMUBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static MotorBuilder motor(String name) { - return new MotorBuilder(name); - } - - /** - * Deprecated - * - * @param name Deprecated - * @return Deprecated - */ - public static ServoBuilder servo(String name) { - return new ServoBuilder(name); - } - - /** - * Deprecated - * - * @param port Deprecated - * @return Deprecated - */ - public static AnalogBuilder analog(int port) { - return new AnalogBuilder(port); - } - - /** - * Deprecated - * - * @param port Deprecated - * @return Deprecated - */ - public static CRServoBuilder crServo(int port) { - return new CRServoBuilder(port); - } - - /** - * Deprecated - * - * @param port Deprecated - * @return Deprecated - */ - public static DigitalBuilder digital(int port) { - return new DigitalBuilder(port); - } - - /** - * Deprecated - * - * @param port Deprecated - * @return Deprecated - */ - public static MotorBuilder motor(int port) { - return new MotorBuilder(port); - } - - /** - * Deprecated - * - * @param port Deprecated - * @return Deprecated - */ - public static ServoBuilder servo(int port) { - return new ServoBuilder(port); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java deleted file mode 100644 index d3bebe9a..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/IMUBuilder.java +++ /dev/null @@ -1,170 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.hardware.bosch.BNO055IMU; -import com.qualcomm.hardware.bosch.BNO055IMUImpl; -import java.util.function.Consumer; -import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class IMUBuilder extends HardwareBuilder { - - /** - * This is duplicated in the IMU class - */ - public enum AxesSigns { - /** - * deprecated - */ - PPP(0b000), - /** - * deprecated - */ - PPN(0b001), - /** - * deprecated - */ - PNP(0b010), - /** - * deprecated - */ - PNN(0b011), - /** - * deprecated - */ - NPP(0b100), - /** - * deprecated - */ - NPN(0b101), - /** - * deprecated - */ - NNP(0b110), - /** - * deprecated - */ - NNN(0b111); - - /** - * deprecated - */ - public final int bVal; - - /** - * deprecated - */ - AxesSigns(int bVal) { - this.bVal = bVal; - } - } - - private BNO055IMU.Parameters parameters; - - /** - * deprecated - * - * @param name Deprecated - */ - public IMUBuilder(String name) { - super(name); - parameters = new BNO055IMU.Parameters(); - } - - /** - * Deprecated - * - * @param device Deprecated - */ - public IMUBuilder(BNO055IMUImpl device) { - super(device); - parameters = new BNO055IMU.Parameters(); - } - - /** - * Deprecated - * - * @param consumer Deprecated - * @return Deprecated - */ - public IMUBuilder parameter(Consumer consumer) { - consumer.accept(parameters); - return this; - } - - /** - * Deprecated - * - * @return Deprecated - */ - public IMUBuilder degrees() { - parameters.angleUnit = BNO055IMU.AngleUnit.DEGREES; - return this; - } - - /** - * Deprecated - * - * @return Deprecated - */ - public IMUBuilder radians() { - parameters.angleUnit = BNO055IMU.AngleUnit.RADIANS; - return this; - } - - /** - * Deprecated - * - * @param order Deprecated - * @param signs Deprecated - * @return Deprecated - */ - public IMUBuilder remap(AxesOrder order, AxesSigns signs) { - try { - // the indices correspond with the 2-bit encodings specified in the datasheet - int[] indices = order.indices(); - int axisMapConfig = 0; - axisMapConfig |= (indices[0] << 4); - axisMapConfig |= (indices[1] << 2); - axisMapConfig |= (indices[2]); - - // the BNO055 driver flips the first orientation vector so we also flip here - int axisMapSign = signs.bVal ^ (0b100 >> indices[0]); - - // Enter CONFIG mode - product.write8(BNO055IMU.Register.OPR_MODE, BNO055IMU.SensorMode.CONFIG.bVal & 0x0F); - - Thread.sleep(100); - - // Write the AXIS_MAP_CONFIG register - product.write8(BNO055IMU.Register.AXIS_MAP_CONFIG, axisMapConfig & 0x3F); - - // Write the AXIS_MAP_SIGN register - product.write8(BNO055IMU.Register.AXIS_MAP_SIGN, axisMapSign & 0x07); - - // Switch back to the previous mode - product.write8(BNO055IMU.Register.OPR_MODE, product.getParameters().mode.bVal & 0x0F); - - Thread.sleep(100); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } - parameters = product.getParameters(); - return this; - } - - /** - * Deprecated - * - * @param Deprecated - * @return Deprecated - */ - @Override - public U build() { - product.initialize(parameters); - return (U) product; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java deleted file mode 100644 index d6dbc61a..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/MotorBuilder.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.DcMotor; -import com.qualcomm.robotcore.hardware.DcMotorEx; -import com.qualcomm.robotcore.hardware.DcMotorSimple; -import com.qualcomm.robotcore.hardware.PIDFCoefficients; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class MotorBuilder extends HardwareBuilder { - - public MotorBuilder(String name) { - super(name); - } - - public MotorBuilder(DcMotorEx device) { - super(device); - } - - public MotorBuilder(int port) { - super(port); - } - - public MotorBuilder direction(DcMotorSimple.Direction dir) { - product.setDirection(dir); - return this; - } - - public MotorBuilder forward() { - return direction(DcMotorSimple.Direction.FORWARD); - } - - public MotorBuilder reverse() { - return direction(DcMotorSimple.Direction.REVERSE); - } - - public MotorBuilder idle(DcMotor.ZeroPowerBehavior zeroPowerBehavior) { - product.setZeroPowerBehavior(zeroPowerBehavior); - return this; - } - - public MotorBuilder brake() { - return idle(DcMotor.ZeroPowerBehavior.BRAKE); - } - - public MotorBuilder coast() { - return idle(DcMotor.ZeroPowerBehavior.FLOAT); - } - - public MotorBuilder mode(DcMotor.RunMode runMode) { - product.setMode(runMode); - return this; - } - - public MotorBuilder position(double p) { - product.setPositionPIDFCoefficients(p); - return mode(DcMotor.RunMode.RUN_TO_POSITION); - } - - public MotorBuilder velocity(PIDFCoefficients p) { - product.setVelocityPIDFCoefficients(p.p, p.i, p.d, p.f); - return mode(DcMotor.RunMode.RUN_USING_ENCODER); - } - - public MotorBuilder raw() { - return mode(DcMotor.RunMode.RUN_WITHOUT_ENCODER); - } - - public MotorBuilder tolerance(int tolerance) { - product.setTargetPositionTolerance(tolerance); - return this; - } - - public MotorBuilder enable() { - product.setMotorEnable(); - return this; - } - - public MotorBuilder disable() { - product.setMotorDisable(); - return this; - } - - public MotorBuilder tare() { - DcMotor.RunMode pastMode = product.getMode(); - product.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); - product.setMode(pastMode); - return this; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java deleted file mode 100644 index 6589318a..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware2/ServoBuilder.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.technototes.library.hardware2; - -import com.qualcomm.robotcore.hardware.PwmControl; -import com.qualcomm.robotcore.hardware.Servo; - -/** - * TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - * it's in all the documentation, so just read it, see it in the examples, and you're done. - */ -@Deprecated -public class ServoBuilder extends HardwareBuilder { - - public ServoBuilder(String name) { - super(name); - } - - public ServoBuilder(Servo device) { - super(device); - } - - public ServoBuilder(int port) { - super(port); - } - - public ServoBuilder direction(Servo.Direction dir) { - product.setDirection(dir); - return this; - } - - public ServoBuilder forward() { - return direction(Servo.Direction.FORWARD); - } - - public ServoBuilder reverse() { - return direction(Servo.Direction.REVERSE); - } - - public ServoBuilder at(double position) { - product.setPosition(position); - return this; - } - - public ServoBuilder range(double min, double max) { - product.scaleRange(min, max); - return this; - } - - public ServoBuilder pwmRange(double min, double max) { - if (product instanceof PwmControl) ((PwmControl) product).setPwmRange( - new PwmControl.PwmRange(min, max) - ); else throw new UnsupportedOperationException( - "scaling pwm range only supported on devices that implement pwmcontrol" - ); - return this; - } - - public ServoBuilder expandedPWM() { - return pwmRange(500, 2500); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index bbb2ddfc..199dc029 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -14,6 +14,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.TreeSet; import java.util.function.BooleanSupplier; import java.util.function.DoubleSupplier; import java.util.function.IntSupplier; @@ -27,6 +28,12 @@ */ public class Logger { + private static Set hardwareToLog = new TreeSet<>(); + + public static void LogHardware(String names) { + hardwareToLog = new TreeSet(Arrays.asList(names.split(";"))); + } + public Entry[] runEntries; public Entry[] initEntries; private final Set> unindexedRunEntries; @@ -89,7 +96,7 @@ private void configure(Object root) { // TODO make list and do sort with comparators // I wish this had a comment describing what Alex thinks it's doing, - // I *think* it'strying to set the 'indexed' entries to their preferred locations + // I *think* it's trying to set the 'indexed' entries to their preferred locations // then filling in the gaps with unindexed or lower priority entries. // That bottom loop is also quite slow, but we're talking about 0-20 entries, so performance // is probably irrelevant... @@ -123,6 +130,7 @@ private Entry[] generate(Set> a) { } private void update(Entry[] choice) { + if (!hardwareToLog.isEmpty()) {} try { for (Entry item : choice) { // telemetry.addLine( diff --git a/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java b/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java index c8dd453f..319c6100 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java +++ b/RobotLibrary/src/main/java/com/technototes/library/structure/CommandOpMode.java @@ -5,7 +5,7 @@ import com.qualcomm.robotcore.util.ElapsedTime; import com.technototes.library.command.CommandScheduler; import com.technototes.library.control.CommandGamepad; -import com.technototes.library.hardware2.HardwareBuilder; +import com.technototes.library.hardware.HardwareDevice; import com.technototes.library.logger.Logger; import java.util.List; @@ -60,12 +60,12 @@ public double getOpModeRuntime() { @Override public final void runOpMode() { + HardwareDevice.initMap(hardwareMap); opModeState = OpModeState.INIT; CommandScheduler.resetScheduler(); CommandScheduler.setOpMode(this); hubs = hardwareMap.getAll(LynxModule.class); hubs.forEach(e -> e.setBulkCachingMode(LynxModule.BulkCachingMode.MANUAL)); - HardwareBuilder.initMap(hardwareMap); driverGamepad = new CommandGamepad(gamepad1); codriverGamepad = new CommandGamepad(gamepad2); opModeTimer.reset(); diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java deleted file mode 100644 index f48abf52..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/DeviceSubsystem.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.technototes.library.subsystem; - -import com.technototes.library.hardware.HardwareDevice; - -/** - * Don't do this, don't use this. Subsystems should be used for encapsulation, not for exposing - * the rest of the system to a hardware device - * @author Alex Stedman - * @param The {@link HardwareDevice} for this subsystem - */ -@Deprecated -public abstract class DeviceSubsystem> implements Subsystem { - - protected T device; - - /** Create a subsystem - * - * @param device The main device for the subsystem - */ - public DeviceSubsystem(T device) { - this.device = device; - } - - /** Get the devices for this subsystem - * - * @return The devices - */ - public T getDevice() { - return device; - } - - @Override - public void periodic() {} -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java deleted file mode 100644 index e9b15f79..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.technototes.library.subsystem.motor; - -import com.technototes.library.hardware.motor.EncodedMotor; - -/** - * A bad example class for encoded motor subsystems - * - * This is an anti-pattern. - * Subsystems are levels of abstraction. This doesn't provide a real level of abstraction. - * @author Alex Stedman - */ -@Deprecated -public class EncodedMotorSubsystem extends MotorSubsystem> { - - /** Max speed - * - */ - public double maxSpeed = 0.5; - - /** Create encoded motor subsystem - * - * @param motor The motor - */ - public EncodedMotorSubsystem(EncodedMotor motor) { - super(motor); - } - - /** Set the max speed for the subsystem - * - * @param speed New max speed - * @return this - */ - public EncodedMotorSubsystem setMaxSpeed(double speed) { - maxSpeed = speed; - return this; - } - - /** Set position for subsystem with existing max speed - * - * @param ticks Motor ticks for position - * @return If this is at specified position - */ - public boolean setPosition(double ticks) { - return setPosition(ticks, maxSpeed); - } - - /** Set position for subsystem - * - * @param ticks Motor ticks for position - * @param speed The max speed to run to the position - * @return If this is at specified position - */ - public boolean setPosition(double ticks, double speed) { - return getDevice().setPosition(ticks, speed); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java deleted file mode 100644 index b2b47c06..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/motor/MotorSubsystem.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.technototes.library.subsystem.motor; - -import com.technototes.library.hardware.motor.Motor; -import com.technototes.library.subsystem.DeviceSubsystem; - -/** - * a bad example class for motor subsystems: - * Don't expose a device as a subsystem. Subsystems should control/mediate access to the devices, - * not just expose a device. - * - * @author Alex Stedman - * @param The motor type - */ -@Deprecated -public class MotorSubsystem> extends DeviceSubsystem { - - /** Create motor subsystem - * - * @param motor The motor - */ - public MotorSubsystem(T motor) { - super(motor); - } - - /** Get the speed of the motors in the subsystem - * - * @return The speed - */ - public double getSpeed() { - return getDevice().getSpeed(); - } - - /** Set the speed of the primary motors in subsystem - * - * @param speed The speed - */ - public void setSpeed(double speed) { - getDevice().setSpeed(speed); - } - - public void stop() { - setSpeed(0); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java deleted file mode 100644 index b460c606..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/servo/ServoSubsystem.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.technototes.library.subsystem.servo; - -import com.technototes.library.hardware.servo.Servo; -import com.technototes.library.hardware.servo.ServoGroup; -import com.technototes.library.subsystem.DeviceSubsystem; - -/** - * a bad example class for servo subsystems - * - * This is an anti-pattern: Don't expose a servo as a subsystem. Expose capabilities of the - * subsystem, for use by commands - * @author Alex Stedman - */ -@Deprecated -public class ServoSubsystem extends DeviceSubsystem { - - /** Create servo subsystem - * - * @param servo The servo - */ - public ServoSubsystem(Servo servo) { - super(servo); - } - - public ServoSubsystem(Servo... servo) { - super(new ServoGroup(servo)); - } - - /** Set servo subsystem position - * - * @param position The position - */ - public void setPosition(double position) { - getDevice().setPosition(position); - } - - /** Get subsystem servo position - * - * @return The position - */ - public double getPosition() { - return getDevice().getPosition(); - } -} diff --git a/RobotLibrary/src/test/java/com/technototes/library/hardware/ServoProfilerTest.java b/RobotLibrary/src/test/java/com/technototes/library/hardware/ServoProfilerTest.java index dd01a9eb..4e454425 100644 --- a/RobotLibrary/src/test/java/com/technototes/library/hardware/ServoProfilerTest.java +++ b/RobotLibrary/src/test/java/com/technototes/library/hardware/ServoProfilerTest.java @@ -13,7 +13,7 @@ public class ServoProfilerTest { @Test public void test() { - servo = new Servo(new MockServo()).startAt(0); + servo = new Servo(new MockServo(), "mockServo").startAt(0); servoController = new ServoProfiler(servo).setConstraints(1, 0.4, 1); time = new ElapsedTime(); time.reset(); From 91ab8fa6879bdf198b1bd179f74109758492e457 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Wed, 15 Nov 2023 23:17:04 -0800 Subject: [PATCH 38/47] Fixed some minor stuff, cleaned some other stuff up --- .../src/main/java/com/technototes/library/RobotLibrary.java | 2 +- .../main/java/com/technototes/library/util/MathUtils.java | 6 ++++-- .../src/main/java/com/technototes/library/util/Range.java | 3 +++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/RobotLibrary.java b/RobotLibrary/src/main/java/com/technototes/library/RobotLibrary.java index 699b333b..1ca7e336 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/RobotLibrary.java +++ b/RobotLibrary/src/main/java/com/technototes/library/RobotLibrary.java @@ -12,7 +12,7 @@ public class RobotLibrary { * @return Library version */ public static String getVersion() { - return "1.0.2"; + return "1.9.9-alpha"; } /** Get if the library is a pre release diff --git a/RobotLibrary/src/main/java/com/technototes/library/util/MathUtils.java b/RobotLibrary/src/main/java/com/technototes/library/util/MathUtils.java index 8a934ed0..a333cb3f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/util/MathUtils.java +++ b/RobotLibrary/src/main/java/com/technototes/library/util/MathUtils.java @@ -30,9 +30,9 @@ public static double getMax(double... args) { * @return The max */ public static int getMax(int... args) { - int max = 0; + int max = args[0]; for (int i = 1; i < args.length; i++) { - max = Math.max(args[i - 1], args[i]); + max = Math.max(max, args[i]); } return max; } @@ -61,6 +61,7 @@ public static double pythag(double... vals) { * @return The constrained number * @deprecated */ + @Deprecated public static int constrain(int min, int num, int max) { return num < min ? min : (num > max ? max : num); } @@ -75,6 +76,7 @@ public static int constrain(int min, int num, int max) { * @return The constrained number * @deprecated */ + @Deprecated public static double constrain(double min, double num, double max) { return num < min ? min : (num > max ? max : num); } diff --git a/RobotLibrary/src/main/java/com/technototes/library/util/Range.java b/RobotLibrary/src/main/java/com/technototes/library/util/Range.java index 7b1cfdac..7236d8ac 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/util/Range.java +++ b/RobotLibrary/src/main/java/com/technototes/library/util/Range.java @@ -2,7 +2,10 @@ /** * Helper class for tracking a range + * + * Adds minimal value over com.qualcomm.robotcore.util.Range, which is the reason for deprecation */ +@Deprecated public class Range { /** From af6a162771b99776290db617e6f9f9995d100916 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Thu, 16 Nov 2023 07:55:25 -0800 Subject: [PATCH 39/47] Untested logging infrastructure --- .../library/hardware/HardwareDevice.java | 4 ++++ .../com/technototes/library/logger/Logger.java | 17 +++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java index 5b094ee1..cc4600ef 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java @@ -34,6 +34,10 @@ public static void initMap(HardwareMap h) { */ protected String name; + public String getName() { + return name; + } + /** * Make a hardware device * diff --git a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java index 199dc029..00ee6608 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java +++ b/RobotLibrary/src/main/java/com/technototes/library/logger/Logger.java @@ -1,6 +1,7 @@ package com.technototes.library.logger; import com.qualcomm.robotcore.eventloop.opmode.OpMode; +import com.technototes.library.hardware.HardwareDevice; import com.technototes.library.logger.entry.BooleanEntry; import com.technototes.library.logger.entry.Entry; import com.technototes.library.logger.entry.NumberEntry; @@ -31,7 +32,11 @@ public class Logger { private static Set hardwareToLog = new TreeSet<>(); public static void LogHardware(String names) { - hardwareToLog = new TreeSet(Arrays.asList(names.split(";"))); + if (names == null || names.length() == 0) { + hardwareToLog = new TreeSet<>(); + } else { + hardwareToLog = new TreeSet(Arrays.asList(names.split(";"))); + } } public Entry[] runEntries; @@ -130,7 +135,15 @@ private Entry[] generate(Set> a) { } private void update(Entry[] choice) { - if (!hardwareToLog.isEmpty()) {} + if (!hardwareToLog.isEmpty()) { + for (HardwareDevice hw : HardwareDevice.devices) { + if (hardwareToLog.contains(hw.getName())) { + // Add the line to the log + telemetry.addLine(hw.LogLine()); + } + } + } + try { for (Entry item : choice) { // telemetry.addLine( From 6f987e28ebf541ff730c082df730c48e821abb6f Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 18 Nov 2023 23:27:42 -0800 Subject: [PATCH 40/47] Working on getting things fully hidden: Not building yet. --- .../library/hardware/HardwareDevice.java | 13 ++--- .../library/hardware/motor/EncodedMotor.java | 19 ++++--- .../hardware/motor/EncodedMotorGroup.java | 2 +- .../library/hardware/motor/Motor.java | 42 ++++++++++---- .../library/hardware/sensor/AnalogSensor.java | 5 +- .../hardware/sensor/ColorDistanceSensor.java | 57 +++++++++++-------- .../library/hardware/sensor/ColorSensor.java | 5 +- .../hardware/sensor/DigitalSensor.java | 5 +- .../hardware/sensor/Rev2MDistanceSensor.java | 5 +- .../sensor/encoder/ExternalEncoder.java | 5 +- 10 files changed, 103 insertions(+), 55 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java index cc4600ef..6988ec7f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java @@ -56,12 +56,7 @@ public HardwareDevice(T device, String deviceName) { */ @SuppressWarnings("unchecked cast") protected HardwareDevice(String deviceName) { - try { - device = - hardwareMap.get((Class) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName); - } catch (Exception e) { - device = null; // (T) new FailedDevice(deviceName); - } + device = hardwareMap.tryGet((Class) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName); } /** @@ -69,11 +64,15 @@ protected HardwareDevice(String deviceName) { * * @return The device */ - public T getDevice() { + protected T getRawDevice() { // TODO: Assert that we've got a device, yeah? return device; } + protected boolean realHardware() { + return device != null; + } + /** * Get the logging expression */ diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index 11753d9d..71c1c3bf 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -66,8 +66,9 @@ public EncodedMotor(T device, String nm) { */ public EncodedMotor(String deviceName) { super(deviceName); - if (getDevice() instanceof DcMotorEx) { - encoder = new MotorEncoder((DcMotorEx) getDevice(), deviceName); + T device = getRawDevice(); + if (device instanceof DcMotorEx) { + encoder = new MotorEncoder((DcMotorEx)device, deviceName); } } @@ -92,8 +93,9 @@ public EncodedMotor setEncoder(Encoder enc) { * @return The motor (for chaining) */ public EncodedMotor setPIDFCoeffecients(double p, double i, double d, double f) { - if (getDevice() instanceof DcMotorEx) { - ((DcMotorEx) getDevice()).setVelocityPIDFCoefficients(p, i, d, f); + T device = getRawDevice(); + if (device instanceof DcMotorEx) { + ((DcMotorEx)device).setVelocityPIDFCoefficients(p, i, d, f); } return this; } @@ -115,11 +117,11 @@ public EncodedMotor setPIDFCoeffecients(PIDFCoefficients coeffecients) { * @return The motor (for chaining) */ public EncodedMotor setRunMode(DcMotor.RunMode m) { - T device = getDevice(); + T device = getRawDevice(); if (device instanceof DcMotor) { ((DcMotor) device).setMode(m); - runMode = m; } + runMode = m; return this; } @@ -246,9 +248,10 @@ public Double get() { * @param tps the speed in encoder ticks per second */ public void setVelocity(double tps) { - if (getDevice() instanceof DcMotor) { + T device = getRawDevice(); + if (device instanceof DcMotor) { setRunMode(DcMotor.RunMode.RUN_USING_ENCODER); - getDevice().setPower(tps); + device.setPower(tps); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java index 4d61070f..53e13605 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java @@ -32,7 +32,7 @@ public String LogLine() { * @param followers The following motors */ public EncodedMotorGroup(EncodedMotor leader, EncodedMotor... followers) { - super(leader.getDevice(), "emGrp"); + super(leader.getRawDevice(), "emGrp"); this.followers = followers; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index 8bdb5c85..471c27e7 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -25,7 +25,7 @@ private String dirStr() { } private String zBehavior() { - boolean simple = (getDevice() instanceof DcMotor); + boolean simple = (getRawDevice() instanceof DcMotor); if (simple) { return ""; } @@ -85,7 +85,10 @@ public Motor setLimits(double mi, double ma) { * Returns the DcMotorSimple.Direction the motor is traveling */ public DcMotorSimple.Direction getDirection() { - dir = getDevice().getDirection(); + T device = getRawDevice(); + if (device != null) { + dir = device.getDirection(); + } return dir; } @@ -93,7 +96,10 @@ public DcMotorSimple.Direction getDirection() { * Set the motor to go *backward* */ public Motor setBackward() { - getDevice().setDirection(DcMotorSimple.Direction.REVERSE); + T device = getRawDevice(); + if (device != null) { + device.setDirection(DcMotorSimple.Direction.REVERSE); + } dir = DcMotorSimple.Direction.REVERSE; return this; } @@ -102,7 +108,10 @@ public Motor setBackward() { * Set the motor to go *forward* */ public Motor setForward() { - getDevice().setDirection(DcMotorSimple.Direction.FORWARD); + T device = getRawDevice(); + if (device != null) { + device.setDirection(DcMotorSimple.Direction.FORWARD); + } dir = DcMotorSimple.Direction.FORWARD; return this; } @@ -112,7 +121,10 @@ public Motor setForward() { */ public Motor setDirection(DcMotorSimple.Direction dir) { this.dir = dir; - getDevice().setDirection(dir); + T device = getRawDevice(); + if (device != null) { + device.setDirection(dir); + } return this; } @@ -133,7 +145,11 @@ public double getSpeed() { * @return the power value (as a double) */ public double getPower() { - return device.getPower(); + T device = getRawDevice(); + if (device != null) { + power = device.getPower(); + } + return power; } /** @@ -152,7 +168,11 @@ public void setSpeed(double speed) { * @param pow The power value (-1 -> 1) */ public void setPower(double pow) { - device.setPower(Range.clip(pow, min, max)); + power = Range.clip(speed, min, max); + T device = getRawDevice(); + if (device != null) { + device.setPower(power); + } } /** @@ -161,11 +181,11 @@ public void setPower(double pow) { * @return The Motor device (for chaining) */ public Motor brake() { - T device = getDevice(); + T device = getRawDevice(); if (device instanceof DcMotor) { ((DcMotor) device).setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); - zeroBehavior = DcMotor.ZeroPowerBehavior.BRAKE; } + zeroBehavior = DcMotor.ZeroPowerBehavior.BRAKE; return this; } @@ -175,11 +195,11 @@ public Motor brake() { * @return The Motor device (for chaining) */ public Motor coast() { - T device = getDevice(); + T device = getRawDevice(); if (device instanceof DcMotor) { ((DcMotor) device).setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT); - zeroBehavior = DcMotor.ZeroPowerBehavior.FLOAT; } + zeroBehavior = DcMotor.ZeroPowerBehavior.FLOAT; return this; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java index 9db79037..337a0049 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/AnalogSensor.java @@ -32,7 +32,10 @@ public String LogLine() { } public double getSensorValue() { - val = getDevice().getMaxVoltage(); + AnalogInput device = getRawDevice(); + if (device != null) { + val = device.getMaxVoltage(); + } return val; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java index df244e9a..e2445bb8 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java @@ -1,6 +1,7 @@ package com.technototes.library.hardware.sensor; import com.qualcomm.robotcore.hardware.ColorRangeSensor; + import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit; public class ColorDistanceSensor extends Sensor implements IDistanceSensor, IColorSensor { @@ -20,28 +21,28 @@ public String LogLine() { int alpha = (color >> 24) & 0xFF; if (alpha != 0 && alpha != 0xFF) { return logData( - String.format( - "d:%f1.2%s A(%d)R(%d)G(%d)B(%d) [%f1.3]", - dist, - distanceUnit, - alpha, - (color >> 16) & 0xFF, - (color >> 8) & 0xFF, - color & 0xFF, - light - ) + String.format( + "d:%f1.2%s A(%d)R(%d)G(%d)B(%d) [%f1.3]", + dist, + distanceUnit, + alpha, + (color >> 16) & 0xFF, + (color >> 8) & 0xFF, + color & 0xFF, + light + ) ); } else { return logData( - String.format( - "d:%f1.2%s R(%d)G(%d)B(%d) [%f1.3]", - dist, - distanceUnit, - (color >> 16) & 0xFF, - (color >> 8) & 0xFF, - color & 0xFF, - light - ) + String.format( + "d:%f1.2%s R(%d)G(%d)B(%d) [%f1.3]", + dist, + distanceUnit, + (color >> 16) & 0xFF, + (color >> 8) & 0xFF, + color & 0xFF, + light + ) ); } } @@ -52,8 +53,12 @@ public ColorDistanceSensor(ColorRangeSensor device, String nm) { @Override public double getDistance(DistanceUnit unit) { - double val = getDevice().getDistance(unit); - dist = distanceUnit.fromUnit(unit, val); + ColorRangeSensor device = getRawDevice(); + double val = dist; + if (device != null) { + val = device.getDistance(unit); + dist = distanceUnit.fromUnit(unit, val); + } return val; } @@ -70,12 +75,18 @@ public DistanceUnit getUnit() { @Override public int argb() { - color = getDevice().argb(); + ColorRangeSensor device = getRawDevice(); + if (device != null) { + color = device.argb(); + } return color; } public double getLight() { - light = getDevice().getRawLightDetected(); + ColorRangeSensor device = getRawDevice(); + if (device != null) { + light = device.getRawLightDetected(); + } return light; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java index 0a6303da..41e08f71 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorSensor.java @@ -38,7 +38,10 @@ public String LogLine() { @Override public int argb() { - val = getDevice().argb(); + com.qualcomm.robotcore.hardware.ColorSensor device = getRawDevice(); + if (device != null) { + val = device.argb(); + } return val; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java index 6bedf015..ff9cb4d2 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/DigitalSensor.java @@ -37,7 +37,10 @@ public String LogLine() { * @return Sensor value as boolean */ public boolean getValue() { - val = getDevice().getState(); + DigitalChannel device = getRawDevice(); + if (device != null) { + val = device.getState(); + } return val; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java index f6d17897..911de164 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.java @@ -46,7 +46,10 @@ public String LogLine() { */ @Override public double getDistance(DistanceUnit distanceUnit) { - this.dist = getDevice().getDistance(distanceUnit); + DistanceSensor device = getRawDevice(); + if (device != null) { + dist = device.getDistance(distanceUnit); + } return dist; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java index 5d937216..e75b1b9b 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.java @@ -39,7 +39,10 @@ public String LogLine() { */ @Override public void zeroEncoder() { - zero = getDevice().getVoltage(); + AnalogInput device = getRawDevice(); + if (device != null) { + zero = device.getVoltage(); + } } /** From 70e84121dd8958bad62ffd33131eee4c847b238f Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sat, 25 Nov 2023 22:57:09 -0800 Subject: [PATCH 41/47] Removed the HardwareDeviceGroup interface --- .../subsystem/TankDrivebaseSubsystem.java | 56 +++++++------ .../library/hardware/HardwareDevice.java | 3 +- .../library/hardware/HardwareDeviceGroup.java | 55 ------------ .../library/hardware/motor/EncodedMotor.java | 18 +++- .../hardware/motor/EncodedMotorGroup.java | 84 ------------------- .../library/hardware/motor/Motor.java | 3 +- .../library/hardware/motor/MotorGroup.java | 66 --------------- .../hardware/sensor/ColorDistanceSensor.java | 39 +++++---- .../library/hardware/sensor/IMU.java | 6 +- .../library/hardware/servo/Servo.java | 13 +-- .../library/hardware/servo/ServoGroup.java | 72 ---------------- .../drivebase/DrivebaseSubsystem.java | 7 +- .../SimpleMecanumDrivebaseSubsystem.java | 13 +-- .../drivebase/TankDrivebaseSubsystem.java | 7 +- .../vision/hardware/InternalCamera.java | 2 +- .../vision/hardware/SwitchableWebcam.java | 6 +- .../technototes/vision/hardware/Webcam.java | 2 +- 17 files changed, 99 insertions(+), 353 deletions(-) delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java diff --git a/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java b/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java index 6aea64f3..2adc1132 100644 --- a/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java +++ b/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java @@ -21,9 +21,8 @@ import com.qualcomm.robotcore.hardware.DcMotorEx; import com.qualcomm.robotcore.hardware.PIDFCoefficients; import com.qualcomm.robotcore.hardware.VoltageSensor; -import com.qualcomm.robotcore.hardware.configuration.typecontainers.MotorConfigurationType; import com.technototes.library.hardware.HardwareDevice; -import com.technototes.library.hardware.motor.EncodedMotorGroup; +import com.technototes.library.hardware.motor.EncodedMotor; import com.technototes.library.hardware.sensor.IMU; import com.technototes.library.subsystem.Subsystem; import com.technototes.path.subsystem.TankConstants.*; @@ -34,7 +33,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit; public class TankDrivebaseSubsystem extends TankDrive implements Subsystem { @@ -60,14 +58,14 @@ public class TankDrivebaseSubsystem extends TankDrive implements Subsystem { private TrajectoryFollower follower; - private List motors, leftMotors, rightMotors; + private List> motors, leftMotors, rightMotors; private IMU imu; private VoltageSensor batteryVoltageSensor; public TankDrivebaseSubsystem( - EncodedMotorGroup left, - EncodedMotorGroup right, + List> left, + List> right, IMU i, TankConstants c, Localizer localizer @@ -120,17 +118,19 @@ public TankDrivebaseSubsystem( // add/remove motors depending on your robot (e.g., 6WD) motors = new ArrayList<>(); - leftMotors = left.getAllDeviceList().stream().map(HardwareDevice::getDevice).collect(Collectors.toList()); - rightMotors = right.getAllDeviceList().stream().map(HardwareDevice::getDevice).collect(Collectors.toList()); + leftMotors = left; + rightMotors = right; motors.addAll(leftMotors); motors.addAll(rightMotors); - for (DcMotorEx motor : motors) { + /* + * Turning this off for now, because we don't expose it in the EncodedMotor class (yet?) + for (EncodedMotor motor : motors) { MotorConfigurationType motorConfigurationType = motor.getMotorType().clone(); motorConfigurationType.setAchieveableMaxRPMFraction(1.0); motor.setMotorType(motorConfigurationType); } - + */ if (c.getBoolean(TankConstants.UseDriveEncoder.class)) { setMode(DcMotor.RunMode.RUN_USING_ENCODER); } @@ -215,14 +215,18 @@ public boolean isBusy() { } public void setMode(DcMotor.RunMode runMode) { - for (DcMotorEx motor : motors) { - motor.setMode(runMode); + for (EncodedMotor motor : motors) { + motor.setRunMode(runMode); } } public void setZeroPowerBehavior(DcMotor.ZeroPowerBehavior zeroPowerBehavior) { - for (DcMotorEx motor : motors) { - motor.setZeroPowerBehavior(zeroPowerBehavior); + for (EncodedMotor motor : motors) { + if (zeroPowerBehavior == DcMotor.ZeroPowerBehavior.BRAKE) { + motor.brake(); + } else if (zeroPowerBehavior == DcMotor.ZeroPowerBehavior.FLOAT) { + motor.coast(); + } } } @@ -233,8 +237,8 @@ public void setPIDFCoefficients(DcMotor.RunMode runMode, PIDFCoefficients coeffi coefficients.d, (coefficients.f * 12) / batteryVoltageSensor.getVoltage() ); - for (DcMotorEx motor : motors) { - motor.setPIDFCoefficients(runMode, compensatedCoefficients); + for (EncodedMotor motor : motors) { + motor.setPIDFCoeffecients(runMode, compensatedCoefficients); } } @@ -255,13 +259,13 @@ public void setWeightedDrivePower(Pose2d drivePower) { @Override public List getWheelPositions() { double leftSum = 0, rightSum = 0; - for (DcMotorEx leftMotor : leftMotors) { + for (EncodedMotor leftMotor : leftMotors) { leftSum += - TankConstants.encoderTicksToInches(leftMotor.getCurrentPosition(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV); - for (DcMotorEx rightMotor : rightMotors) { + TankConstants.encoderTicksToInches(leftMotor.getSensorValue(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV); + for (EncodedMotor rightMotor : rightMotors) { rightSum += TankConstants.encoderTicksToInches( - rightMotor.getCurrentPosition(), + rightMotor.getSensorValue(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV @@ -273,11 +277,11 @@ public List getWheelPositions() { public List getWheelVelocities() { double leftSum = 0, rightSum = 0; - for (DcMotorEx leftMotor : leftMotors) { + for (EncodedMotor leftMotor : leftMotors) { leftSum += TankConstants.encoderTicksToInches(leftMotor.getVelocity(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV); } - for (DcMotorEx rightMotor : rightMotors) { + for (EncodedMotor rightMotor : rightMotors) { rightSum += TankConstants.encoderTicksToInches(rightMotor.getVelocity(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV); } @@ -286,11 +290,11 @@ public List getWheelVelocities() { @Override public void setMotorPowers(double v, double v1) { - for (DcMotorEx leftMotor : leftMotors) { - leftMotor.setPower(v); + for (EncodedMotor leftMotor : leftMotors) { + leftMotor.setSpeed(v); } - for (DcMotorEx rightMotor : rightMotors) { - rightMotor.setPower(v1); + for (EncodedMotor rightMotor : rightMotors) { + rightMotor.setSpeed(v1); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java index 6988ec7f..ef08e4ce 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDevice.java @@ -56,7 +56,8 @@ public HardwareDevice(T device, String deviceName) { */ @SuppressWarnings("unchecked cast") protected HardwareDevice(String deviceName) { - device = hardwareMap.tryGet((Class) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName); + device = + hardwareMap.tryGet((Class) com.qualcomm.robotcore.hardware.HardwareDevice.class/*T.class*/, deviceName); } /** diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java deleted file mode 100644 index 802e135b..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/HardwareDeviceGroup.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.technototes.library.hardware; - -import com.technototes.library.hardware.motor.Motor; -import java.util.Arrays; -import java.util.List; -import java.util.function.Consumer; - -/** - * Interface for hardware device groups - *

    - * This is useful, but needs to be re-implemented separate from the HardwareDevice wrapper system - * - * @author Alex Stedman - */ -@SuppressWarnings("unused") -public interface HardwareDeviceGroup { - /** - * Get the followers for the lead device - * - * @return The followers - */ - T[] getFollowers(); - - default List getFollowerList() { - return Arrays.asList(getFollowers()); - } - - /** - * Get all devices in group - * - * @return All devices - */ - T[] getAllDevices(); - - default List getAllDeviceList() { - return Arrays.asList(getAllDevices()); - } - - /** - * Propagate actions across the followers - * - * @param func the action to propagate - */ - default void propagate(Consumer func) { - for (T obj : getFollowers()) { - func.accept(obj); - } - } - - T getDeviceNum(int i); - - default int getDeviceCount() { - return getFollowers().length + 1; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index 71c1c3bf..f93babef 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -68,7 +68,7 @@ public EncodedMotor(String deviceName) { super(deviceName); T device = getRawDevice(); if (device instanceof DcMotorEx) { - encoder = new MotorEncoder((DcMotorEx)device, deviceName); + encoder = new MotorEncoder((DcMotorEx) device, deviceName); } } @@ -95,7 +95,7 @@ public EncodedMotor setEncoder(Encoder enc) { public EncodedMotor setPIDFCoeffecients(double p, double i, double d, double f) { T device = getRawDevice(); if (device instanceof DcMotorEx) { - ((DcMotorEx)device).setVelocityPIDFCoefficients(p, i, d, f); + ((DcMotorEx) device).setVelocityPIDFCoefficients(p, i, d, f); } return this; } @@ -110,6 +110,20 @@ public EncodedMotor setPIDFCoeffecients(PIDFCoefficients coeffecients) { return setPIDFCoeffecients(coeffecients.p, coeffecients.i, coeffecients.d, coeffecients.f); } + /** + * Configure the PIDF constants for the motor + * + * @param c The PIDF coefficients to set + * @return The motor (for chaining) + */ + public EncodedMotor setPIDFCoeffecients(DcMotor.RunMode m, PIDFCoefficients c) { + T device = getRawDevice(); + if (device instanceof DcMotorEx) { + ((DcMotorEx) device).setPIDFCoefficients(m, c); + } + return this; + } + /** * Set the runmode for the motor * diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java deleted file mode 100644 index 53e13605..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotorGroup.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.technototes.library.hardware.motor; - -import com.qualcomm.robotcore.hardware.DcMotorSimple; -import com.technototes.library.hardware.HardwareDeviceGroup; - -/** - * Class for encoded motor groups - * - * @author Alex Stedman - */ -@SuppressWarnings("unused") -public class EncodedMotorGroup - extends EncodedMotor - implements HardwareDeviceGroup> { - - private final EncodedMotor[] followers; - - @Override - public String LogLine() { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < getDeviceCount(); i++) { - sb.append(i == 0 ? "group:" : ";"); - sb.append(getDeviceNum(i).LogLine()); - } - return sb.toString(); - } - - /** - * Create an encoded motor groupM - * - * @param leader The Lead motor - * @param followers The following motors - */ - public EncodedMotorGroup(EncodedMotor leader, EncodedMotor... followers) { - super(leader.getRawDevice(), "emGrp"); - this.followers = followers; - } - - @Override - public EncodedMotor[] getFollowers() { - return followers; - } - - @Override - public EncodedMotor[] getAllDevices() { - EncodedMotor[] m = new EncodedMotor[followers.length + 1]; - m[0] = this; - System.arraycopy(followers, 0, m, 1, m.length - 1); - return m; - } - - @Override - public void setVelocity(double tps) { - super.setVelocity(tps); - propagate(obj -> obj.setVelocity(tps)); - } - - public void setVelocities(double... tps) { - for (int i = 0; i < tps.length && i < getDeviceCount(); i++) { - getDeviceNum(i).setVelocity(tps[i]); - } - } - - @Override - public boolean setPosition(double ticks, double speed) { - boolean b = true; - for (int i = 0; i < getDeviceCount(); i++) { - b = getDeviceNum(i).setPosition(ticks, speed) && b; - } - return b; - } - - public boolean setPositions(double... ticks_then_speeds) { - boolean b = true; - for (int i = 0; i < ticks_then_speeds.length / 2 && i < getDeviceCount(); i++) { - b = getDeviceNum(i).setPosition(ticks_then_speeds[i * 2], ticks_then_speeds[i * 2 + 1]) && b; - } - return b; - } - - public EncodedMotor getDeviceNum(int i) { - return (i == 0) ? this : followers[i - 1]; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index 471c27e7..3e7e4c84 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -156,6 +156,7 @@ public double getPower() { * Set the (range-clipped) speed of motor * * @param speed The speed of the motor + * @deprecated Please use setPower instead */ @Deprecated public void setSpeed(double speed) { @@ -168,7 +169,7 @@ public void setSpeed(double speed) { * @param pow The power value (-1 -> 1) */ public void setPower(double pow) { - power = Range.clip(speed, min, max); + power = Range.clip(pow, min, max); T device = getRawDevice(); if (device != null) { device.setPower(power); diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java deleted file mode 100644 index bf645caf..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/MotorGroup.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.technototes.library.hardware.motor; - -import com.qualcomm.robotcore.hardware.DcMotorSimple; -import com.technototes.library.hardware.HardwareDeviceGroup; - -/** - * Class for a group of motors - * - * @param The type of motors to group - */ -@SuppressWarnings("unused") -public class MotorGroup extends Motor implements HardwareDeviceGroup> { - - private final Motor[] followers; - - @Override - public String LogLine() { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < getDeviceCount(); i++) { - sb.append(i == 0 ? "group:" : ";"); - sb.append(getDeviceNum(i).LogLine()); - } - return sb.toString(); - } - - /** - * Make a motor group - * - * @param motors The motors - */ - @SafeVarargs - public MotorGroup(Motor... motors) { - super(motors[0].getDevice(), "grp"); - followers = new Motor[motors.length - 1]; - System.arraycopy(motors, 1, followers, 0, followers.length); - } - - @Override - public Motor[] getFollowers() { - return followers; - } - - @Override - public Motor[] getAllDevices() { - Motor[] m = new Motor[followers.length + 1]; - m[0] = this; - System.arraycopy(followers, 0, m, 1, m.length - 1); - return m; - } - - @Override - public void setSpeed(double speed) { - super.setSpeed(speed); - propagate(obj -> obj.setSpeed(speed)); - } - - public void setSpeeds(double... speeds) { - for (int i = 0; i < speeds.length && i < getDeviceCount(); i++) { - getDeviceNum(i).setSpeed(speeds[i]); - } - } - - public Motor getDeviceNum(int i) { - return (i == 0) ? this : followers[i - 1]; - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java index e2445bb8..a487ebc1 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/ColorDistanceSensor.java @@ -1,7 +1,6 @@ package com.technototes.library.hardware.sensor; import com.qualcomm.robotcore.hardware.ColorRangeSensor; - import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit; public class ColorDistanceSensor extends Sensor implements IDistanceSensor, IColorSensor { @@ -21,28 +20,28 @@ public String LogLine() { int alpha = (color >> 24) & 0xFF; if (alpha != 0 && alpha != 0xFF) { return logData( - String.format( - "d:%f1.2%s A(%d)R(%d)G(%d)B(%d) [%f1.3]", - dist, - distanceUnit, - alpha, - (color >> 16) & 0xFF, - (color >> 8) & 0xFF, - color & 0xFF, - light - ) + String.format( + "d:%f1.2%s A(%d)R(%d)G(%d)B(%d) [%f1.3]", + dist, + distanceUnit, + alpha, + (color >> 16) & 0xFF, + (color >> 8) & 0xFF, + color & 0xFF, + light + ) ); } else { return logData( - String.format( - "d:%f1.2%s R(%d)G(%d)B(%d) [%f1.3]", - dist, - distanceUnit, - (color >> 16) & 0xFF, - (color >> 8) & 0xFF, - color & 0xFF, - light - ) + String.format( + "d:%f1.2%s R(%d)G(%d)B(%d) [%f1.3]", + dist, + distanceUnit, + (color >> 16) & 0xFF, + (color >> 8) & 0xFF, + color & 0xFF, + light + ) ); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java index 90f7bffb..ba23beb8 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/sensor/IMU.java @@ -174,7 +174,7 @@ public IMU radians() { * @return the IMU (for chaining) */ public IMU initialize(com.qualcomm.robotcore.hardware.IMU.Parameters imuParams) { - getDevice().initialize(imuParams); + getRawDevice().initialize(imuParams); return this; } @@ -317,7 +317,7 @@ public IMU remapLegacyAxes(AxesOrder legacyOrder, AxesSigns legacySigns) { * @return The Angular Velocity */ public AngularVelocity getAngularVelocity(AngleUnit units) { - angularVelocity = getDevice().getRobotAngularVelocity(units); + angularVelocity = getRawDevice().getRobotAngularVelocity(units); return angularVelocity; } @@ -331,7 +331,7 @@ public AngularVelocity getAngularVelocity() { * @return the Orientation of the IMU */ public Orientation getAngularOrientation(AngleUnit units) { - orientation = getDevice().getRobotOrientation(AxesReference.INTRINSIC, axesOrder, units); + orientation = getRawDevice().getRobotOrientation(AxesReference.INTRINSIC, axesOrder, units); if ((axesSigns.bVal & AxesSigns.NPP.bVal) == AxesSigns.NPP.bVal) { orientation.firstAngle = -orientation.firstAngle; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java index 5c10e518..77cce20a 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java @@ -59,9 +59,10 @@ public Servo startAt(double position) { } public Servo scalePWM(double min, double max) { - if (getDevice() instanceof ServoImplEx) ((ServoImplEx) getDevice()).setPwmRange( - new PwmControl.PwmRange(min, max) - ); + com.qualcomm.robotcore.hardware.Servo dev = getRawDevice(); + if (dev instanceof ServoImplEx) { + ((ServoImplEx) dev).setPwmRange(new PwmControl.PwmRange(min, max)); + } return this; } @@ -87,7 +88,7 @@ public Servo setInverted(boolean invert) { */ public void setPosition(double position) { this.pos = Range.clip(!inverted ? position : 1 - position, 0, 1); - getDevice().setPosition(this.pos); + getRawDevice().setPosition(this.pos); } public void incrementPosition(double incAmount) { @@ -96,7 +97,7 @@ public void incrementPosition(double incAmount) { @Override public double getSensorValue() { - this.pos = getDevice().getPosition(); + this.pos = getRawDevice().getPosition(); return inverted ? 1 - this.pos : this.pos; } @@ -117,7 +118,7 @@ public double getPosition() { * @return this */ public Servo onRange(double min, double max) { - getDevice().scaleRange(min, max); + getRawDevice().scaleRange(min, max); return this; } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java deleted file mode 100644 index 1ed12629..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/ServoGroup.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.technototes.library.hardware.servo; - -import com.technototes.library.hardware.HardwareDeviceGroup; - -/** - * Class for servo group - * This is useful, but needs to be moved into something not based on the HardwareDevice stuff - * - * @author Alex Stedman - */ -@SuppressWarnings("unused") -public class ServoGroup extends Servo implements HardwareDeviceGroup { - - private final Servo[] followers; - - @Override - public String LogLine() { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < getDeviceCount(); i++) { - sb.append(i == 0 ? "group:" : ";"); - sb.append(getDeviceNum(i).LogLine()); - } - return sb.toString(); - } - - /** - * Create a servo group - * - * @param servos the servos - */ - public ServoGroup(Servo... servos) { - super(servos[0].getDevice(), "group"); - super.setInverted(servos[0].getInverted()); - followers = new Servo[servos.length - 1]; - System.arraycopy(servos, 1, followers, 0, followers.length); - } - - @Override - public Servo[] getFollowers() { - return followers; - } - - @Override - public Servo[] getAllDevices() { - Servo[] m = new Servo[followers.length + 1]; - m[0] = this; - System.arraycopy(followers, 0, m, 1, m.length - 1); - return m; - } - - @Override - public Servo getDeviceNum(int i) { - return (i == 0) ? this : followers[i - 1]; - } - - @Override - public void setPosition(double position) { - super.setPosition(position); - propagate(obj -> obj.setPosition(position)); - } - - public void setPositions(double... positions) { - for (int i = 0; i < positions.length && i < getDeviceCount(); i++) { - getDeviceNum(i).setPosition(positions[i]); - } - } - - @Override - public ServoGroup startAt(double position) { - return (ServoGroup) super.startAt(position); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java index 5d377a10..1345789f 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.java @@ -2,7 +2,6 @@ import com.qualcomm.robotcore.hardware.DcMotorSimple; import com.technototes.library.hardware.motor.Motor; -import com.technototes.library.hardware.motor.MotorGroup; import com.technototes.library.subsystem.Subsystem; import java.util.function.DoubleSupplier; @@ -14,7 +13,7 @@ */ public abstract class DrivebaseSubsystem implements Subsystem { - protected MotorGroup motors; + protected Motor[] motors; /** * Override this to get the gyroscope heading. @@ -28,7 +27,7 @@ public abstract class DrivebaseSubsystem implements Sub * @param motors The drive motors */ public DrivebaseSubsystem(Motor... motors) { - this.motors = new MotorGroup(motors); + this.motors = motors; } /** @@ -38,7 +37,7 @@ public DrivebaseSubsystem(Motor... motors) { * @param motors The drive motors */ public DrivebaseSubsystem(DoubleSupplier gyro, Motor... motors) { - this.motors = new MotorGroup(motors); + this.motors = motors; gyroSupplier = gyro; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java index fea4021d..f374f44d 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.java @@ -17,19 +17,19 @@ public class SimpleMecanumDrivebaseSubsystem extends Dr * Drive motors */ protected Motor flMotor() { - return motors.getDeviceNum(0); + return motors[0]; } protected Motor frMotor() { - return motors.getDeviceNum(1); + return motors[1]; } protected Motor rlMotor() { - return motors.getDeviceNum(2); + return motors[2]; } protected Motor rrMotor() { - return motors.getDeviceNum(3); + return motors[3]; } /** @@ -99,6 +99,9 @@ public void stop() { } public void drive(double flSpeed, double frSpeed, double rlSpeed, double rrSpeed) { - motors.setSpeeds(flSpeed * getSpeed(), frSpeed * getSpeed(), rlSpeed * getSpeed(), rrSpeed * getSpeed()); + motors[0].setPower(flSpeed * getSpeed()); + motors[1].setPower(frSpeed * getSpeed()); + motors[2].setPower(rlSpeed * getSpeed()); + motors[3].setPower(rrSpeed * getSpeed()); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java index 75a6f670..7c947136 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java +++ b/RobotLibrary/src/main/java/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.java @@ -16,11 +16,11 @@ public class TankDrivebaseSubsystem extends DrivebaseSu * Drive motors */ protected Motor leftSide() { - return motors.getDeviceNum(0); + return motors[0]; } protected Motor rightSide() { - return motors.getDeviceNum(1); + return motors[1]; } /** @@ -47,6 +47,7 @@ public void stop() { } public void drive(double l, double r) { - motors.setSpeeds(l * getSpeed(), r * getSpeed()); + motors[0].setPower(l * getSpeed()); + motors[1].setPower(r * getSpeed()); } } diff --git a/Vision/src/main/java/com/technototes/vision/hardware/InternalCamera.java b/Vision/src/main/java/com/technototes/vision/hardware/InternalCamera.java index 45664939..036cc056 100644 --- a/Vision/src/main/java/com/technototes/vision/hardware/InternalCamera.java +++ b/Vision/src/main/java/com/technototes/vision/hardware/InternalCamera.java @@ -33,7 +33,7 @@ public InternalCamera(OpenCvInternalCamera.CameraDirection dir) { * @return FRONT or REAR, probably (TODO) */ public OpenCvInternalCamera.CameraDirection getCameraDirection() { - return getDevice().get(); + return getRawDevice().get(); } /** diff --git a/Vision/src/main/java/com/technototes/vision/hardware/SwitchableWebcam.java b/Vision/src/main/java/com/technototes/vision/hardware/SwitchableWebcam.java index a22ba5f5..d3d182e1 100644 --- a/Vision/src/main/java/com/technototes/vision/hardware/SwitchableWebcam.java +++ b/Vision/src/main/java/com/technototes/vision/hardware/SwitchableWebcam.java @@ -39,10 +39,10 @@ public SwitchableWebcam(String... device) { * through the switchable interface * * @param device The list of Webcam devices - */ public SwitchableWebcam(Webcam... device) { this(Arrays.stream(device).map(HardwareDevice::getDevice).toArray(WebcamName[]::new)); } + */ /** * Get the switchable webcam object to use with your pipeline @@ -57,7 +57,7 @@ public OpenCvSwitchableWebcam createCamera() { hardwareMap.appContext .getResources() .getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()), - getDevice().get() + getRawDevice().get() ); } @@ -68,7 +68,7 @@ public OpenCvSwitchableWebcam createCamera() { * @return the SwitchableWebcam object for the 'w' device */ public SwitchableWebcam setActiveCamera(Webcam w) { - return setActiveCamera(w.getDevice()); + return setActiveCamera(w.getName()); } /** diff --git a/Vision/src/main/java/com/technototes/vision/hardware/Webcam.java b/Vision/src/main/java/com/technototes/vision/hardware/Webcam.java index 15050bc0..08ac1564 100644 --- a/Vision/src/main/java/com/technototes/vision/hardware/Webcam.java +++ b/Vision/src/main/java/com/technototes/vision/hardware/Webcam.java @@ -43,7 +43,7 @@ public OpenCvWebcam createCamera() { return OpenCvCameraFactory .getInstance() .createWebcam( - getDevice(), + getRawDevice(), hardwareMap.appContext .getResources() .getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()) From 2902e1a82de3948848ccbd47671372c22a7b76c1 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Fri, 26 Jan 2024 23:49:08 -0800 Subject: [PATCH 42/47] Cleaned up the simple command stuff --- .../library/command/MethodCommand.java | 33 +++++++++++++++++++ .../library/command/SimpleCommand.java | 24 -------------- .../command/SimpleRequiredCommand.java | 30 ----------------- 3 files changed, 33 insertions(+), 54 deletions(-) create mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java delete mode 100644 RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java new file mode 100644 index 00000000..fa0de93e --- /dev/null +++ b/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java @@ -0,0 +1,33 @@ +package com.technototes.library.command; + +import com.technototes.library.subsystem.Subsystem; +import java.util.function.BiConsumer; +import java.util.function.Consumer; + +public class MethodCommand implements Command { + + Runnable method; + + public MethodCommand(Runnable m, Subsystem... subs) { + super(); + method = m; + addRequirements(subs); + } + + public MethodCommand(Consumer m, T arg, Subsystem... subs) { + super(); + method = () -> m.accept(arg); + addRequirements(subs); + } + + public MethodCommand(BiConsumer m, T arg1, U arg2, Subsystem... subs) { + super(); + method = () -> m.accept(arg1, arg2); + addRequirements(subs); + } + + @Override + public void execute() { + method.run(); + } +} diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java deleted file mode 100644 index 92515cf3..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleCommand.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.technototes.library.command; - -import com.technototes.library.subsystem.Subsystem; -import java.util.function.Consumer; - -public class SimpleCommand implements Command { - - Runnable method; - - public SimpleCommand(Runnable m) { - super(); - method = m; - } - - public SimpleCommand(Consumer m, T arg) { - super(); - method = () -> m.accept(arg); - } - - @Override - public void execute() { - method.run(); - } -} diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java deleted file mode 100644 index 213acdf7..00000000 --- a/RobotLibrary/src/main/java/com/technototes/library/command/SimpleRequiredCommand.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.technototes.library.command; - -import com.technototes.library.subsystem.Subsystem; -import java.util.function.BiConsumer; -import java.util.function.Consumer; - -public class SimpleRequiredCommand implements Command { - - T sub; - Consumer method; - - public SimpleRequiredCommand(T s, Consumer m) { - super(); - sub = s; - method = m; - addRequirements(sub); - } - - public SimpleRequiredCommand(T s, BiConsumer m, U arg) { - super(); - sub = s; - method = subsys -> m.accept(subsys, arg); - addRequirements(sub); - } - - @Override - public void execute() { - method.accept(sub); - } -} From 281366dd2013ed15eb9384eeaeaac22b6dd44e83 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 28 Jan 2024 09:34:38 -0800 Subject: [PATCH 43/47] Removed the Double Supplier from CRServo --- .../com/technototes/library/hardware/motor/CRServo.java | 6 +----- .../java/com/technototes/library/hardware/servo/Servo.java | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java index 4b508e58..dd507008 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java @@ -12,7 +12,7 @@ * Not Yet Implemented! * TODO: Implement this */ -public class CRServo extends HardwareDevice implements Supplier { +public class CRServo extends HardwareDevice { public CRServo(com.qualcomm.robotcore.hardware.CRServo device, String deviceName) throws InvalidClassException { super(device, deviceName); @@ -29,8 +29,4 @@ public String LogLine() { return null; } - @Override - public Double get() { - return null; - } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java index 77cce20a..b9c84b65 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java @@ -97,7 +97,6 @@ public void incrementPosition(double incAmount) { @Override public double getSensorValue() { - this.pos = getRawDevice().getPosition(); return inverted ? 1 - this.pos : this.pos; } From 53b5e4621e5689fca83f6a6b88f2933609556698 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Mon, 12 Feb 2024 07:38:39 -0800 Subject: [PATCH 44/47] Some comments --- .../main/java/com/technototes/library/command/Command.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/Command.java b/RobotLibrary/src/main/java/com/technototes/library/command/Command.java index a06c07ba..90760121 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/Command.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/Command.java @@ -31,9 +31,13 @@ public interface Command extends Runnable, Supplier { Map timeMap = new HashMap<>(); /** * The Command to Required Subsystems lookup + * + * KBF-TODO: Change this to controllerMap and add an observer list */ Map> requirementMap = new HashMap<>(); + // KBF: Maybe use the term "control" and "observe" + // then even if we're just observing, a subsystem would be scheduled. /** * Add requirement subsystems to command *

    From 9d2654bc44426bceffcecdf1a835468c3ca5266a Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 8 Sep 2024 14:20:04 -0700 Subject: [PATCH 45/47] Added suppliers on MethodCommands and Command.create commands --- .../technototes/library/command/Command.java | 44 ++++++++-- .../library/command/MethodCommand.java | 86 +++++++++++++++++++ 2 files changed, 124 insertions(+), 6 deletions(-) diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/Command.java b/RobotLibrary/src/main/java/com/technototes/library/command/Command.java index 90760121..4cb1d3fc 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/Command.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/Command.java @@ -2,12 +2,15 @@ import com.qualcomm.robotcore.util.ElapsedTime; import com.technototes.library.subsystem.Subsystem; + import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; +import java.util.function.BiConsumer; import java.util.function.BooleanSupplier; +import java.util.function.Consumer; import java.util.function.DoubleSupplier; import java.util.function.Supplier; @@ -31,13 +34,14 @@ public interface Command extends Runnable, Supplier { Map timeMap = new HashMap<>(); /** * The Command to Required Subsystems lookup - * + *

    * KBF-TODO: Change this to controllerMap and add an observer list */ Map> requirementMap = new HashMap<>(); // KBF: Maybe use the term "control" and "observe" // then even if we're just observing, a subsystem would be scheduled. + /** * Add requirement subsystems to command *

    @@ -58,7 +62,8 @@ default Command addRequirements(Subsystem... requirements) { *

    * Defaults to doing nothing */ - default void initialize() {} + default void initialize() { + } /** * Execute the command @@ -85,7 +90,8 @@ default boolean isFinished() { * * @param cancel True if the command was cancelled, False if it ended naturally */ - default void end(boolean cancel) {} + default void end(boolean cancel) { + } /** * Run a command or series of ParallelCommands after this one @@ -220,7 +226,7 @@ default void run() { case INITIALIZING: initialize(); setState(CommandState.EXECUTING); - // no return for fallthrough + // no return for fallthrough case EXECUTING: execute(); if (isFinished()) setState(CommandState.FINISHED); @@ -373,16 +379,42 @@ static void clear() { /** * This is a helper to create a new command from an existing command, but with additional - * subsystem requirements + * subsystem requirements. "Existing commands" also happen to be method references, because + * a command is a Runnable, and Java will up-cast the interface to a command interface on + * the fly. * * @param c The command to add the extra subsystem - * @param s The subsystem (or list of subsystems) to add to the commands requiremets + * @param s The subsystem (or list of subsystems) to add to the command's requirements * @return The new command */ static Command create(Command c, Subsystem... s) { return c.addRequirements(s); } + static Command create(Consumer method, T arg, Subsystem... s) { + return Command.create(() -> method.accept(arg), s); + } + + static Command create(Consumer method, Supplier argSupplier, Subsystem... s) { + return Command.create(() -> method.accept(argSupplier.get()), s); + } + + static Command create(BiConsumer method, Supplier arg1supplier, U arg2, Subsystem... s) { + return Command.create(() -> method.accept(arg1supplier.get(), arg2), s); + } + + static Command create(BiConsumer method, T arg1, Supplier arg2supplier, Subsystem... s) { + return Command.create(() -> method.accept(arg1, arg2supplier.get()), s); + } + + static Command create(BiConsumer method, Supplier arg1supplier, Supplier arg2supplier, Subsystem... s) { + return Command.create(() -> method.accept(arg1supplier.get(), arg2supplier.get()), s); + } + + static Command create(BiConsumer method, T arg1, U arg2, Subsystem... s) { + return Command.create(() -> method.accept(arg1, arg2), s); + } + /** * Gets the current state of the command (Supplier<CommandState>) * diff --git a/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java b/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java index fa0de93e..fc61f177 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java +++ b/RobotLibrary/src/main/java/com/technototes/library/command/MethodCommand.java @@ -3,23 +3,109 @@ import com.technototes.library.subsystem.Subsystem; import java.util.function.BiConsumer; import java.util.function.Consumer; +import java.util.function.Supplier; +/** + * This is an alternative to using the Command.create(...) interface, as it's a little more + * obvious to new/non-Java-informed coders as to what's happening, while the Command.create + * function may require understanding that subsystem::method is a 'Command' because it's Runnable + * and Java will promote it to a Command from a Runnable. + */ public class MethodCommand implements Command { Runnable method; + /** + * This is an alternative to the Command.create(...) interface + * @param m A method to invoke + * @param subs Any subsystems this command requires + */ public MethodCommand(Runnable m, Subsystem... subs) { super(); method = m; addRequirements(subs); } + /** + * This is an alternative to the Command.create(...) interface + * @param The type of the argument for the method being invoked + * @param m A method to invoke + * @param arg The argument to pass to the method + * @param subs Any subsystems this command requires + */ public MethodCommand(Consumer m, T arg, Subsystem... subs) { super(); method = () -> m.accept(arg); addRequirements(subs); } + /** + * This is an alternative to the Command.create(...) interface + * @param The type of the argument for the method being invoked + * @param m A method to invoke + * @param argSupplier The function to compute the argument to the method + * @param subs Any subsystems this command requires + */ + public MethodCommand(Consumer m, Supplier argSupplier, Subsystem... subs) { + super(); + method = () -> m.accept(argSupplier.get()); + addRequirements(subs); + } + + /** + * This is an alternative to the Command.create(...) interface + * @param The type of the first argument for the method being invoked + * @param The type of the second argument for the method being invoked + * @param m A method to invoke + * @param arg1supplier The function to compute the argument to pass to the method + * @param arg2 The second argument to pass to the method + * @param subs Any subsystems this command requires + */ + public MethodCommand(BiConsumer m, Supplier arg1supplier, U arg2, Subsystem... subs) { + super(); + method = () -> m.accept(arg1supplier.get(), arg2); + addRequirements(subs); + } + + /** + * This is an alternative to the Command.create(...) interface + * @param The type of the first argument for the method being invoked + * @param The type of the second argument for the method being invoked + * @param m A method to invoke + * @param arg1 The first argument to pass to the method + * @param arg2supplier The function to compute the second argument to pass to the method + * @param subs Any subsystems this command requires + */ + public MethodCommand(BiConsumer m, T arg1, Supplier arg2supplier, Subsystem... subs) { + super(); + method = () -> m.accept(arg1, arg2supplier.get()); + addRequirements(subs); + } + + /** + * This is an alternative to the Command.create(...) interface + * @param The type of the first argument for the method being invoked + * @param The type of the second argument for the method being invoked + * @param m A method to invoke + * @param arg1supplier The function to compute the first argument to pass to the method + * @param arg2supplier The function to compute the second argument to pass to the method + * @param subs Any subsystems this command requires + */ + public MethodCommand(BiConsumer m, Supplier arg1supplier, Supplier arg2supplier, Subsystem... subs) { + super(); + method = () -> m.accept(arg1supplier.get(), arg2supplier.get()); + addRequirements(subs); + } + + /** + * This is an alternative to the Command.create(...) interface + * @param The type of the first argument for the method being invoked + * @param The type of the second argument for the method being invoked + * @param m A method to invoke + * @param arg1 The first argument to pass to the method + * @param arg2 The second argument to pass to the method + * @param subs Any subsystems this command requires + */ public MethodCommand(BiConsumer m, T arg1, U arg2, Subsystem... subs) { super(); method = () -> m.accept(arg1, arg2); From 7a7f17b1b5685ad96babcb15ab528ac4adce90b5 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 8 Sep 2024 20:21:27 -0700 Subject: [PATCH 46/47] Fixed some typos, filled out CRServo wrapper, re-doc'ed --- .../subsystem/TankDrivebaseSubsystem.java | 2 +- .../library/control/ButtonBase.java | 6 +- .../library/control/GamepadBase.java | 71 +- .../technototes/library/control/Stick.java | 4 +- .../{Enablable.java => CanBeEnabled.java} | 4 +- .../{Invertable.java => Invertible.java} | 2 +- .../library/hardware/motor/CRServo.java | 124 +- .../library/hardware/motor/EncodedMotor.java | 16 +- .../library/hardware/motor/Motor.java | 2 +- .../library/hardware/servo/Servo.java | 4 +- bun.lockb | Bin 0 -> 16214 bytes docs/Path/allclasses-index.html | 995 --- docs/Path/allpackages-index.html | 101 - .../path/command/MecanumDriveCommand.html | 269 - .../RegenerativeTrajectoryCommand.html | 255 - ...RegenerativeTrajectorySequenceCommand.html | 255 - .../path/command/ResetGyroCommand.html | 210 - .../path/command/TrajectoryCommand.html | 308 - .../command/TrajectorySequenceCommand.html | 308 - .../path/command/package-summary.html | 91 - .../path/command/package-tree.html | 81 - .../path/geometry/ConfigurablePose.html | 431 -- .../path/geometry/ConfigurablePoseD.html | 440 -- .../path/geometry/ConfigurableVector.html | 327 - .../path/geometry/package-summary.html | 85 - .../path/geometry/package-tree.html | 75 - .../DeadWheelConstants.EncoderOverflow.html | 82 - .../DeadWheelConstants.ForwardOffset.html | 82 - .../DeadWheelConstants.GearRatio.html | 82 - .../DeadWheelConstants.LateralDistance.html | 82 - .../DeadWheelConstants.TicksPerRev.html | 82 - .../DeadWheelConstants.WheelRadius.html | 82 - .../path/subsystem/DeadWheelConstants.html | 213 - .../subsystem/DistanceSensorLocalizer.html | 270 - .../subsystem/MecanumConstants.GearRatio.html | 82 - .../subsystem/MecanumConstants.HeadPID.html | 82 - .../path/subsystem/MecanumConstants.KA.html | 82 - .../subsystem/MecanumConstants.KStatic.html | 82 - .../path/subsystem/MecanumConstants.KV.html | 82 - .../MecanumConstants.LateralMult.html | 82 - .../subsystem/MecanumConstants.MaxAccel.html | 82 - .../MecanumConstants.MaxAngleAccel.html | 82 - .../MecanumConstants.MaxAngleVelo.html | 82 - .../subsystem/MecanumConstants.MaxRPM.html | 82 - .../subsystem/MecanumConstants.MaxVelo.html | 82 - .../MecanumConstants.MotorVeloPID.html | 82 - .../MecanumConstants.OmegaWeight.html | 82 - .../subsystem/MecanumConstants.PoseLimit.html | 82 - .../MecanumConstants.TicksPerRev.html | 82 - .../MecanumConstants.TrackWidth.html | 82 - .../subsystem/MecanumConstants.TransPID.html | 82 - .../MecanumConstants.UseDriveEncoder.html | 82 - .../subsystem/MecanumConstants.VXWeight.html | 82 - .../subsystem/MecanumConstants.VYWeight.html | 82 - .../subsystem/MecanumConstants.WheelBase.html | 82 - .../MecanumConstants.WheelRadius.html | 82 - .../path/subsystem/MecanumConstants.html | 288 - ...PathingMecanumDrivebaseSubsystem.Mode.html | 228 - .../PathingMecanumDrivebaseSubsystem.html | 793 -- .../subsystem/TankConstants.AxialPID.html | 82 - .../subsystem/TankConstants.CrossPID.html | 82 - .../subsystem/TankConstants.GearRatio.html | 82 - .../path/subsystem/TankConstants.HeadPID.html | 82 - .../path/subsystem/TankConstants.KA.html | 82 - .../path/subsystem/TankConstants.KStatic.html | 82 - .../path/subsystem/TankConstants.KV.html | 82 - .../subsystem/TankConstants.LateralMult.html | 82 - .../subsystem/TankConstants.MaxAccel.html | 82 - .../TankConstants.MaxAngleAccel.html | 82 - .../subsystem/TankConstants.MaxAngleVelo.html | 82 - .../path/subsystem/TankConstants.MaxRPM.html | 82 - .../path/subsystem/TankConstants.MaxVelo.html | 82 - .../subsystem/TankConstants.MotorVeloPID.html | 82 - .../subsystem/TankConstants.OmegaWeight.html | 82 - .../subsystem/TankConstants.PoseLimit.html | 82 - .../subsystem/TankConstants.TicksPerRev.html | 82 - .../subsystem/TankConstants.TrackWidth.html | 82 - .../TankConstants.UseDriveEncoder.html | 82 - .../subsystem/TankConstants.VXWeight.html | 82 - .../subsystem/TankConstants.WheelRadius.html | 82 - .../path/subsystem/TankConstants.html | 285 - .../subsystem/TankDrivebaseSubsystem.html | 650 -- .../subsystem/ThreeDeadWheelLocalizer.html | 332 - .../path/subsystem/package-summary.html | 199 - .../path/subsystem/package-tree.html | 165 - .../EmptySequenceException.html | 147 - .../TrajectorySequence.html | 193 - .../TrajectorySequenceBuilder.html | 740 -- .../TrajectorySequenceRunner.html | 281 - .../trajectorysequence/package-summary.html | 104 - .../path/trajectorysequence/package-tree.html | 85 - .../sequencesegment/SequenceSegment.html | 196 - .../sequencesegment/TrajectorySegment.html | 162 - .../sequencesegment/TurnSegment.html | 177 - .../sequencesegment/WaitSegment.html | 135 - .../sequencesegment/package-summary.html | 98 - .../sequencesegment/package-tree.html | 76 - .../com/technototes/path/util/AxesSigns.html | 294 - .../technototes/path/util/BNO055IMUUtil.html | 175 - .../technototes/path/util/DashboardUtil.html | 195 - .../technototes/path/util/LoggingUtil.html | 190 - .../LynxModuleUtil.LynxFirmwareVersion.html | 248 - ...duleUtil.LynxFirmwareVersionException.html | 152 - .../technototes/path/util/LynxModuleUtil.html | 205 - .../path/util/RegressionUtil.AccelResult.html | 171 - .../path/util/RegressionUtil.RampResult.html | 182 - .../technototes/path/util/RegressionUtil.html | 234 - .../path/util/package-summary.html | 125 - .../technototes/path/util/package-tree.html | 104 - docs/Path/element-list | 6 - docs/Path/help-doc.html | 261 - docs/Path/index-all.html | 6602 ----------------- docs/Path/index.html | 118 - docs/Path/jquery-ui.overrides.css | 35 - docs/Path/legal/ADDITIONAL_LICENSE_INFO | 37 - docs/Path/legal/ASSEMBLY_EXCEPTION | 27 - docs/Path/legal/LICENSE | 347 - docs/Path/legal/jquery.md | 72 - docs/Path/legal/jqueryUI.md | 49 - docs/Path/member-search-index.js | 1563 ---- docs/Path/module-search-index.js | 2 - docs/Path/overview-summary.html | 27 - docs/Path/overview-tree.html | 1204 --- docs/Path/package-search-index.js | 10 - docs/Path/resources/glass.png | Bin 499 -> 0 bytes docs/Path/resources/x.png | Bin 394 -> 0 bytes docs/Path/script-dir/jquery-3.6.1.min.js | 2 - docs/Path/script-dir/jquery-ui.min.css | 6 - docs/Path/script-dir/jquery-ui.min.js | 6 - docs/Path/script.js | 134 - docs/Path/search.js | 376 - docs/Path/serialized-form.html | 147 - .../path/command/MecanumDriveCommand.html | 125 - .../RegenerativeTrajectoryCommand.html | 124 - ...RegenerativeTrajectorySequenceCommand.html | 128 - .../path/command/ResetGyroCommand.html | 96 - .../path/command/TrajectoryCommand.html | 151 - .../command/TrajectorySequenceCommand.html | 155 - .../path/geometry/ConfigurablePose.html | 206 - .../path/geometry/ConfigurablePoseD.html | 210 - .../path/geometry/ConfigurableVector.html | 158 - .../DeadWheelConstants.EncoderOverflow.html | 162 - .../DeadWheelConstants.ForwardOffset.html | 162 - .../DeadWheelConstants.GearRatio.html | 162 - .../DeadWheelConstants.LateralDistance.html | 162 - .../DeadWheelConstants.TicksPerRev.html | 162 - .../DeadWheelConstants.WheelRadius.html | 162 - .../path/subsystem/DeadWheelConstants.html | 162 - .../subsystem/DistanceSensorLocalizer.html | 184 - .../subsystem/MecanumConstants.GearRatio.html | 286 - .../subsystem/MecanumConstants.HeadPID.html | 286 - .../path/subsystem/MecanumConstants.KA.html | 286 - .../subsystem/MecanumConstants.KStatic.html | 286 - .../path/subsystem/MecanumConstants.KV.html | 286 - .../MecanumConstants.LateralMult.html | 286 - .../subsystem/MecanumConstants.MaxAccel.html | 286 - .../MecanumConstants.MaxAngleAccel.html | 286 - .../MecanumConstants.MaxAngleVelo.html | 286 - .../subsystem/MecanumConstants.MaxRPM.html | 286 - .../subsystem/MecanumConstants.MaxVelo.html | 286 - .../MecanumConstants.MotorVeloPID.html | 286 - .../MecanumConstants.OmegaWeight.html | 286 - .../subsystem/MecanumConstants.PoseLimit.html | 286 - .../MecanumConstants.TicksPerRev.html | 286 - .../MecanumConstants.TrackWidth.html | 286 - .../subsystem/MecanumConstants.TransPID.html | 286 - .../MecanumConstants.UseDriveEncoder.html | 286 - .../subsystem/MecanumConstants.VXWeight.html | 286 - .../subsystem/MecanumConstants.VYWeight.html | 286 - .../subsystem/MecanumConstants.WheelBase.html | 286 - .../MecanumConstants.WheelRadius.html | 286 - .../path/subsystem/MecanumConstants.html | 286 - ...PathingMecanumDrivebaseSubsystem.Mode.html | 501 -- .../PathingMecanumDrivebaseSubsystem.html | 501 -- .../subsystem/TankConstants.AxialPID.html | 281 - .../subsystem/TankConstants.CrossPID.html | 281 - .../subsystem/TankConstants.GearRatio.html | 281 - .../path/subsystem/TankConstants.HeadPID.html | 281 - .../path/subsystem/TankConstants.KA.html | 281 - .../path/subsystem/TankConstants.KStatic.html | 281 - .../path/subsystem/TankConstants.KV.html | 281 - .../subsystem/TankConstants.LateralMult.html | 281 - .../subsystem/TankConstants.MaxAccel.html | 281 - .../TankConstants.MaxAngleAccel.html | 281 - .../subsystem/TankConstants.MaxAngleVelo.html | 281 - .../path/subsystem/TankConstants.MaxRPM.html | 281 - .../path/subsystem/TankConstants.MaxVelo.html | 281 - .../subsystem/TankConstants.MotorVeloPID.html | 281 - .../subsystem/TankConstants.OmegaWeight.html | 281 - .../subsystem/TankConstants.PoseLimit.html | 281 - .../subsystem/TankConstants.TicksPerRev.html | 281 - .../subsystem/TankConstants.TrackWidth.html | 281 - .../TankConstants.UseDriveEncoder.html | 281 - .../subsystem/TankConstants.VXWeight.html | 281 - .../subsystem/TankConstants.WheelRadius.html | 281 - .../path/subsystem/TankConstants.html | 281 - .../subsystem/TankDrivebaseSubsystem.html | 419 -- .../subsystem/ThreeDeadWheelLocalizer.html | 170 - .../EmptySequenceException.html | 81 - .../TrajectorySequence.html | 121 - .../TrajectorySequenceBuilder.html | 838 --- .../TrajectorySequenceRunner.html | 359 - .../sequencesegment/SequenceSegment.html | 114 - .../sequencesegment/TrajectorySegment.html | 98 - .../sequencesegment/TurnSegment.html | 115 - .../sequencesegment/WaitSegment.html | 90 - .../com/technototes/path/util/AxesSigns.html | 99 - .../technototes/path/util/BNO055IMUUtil.html | 131 - .../technototes/path/util/DashboardUtil.html | 131 - .../technototes/path/util/LoggingUtil.html | 136 - .../LynxModuleUtil.LynxFirmwareVersion.html | 206 - ...duleUtil.LynxFirmwareVersionException.html | 206 - .../technototes/path/util/LynxModuleUtil.html | 206 - .../path/util/RegressionUtil.AccelResult.html | 242 - .../path/util/RegressionUtil.RampResult.html | 242 - .../technototes/path/util/RegressionUtil.html | 242 - docs/Path/stylesheet.css | 951 --- docs/Path/tag-search-index.js | 2 - docs/Path/type-search-index.js | 88 - docs/TechnoLib/allclasses-index.html | 603 +- docs/TechnoLib/allpackages-index.html | 53 +- .../com/technototes/library/RobotLibrary.html | 611 +- .../library/command/ChoiceCommand.html | 778 +- .../library/command/Command.CommandState.html | 1107 ++- .../technototes/library/command/Command.html | 3498 +++++++-- .../library/command/CommandBase.html | 220 - .../library/command/CommandGroup.html | 1480 +++- .../library/command/CommandScheduler.html | 2515 +++++-- .../library/command/ConditionalCommand.html | 1025 ++- .../library/command/IterativeCommand.html | 1062 ++- .../library/command/MethodCommand.html | 1084 +++ .../library/command/ParallelCommandGroup.html | 914 ++- .../command/ParallelDeadlineGroup.html | 918 ++- .../library/command/ParallelRaceGroup.html | 912 ++- .../command/SequentialCommandGroup.html | 978 ++- .../library/command/WaitCommand.html | 943 ++- .../library/command/package-summary.html | 483 +- .../library/command/package-tree.html | 431 +- .../technototes/library/control/AxisBase.html | 1105 ++- .../library/control/Binding.Type.html | 928 ++- .../technototes/library/control/Binding.html | 707 +- .../library/control/ButtonBase.html | 1648 ++-- .../library/control/CommandAxis.html | 1473 +++- .../library/control/CommandBinding.html | 1036 ++- .../library/control/CommandButton.html | 1156 ++- .../library/control/CommandGamepad.html | 1633 +++- .../library/control/CommandInput.html | 1949 +++-- .../library/control/GamepadBase.Axis.html | 1071 ++- .../library/control/GamepadBase.Button.html | 1455 +++- .../library/control/GamepadBase.html | 3744 +++++++--- .../library/control/GamepadDpad.html | 1233 ++- .../library/control/GamepadStick.html | 1217 ++- .../technototes/library/control/Stick.html | 767 +- .../library/control/package-summary.html | 509 +- .../library/control/package-tree.html | 505 +- .../library/general/CanBeEnabled.html | 562 ++ .../library/general/Enablable.html | 223 - .../library/general/Invertable.html | 170 - .../library/general/Invertible.html | 401 + .../technototes/library/general/Periodic.html | 500 +- .../library/general/package-summary.html | 267 +- .../library/general/package-tree.html | 180 +- .../library/hardware/DummyDevice.html | 939 ++- .../library/hardware/FailedDevice.html | 707 ++ .../library/hardware/HardwareDevice.html | 1210 ++- .../library/hardware/HardwareDeviceGroup.html | 224 - .../library/hardware/Sensored.html | 557 +- .../technototes/library/hardware/Speaker.html | 242 - .../library/hardware/motor/CRServo.html | 998 +++ .../library/hardware/motor/EncodedMotor.html | 2643 +++++-- .../hardware/motor/EncodedMotorGroup.html | 302 - .../library/hardware/motor/Motor.html | 1609 +++- .../library/hardware/motor/MotorGroup.html | 267 - .../hardware/motor/package-summary.html | 280 +- .../library/hardware/motor/package-tree.html | 232 +- .../library/hardware/package-summary.html | 346 +- .../library/hardware/package-tree.html | 229 +- .../library/hardware/sensor/AnalogSensor.html | 759 +- .../hardware/sensor/ColorDistanceSensor.html | 1071 ++- .../library/hardware/sensor/ColorSensor.html | 856 ++- .../hardware/sensor/DigitalSensor.html | 768 +- .../library/hardware/sensor/IColorSensor.html | 884 ++- .../hardware/sensor/IDistanceSensor.html | 548 +- .../library/hardware/sensor/IGyro.html | 603 +- .../library/hardware/sensor/ILightSensor.html | 213 +- .../hardware/sensor/IMU.AxesSigns.html | 1274 +++- .../library/hardware/sensor/IMU.html | 1946 +++-- .../hardware/sensor/Rev2MDistanceSensor.html | 1015 ++- .../library/hardware/sensor/Sensor.html | 640 +- .../hardware/sensor/encoder/Encoder.html | 491 +- .../sensor/encoder/ExternalEncoder.html | 934 ++- .../encoder/MotorEncoder.Direction.html | 950 ++- .../hardware/sensor/encoder/MotorEncoder.html | 1376 +++- .../sensor/encoder/package-summary.html | 344 +- .../hardware/sensor/encoder/package-tree.html | 339 +- .../hardware/sensor/package-summary.html | 467 +- .../library/hardware/sensor/package-tree.html | 381 +- .../library/hardware/servo/MotorAsServo.html | 726 ++ .../library/hardware/servo/Servo.html | 1478 +++- .../library/hardware/servo/ServoGroup.html | 304 - .../servo/ServoProfiler.Constraints.html | 777 +- .../library/hardware/servo/ServoProfiler.html | 1239 +++- .../hardware/servo/package-summary.html | 293 +- .../library/hardware/servo/package-tree.html | 233 +- .../library/hardware2/AnalogBuilder.html | 159 - .../library/hardware2/CRServoBuilder.html | 208 - .../library/hardware2/ColorBuilder.html | 151 - .../library/hardware2/ColorRangeBuilder.html | 209 - .../library/hardware2/DigitalBuilder.html | 252 - .../library/hardware2/DistanceBuilder.html | 151 - .../library/hardware2/HardwareBuilder.html | 577 -- .../hardware2/IMUBuilder.AxesSigns.html | 326 - .../library/hardware2/IMUBuilder.html | 296 - .../library/hardware2/MotorBuilder.html | 307 - .../library/hardware2/ServoBuilder.html | 248 - .../library/hardware2/package-summary.html | 141 - .../library/hardware2/package-tree.html | 97 - .../library/logger/Log.Boolean.html | 624 +- .../technototes/library/logger/Log.Logs.html | 358 +- .../library/logger/Log.Number.html | 488 +- .../com/technototes/library/logger/Log.html | 630 +- .../library/logger/LogConfig.AllowList.html | 377 +- .../library/logger/LogConfig.DenyList.html | 377 +- .../library/logger/LogConfig.Disabled.html | 262 +- .../library/logger/LogConfig.Run.html | 418 +- .../technototes/library/logger/LogConfig.html | 334 +- .../technototes/library/logger/Loggable.html | 217 +- .../technototes/library/logger/Logger.html | 915 ++- .../library/logger/entry/BooleanEntry.html | 733 +- .../library/logger/entry/Entry.html | 1267 +++- .../library/logger/entry/NumberEntry.html | 775 +- .../library/logger/entry/StringEntry.html | 719 +- .../library/logger/entry/package-summary.html | 267 +- .../library/logger/entry/package-tree.html | 213 +- .../library/logger/package-summary.html | 440 +- .../library/logger/package-tree.html | 340 +- .../technototes/library/package-summary.html | 272 +- .../com/technototes/library/package-tree.html | 171 +- .../structure/CommandOpMode.OpModeState.html | 1014 ++- .../library/structure/CommandOpMode.html | 1555 ++-- .../library/structure/package-summary.html | 297 +- .../library/structure/package-tree.html | 256 +- .../library/subsystem/DeviceSubsystem.html | 237 - .../library/subsystem/Subsystem.html | 607 +- .../drivebase/DrivebaseSubsystem.html | 1024 ++- .../SimpleMecanumDrivebaseSubsystem.html | 1380 +++- .../drivebase/TankDrivebaseSubsystem.html | 953 ++- .../subsystem/drivebase/package-summary.html | 268 +- .../subsystem/drivebase/package-tree.html | 207 +- .../motor/EncodedMotorSubsystem.html | 266 - .../subsystem/motor/MotorSubsystem.html | 227 - .../subsystem/motor/package-summary.html | 103 - .../library/subsystem/motor/package-tree.html | 79 - .../library/subsystem/package-summary.html | 253 +- .../library/subsystem/package-tree.html | 186 +- .../subsystem/servo/ServoSubsystem.html | 218 - .../subsystem/servo/package-summary.html | 99 - .../library/subsystem/servo/package-tree.html | 75 - .../library/util/Alliance.Blue.html | 251 +- .../library/util/Alliance.Red.html | 251 +- .../library/util/Alliance.Selector.html | 820 +- .../technototes/library/util/Alliance.html | 1225 ++- .../technototes/library/util/Characters.html | 776 +- .../com/technototes/library/util/Color.html | 1519 +++- .../Differential.DifferentialPriority.html | 1107 ++- .../library/util/Differential.html | 1263 +++- .../technototes/library/util/Integral.html | 774 +- .../technototes/library/util/MapUtils.html | 557 +- .../technototes/library/util/MathUtils.html | 1157 ++- .../com/technototes/library/util/Range.html | 830 ++- .../library/util/SmartConsumer.html | 718 +- .../library/util/package-summary.html | 462 +- .../library/util/package-tree.html | 369 +- docs/TechnoLib/constant-values.html | 27 +- docs/TechnoLib/copy.svg | 33 + docs/TechnoLib/deprecated-list.html | 120 +- docs/TechnoLib/element-list | 33 +- docs/TechnoLib/help-doc.html | 33 +- docs/TechnoLib/index-all.html | 3958 ++++------ docs/TechnoLib/index.html | 59 +- docs/TechnoLib/jquery-ui.overrides.css | 3 +- docs/TechnoLib/legal/ADDITIONAL_LICENSE_INFO | 38 +- docs/TechnoLib/legal/ASSEMBLY_EXCEPTION | 28 +- docs/TechnoLib/legal/LICENSE | 348 +- docs/TechnoLib/legal/jquery.md | 9 +- docs/TechnoLib/member-search-index.js | 769 +- docs/TechnoLib/overview-summary.html | 2 +- docs/TechnoLib/overview-tree.html | 442 +- docs/TechnoLib/package-search-index.js | 3 - .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../images/ui-bg_glass_65_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes docs/TechnoLib/script-dir/jquery-3.5.1.min.js | 5046 +++++++++++++ docs/TechnoLib/script-dir/jquery-3.6.1.min.js | 2 - docs/TechnoLib/script-dir/jquery-ui.min.css | 879 ++- docs/TechnoLib/script-dir/jquery-ui.min.js | 1459 +++- .../script-dir/jquery-ui.structure.min.css | 126 + docs/TechnoLib/script.js | 22 +- docs/TechnoLib/search.js | 43 +- .../com/technototes/library/RobotLibrary.html | 37 +- .../library/command/ChoiceCommand.html | 35 +- .../library/command/Command.CommandState.html | 766 +- .../technototes/library/command/Command.html | 766 +- .../library/command/CommandBase.html | 104 - .../library/command/CommandGroup.html | 35 +- .../library/command/CommandScheduler.html | 656 +- .../library/command/ConditionalCommand.html | 41 +- .../library/command/IterativeCommand.html | 35 +- .../library/command/MethodCommand.html | 200 + .../library/command/ParallelCommandGroup.html | 37 +- .../command/ParallelDeadlineGroup.html | 37 +- .../library/command/ParallelRaceGroup.html | 37 +- .../command/SequentialCommandGroup.html | 39 +- .../library/command/WaitCommand.html | 35 +- .../technototes/library/control/AxisBase.html | 35 +- .../library/control/Binding.Type.html | 35 +- .../technototes/library/control/Binding.html | 35 +- .../library/control/ButtonBase.html | 105 +- .../library/control/CommandAxis.html | 35 +- .../library/control/CommandBinding.html | 35 +- .../library/control/CommandButton.html | 35 +- .../library/control/CommandGamepad.html | 39 +- .../library/control/CommandInput.html | 118 +- .../library/control/GamepadBase.Axis.html | 45 +- .../library/control/GamepadBase.Button.html | 45 +- .../library/control/GamepadBase.html | 45 +- .../library/control/GamepadDpad.html | 35 +- .../library/control/GamepadStick.html | 35 +- .../technototes/library/control/Stick.html | 39 +- .../library/general/CanBeEnabled.html | 141 + .../library/general/Enablable.html | 136 - .../{Invertable.html => Invertible.html} | 37 +- .../technototes/library/general/Periodic.html | 35 +- .../library/hardware/DummyDevice.html | 35 +- .../library/hardware/FailedDevice.html | 117 + .../library/hardware/HardwareDevice.html | 164 +- .../library/hardware/HardwareDeviceGroup.html | 134 - .../library/hardware/Sensored.html | 64 +- .../technototes/library/hardware/Speaker.html | 144 - .../library/hardware/motor/CRServo.html | 222 + .../library/hardware/motor/EncodedMotor.html | 578 +- .../hardware/motor/EncodedMotorGroup.html | 136 - .../library/hardware/motor/Motor.html | 355 +- .../library/hardware/motor/MotorGroup.html | 129 - .../library/hardware/sensor/AnalogSensor.html | 86 +- .../hardware/sensor/ColorDistanceSensor.html | 146 +- .../library/hardware/sensor/ColorSensor.html | 95 +- .../hardware/sensor/DigitalSensor.html | 93 +- .../library/hardware/sensor/IColorSensor.html | 35 +- .../hardware/sensor/IDistanceSensor.html | 35 +- .../library/hardware/sensor/IGyro.html | 35 +- .../library/hardware/sensor/ILightSensor.html | 35 +- .../hardware/sensor/IMU.AxesSigns.html | 665 +- .../library/hardware/sensor/IMU.html | 665 +- .../hardware/sensor/Rev2MDistanceSensor.html | 124 +- .../library/hardware/sensor/Sensor.html | 78 +- .../hardware/sensor/encoder/Encoder.html | 40 +- .../sensor/encoder/ExternalEncoder.html | 127 +- .../encoder/MotorEncoder.Direction.html | 269 +- .../hardware/sensor/encoder/MotorEncoder.html | 269 +- .../library/hardware/servo/MotorAsServo.html | 137 + .../library/hardware/servo/Servo.html | 207 +- .../library/hardware/servo/ServoGroup.html | 137 - .../servo/ServoProfiler.Constraints.html | 35 +- .../library/hardware/servo/ServoProfiler.html | 35 +- .../library/hardware2/AnalogBuilder.html | 100 - .../library/hardware2/CRServoBuilder.html | 114 - .../library/hardware2/ColorBuilder.html | 96 - .../library/hardware2/ColorRangeBuilder.html | 114 - .../library/hardware2/DigitalBuilder.html | 144 - .../library/hardware2/DistanceBuilder.html | 96 - .../library/hardware2/HardwareBuilder.html | 331 - .../hardware2/IMUBuilder.AxesSigns.html | 247 - .../library/hardware2/IMUBuilder.html | 247 - .../library/hardware2/MotorBuilder.html | 170 - .../library/hardware2/ServoBuilder.html | 137 - .../library/logger/Log.Boolean.html | 40 +- .../technototes/library/logger/Log.Logs.html | 40 +- .../library/logger/Log.Number.html | 40 +- .../com/technototes/library/logger/Log.html | 40 +- .../library/logger/LogConfig.AllowList.html | 35 +- .../library/logger/LogConfig.DenyList.html | 35 +- .../library/logger/LogConfig.Disabled.html | 35 +- .../library/logger/LogConfig.Run.html | 35 +- .../technototes/library/logger/LogConfig.html | 35 +- .../technototes/library/logger/Loggable.html | 35 +- .../technototes/library/logger/Logger.html | 586 +- .../library/logger/entry/BooleanEntry.html | 63 +- .../library/logger/entry/Entry.html | 35 +- .../library/logger/entry/NumberEntry.html | 46 +- .../library/logger/entry/StringEntry.html | 35 +- .../structure/CommandOpMode.OpModeState.html | 240 +- .../library/structure/CommandOpMode.html | 240 +- .../library/subsystem/DeviceSubsystem.html | 109 - .../library/subsystem/Subsystem.html | 41 +- .../drivebase/DrivebaseSubsystem.html | 184 +- .../SimpleMecanumDrivebaseSubsystem.html | 221 +- .../drivebase/TankDrivebaseSubsystem.html | 122 +- .../motor/EncodedMotorSubsystem.html | 129 - .../subsystem/motor/MotorSubsystem.html | 117 - .../subsystem/servo/ServoSubsystem.html | 117 - .../library/util/Alliance.Blue.html | 35 +- .../library/util/Alliance.Red.html | 35 +- .../library/util/Alliance.Selector.html | 35 +- .../technototes/library/util/Alliance.html | 35 +- .../technototes/library/util/Characters.html | 35 +- .../com/technototes/library/util/Color.html | 32 +- .../Differential.DifferentialPriority.html | 35 +- .../library/util/Differential.html | 35 +- .../technototes/library/util/Integral.html | 35 +- .../technototes/library/util/MapUtils.html | 35 +- .../technototes/library/util/MathUtils.html | 219 +- .../com/technototes/library/util/Range.html | 160 +- .../library/util/SmartConsumer.html | 35 +- docs/TechnoLib/stylesheet.css | 341 +- docs/TechnoLib/type-search-index.js | 29 +- docs/Vision/allclasses-index.html | 136 - docs/Vision/allpackages-index.html | 80 - .../technototes/vision/hardware/Camera.html | 591 -- .../vision/hardware/InternalCamera.html | 238 - .../vision/hardware/SwitchableWebcam.html | 313 - .../technototes/vision/hardware/Webcam.html | 226 - .../vision/hardware/package-summary.html | 96 - .../vision/hardware/package-tree.html | 81 - .../vision/subsystem/PipelineSubsystem.html | 274 - .../vision/subsystem/package-summary.html | 84 - .../vision/subsystem/package-tree.html | 71 - docs/Vision/deprecated-list.html | 84 - docs/Vision/element-list | 2 - docs/Vision/help-doc.html | 261 - docs/Vision/index-all.html | 916 --- docs/Vision/index.html | 86 - docs/Vision/jquery-ui.overrides.css | 35 - docs/Vision/legal/ADDITIONAL_LICENSE_INFO | 37 - docs/Vision/legal/ASSEMBLY_EXCEPTION | 27 - docs/Vision/legal/LICENSE | 347 - docs/Vision/legal/jquery.md | 72 - docs/Vision/legal/jqueryUI.md | 49 - docs/Vision/member-search-index.js | 177 - docs/Vision/module-search-index.js | 2 - docs/Vision/overview-summary.html | 27 - docs/Vision/overview-tree.html | 139 - docs/Vision/package-search-index.js | 6 - docs/Vision/resources/glass.png | Bin 499 -> 0 bytes docs/Vision/resources/x.png | Bin 394 -> 0 bytes docs/Vision/script-dir/jquery-3.6.1.min.js | 2 - docs/Vision/script-dir/jquery-ui.min.css | 6 - docs/Vision/script-dir/jquery-ui.min.js | 6 - docs/Vision/script.js | 134 - docs/Vision/search.js | 376 - .../technototes/vision/hardware/Camera.html | 286 - .../vision/hardware/InternalCamera.html | 133 - .../vision/hardware/SwitchableWebcam.html | 186 - .../technototes/vision/hardware/Webcam.html | 124 - .../vision/subsystem/PipelineSubsystem.html | 148 - docs/Vision/stylesheet.css | 951 --- docs/Vision/tag-search-index.js | 2 - docs/Vision/type-search-index.js | 9 - package.json | 32 +- scripts/os.ts | 43 + yarn.lock | 147 - 569 files changed, 93606 insertions(+), 101628 deletions(-) rename RobotLibrary/src/main/java/com/technototes/library/general/{Enablable.java => CanBeEnabled.java} (94%) rename RobotLibrary/src/main/java/com/technototes/library/general/{Invertable.java => Invertible.java} (91%) create mode 100644 bun.lockb delete mode 100644 docs/Path/allclasses-index.html delete mode 100644 docs/Path/allpackages-index.html delete mode 100644 docs/Path/com/technototes/path/command/MecanumDriveCommand.html delete mode 100644 docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html delete mode 100644 docs/Path/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html delete mode 100644 docs/Path/com/technototes/path/command/ResetGyroCommand.html delete mode 100644 docs/Path/com/technototes/path/command/TrajectoryCommand.html delete mode 100644 docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html delete mode 100644 docs/Path/com/technototes/path/command/package-summary.html delete mode 100644 docs/Path/com/technototes/path/command/package-tree.html delete mode 100644 docs/Path/com/technototes/path/geometry/ConfigurablePose.html delete mode 100644 docs/Path/com/technototes/path/geometry/ConfigurablePoseD.html delete mode 100644 docs/Path/com/technototes/path/geometry/ConfigurableVector.html delete mode 100644 docs/Path/com/technototes/path/geometry/package-summary.html delete mode 100644 docs/Path/com/technototes/path/geometry/package-tree.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DeadWheelConstants.html delete mode 100644 docs/Path/com/technototes/path/subsystem/DistanceSensorLocalizer.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.GearRatio.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.HeadPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.KA.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.KStatic.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.KV.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.LateralMult.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.TransPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.VXWeight.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.VYWeight.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelBase.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html delete mode 100644 docs/Path/com/technototes/path/subsystem/MecanumConstants.html delete mode 100644 docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html delete mode 100644 docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.AxialPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.CrossPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.GearRatio.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.HeadPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.KA.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.KStatic.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.KV.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.LateralMult.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.MaxAccel.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.MaxRPM.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.MaxVelo.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.OmegaWeight.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.PoseLimit.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.TicksPerRev.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.TrackWidth.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.VXWeight.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.WheelRadius.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankConstants.html delete mode 100644 docs/Path/com/technototes/path/subsystem/TankDrivebaseSubsystem.html delete mode 100644 docs/Path/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html delete mode 100644 docs/Path/com/technototes/path/subsystem/package-summary.html delete mode 100644 docs/Path/com/technototes/path/subsystem/package-tree.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/EmptySequenceException.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/TrajectorySequence.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/package-summary.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/package-tree.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-summary.html delete mode 100644 docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-tree.html delete mode 100644 docs/Path/com/technototes/path/util/AxesSigns.html delete mode 100644 docs/Path/com/technototes/path/util/BNO055IMUUtil.html delete mode 100644 docs/Path/com/technototes/path/util/DashboardUtil.html delete mode 100644 docs/Path/com/technototes/path/util/LoggingUtil.html delete mode 100644 docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html delete mode 100644 docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html delete mode 100644 docs/Path/com/technototes/path/util/LynxModuleUtil.html delete mode 100644 docs/Path/com/technototes/path/util/RegressionUtil.AccelResult.html delete mode 100644 docs/Path/com/technototes/path/util/RegressionUtil.RampResult.html delete mode 100644 docs/Path/com/technototes/path/util/RegressionUtil.html delete mode 100644 docs/Path/com/technototes/path/util/package-summary.html delete mode 100644 docs/Path/com/technototes/path/util/package-tree.html delete mode 100644 docs/Path/element-list delete mode 100644 docs/Path/help-doc.html delete mode 100644 docs/Path/index-all.html delete mode 100644 docs/Path/index.html delete mode 100644 docs/Path/jquery-ui.overrides.css delete mode 100644 docs/Path/legal/ADDITIONAL_LICENSE_INFO delete mode 100644 docs/Path/legal/ASSEMBLY_EXCEPTION delete mode 100644 docs/Path/legal/LICENSE delete mode 100644 docs/Path/legal/jquery.md delete mode 100644 docs/Path/legal/jqueryUI.md delete mode 100644 docs/Path/member-search-index.js delete mode 100644 docs/Path/module-search-index.js delete mode 100644 docs/Path/overview-summary.html delete mode 100644 docs/Path/overview-tree.html delete mode 100644 docs/Path/package-search-index.js delete mode 100644 docs/Path/resources/glass.png delete mode 100644 docs/Path/resources/x.png delete mode 100644 docs/Path/script-dir/jquery-3.6.1.min.js delete mode 100644 docs/Path/script-dir/jquery-ui.min.css delete mode 100644 docs/Path/script-dir/jquery-ui.min.js delete mode 100644 docs/Path/script.js delete mode 100644 docs/Path/search.js delete mode 100644 docs/Path/serialized-form.html delete mode 100644 docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html delete mode 100644 docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html delete mode 100644 docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html delete mode 100644 docs/Path/src-html/com/technototes/path/command/ResetGyroCommand.html delete mode 100644 docs/Path/src-html/com/technototes/path/command/TrajectoryCommand.html delete mode 100644 docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html delete mode 100644 docs/Path/src-html/com/technototes/path/geometry/ConfigurablePose.html delete mode 100644 docs/Path/src-html/com/technototes/path/geometry/ConfigurablePoseD.html delete mode 100644 docs/Path/src-html/com/technototes/path/geometry/ConfigurableVector.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/DistanceSensorLocalizer.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.GearRatio.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.HeadPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KA.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KStatic.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KV.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.LateralMult.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TransPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VXWeight.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VYWeight.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelBase.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.AxialPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.CrossPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.GearRatio.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.HeadPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KA.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KStatic.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KV.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.LateralMult.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAccel.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxRPM.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxVelo.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.OmegaWeight.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.PoseLimit.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TicksPerRev.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TrackWidth.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.VXWeight.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.WheelRadius.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankConstants.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/TankDrivebaseSubsystem.html delete mode 100644 docs/Path/src-html/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/EmptySequenceException.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequence.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html delete mode 100644 docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/AxesSigns.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/BNO055IMUUtil.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/DashboardUtil.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/LoggingUtil.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/RegressionUtil.AccelResult.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/RegressionUtil.RampResult.html delete mode 100644 docs/Path/src-html/com/technototes/path/util/RegressionUtil.html delete mode 100644 docs/Path/stylesheet.css delete mode 100644 docs/Path/tag-search-index.js delete mode 100644 docs/Path/type-search-index.js delete mode 100644 docs/TechnoLib/com/technototes/library/command/CommandBase.html create mode 100644 docs/TechnoLib/com/technototes/library/command/MethodCommand.html create mode 100644 docs/TechnoLib/com/technototes/library/general/CanBeEnabled.html delete mode 100644 docs/TechnoLib/com/technototes/library/general/Enablable.html delete mode 100644 docs/TechnoLib/com/technototes/library/general/Invertable.html create mode 100644 docs/TechnoLib/com/technototes/library/general/Invertible.html create mode 100644 docs/TechnoLib/com/technototes/library/hardware/FailedDevice.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware/HardwareDeviceGroup.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware/Speaker.html create mode 100644 docs/TechnoLib/com/technototes/library/hardware/motor/CRServo.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotorGroup.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware/motor/MotorGroup.html create mode 100644 docs/TechnoLib/com/technototes/library/hardware/servo/MotorAsServo.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware/servo/ServoGroup.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/AnalogBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/CRServoBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/ColorBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/ColorRangeBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/DigitalBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/DistanceBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/HardwareBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.AxesSigns.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/MotorBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/ServoBuilder.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/package-summary.html delete mode 100644 docs/TechnoLib/com/technototes/library/hardware2/package-tree.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/DeviceSubsystem.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/motor/MotorSubsystem.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/motor/package-summary.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/motor/package-tree.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/servo/ServoSubsystem.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/servo/package-summary.html delete mode 100644 docs/TechnoLib/com/technototes/library/subsystem/servo/package-tree.html create mode 100644 docs/TechnoLib/copy.svg create mode 100644 docs/TechnoLib/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 docs/TechnoLib/script-dir/images/ui-bg_glass_65_dadada_1x400.png create mode 100644 docs/TechnoLib/script-dir/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 docs/TechnoLib/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 docs/TechnoLib/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 docs/TechnoLib/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 docs/TechnoLib/script-dir/images/ui-icons_222222_256x240.png create mode 100644 docs/TechnoLib/script-dir/images/ui-icons_2e83ff_256x240.png create mode 100644 docs/TechnoLib/script-dir/images/ui-icons_454545_256x240.png create mode 100644 docs/TechnoLib/script-dir/images/ui-icons_888888_256x240.png create mode 100644 docs/TechnoLib/script-dir/images/ui-icons_cd0a0a_256x240.png create mode 100644 docs/TechnoLib/script-dir/jquery-3.5.1.min.js delete mode 100644 docs/TechnoLib/script-dir/jquery-3.6.1.min.js create mode 100644 docs/TechnoLib/script-dir/jquery-ui.structure.min.css delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/command/CommandBase.html create mode 100644 docs/TechnoLib/src-html/com/technototes/library/command/MethodCommand.html create mode 100644 docs/TechnoLib/src-html/com/technototes/library/general/CanBeEnabled.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/general/Enablable.html rename docs/TechnoLib/src-html/com/technototes/library/general/{Invertable.html => Invertible.html} (77%) create mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/FailedDevice.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/HardwareDeviceGroup.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/Speaker.html create mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/motor/CRServo.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/motor/EncodedMotorGroup.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/motor/MotorGroup.html create mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/servo/MotorAsServo.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware/servo/ServoGroup.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/AnalogBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/CRServoBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/ColorBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/ColorRangeBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/DigitalBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/DistanceBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/HardwareBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/IMUBuilder.AxesSigns.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/IMUBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/MotorBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/hardware2/ServoBuilder.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/subsystem/DeviceSubsystem.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/subsystem/motor/MotorSubsystem.html delete mode 100644 docs/TechnoLib/src-html/com/technototes/library/subsystem/servo/ServoSubsystem.html delete mode 100644 docs/Vision/allclasses-index.html delete mode 100644 docs/Vision/allpackages-index.html delete mode 100644 docs/Vision/com/technototes/vision/hardware/Camera.html delete mode 100644 docs/Vision/com/technototes/vision/hardware/InternalCamera.html delete mode 100644 docs/Vision/com/technototes/vision/hardware/SwitchableWebcam.html delete mode 100644 docs/Vision/com/technototes/vision/hardware/Webcam.html delete mode 100644 docs/Vision/com/technototes/vision/hardware/package-summary.html delete mode 100644 docs/Vision/com/technototes/vision/hardware/package-tree.html delete mode 100644 docs/Vision/com/technototes/vision/subsystem/PipelineSubsystem.html delete mode 100644 docs/Vision/com/technototes/vision/subsystem/package-summary.html delete mode 100644 docs/Vision/com/technototes/vision/subsystem/package-tree.html delete mode 100644 docs/Vision/deprecated-list.html delete mode 100644 docs/Vision/element-list delete mode 100644 docs/Vision/help-doc.html delete mode 100644 docs/Vision/index-all.html delete mode 100644 docs/Vision/index.html delete mode 100644 docs/Vision/jquery-ui.overrides.css delete mode 100644 docs/Vision/legal/ADDITIONAL_LICENSE_INFO delete mode 100644 docs/Vision/legal/ASSEMBLY_EXCEPTION delete mode 100644 docs/Vision/legal/LICENSE delete mode 100644 docs/Vision/legal/jquery.md delete mode 100644 docs/Vision/legal/jqueryUI.md delete mode 100644 docs/Vision/member-search-index.js delete mode 100644 docs/Vision/module-search-index.js delete mode 100644 docs/Vision/overview-summary.html delete mode 100644 docs/Vision/overview-tree.html delete mode 100644 docs/Vision/package-search-index.js delete mode 100644 docs/Vision/resources/glass.png delete mode 100644 docs/Vision/resources/x.png delete mode 100644 docs/Vision/script-dir/jquery-3.6.1.min.js delete mode 100644 docs/Vision/script-dir/jquery-ui.min.css delete mode 100644 docs/Vision/script-dir/jquery-ui.min.js delete mode 100644 docs/Vision/script.js delete mode 100644 docs/Vision/search.js delete mode 100644 docs/Vision/src-html/com/technototes/vision/hardware/Camera.html delete mode 100644 docs/Vision/src-html/com/technototes/vision/hardware/InternalCamera.html delete mode 100644 docs/Vision/src-html/com/technototes/vision/hardware/SwitchableWebcam.html delete mode 100644 docs/Vision/src-html/com/technototes/vision/hardware/Webcam.html delete mode 100644 docs/Vision/src-html/com/technototes/vision/subsystem/PipelineSubsystem.html delete mode 100644 docs/Vision/stylesheet.css delete mode 100644 docs/Vision/tag-search-index.js delete mode 100644 docs/Vision/type-search-index.js create mode 100644 scripts/os.ts delete mode 100644 yarn.lock diff --git a/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java b/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java index 2adc1132..bd5c0136 100644 --- a/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java +++ b/Path/src/main/java/com/technototes/path/subsystem/TankDrivebaseSubsystem.java @@ -238,7 +238,7 @@ public void setPIDFCoefficients(DcMotor.RunMode runMode, PIDFCoefficients coeffi (coefficients.f * 12) / batteryVoltageSensor.getVoltage() ); for (EncodedMotor motor : motors) { - motor.setPIDFCoeffecients(runMode, compensatedCoefficients); + motor.setPIDFCoefficients(runMode, compensatedCoefficients); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java b/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java index cdb643cd..d4258d4e 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/ButtonBase.java @@ -1,14 +1,14 @@ package com.technototes.library.control; -import com.technototes.library.general.Enablable; -import com.technototes.library.general.Invertable; +import com.technototes.library.general.CanBeEnabled; +import com.technototes.library.general.Invertible; import com.technototes.library.general.Periodic; import java.util.function.BooleanSupplier; /** The class to extend custom gamepad buttons from * @author Alex Stedman */ -public class ButtonBase implements BooleanSupplier, Periodic, Invertable, Enablable { +public class ButtonBase implements BooleanSupplier, Periodic, Invertible, CanBeEnabled { protected BooleanSupplier booleanSupplier; diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/GamepadBase.java b/RobotLibrary/src/main/java/com/technototes/library/control/GamepadBase.java index c8c004e6..4f87d172 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/GamepadBase.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/GamepadBase.java @@ -1,7 +1,7 @@ package com.technototes.library.control; import com.qualcomm.robotcore.hardware.Gamepad; -import com.technototes.library.general.Enablable; +import com.technototes.library.general.CanBeEnabled; import com.technototes.library.general.Periodic; import java.lang.reflect.InvocationTargetException; import java.util.function.BooleanSupplier; @@ -14,7 +14,8 @@ * @param The class for the axis components on the gamepad * @author Alex Stedman */ -public class GamepadBase implements Periodic, Enablable> { +public class GamepadBase + implements Periodic, CanBeEnabled> { private boolean enabled = true; // normal gamepad @@ -46,7 +47,7 @@ public class GamepadBase implements Pe // periodics to run private Periodic[] periodics; - private Enablable[] enablables; + private CanBeEnabled[] enablables; private Class buttonClass; private Class axisClass; @@ -71,38 +72,36 @@ public GamepadBase(Gamepad g, Class bClass, Class aClass) { leftStick = new GamepadStick<>(leftStickX, leftStickY, leftStickButton); rightStick = new GamepadStick<>(rightStickX, rightStickY, rightStickButton); dpad = new GamepadDpad<>(dpadUp, dpadDown, dpadLeft, dpadRight); - periodics = - new Periodic[] { - xbox_a, - xbox_b, - xbox_x, - xbox_y, - xbox_start, - xbox_back, - leftBumper, - rightBumper, - leftTrigger, - rightTrigger, - leftStick, - rightStick, - dpad, - }; - enablables = - new Enablable[] { - xbox_a, - xbox_b, - xbox_x, - xbox_y, - xbox_start, - xbox_back, - leftBumper, - rightBumper, - leftTrigger, - rightTrigger, - leftStick, - rightStick, - dpad, - }; + periodics = new Periodic[] { + xbox_a, + xbox_b, + xbox_x, + xbox_y, + xbox_start, + xbox_back, + leftBumper, + rightBumper, + leftTrigger, + rightTrigger, + leftStick, + rightStick, + dpad, + }; + enablables = new CanBeEnabled[] { + xbox_a, + xbox_b, + xbox_x, + xbox_y, + xbox_start, + xbox_back, + leftBumper, + rightBumper, + leftTrigger, + rightTrigger, + leftStick, + rightStick, + dpad, + }; } // to actually instantiate the objects @@ -489,7 +488,7 @@ public void rumble() { @Override public GamepadBase setEnabled(boolean enable) { enabled = enable; - for (Enablable enablable : enablables) enablable.setEnabled(enable); + for (CanBeEnabled enablable : enablables) enablable.setEnabled(enable); return this; } diff --git a/RobotLibrary/src/main/java/com/technototes/library/control/Stick.java b/RobotLibrary/src/main/java/com/technototes/library/control/Stick.java index 681f7788..032b06f3 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/control/Stick.java +++ b/RobotLibrary/src/main/java/com/technototes/library/control/Stick.java @@ -1,13 +1,13 @@ package com.technototes.library.control; -import com.technototes.library.general.Enablable; +import com.technototes.library.general.CanBeEnabled; import com.technototes.library.general.Periodic; import java.util.function.DoubleSupplier; /** Interface for objects that behave as sticks * @author Alex Stedman */ -public interface Stick extends Periodic, Enablable { +public interface Stick extends Periodic, CanBeEnabled { /** Return x axis double * * @return The double diff --git a/RobotLibrary/src/main/java/com/technototes/library/general/Enablable.java b/RobotLibrary/src/main/java/com/technototes/library/general/CanBeEnabled.java similarity index 94% rename from RobotLibrary/src/main/java/com/technototes/library/general/Enablable.java rename to RobotLibrary/src/main/java/com/technototes/library/general/CanBeEnabled.java index 8a05d914..da08f9e8 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/general/Enablable.java +++ b/RobotLibrary/src/main/java/com/technototes/library/general/CanBeEnabled.java @@ -2,13 +2,15 @@ /** * Interface for anything that can be enabled/disabled + * *

    * You must have "setEnabled" and "isEnabled" functions. Everything else has * functional implementations in the interface * * @param An Enable-able interface/class type */ -public interface Enablable> { + +public interface CanBeEnabled> { /** * Enable the object * diff --git a/RobotLibrary/src/main/java/com/technototes/library/general/Invertable.java b/RobotLibrary/src/main/java/com/technototes/library/general/Invertible.java similarity index 91% rename from RobotLibrary/src/main/java/com/technototes/library/general/Invertable.java rename to RobotLibrary/src/main/java/com/technototes/library/general/Invertible.java index ee99527d..75ddf4ab 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/general/Invertable.java +++ b/RobotLibrary/src/main/java/com/technototes/library/general/Invertible.java @@ -6,7 +6,7 @@ * @author Alex Stedman */ @SuppressWarnings("unused") -public interface Invertable> { +public interface Invertible> { /** * Set the inversion (true -> Is inverted, false -> Not inverted) * diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java index dd507008..f8789949 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/CRServo.java @@ -1,7 +1,8 @@ package com.technototes.library.hardware.motor; +import com.qualcomm.robotcore.hardware.DcMotorSimple; +import com.qualcomm.robotcore.util.Range; import com.technototes.library.hardware.HardwareDevice; -import java.io.InvalidClassException; import java.util.function.Supplier; /** @@ -12,21 +13,128 @@ * Not Yet Implemented! * TODO: Implement this */ -public class CRServo extends HardwareDevice { +public class CRServo extends HardwareDevice implements Supplier { - public CRServo(com.qualcomm.robotcore.hardware.CRServo device, String deviceName) throws InvalidClassException { - super(device, deviceName); - throw new InvalidClassException("com.technototes.library.hardware.motor.CRServo", "Not Yet Implemented"); + private double min = -1, max = 1; + protected double power; + protected DcMotorSimple.Direction dir; + + private String dirStr() { + return dir == DcMotorSimple.Direction.FORWARD ? "Fwd" : "Rev"; + } + + /** + * Create a motor + * + * @param device The hardware device + */ + public CRServo(com.qualcomm.robotcore.hardware.CRServo device, String nm) { + super(device, nm); + power = 0; + dir = DcMotorSimple.Direction.FORWARD; } - protected CRServo(String deviceName) throws InvalidClassException { + /** + * Create a motor + * + * @param deviceName The device name + */ + public CRServo(String deviceName) { super(deviceName); - throw new InvalidClassException("com.technototes.library.hardware.motor.CRServo", "Not Yet Implemented"); } @Override public String LogLine() { - return null; + if (min <= -1.0 && max >= 1.0) { + return logData(String.format("%1.2f%s", power, dirStr())); + } else { + return logData(String.format("%1.2f%s[%1.2f-%1.2f]", power, dirStr(), min, max)); + } + } + + /** + * Sets the min & max values for the motor power (still clipped to -1/1) + * + * @param mi The minimum value + * @param ma The maximum value + * @return The Motor (for chaining) + */ + public CRServo setLimits(double mi, double ma) { + mi = Range.clip(mi, -1, 1); + ma = Range.clip(ma, -1, 1); + min = Math.min(mi, ma); + max = Math.max(mi, ma); + setPower(power); + return this; + } + + /** + * Returns the DcMotorSimple.Direction the motor is traveling + */ + public DcMotorSimple.Direction getDirection() { + return dir; + } + + /** + * Set the motor to go *backward* + */ + public CRServo setBackward() { + return setDirection(DcMotorSimple.Direction.REVERSE); } + /** + * Set the motor to go *forward* + */ + public CRServo setForward() { + return setDirection(DcMotorSimple.Direction.FORWARD); + } + + /** + * Set the motor to go in a particular direction + */ + public CRServo setDirection(DcMotorSimple.Direction dir) { + if (this.dir != dir) { + this.dir = dir; + com.qualcomm.robotcore.hardware.CRServo device = getRawDevice(); + if (device != null) { + device.setDirection(dir); + } + } + return this; + } + + /** + * Gets the power value for the motor + * + * @return the power value (as a double) + */ + public double getPower() { + com.qualcomm.robotcore.hardware.CRServo device = getRawDevice(); + if (device != null) { + power = device.getPower(); + } + return power; + } + + /** + * Set the (range-clipped) power of the motor + * + * @param pow The power value (-1 -> 1) + */ + public void setPower(double pow) { + power = Range.clip(pow, min, max); + com.qualcomm.robotcore.hardware.CRServo device = getRawDevice(); + if (device != null) { + device.setPower(power); + } + } + + /** + * Gets the *speed* of the motor when it's used as a DoubleSupplier + * + * @return The speed of the motor + */ + public Double get() { + return getPower(); + } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java index f93babef..b958d3fb 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/EncodedMotor.java @@ -92,7 +92,7 @@ public EncodedMotor setEncoder(Encoder enc) { * @param f The Forward Feedback coefficient * @return The motor (for chaining) */ - public EncodedMotor setPIDFCoeffecients(double p, double i, double d, double f) { + public EncodedMotor setPIDFCoefficients(double p, double i, double d, double f) { T device = getRawDevice(); if (device instanceof DcMotorEx) { ((DcMotorEx) device).setVelocityPIDFCoefficients(p, i, d, f); @@ -103,11 +103,11 @@ public EncodedMotor setPIDFCoeffecients(double p, double i, double d, double /** * Configure the PIDF constants for the motor * - * @param coeffecients The PIDF coefficients to set + * @param coefficients The PIDF coefficients to set * @return The motor (for chaining) */ - public EncodedMotor setPIDFCoeffecients(PIDFCoefficients coeffecients) { - return setPIDFCoeffecients(coeffecients.p, coeffecients.i, coeffecients.d, coeffecients.f); + public EncodedMotor setPIDFCoefficients(PIDFCoefficients coefficients) { + return setPIDFCoefficients(coefficients.p, coefficients.i, coefficients.d, coefficients.f); } /** @@ -116,7 +116,7 @@ public EncodedMotor setPIDFCoeffecients(PIDFCoefficients coeffecients) { * @param c The PIDF coefficients to set * @return The motor (for chaining) */ - public EncodedMotor setPIDFCoeffecients(DcMotor.RunMode m, PIDFCoefficients c) { + public EncodedMotor setPIDFCoefficients(DcMotor.RunMode m, PIDFCoefficients c) { T device = getRawDevice(); if (device instanceof DcMotorEx) { ((DcMotorEx) device).setPIDFCoefficients(m, c); @@ -214,9 +214,9 @@ public boolean setPosition(double ticks) { */ public boolean setPosition(double ticks, double speed) { if (!isAtPosition(ticks)) { - setSpeed(getSensorValue() < ticks ? speed : -speed); + setPower(getSensorValue() < ticks ? speed : -speed); } else { - setSpeed(0); + setPower(0); return true; } return false; @@ -275,7 +275,7 @@ public void setVelocity(double tps) { * @return the power for the motor */ public double getVelocity() { - return getSpeed(); + return getPower(); } @Override diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java index 3e7e4c84..595f9427 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/motor/Motor.java @@ -211,6 +211,6 @@ public Motor coast() { */ @Override public Double get() { - return getSpeed(); + return getPower(); } } diff --git a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java index b9c84b65..515d5ab3 100644 --- a/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java +++ b/RobotLibrary/src/main/java/com/technototes/library/hardware/servo/Servo.java @@ -3,7 +3,7 @@ import com.qualcomm.robotcore.hardware.PwmControl; import com.qualcomm.robotcore.hardware.ServoImplEx; import com.qualcomm.robotcore.util.Range; -import com.technototes.library.general.Invertable; +import com.technototes.library.general.Invertible; import com.technototes.library.hardware.HardwareDevice; import com.technototes.library.hardware.Sensored; @@ -18,7 +18,7 @@ @SuppressWarnings("unused") public class Servo extends HardwareDevice - implements Sensored, Invertable { + implements Sensored, Invertible { private boolean inverted = false; private double pos = 0.0; diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..5385ee71a48df10891133ed94f13add7a830afb2 GIT binary patch literal 16214 zcmeHOd0foh_n&IoDJ>F_(4LuAiBb{8lchySq2A_s{Q6zaQRJ|l=unIFmw_F+>ZOytB#BvQtQ{xR9UvYQPQVp>{v*$1ew z++xR=+UM?+I;PqX!pSYMg-SpMJVuiFigWmRNnC-OmnD%n{ozR!cnolP;6b5&KCA!| zsT}gkkS_r)2i#ALL_+mDfhz(3o6jqN0|w_D@IJuvfcFC)#-y{^3_25Y(B;Yl$viwd zix$oZ@*|Z=@!B~KTm|%Y0Y~P(A}VsyCi5H{r_%@a0nce2XN{j(fn7 zUI}odcNjRr&jybAw}zjO0FLVU0!Q_x0`CiaG+(aGm-pf4KSMu|e&yt$Wjl)ZY>O!l zFKWK?;mzpjQd`NE`if`kBgSNontI#C*jeMTTODoO<5PBKM*F?;vHUE0y$C%KNY=HB#O3-3N*Dc|=taXV~uJQ?%Co0CeP zy3X8^rNbF+6i=u188*ftQuazs+tZFl%P83z6^X4cyWGYZykw_G`niVGy(;~j z+S9FH4hu}qNHkN5neq698!eH%FJPY1=%~hx?6=$P+D_8cx?~jxtF{IGnbTdBdVH** zvc9?4>L=SPw)YuyQNL+gz9VBU(@t+|PHt>qvy9HI+PL|SrW>Dv^89}YMvoUkf2cHx zMX|qC#P)6A=z!Osp7=iz^hNRC4bT^*|H^RC5XJwqL0^>q?-sHBX3(E1!u+v;!XsRHt37eeh%o1;=g9l7sY=Ty-1`#L>T{A&=;luC7>@#|CM`- z*8XhJ@5%V1O$P6Gh)ePF@H%k`akR(4@Ni}5Y=-DZ9My+!0WL0l8*qupQ9J1S2@&Gz zkW5hq=>IE6w*U5{=;KEseOCPZvxj%&^q(QX6XW9&p~;O!30m$}m$dTABCRxbI!93? zbf@Js%?#JJ>bP`X^W_4y`4(=QE^SOpYhB72drK;IjpY(2ucQSU{${cjg;v*k6L9f4 z44FgjYPNJeBz-O1Lr+od*2$HrGF2@ZYNvZejWg1Bv6wi(@MHec%l^xQ)|)GuE;HP7 z_;%xtYTdCN$0J=5)s}nL-Pl9GMRN)hxtJlL)Vz2@qsoaHaYLWD+fgd6CCaOB+j9F= zi;AbwvWO`MF4_*CUNUHoNAjhcN4&4aAM@znXs_Gd&)+L_ZEENr1Y9x(1x^kvvb|Pr zQJi#0HaO6&U%RBvw78b*r+kdk+oz@#)C}ycXTL&9yyixVM|XGSy1)9n$r~SPD?InK z&P@I^eXwVXIRTe=?j|!SIoh$Sqmqp6?k0KdH8|d2!;J7LzA>J%*5pk<{L$*NfeN!D z^IRx70c}1y*SZ7UwQ|qw>gsy8!FA;OcW*955^&MFgo(U4_k4$V%q}{s_)*cPDK8w) z)$E*EdRi<%b#TPu%tMQZtXUXaJlajC{ALf5jD$bhrUOn)=;oa>7Tp0l>_;>l`HTOd`8n5)1_o?yJWG`>td^g1+EGp?E z<%(OoL3ivVrkZB*=`&9+d28<Z*^bqAvsj5fp!^#2)KA%M)2f2@1z6N z77q8S8aDN$*o+dL{P&C0tVf=`aGH~T_D`Bh*M5C<#W(vZBYNc<>1=5&eO!5WrRSMx z%Pdmf$((e*UNoM73&#%ukw5O3$Bgr9ad_+8c_?E{!|HUnE;(~=`4+l_Mux@T#A&&zg$_SE_bCz>{SD|gn`_?^(nJUQGZo|@#eWatNNC!^>Q z1YFo|1w^iUvvEOHioBzy;^Et|?-Hu3qM9@l~#`qx`hd>sv;(y`I2uYpSfcDf2+( z(NU*_7xUh%zp8X=QAw$Z+jVlGtX5~tws}mA_4n>duk0Y;!kwgm$R6&j?%Np^Cr3>j z_bMy0Gf#P3uh;R<;>epeDYUnyt%@Gsrgn2imsjMrwt=zshQm5%*~wTmM-Gs_prGoT zZs4R0iz7hGZ~zgX8xS~|96h1$3!T)!yIwkqnTL0Gs;PUdYL+u7S=i|&x%uKaHl9BvSi8X3eS%Yq=Nmg zs$0Apr$=~+9Z)4t%r5gh;ZfT++^#G*v#TWW{k)2sshhpFWIMWynen#EKBm34cZ-HZ zwp=C`m(0aQ=NL@nM=jZ7G#B*gcT6oUWu|^oi-d!XqMn9Hv)g@ z+D=_^Y{LGC%7@0b4N?)Kho!YA*BU)A<~--(l4R@w5bjb1L>{l|UL&_+(>OVMlKW%! zla_0Y^xDqo0kK>5HC9L5UbH3r&(hiIWW)G8-~J}snqOL9b9$jb)pB-Tc|)T~t$suS zA6E+yiT7q?Msl_pZMW^fdG4>s5vYp%j2YcpDeP`hmT7mGfd1`^SGhrWP#kI;=ag zjWXM4v}g4D>En0BczHxGn)hDFb@{w`#=C4s z-^!TCj29Qz4GVdhJI!&U{94&e<`Y&^!KK8h_uhmR$$VT{_wpM)Gk~n{d7w6w(cfU5u za6QxOsNS15Hh;1!YjjmR+kIZJHFfjO95&*#o-3jj$iz5Lem3T|!|`|?t~kQQ=T?MG zZr2~)vN%Ll@5IvF;wi&eo7*xosAwb-&)XGJlS5;YsR}W178#mEDJFadA0ZTn!8goXp;_ zBvvvo()spKn-J}kwcWSVCbc}1u4$2|6Q3BfPj``L*P|`7UODJ?`M$NjI;BmO?SDVt z-=SoAhWzf*p$5$qjE#NBp?Rd&(ZD?WAj9R>GI^jUHlFLb zGF5%PwkW@AQ(pOk6MM7X_dgrh${3t&ukZb~-pgZ*-s}~h*50_1S6HXOxVItSqT)Jl z{gvVRL6eByyiaBQqN!DSab9Cw;h774iJmk*ot9^;}$WF0K|4 zS2q0V4cX7(VTwn>mz|xq>P&RqV;}Le{pKaNZ`MrLoY{9pxs#@J{^MDG+mGxUTAo1O zdol5PW&E9}@~$ho4G-^y^ZYA=&Ll&Kxa;?O>%81~XG53Uq`!omn!C z);u7&YR}qtub#S3NU*I`IZ*S*xb@u!O|4F!-I3)@Ihg#%)H?&LdHWEV`yvk|;;!@@ zeZ|;rXWey8cb&!;ALg{zrzwYQoGSJ4R)T6=fomVPex^1d!^7@8d$O_qMsgR0y4xc4 z<={0(^R4rzR9}`^!M7KkQHK$60}KKq$QP!!t{5OE?tD=~BevvZ+19q{r50qJBi1g@ z9lVcjSLkl*x)w9p?A4Zlw#NDiL0Tl%^uMa9eG;O_#^rNy$s~lUO~j>LJhnJ||MDf) zvkyeh4Rc=TofNM@&cEyzs~E1NGn>8Y-NE|`f15d&ZaF{p(6ieMwmz#n&$f!6q*rB^ zC29Ghl0ScC&?cut#NFl|BYn`VusqC-6Pq%5edPm<11<99;W+xTOC5 z!GSK4%1YR_{m zlisu-L&MI|+1ufWGz7cRBio)`Bzy(ojg~n@<}O`j$f9J;)aH zJ%LO?W*9*l4v7MZ3dtCf2_*Czfixs^=Zx-$(OoXOcSU!k=#B-Qhr{^&us|R{|JEO* zk8n_*P(KhZ@)7C}!b4@KU6e=dBG1Y~Lf_iR79>N@h$9((M)n|FWE<)m>Z2|s)MwOp z?*Gu;BD%LkccSRNHGtn&8gdeloQ;>6 z<=k*9m>ZUYaWwsMZlFGZjT{^|DT615;Hv~jR?3K(Q{f-fN4B6CQ5@4LBW6amq*_2J zj*i9Ao#J8^RMU}EGt+O-!~xBWIs$ZJAc03YI5Jcm&_D*IC6K_E92^@eE@o;^0glkc5vJl|-hAV}Zl{l!H@6`ZQXWhP@HhuYn+h#B2NL8r z9FHoL;D}!wu_~0HdlVQa4vuLRN^sOLj(QbJzO@>A^!sSv*ZIEHJwe0YnK;H4{ANNm zL*szIXz|IgJ>aKtc3MDw|7)Q+tB{(h_ z$JGiYIC2?B-U=l+wi(Cf3MDxD8AtC5B{)7B$M*^)*|1cgIf^5Ig%TWNjbns`5*&q% zqlkqP9H))rjD->$$&DkCg%TX=jboLC5*!VVqnU*g950UJorMw{QH~>`g%TWdj$@{U z5*(F|qpF1x9Jh|+u7wgD*^VQ#g%TY5j$^ll5*!_mqq~I?96yiazlD+l{wn#J&%fMU zS@hrtI+HpficM#R_yoDLnT!yBTP;)JLTdHJLds_O!s{qaEn|^QE zCb8+h0U@D544VCXCY`asI5L#EfEDKBOUJJsB`hf1pAkX{^oj5ZV6($mqm7N3bbkhm z&0Itc2@4KnQA3&j#{X2^nDURs6z(cdW&1}XOiGv!6T0*RXhJPOB;)`HE&c%H8$gd> zhO&JaA;KpLoNeHM^CM*5A`hUv2MT{lM2J7I=i4R#;oCwAcPl|yd~`bNr$E01`=;A0`{UXI*V8{oXrUOk$HkH2%SY| z{iMIXX$LU4?NNlC`+;YO>Rh`)oy&h+{R@8p%oq7zhePfL6vTdAnJ|QaLC6uH(94fs zEUItdj|K==11$VV;hv2CWisQ+U+SSv7EN3R&6s;xO#NZoUoRbiC0It_Er25(0^^RE zFOw0*=B;VGb?gTNFH`_PVTQup=Mf^p;h!CT0K=~V82l$N37rQJf;|@cFrp}7VZN3Y z!jcd_W+=mt;=>I7r?P*j8AT}b^I=B9q6y01782{hqD!Z-xUCQ>;!~GKP=2nZRgXQBY`Ti2pYggBf8gOAC6?SCzl?1P_48VEIOT1HdvLWfJw3Hqq)3 zIvaJ5SQHvY5BavsxRh9v6&@1G`a&0cYHs$GS9xV$beUHKP(PR!0;2_$(X{2_gCb#$ z{5%G-K>&g>JwoBm837D8_lr0JzX6Ki`4=$=;{hmyTn}+@uP{&pddW6PbeFR|qe2=jB zZy9gsdhnL<6!Cl{KKzZCXAmLRLmX@pM(T-=2)ZzCgxs&%gpVBv1wRuoc;9gUeSiNCVrAep literal 0 HcmV?d00001 diff --git a/docs/Path/allclasses-index.html b/docs/Path/allclasses-index.html deleted file mode 100644 index 6a44fed8..00000000 --- a/docs/Path/allclasses-index.html +++ /dev/null @@ -1,995 +0,0 @@ - - - - - All Classes and Interfaces (Path API) - - - - - - - - - - - - - -

    JavaScript is disabled on your browser.
    - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    - -
    -
    -
    -
    Class
    -
    Description
    -
    - AxesSigns -
    -
    -
    IMU axes signs in the order XYZ (after remapping).
    -
    - -
    -
    Various utility functions for the BNO055 IMU.
    -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -
    - Set of helper functions for drawing Road Runner paths and trajectories on - dashboard canvases. -
    -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -
    Utility functions for log files.
    -
    - -
    -
    Collection of utilites for interacting with Lynx modules.
    -
    - -
    -
    Parsed representation of a Lynx module firmware version.
    -
    - -
    -
    Exception indicating an outdated Lynx firmware version.
    -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -
    Various regression utilities.
    -
    - -
    -
    - Feedforward parameter estimates from the ramp regression and additional summary - statistics -
    -
    - -
    -
    - Feedforward parameter estimates from the ramp regression and additional summary - statistics -
    -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    - -
    -   -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/Path/allpackages-index.html b/docs/Path/allpackages-index.html deleted file mode 100644 index 18ff0e7a..00000000 --- a/docs/Path/allpackages-index.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - All Packages (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Packages

    -
    -
    Package Summary
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/MecanumDriveCommand.html b/docs/Path/com/technototes/path/command/MecanumDriveCommand.html deleted file mode 100644 index 13585d5c..00000000 --- a/docs/Path/com/technototes/path/command/MecanumDriveCommand.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - -MecanumDriveCommand (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class MecanumDriveCommand

    -
    -
    java.lang.Object -
    com.technototes.path.command.MecanumDriveCommand
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
    -
    -
    -
    public class MecanumDriveCommand -extends Object -implements com.technototes.library.command.Command
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      -

      Nested classes/interfaces inherited from interface com.technototes.library.command.Command

      -com.technototes.library.command.Command.CommandState
      -
      -
    • - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      - - -
       
      - - -
       
      - - -
       
      - - -
       
      -
      -
      -

      Fields inherited from interface com.technototes.library.command.Command

      -requirementMap, stateMap, timeMap
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      -
      end(boolean cancel)
      -
       
      -
      void
      - -
       
      -
      boolean
      - -
       
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -

      Methods inherited from interface com.technototes.library.command.Command

      -addRequirements, alongWith, andThen, asConditional, cancel, cancelUpon, deadline, get, getRequirements, getRuntime, getState, initialize, isCancelled, isRunning, justFinished, justFinishedNoCancel, justStarted, onlyIf, raceWith, run, setState, sleep, sleep, waitUntil, withTimeout
      -
      -
    • -
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html b/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html deleted file mode 100644 index b1616bfe..00000000 --- a/docs/Path/com/technototes/path/command/RegenerativeTrajectoryCommand.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - -RegenerativeTrajectoryCommand (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class RegenerativeTrajectoryCommand

    -
    -
    java.lang.Object -
    com.technototes.path.command.TrajectoryCommand -
    com.technototes.path.command.RegenerativeTrajectoryCommand
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html b/docs/Path/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html deleted file mode 100644 index 3b6c9385..00000000 --- a/docs/Path/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - -RegenerativeTrajectorySequenceCommand (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class RegenerativeTrajectorySequenceCommand

    -
    -
    java.lang.Object -
    com.technototes.path.command.TrajectorySequenceCommand -
    com.technototes.path.command.RegenerativeTrajectorySequenceCommand
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/ResetGyroCommand.html b/docs/Path/com/technototes/path/command/ResetGyroCommand.html deleted file mode 100644 index 74038201..00000000 --- a/docs/Path/com/technototes/path/command/ResetGyroCommand.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -ResetGyroCommand (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ResetGyroCommand

    -
    -
    java.lang.Object -
    com.technototes.path.command.ResetGyroCommand
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
    -
    -
    -
    public class ResetGyroCommand -extends Object -implements com.technototes.library.command.Command
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      -

      Nested classes/interfaces inherited from interface com.technototes.library.command.Command

      -com.technototes.library.command.Command.CommandState
      -
      -
    • - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      - - -
       
      -
      -
      -

      Fields inherited from interface com.technototes.library.command.Command

      -requirementMap, stateMap, timeMap
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      - -
       
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -

      Methods inherited from interface com.technototes.library.command.Command

      -addRequirements, alongWith, andThen, asConditional, cancel, cancelUpon, deadline, end, get, getRequirements, getRuntime, getState, initialize, isCancelled, isFinished, isRunning, justFinished, justFinishedNoCancel, justStarted, onlyIf, raceWith, run, setState, sleep, sleep, waitUntil, withTimeout
      -
      -
    • -
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/TrajectoryCommand.html b/docs/Path/com/technototes/path/command/TrajectoryCommand.html deleted file mode 100644 index efe27527..00000000 --- a/docs/Path/com/technototes/path/command/TrajectoryCommand.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - -TrajectoryCommand (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TrajectoryCommand

    -
    -
    java.lang.Object -
    com.technototes.path.command.TrajectoryCommand
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
    -
    -
    -
    Direct Known Subclasses:
    -
    RegenerativeTrajectoryCommand
    -
    -
    -
    public class TrajectoryCommand -extends Object -implements com.technototes.library.command.Command
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html b/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html deleted file mode 100644 index 9a807af7..00000000 --- a/docs/Path/com/technototes/path/command/TrajectorySequenceCommand.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - -TrajectorySequenceCommand (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TrajectorySequenceCommand

    -
    -
    java.lang.Object -
    com.technototes.path.command.TrajectorySequenceCommand
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.command.Command, Runnable, Supplier<com.technototes.library.command.Command.CommandState>
    -
    -
    -
    Direct Known Subclasses:
    -
    RegenerativeTrajectorySequenceCommand
    -
    -
    -
    public class TrajectorySequenceCommand -extends Object -implements com.technototes.library.command.Command
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/package-summary.html b/docs/Path/com/technototes/path/command/package-summary.html deleted file mode 100644 index a5cfb23a..00000000 --- a/docs/Path/com/technototes/path/command/package-summary.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -com.technototes.path.command (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package com.technototes.path.command

    -
    -
    -
    package com.technototes.path.command
    -
    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/command/package-tree.html b/docs/Path/com/technototes/path/command/package-tree.html deleted file mode 100644 index e4555095..00000000 --- a/docs/Path/com/technototes/path/command/package-tree.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -com.technototes.path.command Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package com.technototes.path.command

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/geometry/ConfigurablePose.html b/docs/Path/com/technototes/path/geometry/ConfigurablePose.html deleted file mode 100644 index 73748c50..00000000 --- a/docs/Path/com/technototes/path/geometry/ConfigurablePose.html +++ /dev/null @@ -1,431 +0,0 @@ - - - - -ConfigurablePose (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ConfigurablePose

    -
    -
    java.lang.Object -
    com.technototes.path.geometry.ConfigurableVector -
    com.technototes.path.geometry.ConfigurablePose
    -
    -
    -
    -
    -
    public class ConfigurablePose -extends ConfigurableVector
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/geometry/ConfigurablePoseD.html b/docs/Path/com/technototes/path/geometry/ConfigurablePoseD.html deleted file mode 100644 index b74a384d..00000000 --- a/docs/Path/com/technototes/path/geometry/ConfigurablePoseD.html +++ /dev/null @@ -1,440 +0,0 @@ - - - - -ConfigurablePoseD (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ConfigurablePoseD

    -
    -
    java.lang.Object -
    com.technototes.path.geometry.ConfigurableVector -
    com.technototes.path.geometry.ConfigurablePoseD
    -
    -
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/geometry/ConfigurableVector.html b/docs/Path/com/technototes/path/geometry/ConfigurableVector.html deleted file mode 100644 index 310f9bf7..00000000 --- a/docs/Path/com/technototes/path/geometry/ConfigurableVector.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - -ConfigurableVector (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ConfigurableVector

    -
    -
    java.lang.Object -
    com.technototes.path.geometry.ConfigurableVector
    -
    -
    -
    -
    Direct Known Subclasses:
    -
    ConfigurablePose, ConfigurablePoseD
    -
    -
    -
    public class ConfigurableVector -extends Object
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/geometry/package-summary.html b/docs/Path/com/technototes/path/geometry/package-summary.html deleted file mode 100644 index 30f084c9..00000000 --- a/docs/Path/com/technototes/path/geometry/package-summary.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - -com.technototes.path.geometry (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package com.technototes.path.geometry

    -
    -
    -
    package com.technototes.path.geometry
    -
    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/geometry/package-tree.html b/docs/Path/com/technototes/path/geometry/package-tree.html deleted file mode 100644 index 0e7f39ea..00000000 --- a/docs/Path/com/technototes/path/geometry/package-tree.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - -com.technototes.path.geometry Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package com.technototes.path.geometry

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html deleted file mode 100644 index ee3e1276..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -DeadWheelConstants.EncoderOverflow (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface DeadWheelConstants.EncoderOverflow

    -
    -
    -
    -
    Enclosing interface:
    -
    DeadWheelConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html deleted file mode 100644 index f0929c33..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -DeadWheelConstants.ForwardOffset (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface DeadWheelConstants.ForwardOffset

    -
    -
    -
    -
    Enclosing interface:
    -
    DeadWheelConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html deleted file mode 100644 index e1141997..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -DeadWheelConstants.GearRatio (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface DeadWheelConstants.GearRatio

    -
    -
    -
    -
    Enclosing interface:
    -
    DeadWheelConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html deleted file mode 100644 index 8cae12e6..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -DeadWheelConstants.LateralDistance (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface DeadWheelConstants.LateralDistance

    -
    -
    -
    -
    Enclosing interface:
    -
    DeadWheelConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html deleted file mode 100644 index 4d2f00fc..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -DeadWheelConstants.TicksPerRev (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface DeadWheelConstants.TicksPerRev

    -
    -
    -
    -
    Enclosing interface:
    -
    DeadWheelConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html deleted file mode 100644 index b0def406..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -DeadWheelConstants.WheelRadius (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface DeadWheelConstants.WheelRadius

    -
    -
    -
    -
    Enclosing interface:
    -
    DeadWheelConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.html b/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.html deleted file mode 100644 index 4ba90c32..00000000 --- a/docs/Path/com/technototes/path/subsystem/DeadWheelConstants.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - -DeadWheelConstants (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface DeadWheelConstants

    -
    -
    -
    -
    Functional Interface:
    -
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/DistanceSensorLocalizer.html b/docs/Path/com/technototes/path/subsystem/DistanceSensorLocalizer.html deleted file mode 100644 index d939b467..00000000 --- a/docs/Path/com/technototes/path/subsystem/DistanceSensorLocalizer.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - -DistanceSensorLocalizer (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class DistanceSensorLocalizer

    -
    -
    java.lang.Object -
    com.technototes.path.subsystem.DistanceSensorLocalizer
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.acmerobotics.roadrunner.localization.Localizer, com.technototes.library.general.Periodic, com.technototes.library.subsystem.Subsystem
    -
    -
    -
    public class DistanceSensorLocalizer -extends Object -implements com.acmerobotics.roadrunner.localization.Localizer, com.technototes.library.subsystem.Subsystem
    -
    -
    -
      - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      double
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      DistanceSensorLocalizer(com.technototes.library.hardware.sensor.IGyro g, - Map<com.technototes.library.hardware.sensor.IDistanceSensor,com.acmerobotics.roadrunner.geometry.Pose2d> map)
      -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      double
      - -
       
      -
      com.acmerobotics.roadrunner.geometry.Pose2d
      - -
       
      -
      com.acmerobotics.roadrunner.geometry.Pose2d
      - -
       
      -
      void
      -
      setGyroOffset(double v)
      -
       
      -
      void
      -
      setPoseEstimate(com.acmerobotics.roadrunner.geometry.Pose2d pose2d)
      -
       
      -
      void
      - -
       
      -
      void
      -
      update(com.acmerobotics.roadrunner.geometry.Pose2d old)
      -
       
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -

      Methods inherited from interface com.technototes.library.subsystem.Subsystem

      -getDefaultCommand, periodic, register, setDefaultCommand
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        gyroOffset

        -
        public double gyroOffset
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        DistanceSensorLocalizer

        -
        public DistanceSensorLocalizer(com.technototes.library.hardware.sensor.IGyro g, - Map<com.technototes.library.hardware.sensor.IDistanceSensor,com.acmerobotics.roadrunner.geometry.Pose2d> map)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getPoseEstimate

        -
        @NonNull -public com.acmerobotics.roadrunner.geometry.Pose2d getPoseEstimate()
        -
        -
        Specified by:
        -
        getPoseEstimate in interface com.acmerobotics.roadrunner.localization.Localizer
        -
        -
        -
      • -
      • -
        -

        setPoseEstimate

        -
        public void setPoseEstimate(@NonNull - com.acmerobotics.roadrunner.geometry.Pose2d pose2d)
        -
        -
        Specified by:
        -
        setPoseEstimate in interface com.acmerobotics.roadrunner.localization.Localizer
        -
        -
        -
      • -
      • -
        -

        getPoseVelocity

        -
        @Nullable -public com.acmerobotics.roadrunner.geometry.Pose2d getPoseVelocity()
        -
        -
        Specified by:
        -
        getPoseVelocity in interface com.acmerobotics.roadrunner.localization.Localizer
        -
        -
        -
      • -
      • -
        -

        update

        -
        public void update()
        -
        -
        Specified by:
        -
        update in interface com.acmerobotics.roadrunner.localization.Localizer
        -
        -
        -
      • -
      • -
        -

        update

        -
        public void update(@Nullable - com.acmerobotics.roadrunner.geometry.Pose2d old)
        -
        -
      • -
      • -
        -

        setGyroOffset

        -
        public void setGyroOffset(double v)
        -
        -
      • -
      • -
        -

        getHeading

        -
        public double getHeading()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.GearRatio.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.GearRatio.html deleted file mode 100644 index 4bf64e02..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.GearRatio.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.GearRatio (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.GearRatio

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.HeadPID.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.HeadPID.html deleted file mode 100644 index ec3af34b..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.HeadPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.HeadPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.HeadPID

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.KA.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.KA.html deleted file mode 100644 index b49bd6d5..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.KA.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.KA (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.KA

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    -
    @Retention(RUNTIME) -@Target(FIELD) -public static @interface MecanumConstants.KA
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.KStatic.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.KStatic.html deleted file mode 100644 index 95989679..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.KStatic.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.KStatic (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.KStatic

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.KV.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.KV.html deleted file mode 100644 index eb1a5b19..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.KV.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.KV (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.KV

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    -
    @Retention(RUNTIME) -@Target(FIELD) -public static @interface MecanumConstants.KV
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.LateralMult.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.LateralMult.html deleted file mode 100644 index e3ac671b..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.LateralMult.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.LateralMult (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.LateralMult

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html deleted file mode 100644 index 8c8fe5d3..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.MaxAccel (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.MaxAccel

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html deleted file mode 100644 index e7c5fc8f..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.MaxAngleAccel (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.MaxAngleAccel

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html deleted file mode 100644 index d8716dbc..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.MaxAngleVelo (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.MaxAngleVelo

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html deleted file mode 100644 index 239e1b23..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.MaxRPM (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.MaxRPM

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html deleted file mode 100644 index 0a78553a..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.MaxVelo (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.MaxVelo

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html deleted file mode 100644 index 464735cd..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.MotorVeloPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.MotorVeloPID

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html deleted file mode 100644 index 8a4620d0..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.OmegaWeight (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.OmegaWeight

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html deleted file mode 100644 index b9944d59..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.PoseLimit (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.PoseLimit

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html deleted file mode 100644 index b3ce8f3e..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.TicksPerRev (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.TicksPerRev

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html deleted file mode 100644 index baaedc93..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.TrackWidth (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.TrackWidth

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.TransPID.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.TransPID.html deleted file mode 100644 index 02ad6a09..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.TransPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.TransPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.TransPID

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html deleted file mode 100644 index 7ae5c018..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.UseDriveEncoder (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.UseDriveEncoder

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.VXWeight.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.VXWeight.html deleted file mode 100644 index f8539235..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.VXWeight.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.VXWeight (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.VXWeight

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.VYWeight.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.VYWeight.html deleted file mode 100644 index 539a7390..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.VYWeight.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.VYWeight (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.VYWeight

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelBase.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelBase.html deleted file mode 100644 index 92c35081..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelBase.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.WheelBase (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.WheelBase

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html deleted file mode 100644 index 26fcc6b4..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -MecanumConstants.WheelRadius (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface MecanumConstants.WheelRadius

    -
    -
    -
    -
    Enclosing interface:
    -
    MecanumConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/MecanumConstants.html b/docs/Path/com/technototes/path/subsystem/MecanumConstants.html deleted file mode 100644 index 2e2b1b83..00000000 --- a/docs/Path/com/technototes/path/subsystem/MecanumConstants.html +++ /dev/null @@ -1,288 +0,0 @@ - - - - -MecanumConstants (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface MecanumConstants

    -
    -
    -
    -
    Functional Interface:
    -
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html b/docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html deleted file mode 100644 index c4e58aea..00000000 --- a/docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - -PathingMecanumDrivebaseSubsystem.Mode (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Enum Class PathingMecanumDrivebaseSubsystem.Mode

    -
    -
    java.lang.Object -
    java.lang.Enum<PathingMecanumDrivebaseSubsystem.Mode> -
    com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable, Comparable<PathingMecanumDrivebaseSubsystem.Mode>, Constable
    -
    -
    -
    Enclosing class:
    -
    PathingMecanumDrivebaseSubsystem
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html b/docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html deleted file mode 100644 index a75095b7..00000000 --- a/docs/Path/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html +++ /dev/null @@ -1,793 +0,0 @@ - - - - -PathingMecanumDrivebaseSubsystem (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class PathingMecanumDrivebaseSubsystem

    -
    -
    java.lang.Object -
    com.acmerobotics.roadrunner.drive.Drive -
    com.acmerobotics.roadrunner.drive.MecanumDrive -
    com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.general.Periodic, com.technototes.library.subsystem.Subsystem
    -
    -
    -
    public class PathingMecanumDrivebaseSubsystem -extends com.acmerobotics.roadrunner.drive.MecanumDrive -implements com.technototes.library.subsystem.Subsystem
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      Nested Classes
      -
      -
      Modifier and Type
      -
      Class
      -
      Description
      -
      static enum 
      - -
       
      -
      -
      -

      Nested classes/interfaces inherited from class com.acmerobotics.roadrunner.drive.MecanumDrive

      -com.acmerobotics.roadrunner.drive.MecanumDrive.MecanumLocalizer
      -
      -
    • - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      protected com.qualcomm.robotcore.hardware.VoltageSensor
      - -
       
      -
      final double
      - -
       
      -
      final com.acmerobotics.roadrunner.control.PIDCoefficients
      - -
       
      -
      protected com.technototes.library.hardware.sensor.IMU
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      protected com.qualcomm.robotcore.hardware.DcMotorEx
      - -
       
      -
      protected com.qualcomm.robotcore.hardware.DcMotorEx
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final com.qualcomm.robotcore.hardware.PIDFCoefficients
      - -
       
      -
      protected List<com.qualcomm.robotcore.hardware.DcMotorEx>
      - -
       
      -
      final double
      - -
       
      -
      final int
      - -
       
      -
      protected com.qualcomm.robotcore.hardware.DcMotorEx
      - -
       
      -
      protected com.qualcomm.robotcore.hardware.DcMotorEx
      - -
       
      -
      final boolean
      - -
       
      -
      double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final com.acmerobotics.roadrunner.control.PIDCoefficients
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      PathingMecanumDrivebaseSubsystem(com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fr, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rr, - com.technototes.library.hardware.sensor.IMU i, - MecanumConstants c)
      -
       
      -
      PathingMecanumDrivebaseSubsystem(com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fr, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rr, - com.technototes.library.hardware.sensor.IMU i, - MecanumConstants c, - com.acmerobotics.roadrunner.localization.Localizer localizer)
      -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      -
      followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
      -
       
      -
      void
      -
      followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
      -
       
      -
      void
      - -
       
      -
      void
      - -
       
      -
      static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint
      -
      getAccelerationConstraint(double maxAccel)
      -
       
      - - -
       
      -
      com.acmerobotics.roadrunner.geometry.Pose2d
      - -
       
      -
      double
      - -
       
      -
      static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint
      -
      getVelocityConstraint(double maxVel, - double maxAngularVel, - double trackWidth)
      -
       
      - - -
       
      - - -
       
      -
      boolean
      - -
       
      -
      void
      -
      setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode)
      -
       
      -
      void
      -
      setMotorPowers(double v, - double v1, - double v2, - double v3)
      -
       
      -
      void
      -
      setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode, - com.qualcomm.robotcore.hardware.PIDFCoefficients coefficients)
      -
       
      -
      void
      -
      setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d drivePower)
      -
       
      -
      void
      -
      setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior zeroPowerBehavior)
      -
       
      -
      void
      - -
       
      -
      com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder
      -
      trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
      -
       
      -
      com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder
      -
      trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - boolean reversed)
      -
       
      -
      com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder
      -
      trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - double startHeading)
      -
       
      - - -
       
      - -
      trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
      -
       
      -
      void
      -
      turn(double angle)
      -
       
      -
      void
      -
      turnAsync(double angle)
      -
       
      -
      void
      - -
       
      -
      void
      - -
       
      -
      void
      - -
       
      -
      -
      -
      -
      -

      Methods inherited from class com.acmerobotics.roadrunner.drive.MecanumDrive

      -getLocalizer, setDrivePower, setDriveSignal, setLocalizer
      -
      -

      Methods inherited from class com.acmerobotics.roadrunner.drive.Drive

      -getExternalHeading, getPoseEstimate, getPoseVelocity, setExternalHeading, setPoseEstimate, updatePoseEstimate
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -

      Methods inherited from interface com.technototes.library.subsystem.Subsystem

      -getDefaultCommand, periodic, register, setDefaultCommand
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        speed

        -
        public double speed
        -
        -
      • -
      • -
        -

        TICKS_PER_REV

        -
        public final double TICKS_PER_REV
        -
        -
      • -
      • -
        -

        MAX_RPM

        -
        public final double MAX_RPM
        -
        -
      • -
      • -
        -

        RUN_USING_ENCODER

        -
        public final boolean RUN_USING_ENCODER
        -
        -
      • -
      • -
        -

        MOTOR_VELO_PID

        -
        public final com.qualcomm.robotcore.hardware.PIDFCoefficients MOTOR_VELO_PID
        -
        -
      • -
      • -
        -

        WHEEL_RADIUS

        -
        public final double WHEEL_RADIUS
        -
        -
      • -
      • -
        -

        GEAR_RATIO

        -
        public final double GEAR_RATIO
        -
        -
      • -
      • -
        -

        TRACK_WIDTH

        -
        public final double TRACK_WIDTH
        -
        -
      • -
      • -
        -

        WHEEL_BASE

        -
        public final double WHEEL_BASE
        -
        -
      • -
      • -
        -

        kV

        -
        public final double kV
        -
        -
      • -
      • -
        -

        kA

        -
        public final double kA
        -
        -
      • -
      • -
        -

        kStatic

        -
        public final double kStatic
        -
        -
      • -
      • -
        -

        MAX_VEL

        -
        public final double MAX_VEL
        -
        -
      • -
      • -
        -

        MAX_ACCEL

        -
        public final double MAX_ACCEL
        -
        -
      • -
      • -
        -

        MAX_ANG_VEL

        -
        public final double MAX_ANG_VEL
        -
        -
      • -
      • -
        -

        MAX_ANG_ACCEL

        -
        public final double MAX_ANG_ACCEL
        -
        -
      • -
      • -
        -

        TRANSLATIONAL_PID

        -
        public final com.acmerobotics.roadrunner.control.PIDCoefficients TRANSLATIONAL_PID
        -
        -
      • -
      • -
        -

        HEADING_PID

        -
        public final com.acmerobotics.roadrunner.control.PIDCoefficients HEADING_PID
        -
        -
      • -
      • -
        -

        LATERAL_MULTIPLIER

        -
        public final double LATERAL_MULTIPLIER
        -
        -
      • -
      • -
        -

        VX_WEIGHT

        -
        public final double VX_WEIGHT
        -
        -
      • -
      • -
        -

        VY_WEIGHT

        -
        public final double VY_WEIGHT
        -
        -
      • -
      • -
        -

        OMEGA_WEIGHT

        -
        public final double OMEGA_WEIGHT
        -
        -
      • -
      • -
        -

        POSE_HISTORY_LIMIT

        -
        public final int POSE_HISTORY_LIMIT
        -
        -
      • -
      • -
        -

        leftFront

        -
        protected com.qualcomm.robotcore.hardware.DcMotorEx leftFront
        -
        -
      • -
      • -
        -

        leftRear

        -
        protected com.qualcomm.robotcore.hardware.DcMotorEx leftRear
        -
        -
      • -
      • -
        -

        rightRear

        -
        protected com.qualcomm.robotcore.hardware.DcMotorEx rightRear
        -
        -
      • -
      • -
        -

        rightFront

        -
        protected com.qualcomm.robotcore.hardware.DcMotorEx rightFront
        -
        -
      • -
      • -
        -

        motors

        -
        protected List<com.qualcomm.robotcore.hardware.DcMotorEx> motors
        -
        -
      • -
      • -
        -

        imu

        -
        protected com.technototes.library.hardware.sensor.IMU imu
        -
        -
      • -
      • -
        -

        batteryVoltageSensor

        -
        protected com.qualcomm.robotcore.hardware.VoltageSensor batteryVoltageSensor
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        PathingMecanumDrivebaseSubsystem

        -
        public PathingMecanumDrivebaseSubsystem(com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fr, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rr, - com.technototes.library.hardware.sensor.IMU i, - MecanumConstants c)
        -
        -
      • -
      • -
        -

        PathingMecanumDrivebaseSubsystem

        -
        public PathingMecanumDrivebaseSubsystem(com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> fr, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rl, - com.technototes.library.hardware.motor.EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> rr, - com.technototes.library.hardware.sensor.IMU i, - MecanumConstants c, - com.acmerobotics.roadrunner.localization.Localizer localizer)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        trajectoryBuilder

        -
        public com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
        -
        -
      • -
      • -
        -

        trajectoryBuilder

        -
        public com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - boolean reversed)
        -
        -
      • -
      • -
        -

        trajectoryBuilder

        -
        public com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - double startHeading)
        -
        -
      • -
      • -
        -

        trajectorySequenceBuilder

        -
        public TrajectorySequenceBuilder trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
        -
        -
      • -
      • -
        -

        trajectorySequenceBuilder

        - -
        -
      • -
      • -
        -

        turnAsync

        -
        public void turnAsync(double angle)
        -
        -
      • -
      • -
        -

        turn

        -
        public void turn(double angle)
        -
        -
      • -
      • -
        -

        followTrajectoryAsync

        -
        public void followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
        -
        -
      • -
      • -
        -

        followTrajectory

        -
        public void followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
        -
        -
      • -
      • -
        -

        followTrajectorySequenceAsync

        -
        public void followTrajectorySequenceAsync(TrajectorySequence trajectorySequence)
        -
        -
      • -
      • -
        -

        followTrajectorySequence

        -
        public void followTrajectorySequence(TrajectorySequence trajectorySequence)
        -
        -
      • -
      • -
        -

        getLastError

        -
        public com.acmerobotics.roadrunner.geometry.Pose2d getLastError()
        -
        -
      • -
      • -
        -

        update

        -
        public void update()
        -
        -
      • -
      • -
        -

        stop

        -
        public void stop()
        -
        -
      • -
      • -
        -

        waitForIdle

        -
        public void waitForIdle()
        -
        -
      • -
      • -
        -

        isBusy

        -
        public boolean isBusy()
        -
        -
      • -
      • -
        -

        setMode

        -
        public void setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode)
        -
        -
      • -
      • -
        -

        setZeroPowerBehavior

        -
        public void setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior zeroPowerBehavior)
        -
        -
      • -
      • -
        -

        setPIDFCoefficients

        -
        public void setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode, - com.qualcomm.robotcore.hardware.PIDFCoefficients coefficients)
        -
        -
      • -
      • -
        -

        setWeightedDrivePower

        -
        public void setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d drivePower)
        -
        -
      • -
      • -
        -

        getWheelPositions

        -
        @NonNull -public List<Double> getWheelPositions()
        -
        -
        Specified by:
        -
        getWheelPositions in class com.acmerobotics.roadrunner.drive.MecanumDrive
        -
        -
        -
      • -
      • -
        -

        getWheelVelocities

        - -
        -
        Overrides:
        -
        getWheelVelocities in class com.acmerobotics.roadrunner.drive.MecanumDrive
        -
        -
        -
      • -
      • -
        -

        setMotorPowers

        -
        public void setMotorPowers(double v, - double v1, - double v2, - double v3)
        -
        -
        Specified by:
        -
        setMotorPowers in class com.acmerobotics.roadrunner.drive.MecanumDrive
        -
        -
        -
      • -
      • -
        -

        getRawExternalHeading

        -
        public double getRawExternalHeading()
        -
        -
        Specified by:
        -
        getRawExternalHeading in class com.acmerobotics.roadrunner.drive.Drive
        -
        -
        -
      • -
      • -
        -

        getExternalHeadingVelocity

        - -
        -
        Overrides:
        -
        getExternalHeadingVelocity in class com.acmerobotics.roadrunner.drive.Drive
        -
        -
        -
      • -
      • -
        -

        getVelocityConstraint

        -
        public static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint getVelocityConstraint(double maxVel, - double maxAngularVel, - double trackWidth)
        -
        -
      • -
      • -
        -

        getAccelerationConstraint

        -
        public static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint getAccelerationConstraint(double maxAccel)
        -
        -
      • -
      • -
        -

        zeroExternalHeading

        -
        public void zeroExternalHeading()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.AxialPID.html b/docs/Path/com/technototes/path/subsystem/TankConstants.AxialPID.html deleted file mode 100644 index 71bf8c37..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.AxialPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.AxialPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.AxialPID

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.CrossPID.html b/docs/Path/com/technototes/path/subsystem/TankConstants.CrossPID.html deleted file mode 100644 index 19eefded..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.CrossPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.CrossPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.CrossPID

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.GearRatio.html b/docs/Path/com/technototes/path/subsystem/TankConstants.GearRatio.html deleted file mode 100644 index fd450994..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.GearRatio.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.GearRatio (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.GearRatio

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.HeadPID.html b/docs/Path/com/technototes/path/subsystem/TankConstants.HeadPID.html deleted file mode 100644 index e3fbbc2f..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.HeadPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.HeadPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.HeadPID

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.KA.html b/docs/Path/com/technototes/path/subsystem/TankConstants.KA.html deleted file mode 100644 index f3827024..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.KA.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.KA (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.KA

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    -
    @Retention(RUNTIME) -@Target(FIELD) -public static @interface TankConstants.KA
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.KStatic.html b/docs/Path/com/technototes/path/subsystem/TankConstants.KStatic.html deleted file mode 100644 index 6d4db734..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.KStatic.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.KStatic (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.KStatic

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.KV.html b/docs/Path/com/technototes/path/subsystem/TankConstants.KV.html deleted file mode 100644 index ac8ae79a..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.KV.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.KV (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.KV

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    -
    @Retention(RUNTIME) -@Target(FIELD) -public static @interface TankConstants.KV
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.LateralMult.html b/docs/Path/com/technototes/path/subsystem/TankConstants.LateralMult.html deleted file mode 100644 index 62f03944..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.LateralMult.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.LateralMult (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.LateralMult

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAccel.html b/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAccel.html deleted file mode 100644 index e84373b0..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAccel.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.MaxAccel (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.MaxAccel

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html b/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html deleted file mode 100644 index 65c202fd..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.MaxAngleAccel (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.MaxAngleAccel

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html b/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html deleted file mode 100644 index 36f01b78..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.MaxAngleVelo (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.MaxAngleVelo

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxRPM.html b/docs/Path/com/technototes/path/subsystem/TankConstants.MaxRPM.html deleted file mode 100644 index 42dddedf..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxRPM.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.MaxRPM (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.MaxRPM

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    -
    @Retention(RUNTIME) -@Target(FIELD) -public static @interface TankConstants.MaxRPM
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxVelo.html b/docs/Path/com/technototes/path/subsystem/TankConstants.MaxVelo.html deleted file mode 100644 index 3f361131..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.MaxVelo.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.MaxVelo (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.MaxVelo

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html b/docs/Path/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html deleted file mode 100644 index 32fdc26d..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.MotorVeloPID (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.MotorVeloPID

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.OmegaWeight.html b/docs/Path/com/technototes/path/subsystem/TankConstants.OmegaWeight.html deleted file mode 100644 index b599c283..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.OmegaWeight.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.OmegaWeight (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.OmegaWeight

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.PoseLimit.html b/docs/Path/com/technototes/path/subsystem/TankConstants.PoseLimit.html deleted file mode 100644 index ec916e22..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.PoseLimit.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.PoseLimit (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.PoseLimit

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.TicksPerRev.html b/docs/Path/com/technototes/path/subsystem/TankConstants.TicksPerRev.html deleted file mode 100644 index 5468b3b9..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.TicksPerRev.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.TicksPerRev (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.TicksPerRev

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.TrackWidth.html b/docs/Path/com/technototes/path/subsystem/TankConstants.TrackWidth.html deleted file mode 100644 index 6b553659..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.TrackWidth.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.TrackWidth (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.TrackWidth

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html b/docs/Path/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html deleted file mode 100644 index f6b6c7a8..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.UseDriveEncoder (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.UseDriveEncoder

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.VXWeight.html b/docs/Path/com/technototes/path/subsystem/TankConstants.VXWeight.html deleted file mode 100644 index ca204934..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.VXWeight.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.VXWeight (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.VXWeight

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.WheelRadius.html b/docs/Path/com/technototes/path/subsystem/TankConstants.WheelRadius.html deleted file mode 100644 index b4bdfafe..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.WheelRadius.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -TankConstants.WheelRadius (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Annotation Interface TankConstants.WheelRadius

    -
    -
    -
    -
    Enclosing interface:
    -
    TankConstants
    -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankConstants.html b/docs/Path/com/technototes/path/subsystem/TankConstants.html deleted file mode 100644 index 69b919f7..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankConstants.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - -TankConstants (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface TankConstants

    -
    -
    -
    -
    Functional Interface:
    -
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
    -
    -
    - -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/TankDrivebaseSubsystem.html b/docs/Path/com/technototes/path/subsystem/TankDrivebaseSubsystem.html deleted file mode 100644 index 94056847..00000000 --- a/docs/Path/com/technototes/path/subsystem/TankDrivebaseSubsystem.html +++ /dev/null @@ -1,650 +0,0 @@ - - - - -TankDrivebaseSubsystem (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TankDrivebaseSubsystem

    -
    -
    java.lang.Object -
    com.acmerobotics.roadrunner.drive.Drive -
    com.acmerobotics.roadrunner.drive.TankDrive -
    com.technototes.path.subsystem.TankDrivebaseSubsystem
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.technototes.library.general.Periodic, com.technototes.library.subsystem.Subsystem
    -
    -
    -
    public class TankDrivebaseSubsystem -extends com.acmerobotics.roadrunner.drive.TankDrive -implements com.technototes.library.subsystem.Subsystem
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      -

      Nested classes/interfaces inherited from class com.acmerobotics.roadrunner.drive.TankDrive

      -com.acmerobotics.roadrunner.drive.TankDrive.TankLocalizer
      -
      -
    • - -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      final com.acmerobotics.roadrunner.control.PIDCoefficients
      - -
       
      -
      final com.acmerobotics.roadrunner.control.PIDCoefficients
      - -
       
      -
      final double
      - -
       
      -
      final com.acmerobotics.roadrunner.control.PIDCoefficients
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final com.qualcomm.robotcore.hardware.PIDFCoefficients
      - -
       
      -
      final double
      - -
       
      -
      final int
      - -
       
      -
      final boolean
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      final double
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      TankDrivebaseSubsystem(com.technototes.library.hardware.motor.EncodedMotorGroup<com.qualcomm.robotcore.hardware.DcMotorEx> left, - com.technototes.library.hardware.motor.EncodedMotorGroup<com.qualcomm.robotcore.hardware.DcMotorEx> right, - com.technototes.library.hardware.sensor.IMU i, - TankConstants c, - com.acmerobotics.roadrunner.localization.Localizer localizer)
      -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      -
      followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
      -
       
      -
      void
      -
      followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
      -
       
      -
      void
      - -
       
      -
      void
      - -
       
      -
      static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint
      -
      getAccelerationConstraint(double maxAccel)
      -
       
      - - -
       
      -
      com.acmerobotics.roadrunner.geometry.Pose2d
      - -
       
      -
      double
      - -
       
      -
      static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint
      -
      getVelocityConstraint(double maxVel, - double maxAngularVel, - double trackWidth)
      -
       
      - - -
       
      - - -
       
      -
      boolean
      - -
       
      -
      void
      -
      setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode)
      -
       
      -
      void
      -
      setMotorPowers(double v, - double v1)
      -
       
      -
      void
      -
      setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode, - com.qualcomm.robotcore.hardware.PIDFCoefficients coefficients)
      -
       
      -
      void
      -
      setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d drivePower)
      -
       
      -
      void
      -
      setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior zeroPowerBehavior)
      -
       
      -
      com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder
      -
      trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
      -
       
      -
      com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder
      -
      trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - boolean reversed)
      -
       
      -
      com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder
      -
      trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - double startHeading)
      -
       
      - -
      trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
      -
       
      -
      void
      -
      turn(double angle)
      -
       
      -
      void
      -
      turnAsync(double angle)
      -
       
      -
      void
      - -
       
      -
      void
      - -
       
      -
      -
      -
      -
      -

      Methods inherited from class com.acmerobotics.roadrunner.drive.TankDrive

      -getLocalizer, setDrivePower, setDriveSignal, setLocalizer
      -
      -

      Methods inherited from class com.acmerobotics.roadrunner.drive.Drive

      -getExternalHeading, getPoseEstimate, getPoseVelocity, setExternalHeading, setPoseEstimate, updatePoseEstimate
      -
      -

      Methods inherited from class java.lang.Object

      -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      -
      -

      Methods inherited from interface com.technototes.library.subsystem.Subsystem

      -getDefaultCommand, periodic, register, setDefaultCommand
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        TICKS_PER_REV

        -
        public final double TICKS_PER_REV
        -
        -
      • -
      • -
        -

        MAX_RPM

        -
        public final double MAX_RPM
        -
        -
      • -
      • -
        -

        RUN_USING_ENCODER

        -
        public final boolean RUN_USING_ENCODER
        -
        -
      • -
      • -
        -

        MOTOR_VELO_PID

        -
        public final com.qualcomm.robotcore.hardware.PIDFCoefficients MOTOR_VELO_PID
        -
        -
      • -
      • -
        -

        WHEEL_RADIUS

        -
        public final double WHEEL_RADIUS
        -
        -
      • -
      • -
        -

        GEAR_RATIO

        -
        public final double GEAR_RATIO
        -
        -
      • -
      • -
        -

        TRACK_WIDTH

        -
        public final double TRACK_WIDTH
        -
        -
      • -
      • -
        -

        kV

        -
        public final double kV
        -
        -
      • -
      • -
        -

        kA

        -
        public final double kA
        -
        -
      • -
      • -
        -

        kStatic

        -
        public final double kStatic
        -
        -
      • -
      • -
        -

        MAX_VEL

        -
        public final double MAX_VEL
        -
        -
      • -
      • -
        -

        MAX_ACCEL

        -
        public final double MAX_ACCEL
        -
        -
      • -
      • -
        -

        MAX_ANG_VEL

        -
        public final double MAX_ANG_VEL
        -
        -
      • -
      • -
        -

        MAX_ANG_ACCEL

        -
        public final double MAX_ANG_ACCEL
        -
        -
      • -
      • -
        -

        AXIAL_PID

        -
        public final com.acmerobotics.roadrunner.control.PIDCoefficients AXIAL_PID
        -
        -
      • -
      • -
        -

        CROSS_TRACK_PID

        -
        public final com.acmerobotics.roadrunner.control.PIDCoefficients CROSS_TRACK_PID
        -
        -
      • -
      • -
        -

        HEADING_PID

        -
        public final com.acmerobotics.roadrunner.control.PIDCoefficients HEADING_PID
        -
        -
      • -
      • -
        -

        LATERAL_MULTIPLIER

        -
        public final double LATERAL_MULTIPLIER
        -
        -
      • -
      • -
        -

        VX_WEIGHT

        -
        public final double VX_WEIGHT
        -
        -
      • -
      • -
        -

        OMEGA_WEIGHT

        -
        public final double OMEGA_WEIGHT
        -
        -
      • -
      • -
        -

        POSE_HISTORY_LIMIT

        -
        public final int POSE_HISTORY_LIMIT
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        TankDrivebaseSubsystem

        -
        public TankDrivebaseSubsystem(com.technototes.library.hardware.motor.EncodedMotorGroup<com.qualcomm.robotcore.hardware.DcMotorEx> left, - com.technototes.library.hardware.motor.EncodedMotorGroup<com.qualcomm.robotcore.hardware.DcMotorEx> right, - com.technototes.library.hardware.sensor.IMU i, - TankConstants c, - com.acmerobotics.roadrunner.localization.Localizer localizer)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        trajectoryBuilder

        -
        public com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
        -
        -
      • -
      • -
        -

        trajectoryBuilder

        -
        public com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - boolean reversed)
        -
        -
      • -
      • -
        -

        trajectoryBuilder

        -
        public com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - double startHeading)
        -
        -
      • -
      • -
        -

        trajectorySequenceBuilder

        -
        public TrajectorySequenceBuilder trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d startPose)
        -
        -
      • -
      • -
        -

        turnAsync

        -
        public void turnAsync(double angle)
        -
        -
      • -
      • -
        -

        turn

        -
        public void turn(double angle)
        -
        -
      • -
      • -
        -

        followTrajectoryAsync

        -
        public void followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
        -
        -
      • -
      • -
        -

        followTrajectory

        -
        public void followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
        -
        -
      • -
      • -
        -

        followTrajectorySequenceAsync

        -
        public void followTrajectorySequenceAsync(TrajectorySequence trajectorySequence)
        -
        -
      • -
      • -
        -

        followTrajectorySequence

        -
        public void followTrajectorySequence(TrajectorySequence trajectorySequence)
        -
        -
      • -
      • -
        -

        getLastError

        -
        public com.acmerobotics.roadrunner.geometry.Pose2d getLastError()
        -
        -
      • -
      • -
        -

        update

        -
        public void update()
        -
        -
      • -
      • -
        -

        waitForIdle

        -
        public void waitForIdle()
        -
        -
      • -
      • -
        -

        isBusy

        -
        public boolean isBusy()
        -
        -
      • -
      • -
        -

        setMode

        -
        public void setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode)
        -
        -
      • -
      • -
        -

        setZeroPowerBehavior

        -
        public void setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior zeroPowerBehavior)
        -
        -
      • -
      • -
        -

        setPIDFCoefficients

        -
        public void setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode runMode, - com.qualcomm.robotcore.hardware.PIDFCoefficients coefficients)
        -
        -
      • -
      • -
        -

        setWeightedDrivePower

        -
        public void setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d drivePower)
        -
        -
      • -
      • -
        -

        getWheelPositions

        -
        @NonNull -public List<Double> getWheelPositions()
        -
        -
        Specified by:
        -
        getWheelPositions in class com.acmerobotics.roadrunner.drive.TankDrive
        -
        -
        -
      • -
      • -
        -

        getWheelVelocities

        - -
        -
        Overrides:
        -
        getWheelVelocities in class com.acmerobotics.roadrunner.drive.TankDrive
        -
        -
        -
      • -
      • -
        -

        setMotorPowers

        -
        public void setMotorPowers(double v, - double v1)
        -
        -
        Specified by:
        -
        setMotorPowers in class com.acmerobotics.roadrunner.drive.TankDrive
        -
        -
        -
      • -
      • -
        -

        getRawExternalHeading

        -
        public double getRawExternalHeading()
        -
        -
        Specified by:
        -
        getRawExternalHeading in class com.acmerobotics.roadrunner.drive.Drive
        -
        -
        -
      • -
      • -
        -

        getExternalHeadingVelocity

        - -
        -
        Overrides:
        -
        getExternalHeadingVelocity in class com.acmerobotics.roadrunner.drive.Drive
        -
        -
        -
      • -
      • -
        -

        getVelocityConstraint

        -
        public static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint getVelocityConstraint(double maxVel, - double maxAngularVel, - double trackWidth)
        -
        -
      • -
      • -
        -

        getAccelerationConstraint

        -
        public static com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint getAccelerationConstraint(double maxAccel)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html b/docs/Path/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html deleted file mode 100644 index 09fc687b..00000000 --- a/docs/Path/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - -ThreeDeadWheelLocalizer (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ThreeDeadWheelLocalizer

    -
    -
    java.lang.Object -
    com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer -
    com.technototes.path.subsystem.ThreeDeadWheelLocalizer
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    com.acmerobotics.roadrunner.localization.Localizer, com.technototes.library.general.Periodic, com.technototes.library.subsystem.Subsystem
    -
    -
    -
    public class ThreeDeadWheelLocalizer -extends com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer -implements com.technototes.library.subsystem.Subsystem
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        leftEncoder

        -
        protected com.technototes.library.hardware.sensor.encoder.MotorEncoder leftEncoder
        -
        -
      • -
      • -
        -

        rightEncoder

        -
        protected com.technototes.library.hardware.sensor.encoder.MotorEncoder rightEncoder
        -
        -
      • -
      • -
        -

        frontEncoder

        -
        protected com.technototes.library.hardware.sensor.encoder.MotorEncoder frontEncoder
        -
        -
      • -
      • -
        -

        lateralDistance

        -
        protected double lateralDistance
        -
        -
      • -
      • -
        -

        forwardOffset

        -
        protected double forwardOffset
        -
        -
      • -
      • -
        -

        gearRatio

        -
        protected double gearRatio
        -
        -
      • -
      • -
        -

        wheelRadius

        -
        protected double wheelRadius
        -
        -
      • -
      • -
        -

        ticksPerRev

        -
        protected double ticksPerRev
        -
        -
      • -
      • -
        -

        encoderOverflow

        -
        protected boolean encoderOverflow
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        ThreeDeadWheelLocalizer

        -
        public ThreeDeadWheelLocalizer(com.technototes.library.hardware.sensor.encoder.MotorEncoder l, - com.technototes.library.hardware.sensor.encoder.MotorEncoder r, - com.technototes.library.hardware.sensor.encoder.MotorEncoder f, - DeadWheelConstants constants)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        encoderTicksToInches

        -
        public double encoderTicksToInches(double ticks)
        -
        -
      • -
      • -
        -

        getWheelPositions

        -
        @NonNull -public List<Double> getWheelPositions()
        -
        -
        Specified by:
        -
        getWheelPositions in class com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer
        -
        -
        -
      • -
      • -
        -

        getWheelVelocities

        -
        @NonNull -public List<Double> getWheelVelocities()
        -
        -
        Overrides:
        -
        getWheelVelocities in class com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer
        -
        -
        -
      • -
      • -
        -

        getTicksPerRev

        -
        public double getTicksPerRev()
        -
        -
      • -
      • -
        -

        getWheelRadius

        -
        public double getWheelRadius()
        -
        -
      • -
      • -
        -

        getGearRatio

        -
        public double getGearRatio()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/package-summary.html b/docs/Path/com/technototes/path/subsystem/package-summary.html deleted file mode 100644 index 0cd6dee8..00000000 --- a/docs/Path/com/technototes/path/subsystem/package-summary.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - -com.technototes.path.subsystem (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package com.technototes.path.subsystem

    -
    -
    -
    package com.technototes.path.subsystem
    -
    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/subsystem/package-tree.html b/docs/Path/com/technototes/path/subsystem/package-tree.html deleted file mode 100644 index d5cea913..00000000 --- a/docs/Path/com/technototes/path/subsystem/package-tree.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - -com.technototes.path.subsystem Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package com.technototes.path.subsystem

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    -
      -
    • java.lang.Object -
        -
      • com.technototes.path.subsystem.DistanceSensorLocalizer (implements com.acmerobotics.roadrunner.localization.Localizer, com.technototes.library.subsystem.Subsystem)
      • -
      • com.acmerobotics.roadrunner.drive.Drive -
          -
        • com.acmerobotics.roadrunner.drive.MecanumDrive - -
        • -
        • com.acmerobotics.roadrunner.drive.TankDrive -
            -
          • com.technototes.path.subsystem.TankDrivebaseSubsystem (implements com.technototes.library.subsystem.Subsystem)
          • -
          -
        • -
        -
      • -
      • com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer (implements com.acmerobotics.roadrunner.localization.Localizer) -
          -
        • com.technototes.path.subsystem.ThreeDeadWheelLocalizer (implements com.technototes.library.subsystem.Subsystem)
        • -
        -
      • -
      -
    • -
    -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Annotation Interface Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/EmptySequenceException.html b/docs/Path/com/technototes/path/trajectorysequence/EmptySequenceException.html deleted file mode 100644 index 47baf7cd..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/EmptySequenceException.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -EmptySequenceException (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class EmptySequenceException

    -
    -
    java.lang.Object -
    java.lang.Throwable -
    java.lang.Exception -
    java.lang.RuntimeException -
    com.technototes.path.trajectorysequence.EmptySequenceException
    -
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    - -
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequence.html b/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequence.html deleted file mode 100644 index db828036..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequence.html +++ /dev/null @@ -1,193 +0,0 @@ - - - - -TrajectorySequence (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TrajectorySequence

    -
    -
    java.lang.Object -
    com.technototes.path.trajectorysequence.TrajectorySequence
    -
    -
    -
    -
    public class TrajectorySequence -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        start

        -
        public com.acmerobotics.roadrunner.geometry.Pose2d start()
        -
        -
      • -
      • -
        -

        end

        -
        public com.acmerobotics.roadrunner.geometry.Pose2d end()
        -
        -
      • -
      • -
        -

        duration

        -
        public double duration()
        -
        -
      • -
      • -
        -

        get

        -
        public SequenceSegment get(int i)
        -
        -
      • -
      • -
        -

        size

        -
        public int size()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html b/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html deleted file mode 100644 index efe1d66d..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html +++ /dev/null @@ -1,740 +0,0 @@ - - - - -TrajectorySequenceBuilder (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TrajectorySequenceBuilder

    -
    -
    java.lang.Object -
    com.technototes.path.trajectorysequence.TrajectorySequenceBuilder
    -
    -
    -
    -
    public class TrajectorySequenceBuilder -extends Object
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html b/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html deleted file mode 100644 index ad4ef3c3..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -TrajectorySequenceRunner (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TrajectorySequenceRunner

    -
    -
    java.lang.Object -
    com.technototes.path.trajectorysequence.TrajectorySequenceRunner
    -
    -
    -
    -
    public class TrajectorySequenceRunner -extends Object
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/package-summary.html b/docs/Path/com/technototes/path/trajectorysequence/package-summary.html deleted file mode 100644 index f2ad2607..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/package-summary.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - -com.technototes.path.trajectorysequence (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package com.technototes.path.trajectorysequence

    -
    -
    -
    package com.technototes.path.trajectorysequence
    -
    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/package-tree.html b/docs/Path/com/technototes/path/trajectorysequence/package-tree.html deleted file mode 100644 index 0f67f456..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/package-tree.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - -com.technototes.path.trajectorysequence Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package com.technototes.path.trajectorysequence

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html b/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html deleted file mode 100644 index 20476748..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - -SequenceSegment (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - - -
    java.lang.Object -
    com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment
    -
    -
    -
    -
    Direct Known Subclasses:
    -
    TrajectorySegment, TurnSegment, WaitSegment
    -
    -
    -
    public abstract class SequenceSegment -extends Object
    -
    -
    -
      - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Modifier
      -
      Constructor
      -
      Description
      -
      protected
      -
      SequenceSegment(double duration, - com.acmerobotics.roadrunner.geometry.Pose2d startPose, - com.acmerobotics.roadrunner.geometry.Pose2d endPose, - List<com.acmerobotics.roadrunner.trajectory.TrajectoryMarker> markers)
      -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      double
      - -
       
      -
      com.acmerobotics.roadrunner.geometry.Pose2d
      - -
       
      -
      List<com.acmerobotics.roadrunner.trajectory.TrajectoryMarker>
      - -
       
      -
      com.acmerobotics.roadrunner.geometry.Pose2d
      - -
       
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

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

      Constructor Details

      -
        -
      • -
        -

        SequenceSegment

        -
        protected SequenceSegment(double duration, - com.acmerobotics.roadrunner.geometry.Pose2d startPose, - com.acmerobotics.roadrunner.geometry.Pose2d endPose, - List<com.acmerobotics.roadrunner.trajectory.TrajectoryMarker> markers)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getDuration

        -
        public double getDuration()
        -
        -
      • -
      • -
        -

        getStartPose

        -
        public com.acmerobotics.roadrunner.geometry.Pose2d getStartPose()
        -
        -
      • -
      • -
        -

        getEndPose

        -
        public com.acmerobotics.roadrunner.geometry.Pose2d getEndPose()
        -
        -
      • -
      • -
        -

        getMarkers

        -
        public List<com.acmerobotics.roadrunner.trajectory.TrajectoryMarker> getMarkers()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html b/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html deleted file mode 100644 index ed7ddbef..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -TrajectorySegment (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TrajectorySegment

    -
    -
    java.lang.Object -
    com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment
    -
    -
    -
    -
    -
    public final class TrajectorySegment -extends SequenceSegment
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        TrajectorySegment

        -
        public TrajectorySegment(com.acmerobotics.roadrunner.trajectory.Trajectory trajectory)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getTrajectory

        -
        public com.acmerobotics.roadrunner.trajectory.Trajectory getTrajectory()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html b/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html deleted file mode 100644 index 291be577..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - -TurnSegment (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - - -
    java.lang.Object -
    com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
    -
    -
    -
    -
    -
    public final class TurnSegment -extends SequenceSegment
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        TurnSegment

        -
        public TurnSegment(com.acmerobotics.roadrunner.geometry.Pose2d startPose, - double totalRotation, - com.acmerobotics.roadrunner.profile.MotionProfile motionProfile, - List<com.acmerobotics.roadrunner.trajectory.TrajectoryMarker> markers)
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getTotalRotation

        -
        public final double getTotalRotation()
        -
        -
      • -
      • -
        -

        getMotionProfile

        -
        public final com.acmerobotics.roadrunner.profile.MotionProfile getMotionProfile()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html b/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html deleted file mode 100644 index 632909bc..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - -WaitSegment (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - - -
    java.lang.Object -
    com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    com.technototes.path.trajectorysequence.sequencesegment.WaitSegment
    -
    -
    -
    -
    -
    public final class WaitSegment -extends SequenceSegment
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        WaitSegment

        -
        public WaitSegment(com.acmerobotics.roadrunner.geometry.Pose2d pose, - double seconds, - List<com.acmerobotics.roadrunner.trajectory.TrajectoryMarker> markers)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-summary.html b/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-summary.html deleted file mode 100644 index ad241b90..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-summary.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -com.technototes.path.trajectorysequence.sequencesegment (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package com.technototes.path.trajectorysequence.sequencesegment

    -
    -
    -
    package com.technototes.path.trajectorysequence.sequencesegment
    -
    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-tree.html b/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-tree.html deleted file mode 100644 index 1e44816d..00000000 --- a/docs/Path/com/technototes/path/trajectorysequence/sequencesegment/package-tree.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - -com.technototes.path.trajectorysequence.sequencesegment Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package com.technototes.path.trajectorysequence.sequencesegment

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    -
      -
    • java.lang.Object -
        -
      • com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
          -
        • com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment
        • -
        • com.technototes.path.trajectorysequence.sequencesegment.TurnSegment
        • -
        • com.technototes.path.trajectorysequence.sequencesegment.WaitSegment
        • -
        -
      • -
      -
    • -
    -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/AxesSigns.html b/docs/Path/com/technototes/path/util/AxesSigns.html deleted file mode 100644 index c897f868..00000000 --- a/docs/Path/com/technototes/path/util/AxesSigns.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - -AxesSigns (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Enum Class AxesSigns

    -
    -
    java.lang.Object -
    java.lang.Enum<AxesSigns> -
    com.technototes.path.util.AxesSigns
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable, Comparable<AxesSigns>, Constable
    -
    -
    -
    public enum AxesSigns -extends Enum<AxesSigns>
    -
    IMU axes signs in the order XYZ (after remapping).
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Enum Constant Details

      - -
      -
    • - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        bVal

        -
        public final int bVal
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        values

        -
        public static AxesSigns[] values()
        -
        Returns an array containing the constants of this enum class, in -the order they are declared.
        -
        -
        Returns:
        -
        an array containing the constants of this enum class, in the order they are declared
        -
        -
        -
      • -
      • -
        -

        valueOf

        -
        public static AxesSigns valueOf(String name)
        -
        Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        IllegalArgumentException - if this enum class has no constant with the specified name
        -
        NullPointerException - if the argument is null
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/BNO055IMUUtil.html b/docs/Path/com/technototes/path/util/BNO055IMUUtil.html deleted file mode 100644 index bf58c80d..00000000 --- a/docs/Path/com/technototes/path/util/BNO055IMUUtil.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - -BNO055IMUUtil (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class BNO055IMUUtil

    -
    -
    java.lang.Object -
    com.technototes.path.util.BNO055IMUUtil
    -
    -
    -
    -
    public class BNO055IMUUtil -extends Object
    -
    Various utility functions for the BNO055 IMU.
    -
    -
    -
      - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      static void
      -
      remapAxes(com.qualcomm.hardware.bosch.BNO055IMU imu, - org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, - AxesSigns signs)
      -
      -
      Remap BNO055 IMU axes and signs.
      -
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

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

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        remapAxes

        -
        public static void remapAxes(com.qualcomm.hardware.bosch.BNO055IMU imu, - org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, - AxesSigns signs)
        -
        Remap BNO055 IMU axes and signs. For reference, the default order is AxesOrder.ZYX. - Call after BNO055IMU.initialize(BNO055IMU.Parameters). Although this isn't - mentioned in the datasheet, the axes order appears to affect the onboard sensor fusion. - - Adapted from this post.
        -
        -
        Parameters:
        -
        imu - IMU
        -
        order - axes order
        -
        signs - axes signs
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/DashboardUtil.html b/docs/Path/com/technototes/path/util/DashboardUtil.html deleted file mode 100644 index faf4baa4..00000000 --- a/docs/Path/com/technototes/path/util/DashboardUtil.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - -DashboardUtil (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class DashboardUtil

    -
    -
    java.lang.Object -
    com.technototes.path.util.DashboardUtil
    -
    -
    -
    -
    public class DashboardUtil -extends Object
    -
    Set of helper functions for drawing Road Runner paths and trajectories on dashboard canvases.
    -
    -
    -
      - -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      - -
       
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      static void
      -
      drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas canvas, - List<com.acmerobotics.roadrunner.geometry.Pose2d> poseHistory)
      -
       
      -
      static void
      -
      drawRobot(com.acmerobotics.dashboard.canvas.Canvas canvas, - com.acmerobotics.roadrunner.geometry.Pose2d pose)
      -
       
      -
      static void
      -
      drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas canvas, - com.acmerobotics.roadrunner.path.Path path)
      -
       
      -
      static void
      -
      drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas canvas, - com.acmerobotics.roadrunner.path.Path path, - double resolution)
      -
       
      -
      -
      -
      -
      -

      Methods inherited from class java.lang.Object

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

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        drawPoseHistory

        -
        public static void drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas canvas, - List<com.acmerobotics.roadrunner.geometry.Pose2d> poseHistory)
        -
        -
      • -
      • -
        -

        drawSampledPath

        -
        public static void drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas canvas, - com.acmerobotics.roadrunner.path.Path path, - double resolution)
        -
        -
      • -
      • -
        -

        drawSampledPath

        -
        public static void drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas canvas, - com.acmerobotics.roadrunner.path.Path path)
        -
        -
      • -
      • -
        -

        drawRobot

        -
        public static void drawRobot(com.acmerobotics.dashboard.canvas.Canvas canvas, - com.acmerobotics.roadrunner.geometry.Pose2d pose)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/LoggingUtil.html b/docs/Path/com/technototes/path/util/LoggingUtil.html deleted file mode 100644 index 2e9102c3..00000000 --- a/docs/Path/com/technototes/path/util/LoggingUtil.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - -LoggingUtil (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class LoggingUtil

    -
    -
    java.lang.Object -
    com.technototes.path.util.LoggingUtil
    -
    -
    -
    -
    public class LoggingUtil -extends Object
    -
    Utility functions for log files.
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Field Details

      - -
      -
    • - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getLogFile

        -
        public static File getLogFile(String name)
        -
        Obtain a log file with the provided name
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html b/docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html deleted file mode 100644 index 8ae2641b..00000000 --- a/docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - -LynxModuleUtil.LynxFirmwareVersion (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class LynxModuleUtil.LynxFirmwareVersion

    -
    -
    java.lang.Object -
    com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<LynxModuleUtil.LynxFirmwareVersion>
    -
    -
    -
    Enclosing class:
    -
    LynxModuleUtil
    -
    -
    - -
    Parsed representation of a Lynx module firmware version.
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html b/docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html deleted file mode 100644 index 8d32882a..00000000 --- a/docs/Path/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - -LynxModuleUtil.LynxFirmwareVersionException (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class LynxModuleUtil.LynxFirmwareVersionException

    -
    -
    java.lang.Object -
    java.lang.Throwable -
    java.lang.Exception -
    java.lang.RuntimeException -
    com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersionException
    -
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    -
    Enclosing class:
    -
    LynxModuleUtil
    -
    -
    - -
    Exception indicating an outdated Lynx firmware version.
    -
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    - -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/LynxModuleUtil.html b/docs/Path/com/technototes/path/util/LynxModuleUtil.html deleted file mode 100644 index 7f909314..00000000 --- a/docs/Path/com/technototes/path/util/LynxModuleUtil.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -LynxModuleUtil (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class LynxModuleUtil

    -
    -
    java.lang.Object -
    com.technototes.path.util.LynxModuleUtil
    -
    -
    -
    -
    public class LynxModuleUtil -extends Object
    -
    Collection of utilites for interacting with Lynx modules.
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getFirmwareVersion

        -
        public static LynxModuleUtil.LynxFirmwareVersion getFirmwareVersion(com.qualcomm.hardware.lynx.LynxModule module)
        -
        Retrieve and parse Lynx module firmware version.
        -
        -
        Parameters:
        -
        module - Lynx module
        -
        Returns:
        -
        parsed firmware version
        -
        -
        -
      • -
      • -
        -

        ensureMinimumFirmwareVersion

        -
        public static void ensureMinimumFirmwareVersion(com.qualcomm.robotcore.hardware.HardwareMap hardwareMap)
        -
        Ensure all of the Lynx modules attached to the robot satisfy the minimum requirement.
        -
        -
        Parameters:
        -
        hardwareMap - hardware map containing Lynx modules
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/RegressionUtil.AccelResult.html b/docs/Path/com/technototes/path/util/RegressionUtil.AccelResult.html deleted file mode 100644 index 5267a044..00000000 --- a/docs/Path/com/technototes/path/util/RegressionUtil.AccelResult.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - -RegressionUtil.AccelResult (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class RegressionUtil.AccelResult

    -
    -
    java.lang.Object -
    com.technototes.path.util.RegressionUtil.AccelResult
    -
    -
    -
    -
    Enclosing class:
    -
    RegressionUtil
    -
    -
    -
    public static class RegressionUtil.AccelResult -extends Object
    -
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        kA

        -
        public final double kA
        -
        -
      • -
      • -
        -

        rSquare

        -
        public final double rSquare
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        AccelResult

        -
        public AccelResult(double kA, - double rSquare)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/RegressionUtil.RampResult.html b/docs/Path/com/technototes/path/util/RegressionUtil.RampResult.html deleted file mode 100644 index 2396dd83..00000000 --- a/docs/Path/com/technototes/path/util/RegressionUtil.RampResult.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - -RegressionUtil.RampResult (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class RegressionUtil.RampResult

    -
    -
    java.lang.Object -
    com.technototes.path.util.RegressionUtil.RampResult
    -
    -
    -
    -
    Enclosing class:
    -
    RegressionUtil
    -
    -
    -
    public static class RegressionUtil.RampResult -extends Object
    -
    Feedforward parameter estimates from the ramp regression and additional summary statistics
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Field Details

      -
        -
      • -
        -

        kV

        -
        public final double kV
        -
        -
      • -
      • -
        -

        kStatic

        -
        public final double kStatic
        -
        -
      • -
      • -
        -

        rSquare

        -
        public final double rSquare
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        RampResult

        -
        public RampResult(double kV, - double kStatic, - double rSquare)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/RegressionUtil.html b/docs/Path/com/technototes/path/util/RegressionUtil.html deleted file mode 100644 index b507eb21..00000000 --- a/docs/Path/com/technototes/path/util/RegressionUtil.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - -RegressionUtil (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class RegressionUtil

    -
    -
    java.lang.Object -
    com.technototes.path.util.RegressionUtil
    -
    -
    -
    -
    public class RegressionUtil -extends Object
    -
    Various regression utilities.
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        fitRampData

        -
        public static RegressionUtil.RampResult fitRampData(List<Double> timeSamples, - List<Double> positionSamples, - List<Double> powerSamples, - boolean fitStatic, - @Nullable - File file)
        -
        Run regression to compute velocity and static feedforward from ramp test data. - - Here's the general procedure for gathering the requisite data: - 1. Slowly ramp the motor power/voltage and record encoder values along the way. - 2. Run a linear regression on the encoder velocity vs. motor power plot to obtain a slope - (kV) and an optional intercept (kStatic).
        -
        -
        Parameters:
        -
        timeSamples - time samples
        -
        positionSamples - position samples
        -
        powerSamples - power samples
        -
        fitStatic - fit kStatic
        -
        file - log file
        -
        -
        -
      • -
      • -
        -

        fitAccelData

        -
        public static RegressionUtil.AccelResult fitAccelData(List<Double> timeSamples, - List<Double> positionSamples, - List<Double> powerSamples, - RegressionUtil.RampResult rampResult, - @Nullable - File file)
        -
        Run regression to compute acceleration feedforward.
        -
        -
        Parameters:
        -
        timeSamples - time samples
        -
        positionSamples - position samples
        -
        powerSamples - power samples
        -
        rampResult - ramp result
        -
        file - log file
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/package-summary.html b/docs/Path/com/technototes/path/util/package-summary.html deleted file mode 100644 index 3a75b69a..00000000 --- a/docs/Path/com/technototes/path/util/package-summary.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -com.technototes.path.util (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package com.technototes.path.util

    -
    -
    -
    package com.technototes.path.util
    -
    - -
    -
    -
    -
    - - diff --git a/docs/Path/com/technototes/path/util/package-tree.html b/docs/Path/com/technototes/path/util/package-tree.html deleted file mode 100644 index 8db5fcf2..00000000 --- a/docs/Path/com/technototes/path/util/package-tree.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - -com.technototes.path.util Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package com.technototes.path.util

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - - diff --git a/docs/Path/element-list b/docs/Path/element-list deleted file mode 100644 index ad7e6cec..00000000 --- a/docs/Path/element-list +++ /dev/null @@ -1,6 +0,0 @@ -com.technototes.path.command -com.technototes.path.geometry -com.technototes.path.subsystem -com.technototes.path.trajectorysequence -com.technototes.path.trajectorysequence.sequencesegment -com.technototes.path.util diff --git a/docs/Path/help-doc.html b/docs/Path/help-doc.html deleted file mode 100644 index 5d7423c3..00000000 --- a/docs/Path/help-doc.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - API Help (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    - Starting from the Overview page, you can browse the - documentation using the links in each page, and in the navigation bar at the top of each - page. The Index and Search box allow you to navigate to - specific declarations and summary pages, including: - All Packages, - All Classes and Interfaces - -
    -
    -
    -

    Kinds of Pages

    - The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    -

    - The Overview page is the front page of this API document - and provides a list of all packages with a summary for each. This page can also - contain an overall description of the set of packages. -

    -
    -
    -

    Package

    -

    - Each package has a page that contains a list of its classes and interfaces, with a - summary for each. These pages may contain the following categories: -

    -
      -
    • Interfaces
    • -
    • Classes
    • -
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Interfaces
    • -
    -
    -
    -

    Class or Interface

    -

    - Each class, interface, nested class and nested interface has its own separate page. - Each of these pages has three sections consisting of a declaration and description, - member summary tables, and detailed member descriptions. Entries in each of these - sections are omitted if they are empty or not applicable. -

    -
      -
    • Class Inheritance Diagram
    • -
    • Direct Subclasses
    • -
    • All Known Subinterfaces
    • -
    • All Known Implementing Classes
    • -
    • Class or Interface Declaration
    • -
    • Class or Interface Description
    • -
    -
    -
      -
    • Nested Class Summary
    • -
    • Enum Constant Summary
    • -
    • Field Summary
    • -
    • Property Summary
    • -
    • Constructor Summary
    • -
    • Method Summary
    • -
    • Required Element Summary
    • -
    • Optional Element Summary
    • -
    -
    -
      -
    • Enum Constant Details
    • -
    • Field Details
    • -
    • Property Details
    • -
    • Constructor Details
    • -
    • Method Details
    • -
    • Element Details
    • -
    -

    - Note: Annotation interfaces have required and - optional elements, but not methods. Only enum classes have enum constants. The - components of a record class are displayed as part of the declaration of the record - class. Properties are a feature of JavaFX. -

    -

    - The summary entries are alphabetical, while the detailed descriptions are in the - order they appear in the source code. This preserves the logical groupings - established by the programmer. -

    -
    -
    -

    Other Files

    -

    - Packages and modules may contain pages with additional information related to the - declarations nearby. -

    -
    -
    -

    Tree (Class Hierarchy)

    -

    - There is a Class Hierarchy page for all packages, - plus a hierarchy for each package. Each hierarchy page contains a list of classes - and a list of interfaces. Classes are organized by inheritance structure starting - with java.lang.Object. Interfaces do not inherit from - java.lang.Object. -

    -
      -
    • - When viewing the Overview page, clicking on TREE displays the hierarchy for all - packages. -
    • -
    • - When viewing a particular package, class or interface page, clicking on TREE - displays the hierarchy for only that package. -
    • -
    -
    -
    -

    Serialized Form

    -

    - Each serializable or externalizable class has a description of its serialization - fields and methods. This information is of interest to those who implement rather - than use the API. While there is no link in the navigation bar, you can get to this - information by going to any serialized class and clicking "Serialized Form" in the - "See Also" section of the class description. -

    -
    -
    -

    All Packages

    -

    - The All Packages page contains an alphabetic - index of all packages contained in the documentation. -

    -
    -
    -

    All Classes and Interfaces

    -

    - The All Classes and Interfaces page contains an - alphabetic index of all classes and interfaces contained in the documentation, - including annotation interfaces, enum classes, and record classes. -

    -
    -
    -

    Index

    -

    - The Index contains an alphabetic index of all classes, - interfaces, constructors, methods, and fields in the documentation, as well as - summary pages such as All Packages, - All Classes and Interfaces. -

    -
    -
    -
    - This help file applies to API documentation generated by the standard doclet. -
    -
    -
    - - diff --git a/docs/Path/index-all.html b/docs/Path/index-all.html deleted file mode 100644 index d3ff9630..00000000 --- a/docs/Path/index-all.html +++ /dev/null @@ -1,6602 +0,0 @@ - - - - - Index (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    - A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form -

    A

    -
    -
    - AccelResult(double, double) - - Constructor for class com.technototes.path.util.RegressionUtil.AccelResult -
    -
     
    -
    - addDisplacementMarker(double, double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addDisplacementMarker(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addDisplacementMarker(DisplacementProducer, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addDisplacementMarker(MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addSpatialMarker(Vector2d, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(double, double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTemporalMarker(TimeProducer, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - addTrajectory(Trajectory) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - AxesSigns - - Enum Class in - com.technototes.path.util -
    -
    -
    IMU axes signs in the order XYZ (after remapping).
    -
    -
    - AXIAL_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    B

    -
    -
    - back(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - batteryVoltageSensor - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - BNO055IMUUtil - - Class in - com.technototes.path.util -
    -
    -
    Various utility functions for the BNO055 IMU.
    -
    -
    - BNO055IMUUtil() - - Constructor for class com.technototes.path.util.BNO055IMUUtil -
    -
     
    -
    - build() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - bVal - - Variable in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    -

    C

    -
    -
    - COLOR_ACTIVE_TRAJECTORY - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_ACTIVE_TURN - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_ACTIVE_WAIT - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_INACTIVE_TRAJECTORY - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_INACTIVE_TURN - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - COLOR_INACTIVE_WAIT - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - com.technototes.path.command - - package com.technototes.path.command -
    -
     
    -
    - com.technototes.path.geometry - - package com.technototes.path.geometry -
    -
     
    -
    - com.technototes.path.subsystem - - package com.technototes.path.subsystem -
    -
     
    -
    - com.technototes.path.trajectorysequence - - package com.technototes.path.trajectorysequence -
    -
     
    -
    - com.technototes.path.trajectorysequence.sequencesegment - - package com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - com.technototes.path.util - - package com.technototes.path.util -
    -
     
    -
    - compareTo(LynxModuleUtil.LynxFirmwareVersion) - - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - ConfigurablePose - - Class in - com.technototes.path.geometry -
    -
     
    -
    - ConfigurablePose() - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(double, double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(Pose2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(Vector2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePose(Vector2d, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - ConfigurablePoseD - - Class in - com.technototes.path.geometry -
    -
     
    -
    - ConfigurablePoseD() - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(double, double, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(Pose2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(Vector2d) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurablePoseD(Vector2d, double) - - Constructor for class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - ConfigurableVector - - Class in - com.technototes.path.geometry -
    -
     
    -
    - ConfigurableVector() - - Constructor for class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - ConfigurableVector(double, double) - - Constructor for class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - ConfigurableVector(Vector2d) - - Constructor for class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - CROSS_TRACK_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    D

    -
    -
    - DashboardUtil - - Class in - com.technototes.path.util -
    -
    -
    - Set of helper functions for drawing Road Runner paths and trajectories on dashboard - canvases. -
    -
    -
    - DashboardUtil() - - Constructor for class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - DeadWheelConstants - - Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.EncoderOverflow - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.ForwardOffset - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.GearRatio - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.LateralDistance - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.TicksPerRev - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DeadWheelConstants.WheelRadius - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - DistanceSensorLocalizer - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - DistanceSensorLocalizer(IGyro, Map<IDistanceSensor, Pose2d>) - - Constructor for class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - DO_DASH - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - drawPoseHistory(Canvas, List<Pose2d>) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - drawRobot(Canvas, Pose2d) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - drawSampledPath(Canvas, Path) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - drawSampledPath(Canvas, Path, double) - - Static method in class com.technototes.path.util.DashboardUtil -
    -
     
    -
    - duration() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    -

    E

    -
    -
    - EmptySequenceException - - Exception in - com.technototes.path.trajectorysequence -
    -
     
    -
    - EmptySequenceException() - - Constructor for exception com.technototes.path.trajectorysequence.EmptySequenceException -
    -
     
    -
    - encoderOverflow - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - encoderTicksToInches(double) - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - encoderTicksToInches(double, double, double, double) - - Static method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - encoderTicksToInches(double, double, double, double) - - Static method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - encoderTicksToInches(double, double, double, double) - - Static method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - end() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - end(boolean) - - Method in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - end(boolean) - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - end(boolean) - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - eng - - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - ensureMinimumFirmwareVersion(HardwareMap) - - Static method in class com.technototes.path.util.LynxModuleUtil -
    -
    -
    - Ensure all of the Lynx modules attached to the robot satisfy the minimum - requirement. -
    -
    -
    - equals(Object) - - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.ResetGyroCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - execute() - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    -

    F

    -
    -
    - fitAccelData(List<Double>, List<Double>, List<Double>, - RegressionUtil.RampResult, File) - - Static method in class com.technototes.path.util.RegressionUtil -
    -
    -
    Run regression to compute acceleration feedforward.
    -
    -
    - fitRampData(List<Double>, List<Double>, List<Double>, boolean, - File) - - Static method in class com.technototes.path.util.RegressionUtil -
    -
    -
    - Run regression to compute velocity and static feedforward from ramp test data. -
    -
    -
    - FOLLOW_TRAJECTORY - - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
     
    -
    - followTrajectory(Trajectory) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectory(Trajectory) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectoryAsync(Trajectory) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectoryAsync(Trajectory) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequence(TrajectorySequence) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequence(TrajectorySequence) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequenceAsync(TrajectorySequence) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequenceAsync(TrajectorySequence) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - followTrajectorySequenceAsync(TrajectorySequence) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - forward(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - forwardOffset - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - frontEncoder - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    -

    G

    -
    -
    - GEAR_RATIO - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - GEAR_RATIO - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - gearRatio - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - get(int) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - getAccelerationConstraint(double) - - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getAccelerationConstraint(double) - - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getBoolean(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getBoolean(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getBoolean(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getConstant() - - Method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getConstant() - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getConstant() - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getDouble(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getDouble(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getDouble(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getDuration() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getEndPose() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getExternalHeadingVelocity() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getExternalHeadingVelocity() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getFirmwareVersion(LynxModule) - - Static method in class com.technototes.path.util.LynxModuleUtil -
    -
    -
    Retrieve and parse Lynx module firmware version.
    -
    -
    - getGearRatio() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getHeading() - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - getHeading() - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - getHeading() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - getInt(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getInt(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getLastError() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getLastError() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getLastPoseError() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - getLogFile(String) - - Static method in class com.technototes.path.util.LoggingUtil -
    -
    -
    Obtain a log file with the provided name
    -
    -
    - getMarkers() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getMotionProfile() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment -
    -
     
    -
    - getMotorVelocityF(double) - - Static method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - getMotorVelocityF(double) - - Static method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getMotorVelocityF(double) - - Static method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getPID(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getPID(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getPIDF(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - getPIDF(Class<? extends Annotation>) - - Method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - getPoseEstimate() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - getPoseVelocity() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - getRadians() - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - getRawExternalHeading() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getRawExternalHeading() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getStartPose() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - getTicksPerRev() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getTotalRotation() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment -
    -
     
    -
    - getTrajectory() - - Method in class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment -
    -
     
    -
    - getVelocityConstraint(double, double, double) - - Static method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getVelocityConstraint(double, double, double) - - Static method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getWheelPositions() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getWheelPositions() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getWheelPositions() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getWheelRadius() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getWheelVelocities() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - getWheelVelocities() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - getWheelVelocities() - - Method in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - getX() - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - getY() - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - gyroOffset - - Variable in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    -

    H

    -
    -
    - heading - - Variable in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - heading - - Variable in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - HEADING_PID - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - HEADING_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    I

    -
    -
    - IDLE - - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
     
    -
    - imu - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - initialize() - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - isBusy() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - isBusy() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - isBusy() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - isFinished() - - Method in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - isFinished() - - Method in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - isFinished() - - Method in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    -

    K

    -
    -
    - kA - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - kA - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - kA - - Variable in class com.technototes.path.util.RegressionUtil.AccelResult -
    -
     
    -
    - kStatic - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - kStatic - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - kStatic - - Variable in class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    - kV - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - kV - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - kV - - Variable in class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    -

    L

    -
    -
    - LATERAL_MULTIPLIER - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - LATERAL_MULTIPLIER - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - lateralDistance - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - leftEncoder - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - leftFront - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - leftRear - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - lineTo(Vector2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToConstantHeading(Vector2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToLinearHeading(Pose2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToSplineHeading(Pose2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - LoggingUtil - - Class in - com.technototes.path.util -
    -
    -
    Utility functions for log files.
    -
    -
    - LoggingUtil() - - Constructor for class com.technototes.path.util.LoggingUtil -
    -
     
    -
    - LynxFirmwareVersion(int, int, int) - - Constructor for class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - LynxFirmwareVersionException(String) - - Constructor for exception com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersionException -
    -
     
    -
    - LynxModuleUtil - - Class in - com.technototes.path.util -
    -
    -
    Collection of utilites for interacting with Lynx modules.
    -
    -
    - LynxModuleUtil() - - Constructor for class com.technototes.path.util.LynxModuleUtil -
    -
     
    -
    - LynxModuleUtil.LynxFirmwareVersion - - Class in - com.technototes.path.util -
    -
    -
    Parsed representation of a Lynx module firmware version.
    -
    -
    - LynxModuleUtil.LynxFirmwareVersionException - - Exception in - com.technototes.path.util -
    -
    -
    Exception indicating an outdated Lynx firmware version.
    -
    -
    -

    M

    -
    -
    - major - - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - mapPose(Function<Pose2d, T>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mapPose(Function<Pose2d, T>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mapVec(Function<Vector2d, T>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mapX(Function<Double, T>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mapY(Function<Double, T>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - MAX_ACCEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_ACCEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_ACCEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_ACCEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_VEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_ANG_VEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_RPM - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_RPM - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MAX_VEL - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MAX_VEL - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - MecanumConstants - - Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.GearRatio - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.HeadPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.KA - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.KStatic - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.KV - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.LateralMult - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxAngleAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxAngleVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxRPM - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MaxVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.MotorVeloPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.OmegaWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.PoseLimit - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.TicksPerRev - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.TrackWidth - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.TransPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.UseDriveEncoder - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.VXWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.VYWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.WheelBase - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumConstants.WheelRadius - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - MecanumDriveCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, - DoubleSupplier, DoubleSupplier) - - Constructor for class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - minor - - Variable in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - mirrorOverX(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mirrorOverX(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mirrorOverY(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mirrorOverY(Pose2d) - - Static method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - MOTOR_VELO_PID - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - MOTOR_VELO_PID - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - motors - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - mutateHeading(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateHeading(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutatePose(UnaryOperator<Pose2d>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutatePose(UnaryOperator<Pose2d>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateVec(UnaryOperator<Vector2d>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateVec(UnaryOperator<Vector2d>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateVec(UnaryOperator<Vector2d>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mutateX(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateX(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateX(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - mutateY(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - mutateY(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - mutateY(UnaryOperator<Double>) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    -

    N

    -
    -
    - NNN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - NNP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - NPN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - NPP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    -

    O

    -
    -
    - OMEGA_WEIGHT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - OMEGA_WEIGHT - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    P

    -
    -
    - PathingMecanumDrivebaseSubsystem - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, IMU, MecanumConstants) - - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - PathingMecanumDrivebaseSubsystem(EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, EncodedMotor<DcMotorEx>, - EncodedMotor<DcMotorEx>, IMU, MecanumConstants, Localizer) - - Constructor for class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - PathingMecanumDrivebaseSubsystem.Mode - - Enum Class in - com.technototes.path.subsystem -
    -
     
    -
    - PNN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - PNP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - POSE_HISTORY_LIMIT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - POSE_HISTORY_LIMIT - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - POSE_HISTORY_LIMIT - - Static variable in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - PPN - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    - PPP - - Enum constant in enum class com.technototes.path.util.AxesSigns -
    -
     
    -
    -

    R

    -
    -
    - r - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - RampResult(double, double, double) - - Constructor for class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    - RegenerativeTrajectoryCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, - Function<Function<Pose2d, TrajectoryBuilder>, Trajectory>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, - Trajectory>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, - Supplier<Trajectory>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, - TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Function<Function<Pose2d, TrajectorySequenceBuilder>, - TrajectorySequence>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Function<T, TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Supplier<TrajectorySequence>) - - Constructor for class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - RegressionUtil - - Class in - com.technototes.path.util -
    -
    -
    Various regression utilities.
    -
    -
    - RegressionUtil() - - Constructor for class com.technototes.path.util.RegressionUtil -
    -
     
    -
    - RegressionUtil.AccelResult - - Class in - com.technototes.path.util -
    -
    -
    - Feedforward parameter estimates from the ramp regression and additional summary - statistics -
    -
    -
    - RegressionUtil.RampResult - - Class in - com.technototes.path.util -
    -
    -
    - Feedforward parameter estimates from the ramp regression and additional summary - statistics -
    -
    -
    - remapAxes(BNO055IMU, AxesOrder, AxesSigns) - - Static method in class com.technototes.path.util.BNO055IMUUtil -
    -
    -
    Remap BNO055 IMU axes and signs.
    -
    -
    - resetAccelConstraint() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - resetConstraints() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - ResetGyroCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - ResetGyroCommand(PathingMecanumDrivebaseSubsystem) - - Constructor for class com.technototes.path.command.ResetGyroCommand -
    -
     
    -
    - resetTurnConstraint() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - resetVelConstraint() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - rightEncoder - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - rightFront - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - rightRear - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - ROAD_RUNNER_FOLDER - - Static variable in class com.technototes.path.util.LoggingUtil -
    -
     
    -
    - rpmToVelocity(double, double, double) - - Static method in interface com.technototes.path.subsystem.DeadWheelConstants -
    -
     
    -
    - rpmToVelocity(double, double, double) - - Static method in interface com.technototes.path.subsystem.MecanumConstants -
    -
     
    -
    - rpmToVelocity(double, double, double) - - Static method in interface com.technototes.path.subsystem.TankConstants -
    -
     
    -
    - rSquare - - Variable in class com.technototes.path.util.RegressionUtil.AccelResult -
    -
     
    -
    - rSquare - - Variable in class com.technototes.path.util.RegressionUtil.RampResult -
    -
     
    -
    - RUN_USING_ENCODER - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - RUN_USING_ENCODER - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    -

    S

    -
    -
    - SequenceSegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - SequenceSegment(double, Pose2d, Pose2d, List<TrajectoryMarker>) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment -
    -
     
    -
    - set(double, double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(double, double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(double, double) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - set(double, double, double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(double, double, double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(Pose2d) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(Pose2d) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(Vector2d) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(Vector2d) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - set(Vector2d) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - set(Vector2d, double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - set(Vector2d, double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setAccelConstraint(TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setGyroOffset(double) - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - setHeading(double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - setHeading(double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setMode(DcMotor.RunMode) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setMode(DcMotor.RunMode) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setMotorPowers(double, double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setMotorPowers(double, double, double, double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setPoseEstimate(Pose2d) - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - setReversed(boolean) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setTangent(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setTurnConstraint(double, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setVelConstraint(TrajectoryVelocityConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - setWeightedDrivePower(Pose2d) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setWeightedDrivePower(Pose2d) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - setX(double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - setX(double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setX(double) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - setY(double) - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - setY(double) - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - setY(double) - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - setZeroPowerBehavior(DcMotor.ZeroPowerBehavior) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - size() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - speed - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - splineTo(Vector2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineTo(Vector2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToConstantHeading(Vector2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToLinearHeading(Pose2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToSplineHeading(Pose2d, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - start() - - Method in class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - stop() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - strafeLeft(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeLeft(double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeRight(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeRight(double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeTo(Vector2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - strafeTo(Vector2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.ResetGyroCommand -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - subsystem - - Variable in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    -

    T

    -
    -
    - TankConstants - - Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.AxialPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.CrossPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.GearRatio - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.HeadPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.KA - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.KStatic - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.KV - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.LateralMult - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxAngleAccel - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxAngleVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxRPM - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MaxVelo - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.MotorVeloPID - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.OmegaWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.PoseLimit - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.TicksPerRev - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.TrackWidth - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.UseDriveEncoder - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.VXWeight - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankConstants.WheelRadius - - Annotation Interface in - com.technototes.path.subsystem -
    -
     
    -
    - TankDrivebaseSubsystem - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - TankDrivebaseSubsystem(EncodedMotorGroup<DcMotorEx>, - EncodedMotorGroup<DcMotorEx>, IMU, TankConstants, Localizer) - - Constructor for class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - ThreeDeadWheelLocalizer - - Class in - com.technototes.path.subsystem -
    -
     
    -
    - ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, - DeadWheelConstants) - - Constructor for class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - TICKS_PER_REV - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - TICKS_PER_REV - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - ticksPerRev - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    - toPose() - - Method in class com.technototes.path.geometry.ConfigurablePose -
    -
     
    -
    - toPose() - - Method in class com.technototes.path.geometry.ConfigurablePoseD -
    -
     
    -
    - toString() - - Method in class com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion -
    -
     
    -
    - toVec() - - Method in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    - TRACK_WIDTH - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - TRACK_WIDTH - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - trajectory - - Variable in class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - trajectory - - Variable in class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - trajectoryBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, boolean) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, boolean) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectoryBuilder(Pose2d, double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - TrajectoryCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory>, T) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<Function<Pose2d, - TrajectoryBuilder>, Trajectory>) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function<T, Trajectory>, - T) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier<Trajectory>) - - Constructor for class com.technototes.path.command.TrajectoryCommand -
    -
     
    -
    - TrajectorySegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - TrajectorySegment(Trajectory) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment -
    -
     
    -
    - TrajectorySequence - - Class in - com.technototes.path.trajectorysequence -
    -
     
    -
    - TrajectorySequence(List<SequenceSegment>) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequence -
    -
     
    -
    - trajectorySequenceBuilder() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectorySequenceBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - trajectorySequenceBuilder(Pose2d) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - TrajectorySequenceBuilder - - Class in - com.technototes.path.trajectorysequence -
    -
     
    -
    - TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint, double, double) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, - TrajectoryAccelerationConstraint, double, double) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - TrajectorySequenceCommand - - Class in - com.technototes.path.command -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, - TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Function<Function<Pose2d, TrajectorySequenceBuilder>, - TrajectorySequence>) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function<T, - TrajectorySequence>, T) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, - Supplier<TrajectorySequence>) - - Constructor for class com.technototes.path.command.TrajectorySequenceCommand -
    -
     
    -
    - TrajectorySequenceRunner - - Class in - com.technototes.path.trajectorysequence -
    -
     
    -
    - TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients) - - Constructor for class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    - trajFunc - - Variable in class com.technototes.path.command.RegenerativeTrajectoryCommand -
    -
     
    -
    - trajFunc - - Variable in class com.technototes.path.command.RegenerativeTrajectorySequenceCommand -
    -
     
    -
    - TRANSLATIONAL_PID - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - turn(double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - turn(double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - turn(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - turn(double, double, double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - TURN - - Enum constant in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
     
    -
    - turnAsync(double) - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - turnAsync(double) - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - TurnSegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - TurnSegment(Pose2d, double, MotionProfile, List<TrajectoryMarker>) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.TurnSegment -
    -
     
    -
    -

    U

    -
    -
    - UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - update() - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - update() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - update() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - update(Pose2d) - - Method in class com.technototes.path.subsystem.DistanceSensorLocalizer -
    -
     
    -
    - update(Pose2d, Pose2d) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceRunner -
    -
     
    -
    -

    V

    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.path.util.AxesSigns -
    -
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - values() - - Static method in enum class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem.Mode -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.path.util.AxesSigns -
    -
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - VX_WEIGHT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - VX_WEIGHT - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - VY_WEIGHT - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    -

    W

    -
    -
    - waitForIdle() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - waitForIdle() - - Method in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - waitSeconds(double) - - Method in class com.technototes.path.trajectorysequence.TrajectorySequenceBuilder -
    -
     
    -
    - WaitSegment - - Class in - com.technototes.path.trajectorysequence.sequencesegment -
    -
     
    -
    - WaitSegment(Pose2d, double, List<TrajectoryMarker>) - - Constructor for class com.technototes.path.trajectorysequence.sequencesegment.WaitSegment -
    -
     
    -
    - WHEEL_BASE - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - WHEEL_RADIUS - - Variable in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - WHEEL_RADIUS - - Variable in class com.technototes.path.subsystem.TankDrivebaseSubsystem -
    -
     
    -
    - wheelRadius - - Variable in class com.technototes.path.subsystem.ThreeDeadWheelLocalizer -
    -
     
    -
    -

    X

    -
    -
    - x - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - x - - Variable in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    -

    Y

    -
    -
    - y - - Variable in class com.technototes.path.command.MecanumDriveCommand -
    -
     
    -
    - y - - Variable in class com.technototes.path.geometry.ConfigurableVector -
    -
     
    -
    -

    Z

    -
    -
    - zeroExternalHeading() - - Method in class com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem -
    -
     
    -
    - A B C D E F G H I K L M N O P R S T U V W X Y Z 
    All Classes and Interfaces|All Packages|Serialized Form -
    -
    -
    - - diff --git a/docs/Path/index.html b/docs/Path/index.html deleted file mode 100644 index eed71d00..00000000 --- a/docs/Path/index.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - Overview (Path API) - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Path API

    -
    -
    -
    Packages
    - -
    -
    -
    -
    - - diff --git a/docs/Path/jquery-ui.overrides.css b/docs/Path/jquery-ui.overrides.css deleted file mode 100644 index bc437535..00000000 --- a/docs/Path/jquery-ui.overrides.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -.ui-state-active, -.ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active, -a.ui-button:active, -.ui-button:active, -.ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #f8981d; - border: 1px solid #f8981d; -} diff --git a/docs/Path/legal/ADDITIONAL_LICENSE_INFO b/docs/Path/legal/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index ff700cd0..00000000 --- a/docs/Path/legal/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1,37 +0,0 @@ - ADDITIONAL INFORMATION ABOUT LICENSING - -Certain files distributed by Oracle America, Inc. and/or its affiliates are -subject to the following clarification and special exception to the GPLv2, -based on the GNU Project exception for its Classpath libraries, known as the -GNU Classpath Exception. - -Note that Oracle includes multiple, independent programs in this software -package. Some of those programs are provided under licenses deemed -incompatible with the GPLv2 by the Free Software Foundation and others. -For example, the package includes programs licensed under the Apache -License, Version 2.0 and may include FreeType. Such programs are licensed -to you under their original licenses. - -Oracle facilitates your further distribution of this package by adding the -Classpath Exception to the necessary parts of its GPLv2 code, which permits -you to use that code in combination with other independent modules not -licensed under the GPLv2. However, note that this would not permit you to -commingle code under an incompatible license with Oracle's GPLv2 licensed -code by, for example, cutting and pasting such code into a file also -containing Oracle's GPLv2 licensed code and then distributing the result. - -Additionally, if you were to remove the Classpath Exception from any of the -files to which it applies and distribute the result, you would likely be -required to license some or all of the other code in that distribution under -the GPLv2 as well, and since the GPLv2 is incompatible with the license terms -of some items included in the distribution by Oracle, removing the Classpath -Exception could therefore effectively compromise your ability to further -distribute the package. - -Failing to distribute notices associated with some files may also create -unexpected legal consequences. - -Proceed with caution and we recommend that you obtain the advice of a lawyer -skilled in open source matters before removing the Classpath Exception or -making modifications to this package which may subsequently be redistributed -and/or involve the use of third party software. diff --git a/docs/Path/legal/ASSEMBLY_EXCEPTION b/docs/Path/legal/ASSEMBLY_EXCEPTION deleted file mode 100644 index 065b8d90..00000000 --- a/docs/Path/legal/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1,27 +0,0 @@ - -OPENJDK ASSEMBLY EXCEPTION - -The OpenJDK source code made available by Oracle America, Inc. (Oracle) at -openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU -General Public License version 2 -only ("GPL2"), with the following clarification and special exception. - - Linking this OpenJDK Code statically or dynamically with other code - is making a combined work based on this library. Thus, the terms - and conditions of GPL2 cover the whole combination. - - As a special exception, Oracle gives you permission to link this - OpenJDK Code with certain code licensed by Oracle as indicated at - http://openjdk.java.net/legal/exception-modules-2007-05-08.html - ("Designated Exception Modules") to produce an executable, - regardless of the license terms of the Designated Exception Modules, - and to copy and distribute the resulting executable under GPL2, - provided that the Designated Exception Modules continue to be - governed by the licenses under which they were offered by Oracle. - -As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code -to build an executable that includes those portions of necessary code that -Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 -with the Classpath exception). If you modify or add to the OpenJDK code, -that new GPL2 code may still be combined with Designated Exception Modules -if the new code is made subject to this exception by its copyright holder. diff --git a/docs/Path/legal/LICENSE b/docs/Path/legal/LICENSE deleted file mode 100644 index 8b400c7a..00000000 --- a/docs/Path/legal/LICENSE +++ /dev/null @@ -1,347 +0,0 @@ -The GNU General Public License (GPL) - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public License is intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software is -covered by the GNU Library General Public License instead.) You can apply it to -your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom to -distribute copies of free software (and charge for this service if you wish), -that you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs; and that you know you -can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny -you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of the -software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for -a fee, you must give the recipients all the rights that you have. You must -make sure that they, too, receive or can get the source code. And you must -show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients to -know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program proprietary. -To prevent this, we have made it clear that any patent must be licensed for -everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms of -this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is included -without limitation in the term "modification".) Each licensee is addressed as -"you". - -Activities other than copying, distribution and modification are not covered by -this License; they are outside its scope. The act of running the Program is -not restricted, and the output from the Program is covered only if its contents -constitute a work based on the Program (independent of having been made by -running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as -you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may -at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus -forming a work based on the Program, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all of -these conditions: - - a) You must cause the modified files to carry prominent notices stating - that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or - in part contains or is derived from the Program or any part thereof, to be - licensed as a whole at no charge to all third parties under the terms of - this License. - - c) If the modified program normally reads commands interactively when run, - you must cause it, when started running for such interactive use in the - most ordinary way, to print or display an announcement including an - appropriate copyright notice and a notice that there is no warranty (or - else, saying that you provide a warranty) and that users may redistribute - the program under these conditions, and telling the user how to view a copy - of this License. (Exception: if the Program itself is interactive but does - not normally print such an announcement, your work based on the Program is - not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, and -its terms, do not apply to those sections when you distribute them as separate -works. But when you distribute the same sections as part of a whole which is a -work based on the Program, the distribution of the whole must be on the terms -of this License, whose permissions for other licensees extend to the entire -whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise the -right to control the distribution of derivative or collective works based on -the Program. - -In addition, mere aggregation of another work not based on the Program with the -Program (or with a work based on the Program) on a volume of a storage or -distribution medium does not bring the other work under the scope of this -License. - -3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 and -2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source - code, which must be distributed under the terms of Sections 1 and 2 above - on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to - give any third party, for a charge no more than your cost of physically - performing source distribution, a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of Sections 1 - and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to - distribute corresponding source code. (This alternative is allowed only - for noncommercial distribution and only if you received the program in - object code or executable form with such an offer, in accord with - Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and installation -of the executable. However, as a special exception, the source code -distributed need not include anything that is normally distributed (in either -source or binary form) with the major components (compiler, kernel, and so on) -of the operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the source -code from the same place counts as distribution of the source code, even though -third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, or -rights, from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. -However, nothing else grants you permission to modify or distribute the Program -or its derivative works. These actions are prohibited by law if you do not -accept this License. Therefore, by modifying or distributing the Program (or -any work based on the Program), you indicate your acceptance of this License to -do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), -the recipient automatically receives a license from the original licensor to -copy, distribute or modify the Program subject to these terms and conditions. -You may not impose any further restrictions on the recipients' exercise of the -rights granted herein. You are not responsible for enforcing compliance by -third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), conditions -are imposed on you (whether by court order, agreement or otherwise) that -contradict the conditions of this License, they do not excuse you from the -conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose that -choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original -copyright holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In -such case, this License incorporates the limitation as if written in the body -of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the -General Public License from time to time. Such new versions will be similar in -spirit to the present version, but may differ in detail to address new problems -or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any later -version", you have the option of following the terms and conditions either of -that version or of any later version published by the Free Software Foundation. -If the Program does not specify a version number of this License, you may -choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software Foundation, -write to the Free Software Foundation; we sometimes make exceptions for this. -Our decision will be guided by the two goals of preserving the free status of -all derivatives of our free software and of promoting the sharing and reuse of -software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE -PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL -ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE -PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR -INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA -BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER -OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively convey the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - One line to give the program's name and a brief idea of what it does. - - Copyright (C) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when it -starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author Gnomovision comes - with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free - software, and you are welcome to redistribute it under certain conditions; - type 'show c' for details. - -The hypothetical commands 'show w' and 'show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may be -called something other than 'show w' and 'show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the program, if necessary. Here -is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - 'Gnomovision' (which makes passes at compilers) written by James Hacker. - - signature of Ty Coon, 1 April 1989 - - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General Public -License instead of this License. - - -"CLASSPATH" EXCEPTION TO THE GPL - -Certain source files distributed by Oracle America and/or its affiliates are -subject to the following clarification and special exception to the GPL, but -only where Oracle has expressly included in the particular source file's header -the words "Oracle designates this particular file as subject to the "Classpath" -exception as provided by Oracle in the LICENSE file that accompanied this code." - - Linking this library statically or dynamically with other modules is making - a combined work based on this library. Thus, the terms and conditions of - the GNU General Public License cover the whole combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent modules, - and to copy and distribute the resulting executable under terms of your - choice, provided that you also meet, for each linked independent module, - the terms and conditions of the license of that module. An independent - module is a module which is not derived from or based on this library. If - you modify this library, you may extend this exception to your version of - the library, but you are not obligated to do so. If you do not wish to do - so, delete this exception statement from your version. diff --git a/docs/Path/legal/jquery.md b/docs/Path/legal/jquery.md deleted file mode 100644 index d468b318..00000000 --- a/docs/Path/legal/jquery.md +++ /dev/null @@ -1,72 +0,0 @@ -## jQuery v3.6.1 - -### jQuery License -``` -jQuery v 3.6.1 -Copyright OpenJS Foundation and other contributors, https://openjsf.org/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -****************************************** - -The jQuery JavaScript Library v3.6.1 also includes Sizzle.js - -Sizzle.js includes the following license: - -Copyright JS Foundation and other contributors, https://js.foundation/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/sizzle - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. - -********************* - -``` diff --git a/docs/Path/legal/jqueryUI.md b/docs/Path/legal/jqueryUI.md deleted file mode 100644 index 8031bdb5..00000000 --- a/docs/Path/legal/jqueryUI.md +++ /dev/null @@ -1,49 +0,0 @@ -## jQuery UI v1.12.1 - -### jQuery UI License -``` -Copyright jQuery Foundation and other contributors, https://jquery.org/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/jquery-ui - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code contained within the demos directory. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. - -``` diff --git a/docs/Path/member-search-index.js b/docs/Path/member-search-index.js deleted file mode 100644 index 7cbacf96..00000000 --- a/docs/Path/member-search-index.js +++ /dev/null @@ -1,1563 +0,0 @@ -memberSearchIndex = [ - { - p: 'com.technototes.path.util', - c: 'RegressionUtil.AccelResult', - l: 'AccelResult(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(DisplacementProducer, MarkerCallback)', - u: 'addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.DisplacementProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(double, double, MarkerCallback)', - u: 'addDisplacementMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(double, MarkerCallback)', - u: 'addDisplacementMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addDisplacementMarker(MarkerCallback)', - u: 'addDisplacementMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addSpatialMarker(Vector2d, MarkerCallback)', - u: 'addSpatialMarker(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(double, double, MarkerCallback)', - u: 'addTemporalMarker(double,double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(double, MarkerCallback)', - u: 'addTemporalMarker(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(MarkerCallback)', - u: 'addTemporalMarker(com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTemporalMarker(TimeProducer, MarkerCallback)', - u: 'addTemporalMarker(com.acmerobotics.roadrunner.trajectory.TimeProducer,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'addTrajectory(Trajectory)', - u: 'addTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'AXIAL_PID' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'back(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'back(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'back(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'batteryVoltageSensor', - }, - { p: 'com.technototes.path.util', c: 'BNO055IMUUtil', l: 'BNO055IMUUtil()', u: '%3Cinit%3E()' }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceBuilder', l: 'build()' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'bVal' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_ACTIVE_TRAJECTORY', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_ACTIVE_TURN', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_ACTIVE_WAIT', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_INACTIVE_TRAJECTORY', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_INACTIVE_TURN', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'COLOR_INACTIVE_WAIT', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersion', - l: 'compareTo(LynxModuleUtil.LynxFirmwareVersion)', - u: 'compareTo(com.technototes.path.util.LynxModuleUtil.LynxFirmwareVersion)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(Pose2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(Vector2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'ConfigurablePose(Vector2d, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(Pose2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(Vector2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'ConfigurablePoseD(Vector2d, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'ConfigurableVector()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'ConfigurableVector(double, double)', - u: '%3Cinit%3E(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'ConfigurableVector(Vector2d)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'CROSS_TRACK_PID' }, - { p: 'com.technototes.path.util', c: 'DashboardUtil', l: 'DashboardUtil()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.path.subsystem', - c: 'DistanceSensorLocalizer', - l: 'DistanceSensorLocalizer(IGyro, Map)', - u: '%3Cinit%3E(com.technototes.library.hardware.sensor.IGyro,java.util.Map)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceRunner', l: 'DO_DASH' }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawPoseHistory(Canvas, List)', - u: 'drawPoseHistory(com.acmerobotics.dashboard.canvas.Canvas,java.util.List)', - }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawRobot(Canvas, Pose2d)', - u: 'drawRobot(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawSampledPath(Canvas, Path)', - u: 'drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path)', - }, - { - p: 'com.technototes.path.util', - c: 'DashboardUtil', - l: 'drawSampledPath(Canvas, Path, double)', - u: 'drawSampledPath(com.acmerobotics.dashboard.canvas.Canvas,com.acmerobotics.roadrunner.path.Path,double)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'duration()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'EmptySequenceException', - l: 'EmptySequenceException()', - u: '%3Cinit%3E()', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'encoderOverflow' }, - { - p: 'com.technototes.path.subsystem', - c: 'ThreeDeadWheelLocalizer', - l: 'encoderTicksToInches(double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'encoderTicksToInches(double, double, double, double)', - u: 'encoderTicksToInches(double,double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'encoderTicksToInches(double, double, double, double)', - u: 'encoderTicksToInches(double,double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'encoderTicksToInches(double, double, double, double)', - u: 'encoderTicksToInches(double,double,double,double)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'end()' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'end(boolean)' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'end(boolean)' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'end(boolean)' }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'eng' }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil', - l: 'ensureMinimumFirmwareVersion(HardwareMap)', - u: 'ensureMinimumFirmwareVersion(com.qualcomm.robotcore.hardware.HardwareMap)', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersion', - l: 'equals(Object)', - u: 'equals(java.lang.Object)', - }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'execute()' }, - { p: 'com.technototes.path.command', c: 'ResetGyroCommand', l: 'execute()' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'execute()' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'execute()' }, - { - p: 'com.technototes.path.util', - c: 'RegressionUtil', - l: 'fitAccelData(List, List, List, RegressionUtil.RampResult, File)', - u: 'fitAccelData(java.util.List,java.util.List,java.util.List,com.technototes.path.util.RegressionUtil.RampResult,java.io.File)', - }, - { - p: 'com.technototes.path.util', - c: 'RegressionUtil', - l: 'fitRampData(List, List, List, boolean, File)', - u: 'fitRampData(java.util.List,java.util.List,java.util.List,boolean,java.io.File)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem.Mode', - l: 'FOLLOW_TRAJECTORY', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectory(Trajectory)', - u: 'followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectory(Trajectory)', - u: 'followTrajectory(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectoryAsync(Trajectory)', - u: 'followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectoryAsync(Trajectory)', - u: 'followTrajectoryAsync(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectorySequence(TrajectorySequence)', - u: 'followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectorySequence(TrajectorySequence)', - u: 'followTrajectorySequence(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'followTrajectorySequenceAsync(TrajectorySequence)', - u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'followTrajectorySequenceAsync(TrajectorySequence)', - u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'followTrajectorySequenceAsync(TrajectorySequence)', - u: 'followTrajectorySequenceAsync(com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'forward(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'forward(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'forward(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'forwardOffset' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'frontEncoder' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'GEAR_RATIO' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'GEAR_RATIO' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'gearRatio' }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'get(int)' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getAccelerationConstraint(double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getAccelerationConstraint(double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'getBoolean(Class)', - u: 'getBoolean(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getBoolean(Class)', - u: 'getBoolean(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getBoolean(Class)', - u: 'getBoolean(java.lang.Class)', - }, - { p: 'com.technototes.path.subsystem', c: 'DeadWheelConstants', l: 'getConstant()' }, - { p: 'com.technototes.path.subsystem', c: 'MecanumConstants', l: 'getConstant()' }, - { p: 'com.technototes.path.subsystem', c: 'TankConstants', l: 'getConstant()' }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'getDouble(Class)', - u: 'getDouble(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getDouble(Class)', - u: 'getDouble(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getDouble(Class)', - u: 'getDouble(java.lang.Class)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getDuration()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getEndPose()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getExternalHeadingVelocity()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getExternalHeadingVelocity()', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil', - l: 'getFirmwareVersion(LynxModule)', - u: 'getFirmwareVersion(com.qualcomm.hardware.lynx.LynxModule)', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getGearRatio()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'getHeading()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'getHeading()' }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getHeading()' }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getInt(Class)', - u: 'getInt(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getInt(Class)', - u: 'getInt(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getLastError()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getLastError()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'getLastPoseError()', - }, - { - p: 'com.technototes.path.util', - c: 'LoggingUtil', - l: 'getLogFile(String)', - u: 'getLogFile(java.lang.String)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getMarkers()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TurnSegment', - l: 'getMotionProfile()', - }, - { p: 'com.technototes.path.subsystem', c: 'DeadWheelConstants', l: 'getMotorVelocityF(double)' }, - { p: 'com.technototes.path.subsystem', c: 'MecanumConstants', l: 'getMotorVelocityF(double)' }, - { p: 'com.technototes.path.subsystem', c: 'TankConstants', l: 'getMotorVelocityF(double)' }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getPID(Class)', - u: 'getPID(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getPID(Class)', - u: 'getPID(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'getPIDF(Class)', - u: 'getPIDF(java.lang.Class)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'getPIDF(Class)', - u: 'getPIDF(java.lang.Class)', - }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getPoseEstimate()' }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'getPoseVelocity()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'getRadians()' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getRawExternalHeading()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getRawExternalHeading()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'getStartPose()', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getTicksPerRev()' }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TurnSegment', - l: 'getTotalRotation()', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TrajectorySegment', - l: 'getTrajectory()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getVelocityConstraint(double, double, double)', - u: 'getVelocityConstraint(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'getVelocityConstraint(double, double, double)', - u: 'getVelocityConstraint(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getWheelPositions()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getWheelPositions()' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelPositions()' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelRadius()' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'getWheelVelocities()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'getWheelVelocities()' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'getWheelVelocities()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'getX()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'getY()' }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'gyroOffset' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'heading' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'heading' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'HEADING_PID' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'HEADING_PID' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem.Mode', l: 'IDLE' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'imu' }, - { p: 'com.technototes.path.command', c: 'RegenerativeTrajectoryCommand', l: 'initialize()' }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'initialize()', - }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'initialize()' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'initialize()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'isBusy()' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'isBusy()' }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequenceRunner', l: 'isBusy()' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'isFinished()' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'isFinished()' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'isFinished()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kA' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kA' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.AccelResult', l: 'kA' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kStatic' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kStatic' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'kStatic' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'kV' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'kV' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'kV' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'LATERAL_MULTIPLIER', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'LATERAL_MULTIPLIER' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'lateralDistance' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'leftEncoder' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'leftFront' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'leftRear' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineTo(Vector2d)', - u: 'lineTo(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToConstantHeading(Vector2d)', - u: 'lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToConstantHeading(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToLinearHeading(Pose2d)', - u: 'lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToLinearHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToSplineHeading(Pose2d)', - u: 'lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'lineToSplineHeading(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'lineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.util', c: 'LoggingUtil', l: 'LoggingUtil()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersion', - l: 'LynxFirmwareVersion(int, int, int)', - u: '%3Cinit%3E(int,int,int)', - }, - { - p: 'com.technototes.path.util', - c: 'LynxModuleUtil.LynxFirmwareVersionException', - l: 'LynxFirmwareVersionException(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil', l: 'LynxModuleUtil()', u: '%3Cinit%3E()' }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'major' }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mapPose(Function)', - u: 'mapPose(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mapPose(Function)', - u: 'mapPose(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mapVec(Function)', - u: 'mapVec(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mapX(Function)', - u: 'mapX(java.util.function.Function)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mapY(Function)', - u: 'mapY(java.util.function.Function)', - }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_ACCEL' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ACCEL' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'MAX_ANG_ACCEL', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ANG_ACCEL' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_ANG_VEL' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_ANG_VEL' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_RPM' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_RPM' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'MAX_VEL' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MAX_VEL' }, - { - p: 'com.technototes.path.command', - c: 'MecanumDriveCommand', - l: 'MecanumDriveCommand(PathingMecanumDrivebaseSubsystem, DoubleSupplier, DoubleSupplier, DoubleSupplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier,java.util.function.DoubleSupplier)', - }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'minor' }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mirrorOverX(Pose2d)', - u: 'mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mirrorOverX(Pose2d)', - u: 'mirrorOverX(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mirrorOverY(Pose2d)', - u: 'mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mirrorOverY(Pose2d)', - u: 'mirrorOverY(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'MOTOR_VELO_PID', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'MOTOR_VELO_PID' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'motors' }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateHeading(UnaryOperator)', - u: 'mutateHeading(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateHeading(UnaryOperator)', - u: 'mutateHeading(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutatePose(UnaryOperator)', - u: 'mutatePose(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutatePose(UnaryOperator)', - u: 'mutatePose(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateVec(UnaryOperator)', - u: 'mutateVec(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateVec(UnaryOperator)', - u: 'mutateVec(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mutateVec(UnaryOperator)', - u: 'mutateVec(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateX(UnaryOperator)', - u: 'mutateX(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateX(UnaryOperator)', - u: 'mutateX(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mutateX(UnaryOperator)', - u: 'mutateX(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'mutateY(UnaryOperator)', - u: 'mutateY(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'mutateY(UnaryOperator)', - u: 'mutateY(java.util.function.UnaryOperator)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'mutateY(UnaryOperator)', - u: 'mutateY(java.util.function.UnaryOperator)', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NNN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NNP' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NPN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'NPP' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'OMEGA_WEIGHT' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'OMEGA_WEIGHT' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'PathingMecanumDrivebaseSubsystem(EncodedMotor, EncodedMotor, EncodedMotor, EncodedMotor, IMU, MecanumConstants, Localizer)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.motor.EncodedMotor,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.MecanumConstants,com.acmerobotics.roadrunner.localization.Localizer)', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PNN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PNP' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'POSE_HISTORY_LIMIT', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'POSE_HISTORY_LIMIT' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'POSE_HISTORY_LIMIT', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PPN' }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'PPP' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'r' }, - { - p: 'com.technototes.path.util', - c: 'RegressionUtil.RampResult', - l: 'RampResult(double, double, double)', - u: '%3Cinit%3E(double,double,double)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectoryCommand', - l: 'RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'RegenerativeTrajectorySequenceCommand', - l: 'RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { p: 'com.technototes.path.util', c: 'RegressionUtil', l: 'RegressionUtil()', u: '%3Cinit%3E()' }, - { - p: 'com.technototes.path.util', - c: 'BNO055IMUUtil', - l: 'remapAxes(BNO055IMU, AxesOrder, AxesSigns)', - u: 'remapAxes(com.qualcomm.hardware.bosch.BNO055IMU,org.firstinspires.ftc.robotcore.external.navigation.AxesOrder,com.technototes.path.util.AxesSigns)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetAccelConstraint()', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetConstraints()', - }, - { - p: 'com.technototes.path.command', - c: 'ResetGyroCommand', - l: 'ResetGyroCommand(PathingMecanumDrivebaseSubsystem)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetTurnConstraint()', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'resetVelConstraint()', - }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'rightEncoder' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'rightFront' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'rightRear' }, - { p: 'com.technototes.path.util', c: 'LoggingUtil', l: 'ROAD_RUNNER_FOLDER' }, - { - p: 'com.technototes.path.subsystem', - c: 'DeadWheelConstants', - l: 'rpmToVelocity(double, double, double)', - u: 'rpmToVelocity(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'MecanumConstants', - l: 'rpmToVelocity(double, double, double)', - u: 'rpmToVelocity(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankConstants', - l: 'rpmToVelocity(double, double, double)', - u: 'rpmToVelocity(double,double,double)', - }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.AccelResult', l: 'rSquare' }, - { p: 'com.technototes.path.util', c: 'RegressionUtil.RampResult', l: 'rSquare' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'RUN_USING_ENCODER', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'RUN_USING_ENCODER' }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'SequenceSegment', - l: 'SequenceSegment(double, Pose2d, Pose2d, List)', - u: '%3Cinit%3E(double,com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d,java.util.List)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(double, double)', - u: 'set(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(double, double)', - u: 'set(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'set(double, double)', - u: 'set(double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(double, double, double)', - u: 'set(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(double, double, double)', - u: 'set(double,double,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(Pose2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(Pose2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(Vector2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(Vector2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurableVector', - l: 'set(Vector2d)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePose', - l: 'set(Vector2d, double)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.geometry', - c: 'ConfigurablePoseD', - l: 'set(Vector2d, double)', - u: 'set(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setAccelConstraint(TrajectoryAccelerationConstraint)', - u: 'setAccelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setConstraints(TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'setConstraints(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'setGyroOffset(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setHeading(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setHeading(double)' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setMode(DcMotor.RunMode)', - u: 'setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setMode(DcMotor.RunMode)', - u: 'setMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setMotorPowers(double, double)', - u: 'setMotorPowers(double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setMotorPowers(double, double, double, double)', - u: 'setMotorPowers(double,double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)', - u: 'setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients)', - u: 'setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode,com.qualcomm.robotcore.hardware.PIDFCoefficients)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'DistanceSensorLocalizer', - l: 'setPoseEstimate(Pose2d)', - u: 'setPoseEstimate(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setReversed(boolean)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setTangent(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setTurnConstraint(double, double)', - u: 'setTurnConstraint(double,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'setVelConstraint(TrajectoryVelocityConstraint)', - u: 'setVelConstraint(com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setWeightedDrivePower(Pose2d)', - u: 'setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setWeightedDrivePower(Pose2d)', - u: 'setWeightedDrivePower(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setX(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setX(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'setX(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'setY(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'setY(double)' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'setY(double)' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)', - u: 'setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'setZeroPowerBehavior(DcMotor.ZeroPowerBehavior)', - u: 'setZeroPowerBehavior(com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'size()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'speed' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineTo(Vector2d, double)', - u: 'splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineTo(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineTo(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToConstantHeading(Vector2d, double)', - u: 'splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToConstantHeading(Vector2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineToConstantHeading(com.acmerobotics.roadrunner.geometry.Vector2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToLinearHeading(Pose2d, double)', - u: 'splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToLinearHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineToLinearHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToSplineHeading(Pose2d, double)', - u: 'splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'splineToSplineHeading(Pose2d, double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'splineToSplineHeading(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.trajectorysequence', c: 'TrajectorySequence', l: 'start()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'stop()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeLeft(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeLeft(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'strafeLeft(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeRight(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeRight(double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'strafeRight(double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeTo(Vector2d)', - u: 'strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'strafeTo(Vector2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint)', - u: 'strafeTo(com.acmerobotics.roadrunner.geometry.Vector2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint)', - }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'subsystem' }, - { p: 'com.technototes.path.command', c: 'ResetGyroCommand', l: 'subsystem' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'subsystem' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'subsystem' }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'TankDrivebaseSubsystem(EncodedMotorGroup, EncodedMotorGroup, IMU, TankConstants, Localizer)', - u: '%3Cinit%3E(com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.motor.EncodedMotorGroup,com.technototes.library.hardware.sensor.IMU,com.technototes.path.subsystem.TankConstants,com.acmerobotics.roadrunner.localization.Localizer)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'ThreeDeadWheelLocalizer', - l: 'ThreeDeadWheelLocalizer(MotorEncoder, MotorEncoder, MotorEncoder, DeadWheelConstants)', - u: '%3Cinit%3E(com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.library.hardware.sensor.encoder.MotorEncoder,com.technototes.path.subsystem.DeadWheelConstants)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'TICKS_PER_REV', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'TICKS_PER_REV' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'ticksPerRev' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePose', l: 'toPose()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurablePoseD', l: 'toPose()' }, - { p: 'com.technototes.path.util', c: 'LynxModuleUtil.LynxFirmwareVersion', l: 'toString()' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'toVec()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'TRACK_WIDTH' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'TRACK_WIDTH' }, - { p: 'com.technototes.path.command', c: 'TrajectoryCommand', l: 'trajectory' }, - { p: 'com.technototes.path.command', c: 'TrajectorySequenceCommand', l: 'trajectory' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, boolean)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, boolean)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,boolean)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, double)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectoryBuilder(Pose2d, double)', - u: 'trajectoryBuilder(com.acmerobotics.roadrunner.geometry.Pose2d,double)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, Trajectory>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, Trajectory>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectoryCommand', - l: 'TrajectoryCommand(PathingMecanumDrivebaseSubsystem, Trajectory)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TrajectorySegment', - l: 'TrajectorySegment(Trajectory)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.trajectory.Trajectory)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequence', - l: 'TrajectorySequence(List)', - u: '%3Cinit%3E(java.util.List)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectorySequenceBuilder()', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'trajectorySequenceBuilder(Pose2d)', - u: 'trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'TankDrivebaseSubsystem', - l: 'trajectorySequenceBuilder(Pose2d)', - u: 'trajectorySequenceBuilder(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'TrajectorySequenceBuilder(Pose2d, Double, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,java.lang.Double,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'TrajectorySequenceBuilder(Pose2d, TrajectoryVelocityConstraint, TrajectoryAccelerationConstraint, double, double)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint,com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint,double,double)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, BiFunction, T, TrajectorySequence>, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.BiFunction,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, TrajectorySequence>)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Function, T)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Function,T)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, Supplier)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,java.util.function.Supplier)', - }, - { - p: 'com.technototes.path.command', - c: 'TrajectorySequenceCommand', - l: 'TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem, TrajectorySequence)', - u: '%3Cinit%3E(com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem,com.technototes.path.trajectorysequence.TrajectorySequence)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'TrajectorySequenceRunner(TrajectoryFollower, PIDCoefficients)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.followers.TrajectoryFollower,com.acmerobotics.roadrunner.control.PIDCoefficients)', - }, - { p: 'com.technototes.path.command', c: 'RegenerativeTrajectoryCommand', l: 'trajFunc' }, - { p: 'com.technototes.path.command', c: 'RegenerativeTrajectorySequenceCommand', l: 'trajFunc' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'TRANSLATIONAL_PID', - }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem.Mode', l: 'TURN' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'turn(double)' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'turn(double)' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'turn(double)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'turn(double, double, double)', - u: 'turn(double,double,double)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'turnAsync(double)', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'turnAsync(double)' }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'TurnSegment', - l: 'TurnSegment(Pose2d, double, MotionProfile, List)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,com.acmerobotics.roadrunner.profile.MotionProfile,java.util.List)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'UNSTABLE_addDisplacementMarkerOffset(double, MarkerCallback)', - u: 'UNSTABLE_addDisplacementMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'UNSTABLE_addTemporalMarkerOffset(double, MarkerCallback)', - u: 'UNSTABLE_addTemporalMarkerOffset(double,com.acmerobotics.roadrunner.trajectory.MarkerCallback)', - }, - { p: 'com.technototes.path.subsystem', c: 'DistanceSensorLocalizer', l: 'update()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'update()' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'update()' }, - { - p: 'com.technototes.path.subsystem', - c: 'DistanceSensorLocalizer', - l: 'update(Pose2d)', - u: 'update(com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceRunner', - l: 'update(Pose2d, Pose2d)', - u: 'update(com.acmerobotics.roadrunner.geometry.Pose2d,com.acmerobotics.roadrunner.geometry.Pose2d)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem.Mode', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.path.util', - c: 'AxesSigns', - l: 'valueOf(String)', - u: 'valueOf(java.lang.String)', - }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem.Mode', - l: 'values()', - }, - { p: 'com.technototes.path.util', c: 'AxesSigns', l: 'values()' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'VX_WEIGHT' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'VX_WEIGHT' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'VY_WEIGHT' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'waitForIdle()', - }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'waitForIdle()' }, - { - p: 'com.technototes.path.trajectorysequence', - c: 'TrajectorySequenceBuilder', - l: 'waitSeconds(double)', - }, - { - p: 'com.technototes.path.trajectorysequence.sequencesegment', - c: 'WaitSegment', - l: 'WaitSegment(Pose2d, double, List)', - u: '%3Cinit%3E(com.acmerobotics.roadrunner.geometry.Pose2d,double,java.util.List)', - }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'WHEEL_BASE' }, - { p: 'com.technototes.path.subsystem', c: 'PathingMecanumDrivebaseSubsystem', l: 'WHEEL_RADIUS' }, - { p: 'com.technototes.path.subsystem', c: 'TankDrivebaseSubsystem', l: 'WHEEL_RADIUS' }, - { p: 'com.technototes.path.subsystem', c: 'ThreeDeadWheelLocalizer', l: 'wheelRadius' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'x' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'x' }, - { p: 'com.technototes.path.command', c: 'MecanumDriveCommand', l: 'y' }, - { p: 'com.technototes.path.geometry', c: 'ConfigurableVector', l: 'y' }, - { - p: 'com.technototes.path.subsystem', - c: 'PathingMecanumDrivebaseSubsystem', - l: 'zeroExternalHeading()', - }, -]; -updateSearchResults(); diff --git a/docs/Path/module-search-index.js b/docs/Path/module-search-index.js deleted file mode 100644 index a6f96499..00000000 --- a/docs/Path/module-search-index.js +++ /dev/null @@ -1,2 +0,0 @@ -moduleSearchIndex = []; -updateSearchResults(); diff --git a/docs/Path/overview-summary.html b/docs/Path/overview-summary.html deleted file mode 100644 index 54ad7d37..00000000 --- a/docs/Path/overview-summary.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Path API - - - - - - - - - - -
    - -

    index.html

    -
    - - diff --git a/docs/Path/overview-tree.html b/docs/Path/overview-tree.html deleted file mode 100644 index 8a2963f3..00000000 --- a/docs/Path/overview-tree.html +++ /dev/null @@ -1,1204 +0,0 @@ - - - - - Class Hierarchy (Path API) - - - - - - - - - - - - - - -
    - -
    -
    - -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Annotation Interface Hierarchy

    - -
    -
    -

    Enum Class Hierarchy

    - -
    -
    -
    -
    - - diff --git a/docs/Path/package-search-index.js b/docs/Path/package-search-index.js deleted file mode 100644 index 585beab9..00000000 --- a/docs/Path/package-search-index.js +++ /dev/null @@ -1,10 +0,0 @@ -packageSearchIndex = [ - { l: 'All Packages', u: 'allpackages-index.html' }, - { l: 'com.technototes.path.command' }, - { l: 'com.technototes.path.geometry' }, - { l: 'com.technototes.path.subsystem' }, - { l: 'com.technototes.path.trajectorysequence' }, - { l: 'com.technototes.path.trajectorysequence.sequencesegment' }, - { l: 'com.technototes.path.util' }, -]; -updateSearchResults(); diff --git a/docs/Path/resources/glass.png b/docs/Path/resources/glass.png deleted file mode 100644 index a7f591f467a1c0c949bbc510156a0c1afb860a6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaqW6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY diff --git a/docs/Path/script-dir/jquery-3.6.1.min.js b/docs/Path/script-dir/jquery-3.6.1.min.js deleted file mode 100644 index 2c69bc90..00000000 --- a/docs/Path/script-dir/jquery-3.6.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
    "),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
      ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
      ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
      ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/Path/script.js b/docs/Path/script.js deleted file mode 100644 index a6efd285..00000000 --- a/docs/Path/script.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -var moduleSearchIndex; -var packageSearchIndex; -var typeSearchIndex; -var memberSearchIndex; -var tagSearchIndex; -function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); - - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); -} - -function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); -} - -function show(tableId, selected, columns) { - if (tableId !== selected) { - document - .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function (elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected).forEach(function (elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); -} - -function updateTabs(tableId, selected) { - document - .querySelector('div#' + tableId + ' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex', 0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex', -1); - } - }); -} - -function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); - } - } -} - -var updateSearchResults = function () {}; - -function indexFilesLoaded() { - return ( - moduleSearchIndex && - packageSearchIndex && - typeSearchIndex && - memberSearchIndex && - tagSearchIndex - ); -} - -// Workaround for scroll position not being included in browser history (8249133) -document.addEventListener('DOMContentLoaded', function (e) { - var contentDiv = document.querySelector('div.flex-content'); - window.addEventListener('popstate', function (e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener('hashchange', function (e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener('scroll', function (e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function () { - history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); - } - }); - if (!location.hash) { - history.replaceState(contentDiv.scrollTop, document.title); - } -}); diff --git a/docs/Path/search.js b/docs/Path/search.js deleted file mode 100644 index 3ba91721..00000000 --- a/docs/Path/search.js +++ /dev/null @@ -1,376 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -var noResult = { l: 'No results found' }; -var loading = { l: 'Loading search index...' }; -var catModules = 'Modules'; -var catPackages = 'Packages'; -var catTypes = 'Classes and Interfaces'; -var catMembers = 'Members'; -var catSearchTags = 'Search Tags'; -var highlight = '$&'; -var searchPattern = ''; -var fallbackPattern = ''; -var RANKING_THRESHOLD = 2; -var NO_MATCH = 0xffff; -var MIN_RESULTS = 3; -var MAX_RESULTS = 500; -var UNNAMED = ''; -function escapeHtml(str) { - return str.replace(//g, '>'); -} -function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight); - } - return highlighted; -} -function getURLPrefix(ui) { - var urlPrefix = ''; - var slash = '/'; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function (index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; - } - }); - } - } - return urlPrefix; -} -function createSearchPattern(term) { - var pattern = ''; - var isWordToken = false; - term - .replace(/,\s*/g, ', ') - .trim() - .split(/\s+/) - .forEach(function (w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; - } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === '') { - continue; - } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += '([a-z0-9_$<>\\[\\]]*?)'; - } - } - }); - return pattern; -} -function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); -} -var watermark = 'Search'; -$(function () { - var search = $('#search-input'); - var reset = $('#reset-button'); - search.val(''); - search.prop('disabled', false); - reset.prop('disabled', false); - search.val(watermark).addClass('watermark'); - search.blur(function () { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function () { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function () { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget('custom.catcomplete', $.ui.autocomplete, { - _create: function () { - this._super(); - this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); - }, - _renderMenu: function (ul, items) { - var rMenu = this; - var currentCategory = ''; - rMenu.menu.bindings = $(); - $.each(items, function (index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append('
    • ' + item.category + '
    • '); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr('aria-label', item.category + ' : ' + item.l); - li.attr('class', 'result-item'); - } else { - li.attr('aria-label', item.l); - li.attr('class', 'result-item'); - } - }); - }, - _renderItem: function (ul, item) { - var label = ''; - var matcher = createMatcher(escapeHtml(searchPattern), 'g'); - var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $('
    • ').appendTo(ul); - var div = $('
      ').appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html( - label + - ' (' + - item.h + - ')
      ' + - item.d + - '
      ', - ); - } else { - div.html(label + ' (' + item.h + ')'); - } - } else { - if (item.m) { - div.html(item.m + '/' + label); - } else { - div.html(label); - } - } - return li; - }, -}); -function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { - leftBoundaryMatch = 0; - } else if ( - '_' === input[index - 1] || - (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) - ) { - leftBoundaryMatch = 1; - } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf('('); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? '/' : '.'; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; - } - } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) delta += match[i].length; - } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) delta += 5; - } - return leftBoundaryMatch + periferalMatch + delta / 200; -} -function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === '') { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ''); - var fallbackMatcher = new RegExp(fallbackPattern, 'i'); - - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ ranking: ranking, item: item }); - } - return newResults.length <= MAX_RESULTS; - }); - return newResults - .sort(function (e1, e2) { - return e1.ranking - e2.ranking; - }) - .map(function (e) { - return e.item; - }); - } - return []; - } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher( - indexArray, - fallbackMatcher, - category, - nameFunc, - ); - result = result.concat( - secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - }), - ); - } - } - - searchIndex(moduleSearchIndex, catModules, function (item) { - return item.l; - }); - searchIndex(packageSearchIndex, catPackages, function (item) { - return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function (item) { - return item.l; - }); - - if (!indexFilesLoaded()) { - updateSearchResults = function () { - doSearch(request, response); - }; - result.unshift(loading); - } else { - updateSearchResults = function () {}; - } - response(result); -} -$(function () { - $('#search-input').catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function (event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $('#search-input').empty(); - } - }, - autoFocus: true, - focus: function (event, ui) { - return false; - }, - position: { - collision: 'flip', - }, - select: function (event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += 'module-summary.html'; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + '.html'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + '.html' + '#'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; - } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; - } - $('#search-input').focus(); - } - }, - }); -}); diff --git a/docs/Path/serialized-form.html b/docs/Path/serialized-form.html deleted file mode 100644 index 54d1be79..00000000 --- a/docs/Path/serialized-form.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - Serialized Form (Path API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Serialized Form

      -
      - -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html b/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html deleted file mode 100644 index 643546db..00000000 --- a/docs/Path/src-html/com/technototes/path/command/MecanumDriveCommand.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.command;
      -002
      -003import com.acmerobotics.roadrunner.drive.DriveSignal;
      -004import com.acmerobotics.roadrunner.geometry.Pose2d;
      -005import com.acmerobotics.roadrunner.geometry.Vector2d;
      -006import com.technototes.library.command.Command;
      -007import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem;
      -008import java.util.function.DoubleSupplier;
      -009
      -010public class MecanumDriveCommand implements Command {
      -011
      -012    public PathingMecanumDrivebaseSubsystem subsystem;
      -013    public DoubleSupplier x, y, r;
      -014
      -015    public MecanumDriveCommand(
      -016        PathingMecanumDrivebaseSubsystem sub,
      -017        DoubleSupplier xSup,
      -018        DoubleSupplier ySup,
      -019        DoubleSupplier rSup
      -020    ) {
      -021        addRequirements(sub);
      -022        subsystem = sub;
      -023        x = xSup;
      -024        y = ySup;
      -025        r = rSup;
      -026    }
      -027
      -028    @Override
      -029    public void execute() {
      -030        Vector2d input = new Vector2d(-y.getAsDouble() * subsystem.speed, -x.getAsDouble() * subsystem.speed)
      -031            .rotated(-subsystem.getExternalHeading());
      -032
      -033        subsystem.setWeightedDrivePower(
      -034            new Pose2d(input.getX(), input.getY(), -Math.pow(r.getAsDouble() * subsystem.speed, 3))
      -035        );
      -036    }
      -037
      -038    @Override
      -039    public boolean isFinished() {
      -040        return false;
      -041    }
      -042
      -043    @Override
      -044    public void end(boolean cancel) {
      -045        if (cancel) subsystem.setDriveSignal(new DriveSignal());
      -046    }
      -047}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html b/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html deleted file mode 100644 index 9c441bf1..00000000 --- a/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectoryCommand.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.command;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -005import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
      -006import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem;
      -007import java.util.function.BiFunction;
      -008import java.util.function.Function;
      -009import java.util.function.Supplier;
      -010
      -011public class RegenerativeTrajectoryCommand extends TrajectoryCommand {
      -012
      -013    public Supplier<Trajectory> trajFunc;
      -014
      -015    public RegenerativeTrajectoryCommand(
      -016        PathingMecanumDrivebaseSubsystem sub,
      -017        Function<Function<Pose2d, TrajectoryBuilder>, Trajectory> t
      -018    ) {
      -019        super(sub, t);
      -020        trajFunc = () -> t.apply(sub::trajectoryBuilder);
      -021    }
      -022
      -023    public RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<Trajectory> t) {
      -024        super(sub, t);
      -025        trajFunc = t;
      -026    }
      -027
      -028    public <T> RegenerativeTrajectoryCommand(
      -029        PathingMecanumDrivebaseSubsystem sub,
      -030        BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory> t,
      -031        T mux
      -032    ) {
      -033        super(sub, t, mux);
      -034        trajFunc = () -> t.apply(sub::trajectoryBuilder, mux);
      -035    }
      -036
      -037    public <T> RegenerativeTrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Function<T, Trajectory> t, T mux) {
      -038        super(sub, t, mux);
      -039        trajFunc = () -> t.apply(mux);
      -040    }
      -041
      -042    @Override
      -043    public void initialize() {
      -044        subsystem.followTrajectoryAsync(trajFunc.get());
      -045    }
      -046}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html b/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html deleted file mode 100644 index 7b44697c..00000000 --- a/docs/Path/src-html/com/technototes/path/command/RegenerativeTrajectorySequenceCommand.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.command;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem;
      -005import com.technototes.path.trajectorysequence.TrajectorySequence;
      -006import com.technototes.path.trajectorysequence.TrajectorySequenceBuilder;
      -007import java.util.function.BiFunction;
      -008import java.util.function.Function;
      -009import java.util.function.Supplier;
      -010
      -011public class RegenerativeTrajectorySequenceCommand extends TrajectorySequenceCommand {
      -012
      -013    public Supplier<TrajectorySequence> trajFunc;
      -014
      -015    public RegenerativeTrajectorySequenceCommand(
      -016        PathingMecanumDrivebaseSubsystem sub,
      -017        Function<Function<Pose2d, TrajectorySequenceBuilder>, TrajectorySequence> t
      -018    ) {
      -019        super(sub, t);
      -020        trajFunc = () -> t.apply(sub::trajectorySequenceBuilder);
      -021    }
      -022
      -023    public RegenerativeTrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<TrajectorySequence> t) {
      -024        super(sub, t);
      -025        trajFunc = t;
      -026    }
      -027
      -028    public <T> RegenerativeTrajectorySequenceCommand(
      -029        PathingMecanumDrivebaseSubsystem sub,
      -030        BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, TrajectorySequence> t,
      -031        T mux
      -032    ) {
      -033        super(sub, t, mux);
      -034        trajFunc = () -> t.apply(sub::trajectorySequenceBuilder, mux);
      -035    }
      -036
      -037    public <T> RegenerativeTrajectorySequenceCommand(
      -038        PathingMecanumDrivebaseSubsystem sub,
      -039        Function<T, TrajectorySequence> t,
      -040        T mux
      -041    ) {
      -042        super(sub, t, mux);
      -043        trajFunc = () -> t.apply(mux);
      -044    }
      -045
      -046    @Override
      -047    public void initialize() {
      -048        subsystem.followTrajectorySequenceAsync(trajFunc.get());
      -049    }
      -050}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/command/ResetGyroCommand.html b/docs/Path/src-html/com/technototes/path/command/ResetGyroCommand.html deleted file mode 100644 index f25c1749..00000000 --- a/docs/Path/src-html/com/technototes/path/command/ResetGyroCommand.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.command;
      -002
      -003import com.technototes.library.command.Command;
      -004import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem;
      -005
      -006public class ResetGyroCommand implements Command {
      -007
      -008    public PathingMecanumDrivebaseSubsystem subsystem;
      -009
      -010    public ResetGyroCommand(PathingMecanumDrivebaseSubsystem s) {
      -011        subsystem = s;
      -012    }
      -013
      -014    @Override
      -015    public void execute() {
      -016        subsystem.zeroExternalHeading();
      -017    }
      -018}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/command/TrajectoryCommand.html b/docs/Path/src-html/com/technototes/path/command/TrajectoryCommand.html deleted file mode 100644 index 453a5e6a..00000000 --- a/docs/Path/src-html/com/technototes/path/command/TrajectoryCommand.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.command;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -005import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
      -006import com.technototes.library.command.Command;
      -007import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem;
      -008import java.util.function.BiFunction;
      -009import java.util.function.Function;
      -010import java.util.function.Supplier;
      -011
      -012public class TrajectoryCommand implements Command {
      -013
      -014    public Trajectory trajectory;
      -015    public PathingMecanumDrivebaseSubsystem subsystem;
      -016
      -017    public TrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Trajectory t) {
      -018        addRequirements(sub);
      -019        subsystem = sub;
      -020        trajectory = t;
      -021    }
      -022
      -023    public TrajectoryCommand(
      -024        PathingMecanumDrivebaseSubsystem sub,
      -025        Function<Function<Pose2d, TrajectoryBuilder>, Trajectory> t
      -026    ) {
      -027        addRequirements(sub);
      -028        subsystem = sub;
      -029        trajectory = t.apply(sub::trajectoryBuilder);
      -030    }
      -031
      -032    public TrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<Trajectory> t) {
      -033        addRequirements(sub);
      -034        subsystem = sub;
      -035        trajectory = t.get();
      -036    }
      -037
      -038    public <T> TrajectoryCommand(
      -039        PathingMecanumDrivebaseSubsystem sub,
      -040        BiFunction<Function<Pose2d, TrajectoryBuilder>, T, Trajectory> t,
      -041        T mux
      -042    ) {
      -043        addRequirements(sub);
      -044        subsystem = sub;
      -045        trajectory = t.apply(sub::trajectoryBuilder, mux);
      -046    }
      -047
      -048    public <T> TrajectoryCommand(PathingMecanumDrivebaseSubsystem sub, Function<T, Trajectory> t, T mux) {
      -049        addRequirements(sub);
      -050        subsystem = sub;
      -051        trajectory = t.apply(mux);
      -052    }
      -053
      -054    @Override
      -055    public void initialize() {
      -056        subsystem.followTrajectoryAsync(trajectory);
      -057    }
      -058
      -059    @Override
      -060    public void execute() {
      -061        subsystem.update();
      -062    }
      -063
      -064    @Override
      -065    public boolean isFinished() {
      -066        return !subsystem.isBusy();
      -067    }
      -068
      -069    @Override
      -070    public void end(boolean cancel) {
      -071        if (cancel) subsystem.stop();
      -072    }
      -073}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html b/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html deleted file mode 100644 index cfe8b533..00000000 --- a/docs/Path/src-html/com/technototes/path/command/TrajectorySequenceCommand.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.command;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.technototes.library.command.Command;
      -005import com.technototes.path.subsystem.PathingMecanumDrivebaseSubsystem;
      -006import com.technototes.path.trajectorysequence.TrajectorySequence;
      -007import com.technototes.path.trajectorysequence.TrajectorySequenceBuilder;
      -008import java.util.function.BiFunction;
      -009import java.util.function.Function;
      -010import java.util.function.Supplier;
      -011
      -012public class TrajectorySequenceCommand implements Command {
      -013
      -014    public TrajectorySequence trajectory;
      -015    public PathingMecanumDrivebaseSubsystem subsystem;
      -016
      -017    public TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem sub, TrajectorySequence t) {
      -018        addRequirements(sub);
      -019        subsystem = sub;
      -020        trajectory = t;
      -021    }
      -022
      -023    public TrajectorySequenceCommand(
      -024        PathingMecanumDrivebaseSubsystem sub,
      -025        Function<Function<Pose2d, TrajectorySequenceBuilder>, TrajectorySequence> t
      -026    ) {
      -027        addRequirements(sub);
      -028        subsystem = sub;
      -029        trajectory = t.apply(sub::trajectorySequenceBuilder);
      -030    }
      -031
      -032    public TrajectorySequenceCommand(PathingMecanumDrivebaseSubsystem sub, Supplier<TrajectorySequence> t) {
      -033        addRequirements(sub);
      -034        subsystem = sub;
      -035        trajectory = t.get();
      -036    }
      -037
      -038    public <T> TrajectorySequenceCommand(
      -039        PathingMecanumDrivebaseSubsystem sub,
      -040        BiFunction<Function<Pose2d, TrajectorySequenceBuilder>, T, TrajectorySequence> t,
      -041        T mux
      -042    ) {
      -043        addRequirements(sub);
      -044        subsystem = sub;
      -045        trajectory = t.apply(sub::trajectorySequenceBuilder, mux);
      -046    }
      -047
      -048    public <T> TrajectorySequenceCommand(
      -049        PathingMecanumDrivebaseSubsystem sub,
      -050        Function<T, TrajectorySequence> t,
      -051        T mux
      -052    ) {
      -053        addRequirements(sub);
      -054        subsystem = sub;
      -055        trajectory = t.apply(mux);
      -056    }
      -057
      -058    @Override
      -059    public void initialize() {
      -060        subsystem.followTrajectorySequenceAsync(trajectory);
      -061    }
      -062
      -063    @Override
      -064    public void execute() {
      -065        subsystem.update();
      -066    }
      -067
      -068    @Override
      -069    public boolean isFinished() {
      -070        return !subsystem.isBusy();
      -071    }
      -072
      -073    @Override
      -074    public void end(boolean cancel) {
      -075        if (cancel) subsystem.stop();
      -076    }
      -077}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/geometry/ConfigurablePose.html b/docs/Path/src-html/com/technototes/path/geometry/ConfigurablePose.html deleted file mode 100644 index c78d057b..00000000 --- a/docs/Path/src-html/com/technototes/path/geometry/ConfigurablePose.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.geometry;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.geometry.Vector2d;
      -005import java.util.function.Function;
      -006import java.util.function.UnaryOperator;
      -007
      -008public class ConfigurablePose extends ConfigurableVector {
      -009
      -010    public double heading;
      -011
      -012    public ConfigurablePose(Pose2d pose) {
      -013        super(pose.vec());
      -014        heading = pose.getHeading();
      -015    }
      -016
      -017    public ConfigurablePose(double x, double y, double heading) {
      -018        this(new Pose2d(x, y, heading));
      -019    }
      -020
      -021    public ConfigurablePose(double x, double y) {
      -022        this(new Pose2d(x, y));
      -023    }
      -024
      -025    public ConfigurablePose(Vector2d vec) {
      -026        this(vec.getX(), vec.getY());
      -027    }
      -028
      -029    public ConfigurablePose(Vector2d vec, double heading) {
      -030        this(vec.getX(), vec.getY(), heading);
      -031    }
      -032
      -033    public ConfigurablePose() {
      -034        this(new Pose2d());
      -035    }
      -036
      -037    @Override
      -038    public ConfigurablePose set(double newX, double newY) {
      -039        return (ConfigurablePose) super.set(newX, newY);
      -040    }
      -041
      -042    @Override
      -043    public ConfigurablePose set(Vector2d vec) {
      -044        return (ConfigurablePose) super.set(vec);
      -045    }
      -046
      -047    @Override
      -048    public ConfigurablePose setX(double val) {
      -049        return (ConfigurablePose) super.setX(val);
      -050    }
      -051
      -052    @Override
      -053    public ConfigurablePose setY(double val) {
      -054        return (ConfigurablePose) super.setY(val);
      -055    }
      -056
      -057    @Override
      -058    public ConfigurablePose mutateVec(UnaryOperator<Vector2d> callback) {
      -059        return (ConfigurablePose) super.mutateVec(callback);
      -060    }
      -061
      -062    @Override
      -063    public ConfigurablePose mutateX(UnaryOperator<Double> callback) {
      -064        return (ConfigurablePose) super.mutateX(callback);
      -065    }
      -066
      -067    @Override
      -068    public ConfigurablePose mutateY(UnaryOperator<Double> callback) {
      -069        return (ConfigurablePose) super.mutateY(callback);
      -070    }
      -071
      -072    public ConfigurablePose set(double newX, double newY, double newHeading) {
      -073        return set(new Pose2d(newX, newY, newHeading));
      -074    }
      -075
      -076    public ConfigurablePose set(Pose2d pose) {
      -077        set(pose.vec());
      -078        heading = pose.getHeading();
      -079        return this;
      -080    }
      -081
      -082    public ConfigurablePose set(Vector2d vec, double newHeading) {
      -083        set(vec);
      -084        heading = newHeading;
      -085        return this;
      -086    }
      -087
      -088    public ConfigurablePose setHeading(double val) {
      -089        heading = val;
      -090        return this;
      -091    }
      -092
      -093    public ConfigurablePose mutatePose(UnaryOperator<Pose2d> callback) {
      -094        return set(mapPose(callback));
      -095    }
      -096
      -097    public ConfigurablePose mutateHeading(UnaryOperator<Double> callback) {
      -098        return setHeading(mapHeading(callback));
      -099    }
      -100
      -101    public <T> T mapPose(Function<Pose2d, T> callback) {
      -102        return callback.apply(toPose());
      -103    }
      -104
      -105    private <T> T mapHeading(Function<Double, T> callback) {
      -106        return callback.apply(getHeading());
      -107    }
      -108
      -109    public Pose2d toPose() {
      -110        return new Pose2d(x, y, heading);
      -111    }
      -112
      -113    public double getHeading() {
      -114        return heading;
      -115    }
      -116
      -117    public static Pose2d mirrorOverX(Pose2d old) {
      -118        return new Pose2d(old.getX(), old.times(-1).getY(), old.times(-1).getHeading());
      -119    }
      -120
      -121    public static Pose2d mirrorOverY(Pose2d old) {
      -122        return new Pose2d(
      -123            old.times(-1).getX(),
      -124            old.getY(),
      -125            old.headingVec().rotated(-Math.PI / 2).times(-1).rotated(Math.PI / 2).angle()
      -126        );
      -127    }
      -128}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/geometry/ConfigurablePoseD.html b/docs/Path/src-html/com/technototes/path/geometry/ConfigurablePoseD.html deleted file mode 100644 index 384d537f..00000000 --- a/docs/Path/src-html/com/technototes/path/geometry/ConfigurablePoseD.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.geometry;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.geometry.Vector2d;
      -005import java.util.function.Function;
      -006import java.util.function.UnaryOperator;
      -007
      -008public class ConfigurablePoseD extends ConfigurableVector {
      -009
      -010    public double heading;
      -011
      -012    public ConfigurablePoseD(Pose2d pose) {
      -013        super(pose.vec());
      -014        heading = Math.toDegrees(pose.getHeading());
      -015    }
      -016
      -017    public ConfigurablePoseD(double x, double y, double headingDegrees) {
      -018        this(new Pose2d(x, y, Math.toRadians(headingDegrees)));
      -019    }
      -020
      -021    public ConfigurablePoseD(double x, double y) {
      -022        this(new Pose2d(x, y));
      -023    }
      -024
      -025    public ConfigurablePoseD(Vector2d vec) {
      -026        this(vec.getX(), vec.getY());
      -027    }
      -028
      -029    public ConfigurablePoseD(Vector2d vec, double headingDegrees) {
      -030        this(vec.getX(), vec.getY(), headingDegrees);
      -031    }
      -032
      -033    public ConfigurablePoseD() {
      -034        this(new Pose2d());
      -035    }
      -036
      -037    @Override
      -038    public ConfigurablePoseD set(double newX, double newY) {
      -039        return (ConfigurablePoseD) super.set(newX, newY);
      -040    }
      -041
      -042    @Override
      -043    public ConfigurablePoseD set(Vector2d vec) {
      -044        return (ConfigurablePoseD) super.set(vec);
      -045    }
      -046
      -047    @Override
      -048    public ConfigurablePoseD setX(double val) {
      -049        return (ConfigurablePoseD) super.setX(val);
      -050    }
      -051
      -052    @Override
      -053    public ConfigurablePoseD setY(double val) {
      -054        return (ConfigurablePoseD) super.setY(val);
      -055    }
      -056
      -057    @Override
      -058    public ConfigurablePoseD mutateVec(UnaryOperator<Vector2d> callback) {
      -059        return (ConfigurablePoseD) super.mutateVec(callback);
      -060    }
      -061
      -062    @Override
      -063    public ConfigurablePoseD mutateX(UnaryOperator<Double> callback) {
      -064        return (ConfigurablePoseD) super.mutateX(callback);
      -065    }
      -066
      -067    @Override
      -068    public ConfigurablePoseD mutateY(UnaryOperator<Double> callback) {
      -069        return (ConfigurablePoseD) super.mutateY(callback);
      -070    }
      -071
      -072    public ConfigurablePoseD set(double newX, double newY, double newHeadingDegrees) {
      -073        return set(new Pose2d(newX, newY, Math.toRadians(newHeadingDegrees)));
      -074    }
      -075
      -076    public ConfigurablePoseD set(Pose2d pose) {
      -077        set(pose.vec());
      -078        heading = Math.toDegrees(pose.getHeading());
      -079        return this;
      -080    }
      -081
      -082    public ConfigurablePoseD set(Vector2d vec, double newHeadingDegrees) {
      -083        set(vec);
      -084        heading = newHeadingDegrees;
      -085        return this;
      -086    }
      -087
      -088    public ConfigurablePoseD setHeading(double val) {
      -089        heading = val;
      -090        return this;
      -091    }
      -092
      -093    public ConfigurablePoseD mutatePose(UnaryOperator<Pose2d> callback) {
      -094        return set(mapPose(callback));
      -095    }
      -096
      -097    public ConfigurablePoseD mutateHeading(UnaryOperator<Double> callback) {
      -098        return setHeading(mapHeading(callback));
      -099    }
      -100
      -101    public <T> T mapPose(Function<Pose2d, T> callback) {
      -102        return callback.apply(toPose());
      -103    }
      -104
      -105    private <T> T mapHeading(Function<Double, T> callback) {
      -106        return callback.apply(getHeading());
      -107    }
      -108
      -109    public Pose2d toPose() {
      -110        return new Pose2d(x, y, Math.toRadians(heading));
      -111    }
      -112
      -113    public double getHeading() {
      -114        return heading;
      -115    }
      -116
      -117    public double getRadians() {
      -118        return Math.toRadians(heading);
      -119    }
      -120
      -121    public static Pose2d mirrorOverX(Pose2d old) {
      -122        return new Pose2d(old.getX(), old.times(-1).getY(), old.times(-1).getHeading());
      -123    }
      -124
      -125    public static Pose2d mirrorOverY(Pose2d old) {
      -126        return new Pose2d(
      -127            old.times(-1).getX(),
      -128            old.getY(),
      -129            old.headingVec().rotated(-Math.PI / 2).times(-1).rotated(Math.PI / 2).angle()
      -130        );
      -131    }
      -132}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/geometry/ConfigurableVector.html b/docs/Path/src-html/com/technototes/path/geometry/ConfigurableVector.html deleted file mode 100644 index fa1ec6f2..00000000 --- a/docs/Path/src-html/com/technototes/path/geometry/ConfigurableVector.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.geometry;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Vector2d;
      -004import java.util.function.Function;
      -005import java.util.function.UnaryOperator;
      -006
      -007@SuppressWarnings("unchecked")
      -008public class ConfigurableVector {
      -009
      -010    public double x, y;
      -011
      -012    public ConfigurableVector(Vector2d pose) {
      -013        x = pose.getX();
      -014        y = pose.getY();
      -015    }
      -016
      -017    public ConfigurableVector(double x, double y) {
      -018        this(new Vector2d(x, y));
      -019    }
      -020
      -021    public ConfigurableVector() {
      -022        this(new Vector2d());
      -023    }
      -024
      -025    public ConfigurableVector set(double newX, double newY) {
      -026        return set(new Vector2d(newX, newY));
      -027    }
      -028
      -029    public ConfigurableVector set(Vector2d vec) {
      -030        x = vec.getX();
      -031        y = vec.getY();
      -032        return this;
      -033    }
      -034
      -035    public ConfigurableVector setX(double val) {
      -036        x = val;
      -037        return this;
      -038    }
      -039
      -040    public ConfigurableVector setY(double val) {
      -041        y = val;
      -042        return this;
      -043    }
      -044
      -045    public ConfigurableVector mutateVec(UnaryOperator<Vector2d> callback) {
      -046        return set(mapVec(callback));
      -047    }
      -048
      -049    public ConfigurableVector mutateX(UnaryOperator<Double> callback) {
      -050        return setX(mapX(callback));
      -051    }
      -052
      -053    public ConfigurableVector mutateY(UnaryOperator<Double> callback) {
      -054        return setY(mapY(callback));
      -055    }
      -056
      -057    public <T> T mapVec(Function<Vector2d, T> callback) {
      -058        return callback.apply(toVec());
      -059    }
      -060
      -061    public <T> T mapX(Function<Double, T> callback) {
      -062        return callback.apply(getX());
      -063    }
      -064
      -065    public <T> T mapY(Function<Double, T> callback) {
      -066        return callback.apply(getY());
      -067    }
      -068
      -069    public Vector2d toVec() {
      -070        return new Vector2d(getX(), getY());
      -071    }
      -072
      -073    public double getX() {
      -074        return x;
      -075    }
      -076
      -077    public double getY() {
      -078        return y;
      -079    }
      -080}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html deleted file mode 100644 index 07e69d1a..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.EncoderOverflow.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html deleted file mode 100644 index e5d42afc..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.ForwardOffset.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html deleted file mode 100644 index a4f38695..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.GearRatio.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html deleted file mode 100644 index 7f19735b..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.LateralDistance.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html deleted file mode 100644 index 17ee2719..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.TicksPerRev.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html deleted file mode 100644 index 531193d9..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.WheelRadius.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.html b/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.html deleted file mode 100644 index 32c97d14..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DeadWheelConstants.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import java.lang.annotation.Annotation;
      -004import java.lang.annotation.ElementType;
      -005import java.lang.annotation.Retention;
      -006import java.lang.annotation.RetentionPolicy;
      -007import java.lang.annotation.Target;
      -008import java.lang.reflect.Field;
      -009
      -010@SuppressWarnings("unused")
      -011@FunctionalInterface
      -012public interface DeadWheelConstants {
      -013    Class getConstant();
      -014
      -015    default double getDouble(Class<? extends Annotation> a) {
      -016        for (Field f : getConstant().getFields()) {
      -017            try {
      -018                if (f.isAnnotationPresent(a)) {
      -019                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -020                    return f.getDouble(null);
      -021                }
      -022            } catch (IllegalAccessException e) {
      -023                System.err.println(f.getType() + " is inaccessible for some reason");
      -024            }
      -025        }
      -026        return 0;
      -027    }
      -028
      -029    default boolean getBoolean(Class<? extends Annotation> a) {
      -030        for (Field f : getConstant().getFields()) {
      -031            try {
      -032                if (f.isAnnotationPresent(a)) {
      -033                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -034                    return f.getBoolean(null);
      -035                }
      -036            } catch (IllegalAccessException e) {
      -037                System.err.println(f.getType() + " is inaccessible for some reason");
      -038            }
      -039        }
      -040        return false;
      -041    }
      -042
      -043    @Retention(RetentionPolicy.RUNTIME)
      -044    @Target(ElementType.FIELD)
      -045    @interface LateralDistance {
      -046    }
      -047
      -048    @Retention(RetentionPolicy.RUNTIME)
      -049    @Target(ElementType.FIELD)
      -050    @interface ForwardOffset {
      -051    }
      -052
      -053    @Retention(RetentionPolicy.RUNTIME)
      -054    @Target(ElementType.FIELD)
      -055    @interface EncoderOverflow {
      -056    }
      -057
      -058    @Retention(RetentionPolicy.RUNTIME)
      -059    @Target(ElementType.FIELD)
      -060    @interface GearRatio {
      -061    }
      -062
      -063    @Retention(RetentionPolicy.RUNTIME)
      -064    @Target(ElementType.FIELD)
      -065    @interface TicksPerRev {
      -066    }
      -067
      -068    @Retention(RetentionPolicy.RUNTIME)
      -069    @Target(ElementType.FIELD)
      -070    @interface WheelRadius {
      -071    }
      -072
      -073    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -074        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -075    }
      -076
      -077    static double rpmToVelocity(double rpm, double rad, double rat) {
      -078        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -079    }
      -080
      -081    static double getMotorVelocityF(double ticksPerSecond) {
      -082        return 32767 / ticksPerSecond;
      -083    }
      -084}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/DistanceSensorLocalizer.html b/docs/Path/src-html/com/technototes/path/subsystem/DistanceSensorLocalizer.html deleted file mode 100644 index 9f5da89f..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/DistanceSensorLocalizer.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import androidx.annotation.NonNull;
      -004import androidx.annotation.Nullable;
      -005import com.acmerobotics.roadrunner.geometry.Pose2d;
      -006import com.acmerobotics.roadrunner.localization.Localizer;
      -007import com.acmerobotics.roadrunner.util.Angle;
      -008import com.technototes.library.hardware.sensor.IDistanceSensor;
      -009import com.technototes.library.hardware.sensor.IGyro;
      -010import com.technototes.library.subsystem.Subsystem;
      -011import com.technototes.library.util.MathUtils;
      -012import java.util.Map;
      -013
      -014public class DistanceSensorLocalizer implements Localizer, Subsystem {
      -015
      -016    private Pose2d poseEstimate;
      -017
      -018    private final double maxSensorDistance = 40;
      -019
      -020    private final Map<IDistanceSensor, Pose2d> sensorMap;
      -021    private final IGyro gyro;
      -022
      -023    public DistanceSensorLocalizer(IGyro g, Map<IDistanceSensor, Pose2d> map) {
      -024        gyro = g;
      -025        sensorMap = map;
      -026        poseEstimate = new Pose2d();
      -027    }
      -028
      -029    @NonNull
      -030    @Override
      -031    public Pose2d getPoseEstimate() {
      -032        return poseEstimate;
      -033    }
      -034
      -035    @Override
      -036    public void setPoseEstimate(@NonNull Pose2d pose2d) {
      -037        poseEstimate = pose2d;
      -038    }
      -039
      -040    @Nullable
      -041    @Override
      -042    public Pose2d getPoseVelocity() {
      -043        return null;
      -044    }
      -045
      -046    @Override
      -047    public void update() {
      -048        update(null);
      -049    }
      -050
      -051    public void update(@Nullable Pose2d old) {
      -052        double heading = getHeading();
      -053        double accumX = 0, accumY = 0;
      -054        int totalX = 0, totalY = 0;
      -055        for (Map.Entry<IDistanceSensor, Pose2d> entry : sensorMap.entrySet()) {
      -056            IDistanceSensor sensor = entry.getKey();
      -057            Pose2d sensorPose = entry.getValue();
      -058            double distance = sensor.getDistance();
      -059            if (distance < maxSensorDistance && distance > 0.5) {
      -060                sensorPose =
      -061                    new Pose2d(sensorPose.vec().rotated(heading), Angle.norm(sensorPose.getHeading() + heading));
      -062                double change;
      -063                switch (MathUtils.closestTo((2 * sensorPose.getHeading()) / Math.PI, 0, 1, 2, 3, 4)) {
      -064                    case 0:
      -065                    case 4:
      -066                        change = 71 - sensorPose.getX() - Math.cos(sensorPose.getHeading()) * distance;
      -067                        if (old != null && Math.abs(old.getX() - change) > 10) break;
      -068                        accumX += change;
      -069                        totalX++;
      -070                        break;
      -071                    case 1:
      -072                        change = 71 - sensorPose.getY() - Math.sin(sensorPose.getHeading()) * distance;
      -073                        if (old != null && Math.abs(old.getY() - change) > 10) break;
      -074                        accumY += change;
      -075                        totalY++;
      -076                        break;
      -077                    case 2:
      -078                        change = 71 + sensorPose.getX() + Math.cos(sensorPose.getHeading()) * distance;
      -079                        if (old != null && Math.abs(old.getX() + change) > 10) break;
      -080                        accumX -= change;
      -081                        totalX++;
      -082                        break;
      -083                    case 3:
      -084                        change = 71 + sensorPose.getY() + Math.sin(sensorPose.getHeading()) * distance;
      -085                        if (old != null && Math.abs(old.getY() + change) > 10) break;
      -086                        accumY -= change;
      -087                        totalY++;
      -088                        break;
      -089                }
      -090            }
      -091        }
      -092        if (old == null) old = new Pose2d();
      -093        poseEstimate =
      -094            new Pose2d(totalX != 0 ? accumX / totalX : old.getX(), totalY != 0 ? accumY / totalY : old.getY(), heading);
      -095    }
      -096
      -097    public double gyroOffset = 0;
      -098
      -099    public void setGyroOffset(double v) {
      -100        gyroOffset = v;
      -101    }
      -102
      -103    public double getHeading() {
      -104        return Angle.norm(gyro.gyroHeadingInRadians() - gyroOffset);
      -105    }
      -106}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.GearRatio.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.GearRatio.html deleted file mode 100644 index 4f55b61b..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.GearRatio.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.HeadPID.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.HeadPID.html deleted file mode 100644 index bb3137a6..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.HeadPID.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KA.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KA.html deleted file mode 100644 index d1d1ba35..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KA.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KStatic.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KStatic.html deleted file mode 100644 index 57ac8d9b..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KStatic.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KV.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KV.html deleted file mode 100644 index 30ad18b9..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.KV.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.LateralMult.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.LateralMult.html deleted file mode 100644 index af5001c5..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.LateralMult.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html deleted file mode 100644 index 20cfccce..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAccel.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html deleted file mode 100644 index 624324ac..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleAccel.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html deleted file mode 100644 index da3e6542..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxAngleVelo.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html deleted file mode 100644 index 53713962..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxRPM.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html deleted file mode 100644 index 5a333d38..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MaxVelo.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html deleted file mode 100644 index 16d32575..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.MotorVeloPID.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html deleted file mode 100644 index 1f826d57..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.OmegaWeight.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html deleted file mode 100644 index f8b31351..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.PoseLimit.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html deleted file mode 100644 index ddf19068..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TicksPerRev.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html deleted file mode 100644 index 92eb3f75..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TrackWidth.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TransPID.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TransPID.html deleted file mode 100644 index 0a6f2def..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.TransPID.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html deleted file mode 100644 index a6fb1a18..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.UseDriveEncoder.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VXWeight.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VXWeight.html deleted file mode 100644 index 631ca65a..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VXWeight.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VYWeight.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VYWeight.html deleted file mode 100644 index 81af3774..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.VYWeight.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelBase.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelBase.html deleted file mode 100644 index e97ce2a5..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelBase.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html deleted file mode 100644 index e5da7c1e..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.WheelRadius.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.html b/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.html deleted file mode 100644 index 2e393921..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/MecanumConstants.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface MecanumConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface WheelBase {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KV {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KA {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface KStatic {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxVelo {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAccel {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleVelo {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface MaxAngleAccel {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface TransPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface VYWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface OmegaWeight {
      -190    }
      -191
      -192    @Retention(RetentionPolicy.RUNTIME)
      -193    @Target(ElementType.FIELD)
      -194    @interface PoseLimit {
      -195    }
      -196
      -197    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -198        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -199    }
      -200
      -201    static double rpmToVelocity(double rpm, double rad, double rat) {
      -202        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -203    }
      -204
      -205    static double getMotorVelocityF(double ticksPerSecond) {
      -206        return 32767 / ticksPerSecond;
      -207    }
      -208}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html b/docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html deleted file mode 100644 index 3e93fba9..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.Mode.html +++ /dev/null @@ -1,501 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import androidx.annotation.NonNull;
      -004import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -005import com.acmerobotics.roadrunner.drive.DriveSignal;
      -006import com.acmerobotics.roadrunner.drive.MecanumDrive;
      -007import com.acmerobotics.roadrunner.followers.HolonomicPIDVAFollower;
      -008import com.acmerobotics.roadrunner.followers.TrajectoryFollower;
      -009import com.acmerobotics.roadrunner.geometry.Pose2d;
      -010import com.acmerobotics.roadrunner.localization.Localizer;
      -011import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -012import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
      -013import com.acmerobotics.roadrunner.trajectory.constraints.AngularVelocityConstraint;
      -014import com.acmerobotics.roadrunner.trajectory.constraints.MecanumVelocityConstraint;
      -015import com.acmerobotics.roadrunner.trajectory.constraints.MinVelocityConstraint;
      -016import com.acmerobotics.roadrunner.trajectory.constraints.ProfileAccelerationConstraint;
      -017import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint;
      -018import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint;
      -019import com.qualcomm.hardware.lynx.LynxModule;
      -020import com.qualcomm.robotcore.hardware.DcMotor;
      -021import com.qualcomm.robotcore.hardware.DcMotorEx;
      -022import com.qualcomm.robotcore.hardware.DcMotorSimple;
      -023import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -024import com.qualcomm.robotcore.hardware.VoltageSensor;
      -025import com.qualcomm.robotcore.hardware.configuration.typecontainers.MotorConfigurationType;
      -026import com.technototes.library.hardware.HardwareDevice;
      -027import com.technototes.library.hardware.motor.EncodedMotor;
      -028import com.technototes.library.hardware.sensor.IMU;
      -029import com.technototes.library.subsystem.Subsystem;
      -030import com.technototes.path.subsystem.MecanumConstants.GearRatio;
      -031import com.technototes.path.subsystem.MecanumConstants.HeadPID;
      -032import com.technototes.path.subsystem.MecanumConstants.KA;
      -033import com.technototes.path.subsystem.MecanumConstants.KStatic;
      -034import com.technototes.path.subsystem.MecanumConstants.KV;
      -035import com.technototes.path.subsystem.MecanumConstants.LateralMult;
      -036import com.technototes.path.subsystem.MecanumConstants.MaxAccel;
      -037import com.technototes.path.subsystem.MecanumConstants.MaxAngleAccel;
      -038import com.technototes.path.subsystem.MecanumConstants.MaxAngleVelo;
      -039import com.technototes.path.subsystem.MecanumConstants.MaxRPM;
      -040import com.technototes.path.subsystem.MecanumConstants.MaxVelo;
      -041import com.technototes.path.subsystem.MecanumConstants.MotorVeloPID;
      -042import com.technototes.path.subsystem.MecanumConstants.OmegaWeight;
      -043import com.technototes.path.subsystem.MecanumConstants.PoseLimit;
      -044import com.technototes.path.subsystem.MecanumConstants.TicksPerRev;
      -045import com.technototes.path.subsystem.MecanumConstants.TrackWidth;
      -046import com.technototes.path.subsystem.MecanumConstants.TransPID;
      -047import com.technototes.path.subsystem.MecanumConstants.UseDriveEncoder;
      -048import com.technototes.path.subsystem.MecanumConstants.VXWeight;
      -049import com.technototes.path.subsystem.MecanumConstants.VYWeight;
      -050import com.technototes.path.subsystem.MecanumConstants.WheelBase;
      -051import com.technototes.path.subsystem.MecanumConstants.WheelRadius;
      -052import com.technototes.path.trajectorysequence.TrajectorySequence;
      -053import com.technototes.path.trajectorysequence.TrajectorySequenceBuilder;
      -054import com.technototes.path.trajectorysequence.TrajectorySequenceRunner;
      -055import com.technototes.path.util.LynxModuleUtil;
      -056import java.util.ArrayList;
      -057import java.util.Arrays;
      -058import java.util.List;
      -059import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
      -060
      -061@SuppressWarnings("unused")
      -062public class PathingMecanumDrivebaseSubsystem extends MecanumDrive implements Subsystem {
      -063
      -064    public double speed = 1;
      -065
      -066    public enum Mode {
      -067        IDLE,
      -068        TURN,
      -069        FOLLOW_TRAJECTORY,
      -070    }
      -071
      -072    public final double TICKS_PER_REV, MAX_RPM;
      -073
      -074    public final boolean RUN_USING_ENCODER;
      -075
      -076    public final PIDFCoefficients MOTOR_VELO_PID;
      -077
      -078    public final double WHEEL_RADIUS, GEAR_RATIO, TRACK_WIDTH, WHEEL_BASE, kV, kA, kStatic;
      -079    public final double MAX_VEL, MAX_ACCEL, MAX_ANG_VEL, MAX_ANG_ACCEL;
      -080    public final PIDCoefficients TRANSLATIONAL_PID, HEADING_PID;
      -081    public final double LATERAL_MULTIPLIER, VX_WEIGHT, VY_WEIGHT, OMEGA_WEIGHT;
      -082
      -083    public final int POSE_HISTORY_LIMIT;
      -084
      -085    private final TrajectorySequenceRunner trajectorySequenceRunner;
      -086
      -087    private static TrajectoryVelocityConstraint VEL_CONSTRAINT;
      -088    private static TrajectoryAccelerationConstraint ACCEL_CONSTRAINT;
      -089
      -090    private final TrajectoryFollower follower;
      -091
      -092    protected DcMotorEx leftFront, leftRear, rightRear, rightFront;
      -093    protected List<DcMotorEx> motors;
      -094    protected IMU imu;
      -095
      -096    protected VoltageSensor batteryVoltageSensor;
      -097
      -098    public PathingMecanumDrivebaseSubsystem(
      -099        EncodedMotor<DcMotorEx> fl,
      -100        EncodedMotor<DcMotorEx> fr,
      -101        EncodedMotor<DcMotorEx> rl,
      -102        EncodedMotor<DcMotorEx> rr,
      -103        IMU i,
      -104        MecanumConstants c
      -105    ) {
      -106        this(fl, fr, rl, rr, i, c, null);
      -107    }
      -108
      -109    public PathingMecanumDrivebaseSubsystem(
      -110        EncodedMotor<DcMotorEx> fl,
      -111        EncodedMotor<DcMotorEx> fr,
      -112        EncodedMotor<DcMotorEx> rl,
      -113        EncodedMotor<DcMotorEx> rr,
      -114        IMU i,
      -115        MecanumConstants c,
      -116        Localizer localizer
      -117    ) {
      -118        super(
      -119            c.getDouble(KV.class),
      -120            c.getDouble(KA.class),
      -121            c.getDouble(KStatic.class),
      -122            c.getDouble(TrackWidth.class),
      -123            c.getDouble(WheelBase.class),
      -124            c.getDouble(LateralMult.class)
      -125        );
      -126        leftFront = fl.getDevice();
      -127        leftRear = rl.getDevice();
      -128        rightRear = rr.getDevice();
      -129        rightFront = fr.getDevice();
      -130
      -131        motors = Arrays.asList(leftFront, leftRear, rightRear, rightFront);
      -132
      -133        TICKS_PER_REV = c.getDouble(TicksPerRev.class);
      -134        MAX_RPM = c.getDouble(MaxRPM.class);
      -135
      -136        RUN_USING_ENCODER = c.getBoolean(UseDriveEncoder.class);
      -137
      -138        MOTOR_VELO_PID = c.getPIDF(MotorVeloPID.class);
      -139
      -140        WHEEL_RADIUS = c.getDouble(WheelRadius.class);
      -141        GEAR_RATIO = c.getDouble(GearRatio.class);
      -142        TRACK_WIDTH = c.getDouble(TrackWidth.class);
      -143        WHEEL_BASE = c.getDouble(WheelBase.class);
      -144        kV = c.getDouble(KV.class);
      -145        kA = c.getDouble(KA.class);
      -146        kStatic = c.getDouble(KStatic.class);
      -147
      -148        MAX_VEL = c.getDouble(MaxVelo.class);
      -149        MAX_ACCEL = c.getDouble(MaxAccel.class);
      -150        MAX_ANG_VEL = c.getDouble(MaxAngleVelo.class);
      -151        MAX_ANG_ACCEL = c.getDouble(MaxAngleAccel.class);
      -152
      -153        TRANSLATIONAL_PID = c.getPID(TransPID.class);
      -154        HEADING_PID = c.getPID(HeadPID.class);
      -155
      -156        LATERAL_MULTIPLIER = c.getDouble(LateralMult.class);
      -157        VX_WEIGHT = c.getDouble(VXWeight.class);
      -158        VY_WEIGHT = c.getDouble(VYWeight.class);
      -159        OMEGA_WEIGHT = c.getDouble(OmegaWeight.class);
      -160
      -161        POSE_HISTORY_LIMIT = c.getInt(PoseLimit.class);
      -162
      -163        VEL_CONSTRAINT = getVelocityConstraint(MAX_VEL, MAX_ANG_VEL, TRACK_WIDTH);
      -164        ACCEL_CONSTRAINT = getAccelerationConstraint(MAX_ACCEL);
      -165
      -166        follower =
      -167            new HolonomicPIDVAFollower(
      -168                TRANSLATIONAL_PID,
      -169                TRANSLATIONAL_PID,
      -170                HEADING_PID,
      -171                new Pose2d(0.5, 0.5, Math.toRadians(5.0)),
      -172                0.5
      -173            );
      -174
      -175        LynxModuleUtil.ensureMinimumFirmwareVersion(HardwareDevice.hardwareMap);
      -176
      -177        batteryVoltageSensor = HardwareDevice.hardwareMap.voltageSensor.iterator().next();
      -178
      -179        for (LynxModule module : HardwareDevice.hardwareMap.getAll(LynxModule.class)) {
      -180            module.setBulkCachingMode(LynxModule.BulkCachingMode.AUTO);
      -181        }
      -182
      -183        imu = i;
      -184
      -185        for (DcMotorEx motor : motors) {
      -186            MotorConfigurationType motorConfigurationType = motor.getMotorType().clone();
      -187            motorConfigurationType.setAchieveableMaxRPMFraction(1.0);
      -188            motor.setMotorType(motorConfigurationType);
      -189        }
      -190
      -191        if (RUN_USING_ENCODER) {
      -192            setMode(DcMotor.RunMode.RUN_USING_ENCODER);
      -193        }
      -194
      -195        setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
      -196
      -197        if (RUN_USING_ENCODER && MOTOR_VELO_PID != null) {
      -198            setPIDFCoefficients(DcMotor.RunMode.RUN_USING_ENCODER, MOTOR_VELO_PID);
      -199        }
      -200
      -201        // TODO: reverse any motors using DcMotor.setDirection()
      -202
      -203        leftFront.setDirection(DcMotorSimple.Direction.REVERSE);
      -204        leftRear.setDirection(DcMotorSimple.Direction.REVERSE);
      -205
      -206        // TODO: if desired, use setLocalizer() to change the localization method
      -207        if (localizer != null) setLocalizer(localizer);
      -208
      -209        trajectorySequenceRunner = new TrajectorySequenceRunner(follower, HEADING_PID);
      -210    }
      -211
      -212    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose) {
      -213        return new TrajectoryBuilder(startPose, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -214    }
      -215
      -216    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose, boolean reversed) {
      -217        return new TrajectoryBuilder(startPose, reversed, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -218    }
      -219
      -220    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose, double startHeading) {
      -221        return new TrajectoryBuilder(startPose, startHeading, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -222    }
      -223
      -224    public TrajectorySequenceBuilder trajectorySequenceBuilder(Pose2d startPose) {
      -225        return new TrajectorySequenceBuilder(startPose, VEL_CONSTRAINT, ACCEL_CONSTRAINT, MAX_ANG_VEL, MAX_ANG_ACCEL);
      -226    }
      -227
      -228    public TrajectorySequenceBuilder trajectorySequenceBuilder() {
      -229        return trajectorySequenceBuilder(getPoseEstimate());
      -230    }
      -231
      -232    public void turnAsync(double angle) {
      -233        trajectorySequenceRunner.followTrajectorySequenceAsync(
      -234            trajectorySequenceBuilder(getPoseEstimate()).turn(angle).build()
      -235        );
      -236    }
      -237
      -238    public void turn(double angle) {
      -239        turnAsync(angle);
      -240        waitForIdle();
      -241    }
      -242
      -243    public void followTrajectoryAsync(Trajectory trajectory) {
      -244        if (trajectory == null) trajectorySequenceRunner.followTrajectorySequenceAsync(
      -245            null
      -246        ); else trajectorySequenceRunner.followTrajectorySequenceAsync(
      -247            trajectorySequenceBuilder(trajectory.start()).addTrajectory(trajectory).build()
      -248        );
      -249    }
      -250
      -251    public void followTrajectory(Trajectory trajectory) {
      -252        followTrajectoryAsync(trajectory);
      -253        waitForIdle();
      -254    }
      -255
      -256    public void followTrajectorySequenceAsync(TrajectorySequence trajectorySequence) {
      -257        trajectorySequenceRunner.followTrajectorySequenceAsync(trajectorySequence);
      -258    }
      -259
      -260    public void followTrajectorySequence(TrajectorySequence trajectorySequence) {
      -261        followTrajectorySequenceAsync(trajectorySequence);
      -262        waitForIdle();
      -263    }
      -264
      -265    public Pose2d getLastError() {
      -266        return trajectorySequenceRunner.getLastPoseError();
      -267    }
      -268
      -269    public void update() {
      -270        updatePoseEstimate();
      -271        DriveSignal signal = trajectorySequenceRunner.update(getPoseEstimate(), getPoseVelocity());
      -272        if (signal != null) setDriveSignal(signal);
      -273    }
      -274
      -275    public void stop() {
      -276        followTrajectorySequenceAsync(null);
      -277        followTrajectoryAsync(null);
      -278        setDriveSignal(new DriveSignal());
      -279    }
      -280
      -281    public void waitForIdle() {
      -282        while (!Thread.currentThread().isInterrupted() && isBusy()) update();
      -283    }
      -284
      -285    public boolean isBusy() {
      -286        return trajectorySequenceRunner.isBusy();
      -287    }
      -288
      -289    public void setMode(DcMotor.RunMode runMode) {
      -290        for (DcMotorEx motor : motors) {
      -291            motor.setMode(runMode);
      -292        }
      -293    }
      -294
      -295    public void setZeroPowerBehavior(DcMotor.ZeroPowerBehavior zeroPowerBehavior) {
      -296        for (DcMotorEx motor : motors) {
      -297            motor.setZeroPowerBehavior(zeroPowerBehavior);
      -298        }
      -299    }
      -300
      -301    public void setPIDFCoefficients(DcMotor.RunMode runMode, PIDFCoefficients coefficients) {
      -302        PIDFCoefficients compensatedCoefficients = new PIDFCoefficients(
      -303            coefficients.p,
      -304            coefficients.i,
      -305            coefficients.d,
      -306            (coefficients.f * 12) / batteryVoltageSensor.getVoltage()
      -307        );
      -308
      -309        for (DcMotorEx motor : motors) {
      -310            motor.setPIDFCoefficients(runMode, compensatedCoefficients);
      -311        }
      -312    }
      -313
      -314    public void setWeightedDrivePower(Pose2d drivePower) {
      -315        Pose2d vel = drivePower;
      -316
      -317        if (Math.abs(drivePower.getX()) + Math.abs(drivePower.getY()) + Math.abs(drivePower.getHeading()) > 1) {
      -318            // re-normalize the powers according to the weights
      -319            double denom =
      -320                VX_WEIGHT * Math.abs(drivePower.getX()) +
      -321                VY_WEIGHT * Math.abs(drivePower.getY()) +
      -322                OMEGA_WEIGHT * Math.abs(drivePower.getHeading());
      -323
      -324            vel =
      -325                new Pose2d(
      -326                    VX_WEIGHT * drivePower.getX(),
      -327                    VY_WEIGHT * drivePower.getY(),
      -328                    OMEGA_WEIGHT * drivePower.getHeading()
      -329                )
      -330                    .div(denom);
      -331        }
      -332
      -333        setDrivePower(vel);
      -334    }
      -335
      -336    @NonNull
      -337    @Override
      -338    public List<Double> getWheelPositions() {
      -339        List<Double> wheelPositions = new ArrayList<>();
      -340        for (DcMotorEx motor : motors) {
      -341            wheelPositions.add(
      -342                MecanumConstants.encoderTicksToInches(
      -343                    motor.getCurrentPosition(),
      -344                    WHEEL_RADIUS,
      -345                    GEAR_RATIO,
      -346                    TICKS_PER_REV
      -347                )
      -348            );
      -349        }
      -350        return wheelPositions;
      -351    }
      -352
      -353    @Override
      -354    public List<Double> getWheelVelocities() {
      -355        List<Double> wheelVelocities = new ArrayList<>();
      -356        for (DcMotorEx motor : motors) {
      -357            wheelVelocities.add(
      -358                MecanumConstants.encoderTicksToInches(motor.getVelocity(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV)
      -359            );
      -360        }
      -361        return wheelVelocities;
      -362    }
      -363
      -364    @Override
      -365    public void setMotorPowers(double v, double v1, double v2, double v3) {
      -366        leftFront.setPower(v);
      -367        leftRear.setPower(v1);
      -368        rightRear.setPower(v2);
      -369        rightFront.setPower(v3);
      -370    }
      -371
      -372    @Override
      -373    public double getRawExternalHeading() {
      -374        return imu.getAngularOrientation(AngleUnit.RADIANS).firstAngle;
      -375    }
      -376
      -377    @Override
      -378    public Double getExternalHeadingVelocity() {
      -379        // THIS IS WRONG AS OF SDK 8.1 (X is actually negative Y and Y is X, from this diagram)
      -380        // GO READ THE SDK DOCS ABOUT THE IMU!
      -381
      -382        // TODO: This must be changed to match your configuration
      -383        //                           | Z axis
      -384        //                           |
      -385        //     (Motor Port Side)     |   / X axis
      -386        //                       ____|__/____
      -387        //          Y axis     / *   | /    /|   (IO Side)
      -388        //          _________ /______|/    //      I2C
      -389        //                   /___________ //     Digital
      -390        //                  |____________|/      Analog
      -391        //
      -392        //                 (Servo Port Side)
      -393        //
      -394        // The positive x axis points toward the USB port(s)
      -395        //
      -396        // Adjust the axis rotation rate as necessary
      -397        // Rotate about the z axis is the default assuming your REV Hub/Control Hub is laying
      -398        // flat on a surface
      -399
      -400        return (double) imu.getAngularVelocity(AngleUnit.RADIANS).zRotationRate;
      -401    }
      -402
      -403    public static TrajectoryVelocityConstraint getVelocityConstraint(
      -404        double maxVel,
      -405        double maxAngularVel,
      -406        double trackWidth
      -407    ) {
      -408        return new MinVelocityConstraint(
      -409            Arrays.asList(
      -410                new AngularVelocityConstraint(maxAngularVel),
      -411                new MecanumVelocityConstraint(maxVel, trackWidth)
      -412            )
      -413        );
      -414    }
      -415
      -416    public static TrajectoryAccelerationConstraint getAccelerationConstraint(double maxAccel) {
      -417        return new ProfileAccelerationConstraint(maxAccel);
      -418    }
      -419
      -420    public void zeroExternalHeading() {
      -421        setExternalHeading(0);
      -422    }
      -423}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html b/docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html deleted file mode 100644 index 2236385b..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/PathingMecanumDrivebaseSubsystem.html +++ /dev/null @@ -1,501 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import androidx.annotation.NonNull;
      -004import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -005import com.acmerobotics.roadrunner.drive.DriveSignal;
      -006import com.acmerobotics.roadrunner.drive.MecanumDrive;
      -007import com.acmerobotics.roadrunner.followers.HolonomicPIDVAFollower;
      -008import com.acmerobotics.roadrunner.followers.TrajectoryFollower;
      -009import com.acmerobotics.roadrunner.geometry.Pose2d;
      -010import com.acmerobotics.roadrunner.localization.Localizer;
      -011import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -012import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
      -013import com.acmerobotics.roadrunner.trajectory.constraints.AngularVelocityConstraint;
      -014import com.acmerobotics.roadrunner.trajectory.constraints.MecanumVelocityConstraint;
      -015import com.acmerobotics.roadrunner.trajectory.constraints.MinVelocityConstraint;
      -016import com.acmerobotics.roadrunner.trajectory.constraints.ProfileAccelerationConstraint;
      -017import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint;
      -018import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint;
      -019import com.qualcomm.hardware.lynx.LynxModule;
      -020import com.qualcomm.robotcore.hardware.DcMotor;
      -021import com.qualcomm.robotcore.hardware.DcMotorEx;
      -022import com.qualcomm.robotcore.hardware.DcMotorSimple;
      -023import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -024import com.qualcomm.robotcore.hardware.VoltageSensor;
      -025import com.qualcomm.robotcore.hardware.configuration.typecontainers.MotorConfigurationType;
      -026import com.technototes.library.hardware.HardwareDevice;
      -027import com.technototes.library.hardware.motor.EncodedMotor;
      -028import com.technototes.library.hardware.sensor.IMU;
      -029import com.technototes.library.subsystem.Subsystem;
      -030import com.technototes.path.subsystem.MecanumConstants.GearRatio;
      -031import com.technototes.path.subsystem.MecanumConstants.HeadPID;
      -032import com.technototes.path.subsystem.MecanumConstants.KA;
      -033import com.technototes.path.subsystem.MecanumConstants.KStatic;
      -034import com.technototes.path.subsystem.MecanumConstants.KV;
      -035import com.technototes.path.subsystem.MecanumConstants.LateralMult;
      -036import com.technototes.path.subsystem.MecanumConstants.MaxAccel;
      -037import com.technototes.path.subsystem.MecanumConstants.MaxAngleAccel;
      -038import com.technototes.path.subsystem.MecanumConstants.MaxAngleVelo;
      -039import com.technototes.path.subsystem.MecanumConstants.MaxRPM;
      -040import com.technototes.path.subsystem.MecanumConstants.MaxVelo;
      -041import com.technototes.path.subsystem.MecanumConstants.MotorVeloPID;
      -042import com.technototes.path.subsystem.MecanumConstants.OmegaWeight;
      -043import com.technototes.path.subsystem.MecanumConstants.PoseLimit;
      -044import com.technototes.path.subsystem.MecanumConstants.TicksPerRev;
      -045import com.technototes.path.subsystem.MecanumConstants.TrackWidth;
      -046import com.technototes.path.subsystem.MecanumConstants.TransPID;
      -047import com.technototes.path.subsystem.MecanumConstants.UseDriveEncoder;
      -048import com.technototes.path.subsystem.MecanumConstants.VXWeight;
      -049import com.technototes.path.subsystem.MecanumConstants.VYWeight;
      -050import com.technototes.path.subsystem.MecanumConstants.WheelBase;
      -051import com.technototes.path.subsystem.MecanumConstants.WheelRadius;
      -052import com.technototes.path.trajectorysequence.TrajectorySequence;
      -053import com.technototes.path.trajectorysequence.TrajectorySequenceBuilder;
      -054import com.technototes.path.trajectorysequence.TrajectorySequenceRunner;
      -055import com.technototes.path.util.LynxModuleUtil;
      -056import java.util.ArrayList;
      -057import java.util.Arrays;
      -058import java.util.List;
      -059import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
      -060
      -061@SuppressWarnings("unused")
      -062public class PathingMecanumDrivebaseSubsystem extends MecanumDrive implements Subsystem {
      -063
      -064    public double speed = 1;
      -065
      -066    public enum Mode {
      -067        IDLE,
      -068        TURN,
      -069        FOLLOW_TRAJECTORY,
      -070    }
      -071
      -072    public final double TICKS_PER_REV, MAX_RPM;
      -073
      -074    public final boolean RUN_USING_ENCODER;
      -075
      -076    public final PIDFCoefficients MOTOR_VELO_PID;
      -077
      -078    public final double WHEEL_RADIUS, GEAR_RATIO, TRACK_WIDTH, WHEEL_BASE, kV, kA, kStatic;
      -079    public final double MAX_VEL, MAX_ACCEL, MAX_ANG_VEL, MAX_ANG_ACCEL;
      -080    public final PIDCoefficients TRANSLATIONAL_PID, HEADING_PID;
      -081    public final double LATERAL_MULTIPLIER, VX_WEIGHT, VY_WEIGHT, OMEGA_WEIGHT;
      -082
      -083    public final int POSE_HISTORY_LIMIT;
      -084
      -085    private final TrajectorySequenceRunner trajectorySequenceRunner;
      -086
      -087    private static TrajectoryVelocityConstraint VEL_CONSTRAINT;
      -088    private static TrajectoryAccelerationConstraint ACCEL_CONSTRAINT;
      -089
      -090    private final TrajectoryFollower follower;
      -091
      -092    protected DcMotorEx leftFront, leftRear, rightRear, rightFront;
      -093    protected List<DcMotorEx> motors;
      -094    protected IMU imu;
      -095
      -096    protected VoltageSensor batteryVoltageSensor;
      -097
      -098    public PathingMecanumDrivebaseSubsystem(
      -099        EncodedMotor<DcMotorEx> fl,
      -100        EncodedMotor<DcMotorEx> fr,
      -101        EncodedMotor<DcMotorEx> rl,
      -102        EncodedMotor<DcMotorEx> rr,
      -103        IMU i,
      -104        MecanumConstants c
      -105    ) {
      -106        this(fl, fr, rl, rr, i, c, null);
      -107    }
      -108
      -109    public PathingMecanumDrivebaseSubsystem(
      -110        EncodedMotor<DcMotorEx> fl,
      -111        EncodedMotor<DcMotorEx> fr,
      -112        EncodedMotor<DcMotorEx> rl,
      -113        EncodedMotor<DcMotorEx> rr,
      -114        IMU i,
      -115        MecanumConstants c,
      -116        Localizer localizer
      -117    ) {
      -118        super(
      -119            c.getDouble(KV.class),
      -120            c.getDouble(KA.class),
      -121            c.getDouble(KStatic.class),
      -122            c.getDouble(TrackWidth.class),
      -123            c.getDouble(WheelBase.class),
      -124            c.getDouble(LateralMult.class)
      -125        );
      -126        leftFront = fl.getDevice();
      -127        leftRear = rl.getDevice();
      -128        rightRear = rr.getDevice();
      -129        rightFront = fr.getDevice();
      -130
      -131        motors = Arrays.asList(leftFront, leftRear, rightRear, rightFront);
      -132
      -133        TICKS_PER_REV = c.getDouble(TicksPerRev.class);
      -134        MAX_RPM = c.getDouble(MaxRPM.class);
      -135
      -136        RUN_USING_ENCODER = c.getBoolean(UseDriveEncoder.class);
      -137
      -138        MOTOR_VELO_PID = c.getPIDF(MotorVeloPID.class);
      -139
      -140        WHEEL_RADIUS = c.getDouble(WheelRadius.class);
      -141        GEAR_RATIO = c.getDouble(GearRatio.class);
      -142        TRACK_WIDTH = c.getDouble(TrackWidth.class);
      -143        WHEEL_BASE = c.getDouble(WheelBase.class);
      -144        kV = c.getDouble(KV.class);
      -145        kA = c.getDouble(KA.class);
      -146        kStatic = c.getDouble(KStatic.class);
      -147
      -148        MAX_VEL = c.getDouble(MaxVelo.class);
      -149        MAX_ACCEL = c.getDouble(MaxAccel.class);
      -150        MAX_ANG_VEL = c.getDouble(MaxAngleVelo.class);
      -151        MAX_ANG_ACCEL = c.getDouble(MaxAngleAccel.class);
      -152
      -153        TRANSLATIONAL_PID = c.getPID(TransPID.class);
      -154        HEADING_PID = c.getPID(HeadPID.class);
      -155
      -156        LATERAL_MULTIPLIER = c.getDouble(LateralMult.class);
      -157        VX_WEIGHT = c.getDouble(VXWeight.class);
      -158        VY_WEIGHT = c.getDouble(VYWeight.class);
      -159        OMEGA_WEIGHT = c.getDouble(OmegaWeight.class);
      -160
      -161        POSE_HISTORY_LIMIT = c.getInt(PoseLimit.class);
      -162
      -163        VEL_CONSTRAINT = getVelocityConstraint(MAX_VEL, MAX_ANG_VEL, TRACK_WIDTH);
      -164        ACCEL_CONSTRAINT = getAccelerationConstraint(MAX_ACCEL);
      -165
      -166        follower =
      -167            new HolonomicPIDVAFollower(
      -168                TRANSLATIONAL_PID,
      -169                TRANSLATIONAL_PID,
      -170                HEADING_PID,
      -171                new Pose2d(0.5, 0.5, Math.toRadians(5.0)),
      -172                0.5
      -173            );
      -174
      -175        LynxModuleUtil.ensureMinimumFirmwareVersion(HardwareDevice.hardwareMap);
      -176
      -177        batteryVoltageSensor = HardwareDevice.hardwareMap.voltageSensor.iterator().next();
      -178
      -179        for (LynxModule module : HardwareDevice.hardwareMap.getAll(LynxModule.class)) {
      -180            module.setBulkCachingMode(LynxModule.BulkCachingMode.AUTO);
      -181        }
      -182
      -183        imu = i;
      -184
      -185        for (DcMotorEx motor : motors) {
      -186            MotorConfigurationType motorConfigurationType = motor.getMotorType().clone();
      -187            motorConfigurationType.setAchieveableMaxRPMFraction(1.0);
      -188            motor.setMotorType(motorConfigurationType);
      -189        }
      -190
      -191        if (RUN_USING_ENCODER) {
      -192            setMode(DcMotor.RunMode.RUN_USING_ENCODER);
      -193        }
      -194
      -195        setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
      -196
      -197        if (RUN_USING_ENCODER && MOTOR_VELO_PID != null) {
      -198            setPIDFCoefficients(DcMotor.RunMode.RUN_USING_ENCODER, MOTOR_VELO_PID);
      -199        }
      -200
      -201        // TODO: reverse any motors using DcMotor.setDirection()
      -202
      -203        leftFront.setDirection(DcMotorSimple.Direction.REVERSE);
      -204        leftRear.setDirection(DcMotorSimple.Direction.REVERSE);
      -205
      -206        // TODO: if desired, use setLocalizer() to change the localization method
      -207        if (localizer != null) setLocalizer(localizer);
      -208
      -209        trajectorySequenceRunner = new TrajectorySequenceRunner(follower, HEADING_PID);
      -210    }
      -211
      -212    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose) {
      -213        return new TrajectoryBuilder(startPose, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -214    }
      -215
      -216    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose, boolean reversed) {
      -217        return new TrajectoryBuilder(startPose, reversed, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -218    }
      -219
      -220    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose, double startHeading) {
      -221        return new TrajectoryBuilder(startPose, startHeading, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -222    }
      -223
      -224    public TrajectorySequenceBuilder trajectorySequenceBuilder(Pose2d startPose) {
      -225        return new TrajectorySequenceBuilder(startPose, VEL_CONSTRAINT, ACCEL_CONSTRAINT, MAX_ANG_VEL, MAX_ANG_ACCEL);
      -226    }
      -227
      -228    public TrajectorySequenceBuilder trajectorySequenceBuilder() {
      -229        return trajectorySequenceBuilder(getPoseEstimate());
      -230    }
      -231
      -232    public void turnAsync(double angle) {
      -233        trajectorySequenceRunner.followTrajectorySequenceAsync(
      -234            trajectorySequenceBuilder(getPoseEstimate()).turn(angle).build()
      -235        );
      -236    }
      -237
      -238    public void turn(double angle) {
      -239        turnAsync(angle);
      -240        waitForIdle();
      -241    }
      -242
      -243    public void followTrajectoryAsync(Trajectory trajectory) {
      -244        if (trajectory == null) trajectorySequenceRunner.followTrajectorySequenceAsync(
      -245            null
      -246        ); else trajectorySequenceRunner.followTrajectorySequenceAsync(
      -247            trajectorySequenceBuilder(trajectory.start()).addTrajectory(trajectory).build()
      -248        );
      -249    }
      -250
      -251    public void followTrajectory(Trajectory trajectory) {
      -252        followTrajectoryAsync(trajectory);
      -253        waitForIdle();
      -254    }
      -255
      -256    public void followTrajectorySequenceAsync(TrajectorySequence trajectorySequence) {
      -257        trajectorySequenceRunner.followTrajectorySequenceAsync(trajectorySequence);
      -258    }
      -259
      -260    public void followTrajectorySequence(TrajectorySequence trajectorySequence) {
      -261        followTrajectorySequenceAsync(trajectorySequence);
      -262        waitForIdle();
      -263    }
      -264
      -265    public Pose2d getLastError() {
      -266        return trajectorySequenceRunner.getLastPoseError();
      -267    }
      -268
      -269    public void update() {
      -270        updatePoseEstimate();
      -271        DriveSignal signal = trajectorySequenceRunner.update(getPoseEstimate(), getPoseVelocity());
      -272        if (signal != null) setDriveSignal(signal);
      -273    }
      -274
      -275    public void stop() {
      -276        followTrajectorySequenceAsync(null);
      -277        followTrajectoryAsync(null);
      -278        setDriveSignal(new DriveSignal());
      -279    }
      -280
      -281    public void waitForIdle() {
      -282        while (!Thread.currentThread().isInterrupted() && isBusy()) update();
      -283    }
      -284
      -285    public boolean isBusy() {
      -286        return trajectorySequenceRunner.isBusy();
      -287    }
      -288
      -289    public void setMode(DcMotor.RunMode runMode) {
      -290        for (DcMotorEx motor : motors) {
      -291            motor.setMode(runMode);
      -292        }
      -293    }
      -294
      -295    public void setZeroPowerBehavior(DcMotor.ZeroPowerBehavior zeroPowerBehavior) {
      -296        for (DcMotorEx motor : motors) {
      -297            motor.setZeroPowerBehavior(zeroPowerBehavior);
      -298        }
      -299    }
      -300
      -301    public void setPIDFCoefficients(DcMotor.RunMode runMode, PIDFCoefficients coefficients) {
      -302        PIDFCoefficients compensatedCoefficients = new PIDFCoefficients(
      -303            coefficients.p,
      -304            coefficients.i,
      -305            coefficients.d,
      -306            (coefficients.f * 12) / batteryVoltageSensor.getVoltage()
      -307        );
      -308
      -309        for (DcMotorEx motor : motors) {
      -310            motor.setPIDFCoefficients(runMode, compensatedCoefficients);
      -311        }
      -312    }
      -313
      -314    public void setWeightedDrivePower(Pose2d drivePower) {
      -315        Pose2d vel = drivePower;
      -316
      -317        if (Math.abs(drivePower.getX()) + Math.abs(drivePower.getY()) + Math.abs(drivePower.getHeading()) > 1) {
      -318            // re-normalize the powers according to the weights
      -319            double denom =
      -320                VX_WEIGHT * Math.abs(drivePower.getX()) +
      -321                VY_WEIGHT * Math.abs(drivePower.getY()) +
      -322                OMEGA_WEIGHT * Math.abs(drivePower.getHeading());
      -323
      -324            vel =
      -325                new Pose2d(
      -326                    VX_WEIGHT * drivePower.getX(),
      -327                    VY_WEIGHT * drivePower.getY(),
      -328                    OMEGA_WEIGHT * drivePower.getHeading()
      -329                )
      -330                    .div(denom);
      -331        }
      -332
      -333        setDrivePower(vel);
      -334    }
      -335
      -336    @NonNull
      -337    @Override
      -338    public List<Double> getWheelPositions() {
      -339        List<Double> wheelPositions = new ArrayList<>();
      -340        for (DcMotorEx motor : motors) {
      -341            wheelPositions.add(
      -342                MecanumConstants.encoderTicksToInches(
      -343                    motor.getCurrentPosition(),
      -344                    WHEEL_RADIUS,
      -345                    GEAR_RATIO,
      -346                    TICKS_PER_REV
      -347                )
      -348            );
      -349        }
      -350        return wheelPositions;
      -351    }
      -352
      -353    @Override
      -354    public List<Double> getWheelVelocities() {
      -355        List<Double> wheelVelocities = new ArrayList<>();
      -356        for (DcMotorEx motor : motors) {
      -357            wheelVelocities.add(
      -358                MecanumConstants.encoderTicksToInches(motor.getVelocity(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV)
      -359            );
      -360        }
      -361        return wheelVelocities;
      -362    }
      -363
      -364    @Override
      -365    public void setMotorPowers(double v, double v1, double v2, double v3) {
      -366        leftFront.setPower(v);
      -367        leftRear.setPower(v1);
      -368        rightRear.setPower(v2);
      -369        rightFront.setPower(v3);
      -370    }
      -371
      -372    @Override
      -373    public double getRawExternalHeading() {
      -374        return imu.getAngularOrientation(AngleUnit.RADIANS).firstAngle;
      -375    }
      -376
      -377    @Override
      -378    public Double getExternalHeadingVelocity() {
      -379        // THIS IS WRONG AS OF SDK 8.1 (X is actually negative Y and Y is X, from this diagram)
      -380        // GO READ THE SDK DOCS ABOUT THE IMU!
      -381
      -382        // TODO: This must be changed to match your configuration
      -383        //                           | Z axis
      -384        //                           |
      -385        //     (Motor Port Side)     |   / X axis
      -386        //                       ____|__/____
      -387        //          Y axis     / *   | /    /|   (IO Side)
      -388        //          _________ /______|/    //      I2C
      -389        //                   /___________ //     Digital
      -390        //                  |____________|/      Analog
      -391        //
      -392        //                 (Servo Port Side)
      -393        //
      -394        // The positive x axis points toward the USB port(s)
      -395        //
      -396        // Adjust the axis rotation rate as necessary
      -397        // Rotate about the z axis is the default assuming your REV Hub/Control Hub is laying
      -398        // flat on a surface
      -399
      -400        return (double) imu.getAngularVelocity(AngleUnit.RADIANS).zRotationRate;
      -401    }
      -402
      -403    public static TrajectoryVelocityConstraint getVelocityConstraint(
      -404        double maxVel,
      -405        double maxAngularVel,
      -406        double trackWidth
      -407    ) {
      -408        return new MinVelocityConstraint(
      -409            Arrays.asList(
      -410                new AngularVelocityConstraint(maxAngularVel),
      -411                new MecanumVelocityConstraint(maxVel, trackWidth)
      -412            )
      -413        );
      -414    }
      -415
      -416    public static TrajectoryAccelerationConstraint getAccelerationConstraint(double maxAccel) {
      -417        return new ProfileAccelerationConstraint(maxAccel);
      -418    }
      -419
      -420    public void zeroExternalHeading() {
      -421        setExternalHeading(0);
      -422    }
      -423}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.AxialPID.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.AxialPID.html deleted file mode 100644 index b28750ed..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.AxialPID.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.CrossPID.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.CrossPID.html deleted file mode 100644 index 505cdf70..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.CrossPID.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.GearRatio.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.GearRatio.html deleted file mode 100644 index 83a3d04f..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.GearRatio.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.HeadPID.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.HeadPID.html deleted file mode 100644 index e0841d1a..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.HeadPID.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KA.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KA.html deleted file mode 100644 index 6d105e03..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KA.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KStatic.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KStatic.html deleted file mode 100644 index 548336c8..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KStatic.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KV.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KV.html deleted file mode 100644 index 7d7ecd08..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.KV.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.LateralMult.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.LateralMult.html deleted file mode 100644 index 68ce75e6..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.LateralMult.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAccel.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAccel.html deleted file mode 100644 index 6eab2175..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAccel.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html deleted file mode 100644 index f9bac603..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleAccel.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html deleted file mode 100644 index 0db82cb9..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxAngleVelo.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxRPM.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxRPM.html deleted file mode 100644 index 6c75e269..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxRPM.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxVelo.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxVelo.html deleted file mode 100644 index b1295f03..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MaxVelo.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html deleted file mode 100644 index 0725b919..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.MotorVeloPID.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.OmegaWeight.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.OmegaWeight.html deleted file mode 100644 index f1618b1b..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.OmegaWeight.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.PoseLimit.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.PoseLimit.html deleted file mode 100644 index 3cba62a9..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.PoseLimit.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TicksPerRev.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TicksPerRev.html deleted file mode 100644 index 8ece7e52..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TicksPerRev.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TrackWidth.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TrackWidth.html deleted file mode 100644 index 2e12be22..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.TrackWidth.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html deleted file mode 100644 index ca71a1ed..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.UseDriveEncoder.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.VXWeight.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.VXWeight.html deleted file mode 100644 index eaa2ebd4..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.VXWeight.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.WheelRadius.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.WheelRadius.html deleted file mode 100644 index 1d27d53c..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.WheelRadius.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.html b/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.html deleted file mode 100644 index 4277feb4..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankConstants.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -004import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -005import java.lang.annotation.Annotation;
      -006import java.lang.annotation.ElementType;
      -007import java.lang.annotation.Retention;
      -008import java.lang.annotation.RetentionPolicy;
      -009import java.lang.annotation.Target;
      -010import java.lang.reflect.Field;
      -011
      -012@SuppressWarnings("unused")
      -013@FunctionalInterface
      -014public interface TankConstants {
      -015    Class getConstant();
      -016
      -017    default double getDouble(Class<? extends Annotation> a) {
      -018        for (Field f : getConstant().getFields()) {
      -019            try {
      -020                if (f.isAnnotationPresent(a)) {
      -021                    System.out.println(a.toString() + " as " + f.getDouble(null));
      -022                    return f.getDouble(null);
      -023                }
      -024            } catch (IllegalAccessException e) {
      -025                System.err.println(f.getType() + " is inaccessible for some reason");
      -026            }
      -027        }
      -028        return 0;
      -029    }
      -030
      -031    default int getInt(Class<? extends Annotation> a) {
      -032        for (Field f : getConstant().getFields()) {
      -033            try {
      -034                if (f.isAnnotationPresent(a)) {
      -035                    System.out.println(a.toString() + " as " + f.getInt(null));
      -036                    return f.getInt(null);
      -037                }
      -038            } catch (IllegalAccessException e) {
      -039                System.err.println(f.getType() + " is inaccessible for some reason");
      -040            }
      -041        }
      -042        return 0;
      -043    }
      -044
      -045    default boolean getBoolean(Class<? extends Annotation> a) {
      -046        for (Field f : getConstant().getFields()) {
      -047            try {
      -048                if (f.isAnnotationPresent(a)) {
      -049                    System.out.println(a.toString() + " as " + f.getBoolean(null));
      -050                    return f.getBoolean(null);
      -051                }
      -052            } catch (IllegalAccessException e) {
      -053                System.err.println(f.getType() + " is inaccessible for some reason");
      -054            }
      -055        }
      -056        return false;
      -057    }
      -058
      -059    default PIDCoefficients getPID(Class<? extends Annotation> a) {
      -060        for (Field f : getConstant().getFields()) {
      -061            try {
      -062                if (f.isAnnotationPresent(a)) {
      -063                    System.out.println(a.toString() + " as " + f.get(null));
      -064                    return (PIDCoefficients) f.get(null);
      -065                }
      -066            } catch (IllegalAccessException e) {
      -067                System.err.println(f.getType() + " is inaccessible for some reason");
      -068            }
      -069        }
      -070        return null;
      -071    }
      -072
      -073    default PIDFCoefficients getPIDF(Class<? extends Annotation> a) {
      -074        for (Field f : getConstant().getFields()) {
      -075            try {
      -076                if (f.isAnnotationPresent(a)) {
      -077                    System.out.println(a.toString() + " as " + f.get(null));
      -078                    return (PIDFCoefficients) f.get(null);
      -079                }
      -080            } catch (IllegalAccessException e) {
      -081                System.err.println(f.getType() + " is inaccessible for some reason");
      -082            }
      -083        }
      -084        return null;
      -085    }
      -086
      -087    @Retention(RetentionPolicy.RUNTIME)
      -088    @Target(ElementType.FIELD)
      -089    @interface TicksPerRev {
      -090    }
      -091
      -092    @Retention(RetentionPolicy.RUNTIME)
      -093    @Target(ElementType.FIELD)
      -094    @interface MaxRPM {
      -095    }
      -096
      -097    @Retention(RetentionPolicy.RUNTIME)
      -098    @Target(ElementType.FIELD)
      -099    @interface UseDriveEncoder {
      -100    }
      -101
      -102    @Retention(RetentionPolicy.RUNTIME)
      -103    @Target(ElementType.FIELD)
      -104    @interface MotorVeloPID {
      -105    }
      -106
      -107    @Retention(RetentionPolicy.RUNTIME)
      -108    @Target(ElementType.FIELD)
      -109    @interface WheelRadius {
      -110    }
      -111
      -112    @Retention(RetentionPolicy.RUNTIME)
      -113    @Target(ElementType.FIELD)
      -114    @interface GearRatio {
      -115    }
      -116
      -117    @Retention(RetentionPolicy.RUNTIME)
      -118    @Target(ElementType.FIELD)
      -119    @interface TrackWidth {
      -120    }
      -121
      -122    @Retention(RetentionPolicy.RUNTIME)
      -123    @Target(ElementType.FIELD)
      -124    @interface KV {
      -125    }
      -126
      -127    @Retention(RetentionPolicy.RUNTIME)
      -128    @Target(ElementType.FIELD)
      -129    @interface KA {
      -130    }
      -131
      -132    @Retention(RetentionPolicy.RUNTIME)
      -133    @Target(ElementType.FIELD)
      -134    @interface KStatic {
      -135    }
      -136
      -137    @Retention(RetentionPolicy.RUNTIME)
      -138    @Target(ElementType.FIELD)
      -139    @interface MaxVelo {
      -140    }
      -141
      -142    @Retention(RetentionPolicy.RUNTIME)
      -143    @Target(ElementType.FIELD)
      -144    @interface MaxAccel {
      -145    }
      -146
      -147    @Retention(RetentionPolicy.RUNTIME)
      -148    @Target(ElementType.FIELD)
      -149    @interface MaxAngleVelo {
      -150    }
      -151
      -152    @Retention(RetentionPolicy.RUNTIME)
      -153    @Target(ElementType.FIELD)
      -154    @interface MaxAngleAccel {
      -155    }
      -156
      -157    @Retention(RetentionPolicy.RUNTIME)
      -158    @Target(ElementType.FIELD)
      -159    @interface CrossPID {
      -160    }
      -161
      -162    @Retention(RetentionPolicy.RUNTIME)
      -163    @Target(ElementType.FIELD)
      -164    @interface AxialPID {
      -165    }
      -166
      -167    @Retention(RetentionPolicy.RUNTIME)
      -168    @Target(ElementType.FIELD)
      -169    @interface HeadPID {
      -170    }
      -171
      -172    @Retention(RetentionPolicy.RUNTIME)
      -173    @Target(ElementType.FIELD)
      -174    @interface LateralMult {
      -175    }
      -176
      -177    @Retention(RetentionPolicy.RUNTIME)
      -178    @Target(ElementType.FIELD)
      -179    @interface VXWeight {
      -180    }
      -181
      -182    @Retention(RetentionPolicy.RUNTIME)
      -183    @Target(ElementType.FIELD)
      -184    @interface OmegaWeight {
      -185    }
      -186
      -187    @Retention(RetentionPolicy.RUNTIME)
      -188    @Target(ElementType.FIELD)
      -189    @interface PoseLimit {
      -190    }
      -191
      -192    static double encoderTicksToInches(double ticks, double rad, double rat, double rev) {
      -193        return (rad * 2 * Math.PI * rat * ticks) / rev;
      -194    }
      -195
      -196    static double rpmToVelocity(double rpm, double rad, double rat) {
      -197        return (rpm * rat * 2 * Math.PI * rad) / 60.0;
      -198    }
      -199
      -200    static double getMotorVelocityF(double ticksPerSecond) {
      -201        return 32767 / ticksPerSecond;
      -202    }
      -203}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/TankDrivebaseSubsystem.html b/docs/Path/src-html/com/technototes/path/subsystem/TankDrivebaseSubsystem.html deleted file mode 100644 index 498a8212..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/TankDrivebaseSubsystem.html +++ /dev/null @@ -1,419 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import androidx.annotation.NonNull;
      -004import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -005import com.acmerobotics.roadrunner.drive.DriveSignal;
      -006import com.acmerobotics.roadrunner.drive.TankDrive;
      -007import com.acmerobotics.roadrunner.followers.TankPIDVAFollower;
      -008import com.acmerobotics.roadrunner.followers.TrajectoryFollower;
      -009import com.acmerobotics.roadrunner.geometry.Pose2d;
      -010import com.acmerobotics.roadrunner.localization.Localizer;
      -011import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -012import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
      -013import com.acmerobotics.roadrunner.trajectory.constraints.AngularVelocityConstraint;
      -014import com.acmerobotics.roadrunner.trajectory.constraints.MinVelocityConstraint;
      -015import com.acmerobotics.roadrunner.trajectory.constraints.ProfileAccelerationConstraint;
      -016import com.acmerobotics.roadrunner.trajectory.constraints.TankVelocityConstraint;
      -017import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint;
      -018import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint;
      -019import com.qualcomm.hardware.lynx.LynxModule;
      -020import com.qualcomm.robotcore.hardware.DcMotor;
      -021import com.qualcomm.robotcore.hardware.DcMotorEx;
      -022import com.qualcomm.robotcore.hardware.PIDFCoefficients;
      -023import com.qualcomm.robotcore.hardware.VoltageSensor;
      -024import com.qualcomm.robotcore.hardware.configuration.typecontainers.MotorConfigurationType;
      -025import com.technototes.library.hardware.HardwareDevice;
      -026import com.technototes.library.hardware.motor.EncodedMotorGroup;
      -027import com.technototes.library.hardware.sensor.IMU;
      -028import com.technototes.library.subsystem.Subsystem;
      -029import com.technototes.path.subsystem.TankConstants.*;
      -030import com.technototes.path.trajectorysequence.TrajectorySequence;
      -031import com.technototes.path.trajectorysequence.TrajectorySequenceBuilder;
      -032import com.technototes.path.trajectorysequence.TrajectorySequenceRunner;
      -033import com.technototes.path.util.LynxModuleUtil;
      -034import java.util.ArrayList;
      -035import java.util.Arrays;
      -036import java.util.List;
      -037import java.util.stream.Collectors;
      -038import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
      -039
      -040public class TankDrivebaseSubsystem extends TankDrive implements Subsystem {
      -041
      -042    public final double TICKS_PER_REV, MAX_RPM;
      -043
      -044    public final boolean RUN_USING_ENCODER;
      -045
      -046    public final PIDFCoefficients MOTOR_VELO_PID;
      -047
      -048    public final double WHEEL_RADIUS, GEAR_RATIO, TRACK_WIDTH, kV, kA, kStatic;
      -049    public final double MAX_VEL, MAX_ACCEL, MAX_ANG_VEL, MAX_ANG_ACCEL;
      -050    public final PIDCoefficients AXIAL_PID, CROSS_TRACK_PID, HEADING_PID;
      -051    public final double LATERAL_MULTIPLIER, VX_WEIGHT, OMEGA_WEIGHT;
      -052
      -053    public final int POSE_HISTORY_LIMIT;
      -054
      -055    private TrajectorySequenceRunner trajectorySequenceRunner;
      -056
      -057    private final TrajectoryVelocityConstraint VEL_CONSTRAINT;
      -058
      -059    private final TrajectoryAccelerationConstraint ACCEL_CONSTRAINT;
      -060
      -061    private TrajectoryFollower follower;
      -062
      -063    private List<DcMotorEx> motors, leftMotors, rightMotors;
      -064    private IMU imu;
      -065
      -066    private VoltageSensor batteryVoltageSensor;
      -067
      -068    public TankDrivebaseSubsystem(
      -069        EncodedMotorGroup<DcMotorEx> left,
      -070        EncodedMotorGroup<DcMotorEx> right,
      -071        IMU i,
      -072        TankConstants c,
      -073        Localizer localizer
      -074    ) {
      -075        super(c.getDouble(KV.class), c.getDouble(KA.class), c.getDouble(KStatic.class), c.getDouble(TrackWidth.class));
      -076        TICKS_PER_REV = c.getDouble(TicksPerRev.class);
      -077        MAX_RPM = c.getDouble(MaxRPM.class);
      -078
      -079        RUN_USING_ENCODER = c.getBoolean(UseDriveEncoder.class);
      -080
      -081        MOTOR_VELO_PID = c.getPIDF(MotorVeloPID.class);
      -082
      -083        WHEEL_RADIUS = c.getDouble(WheelRadius.class);
      -084        GEAR_RATIO = c.getDouble(GearRatio.class);
      -085        TRACK_WIDTH = c.getDouble(TrackWidth.class);
      -086        kV = c.getDouble(KV.class);
      -087        kA = c.getDouble(KA.class);
      -088        kStatic = c.getDouble(KStatic.class);
      -089
      -090        MAX_VEL = c.getDouble(MaxVelo.class);
      -091        MAX_ACCEL = c.getDouble(MaxAccel.class);
      -092        MAX_ANG_VEL = c.getDouble(MaxAngleVelo.class);
      -093        MAX_ANG_ACCEL = c.getDouble(MaxAngleAccel.class);
      -094
      -095        HEADING_PID = c.getPID(HeadPID.class);
      -096        AXIAL_PID = c.getPID(AxialPID.class);
      -097        CROSS_TRACK_PID = c.getPID(CrossPID.class);
      -098
      -099        LATERAL_MULTIPLIER = c.getDouble(LateralMult.class);
      -100        VX_WEIGHT = c.getDouble(VXWeight.class);
      -101        OMEGA_WEIGHT = c.getDouble(OmegaWeight.class);
      -102
      -103        POSE_HISTORY_LIMIT = c.getInt(PoseLimit.class);
      -104
      -105        follower = new TankPIDVAFollower(AXIAL_PID, CROSS_TRACK_PID, new Pose2d(0.5, 0.5, Math.toRadians(5.0)), 0.5);
      -106
      -107        VEL_CONSTRAINT = getVelocityConstraint(MAX_VEL, MAX_ANG_VEL, TRACK_WIDTH);
      -108        ACCEL_CONSTRAINT = getAccelerationConstraint(MAX_ACCEL);
      -109
      -110        LynxModuleUtil.ensureMinimumFirmwareVersion(HardwareDevice.hardwareMap);
      -111
      -112        batteryVoltageSensor = HardwareDevice.hardwareMap.voltageSensor.iterator().next();
      -113
      -114        for (LynxModule module : HardwareDevice.hardwareMap.getAll(LynxModule.class)) {
      -115            module.setBulkCachingMode(LynxModule.BulkCachingMode.AUTO);
      -116        }
      -117
      -118        imu = i;
      -119
      -120        // add/remove motors depending on your robot (e.g., 6WD)
      -121
      -122        motors = new ArrayList<>();
      -123        leftMotors = left.getAllDeviceList().stream().map(HardwareDevice::getDevice).collect(Collectors.toList());
      -124        rightMotors = right.getAllDeviceList().stream().map(HardwareDevice::getDevice).collect(Collectors.toList());
      -125        motors.addAll(leftMotors);
      -126        motors.addAll(rightMotors);
      -127
      -128        for (DcMotorEx motor : motors) {
      -129            MotorConfigurationType motorConfigurationType = motor.getMotorType().clone();
      -130            motorConfigurationType.setAchieveableMaxRPMFraction(1.0);
      -131            motor.setMotorType(motorConfigurationType);
      -132        }
      -133
      -134        if (c.getBoolean(TankConstants.UseDriveEncoder.class)) {
      -135            setMode(DcMotor.RunMode.RUN_USING_ENCODER);
      -136        }
      -137
      -138        setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
      -139
      -140        if (RUN_USING_ENCODER && MOTOR_VELO_PID != null) {
      -141            setPIDFCoefficients(DcMotor.RunMode.RUN_USING_ENCODER, MOTOR_VELO_PID);
      -142        }
      -143
      -144        // TODO: reverse any motors using DcMotor.setDirection()
      -145
      -146        // TODO: if desired, use setLocalizer() to change the localization method
      -147        // for instance, setLocalizer(new ThreeTrackingWheelLocalizer(...));
      -148
      -149        trajectorySequenceRunner = new TrajectorySequenceRunner(follower, HEADING_PID);
      -150    }
      -151
      -152    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose) {
      -153        return new TrajectoryBuilder(startPose, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -154    }
      -155
      -156    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose, boolean reversed) {
      -157        return new TrajectoryBuilder(startPose, reversed, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -158    }
      -159
      -160    public TrajectoryBuilder trajectoryBuilder(Pose2d startPose, double startHeading) {
      -161        return new TrajectoryBuilder(startPose, startHeading, VEL_CONSTRAINT, ACCEL_CONSTRAINT);
      -162    }
      -163
      -164    public TrajectorySequenceBuilder trajectorySequenceBuilder(Pose2d startPose) {
      -165        return new TrajectorySequenceBuilder(startPose, VEL_CONSTRAINT, ACCEL_CONSTRAINT, MAX_ANG_VEL, MAX_ANG_ACCEL);
      -166    }
      -167
      -168    public void turnAsync(double angle) {
      -169        trajectorySequenceRunner.followTrajectorySequenceAsync(
      -170            trajectorySequenceBuilder(getPoseEstimate()).turn(angle).build()
      -171        );
      -172    }
      -173
      -174    public void turn(double angle) {
      -175        turnAsync(angle);
      -176        waitForIdle();
      -177    }
      -178
      -179    public void followTrajectoryAsync(Trajectory trajectory) {
      -180        trajectorySequenceRunner.followTrajectorySequenceAsync(
      -181            trajectorySequenceBuilder(trajectory.start()).addTrajectory(trajectory).build()
      -182        );
      -183    }
      -184
      -185    public void followTrajectory(Trajectory trajectory) {
      -186        followTrajectoryAsync(trajectory);
      -187        waitForIdle();
      -188    }
      -189
      -190    public void followTrajectorySequenceAsync(TrajectorySequence trajectorySequence) {
      -191        trajectorySequenceRunner.followTrajectorySequenceAsync(trajectorySequence);
      -192    }
      -193
      -194    public void followTrajectorySequence(TrajectorySequence trajectorySequence) {
      -195        followTrajectorySequenceAsync(trajectorySequence);
      -196        waitForIdle();
      -197    }
      -198
      -199    public Pose2d getLastError() {
      -200        return trajectorySequenceRunner.getLastPoseError();
      -201    }
      -202
      -203    public void update() {
      -204        updatePoseEstimate();
      -205        DriveSignal signal = trajectorySequenceRunner.update(getPoseEstimate(), getPoseVelocity());
      -206        if (signal != null) setDriveSignal(signal);
      -207    }
      -208
      -209    public void waitForIdle() {
      -210        while (!Thread.currentThread().isInterrupted() && isBusy()) update();
      -211    }
      -212
      -213    public boolean isBusy() {
      -214        return trajectorySequenceRunner.isBusy();
      -215    }
      -216
      -217    public void setMode(DcMotor.RunMode runMode) {
      -218        for (DcMotorEx motor : motors) {
      -219            motor.setMode(runMode);
      -220        }
      -221    }
      -222
      -223    public void setZeroPowerBehavior(DcMotor.ZeroPowerBehavior zeroPowerBehavior) {
      -224        for (DcMotorEx motor : motors) {
      -225            motor.setZeroPowerBehavior(zeroPowerBehavior);
      -226        }
      -227    }
      -228
      -229    public void setPIDFCoefficients(DcMotor.RunMode runMode, PIDFCoefficients coefficients) {
      -230        PIDFCoefficients compensatedCoefficients = new PIDFCoefficients(
      -231            coefficients.p,
      -232            coefficients.i,
      -233            coefficients.d,
      -234            (coefficients.f * 12) / batteryVoltageSensor.getVoltage()
      -235        );
      -236        for (DcMotorEx motor : motors) {
      -237            motor.setPIDFCoefficients(runMode, compensatedCoefficients);
      -238        }
      -239    }
      -240
      -241    public void setWeightedDrivePower(Pose2d drivePower) {
      -242        Pose2d vel = drivePower;
      -243
      -244        if (Math.abs(drivePower.getX()) + Math.abs(drivePower.getHeading()) > 1) {
      -245            // re-normalize the powers according to the weights
      -246            double denom = VX_WEIGHT * Math.abs(drivePower.getX()) + OMEGA_WEIGHT * Math.abs(drivePower.getHeading());
      -247
      -248            vel = new Pose2d(VX_WEIGHT * drivePower.getX(), 0, OMEGA_WEIGHT * drivePower.getHeading()).div(denom);
      -249        }
      -250
      -251        setDrivePower(vel);
      -252    }
      -253
      -254    @NonNull
      -255    @Override
      -256    public List<Double> getWheelPositions() {
      -257        double leftSum = 0, rightSum = 0;
      -258        for (DcMotorEx leftMotor : leftMotors) {
      -259            leftSum +=
      -260            TankConstants.encoderTicksToInches(leftMotor.getCurrentPosition(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV);
      -261            for (DcMotorEx rightMotor : rightMotors) {
      -262                rightSum +=
      -263                TankConstants.encoderTicksToInches(
      -264                    rightMotor.getCurrentPosition(),
      -265                    WHEEL_RADIUS,
      -266                    GEAR_RATIO,
      -267                    TICKS_PER_REV
      -268                );
      -269            }
      -270        }
      -271        return Arrays.asList(leftSum / leftMotors.size(), rightSum / rightMotors.size());
      -272    }
      -273
      -274    public List<Double> getWheelVelocities() {
      -275        double leftSum = 0, rightSum = 0;
      -276        for (DcMotorEx leftMotor : leftMotors) {
      -277            leftSum +=
      -278            TankConstants.encoderTicksToInches(leftMotor.getVelocity(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV);
      -279        }
      -280        for (DcMotorEx rightMotor : rightMotors) {
      -281            rightSum +=
      -282            TankConstants.encoderTicksToInches(rightMotor.getVelocity(), WHEEL_RADIUS, GEAR_RATIO, TICKS_PER_REV);
      -283        }
      -284        return Arrays.asList(leftSum / leftMotors.size(), rightSum / rightMotors.size());
      -285    }
      -286
      -287    @Override
      -288    public void setMotorPowers(double v, double v1) {
      -289        for (DcMotorEx leftMotor : leftMotors) {
      -290            leftMotor.setPower(v);
      -291        }
      -292        for (DcMotorEx rightMotor : rightMotors) {
      -293            rightMotor.setPower(v1);
      -294        }
      -295    }
      -296
      -297    @Override
      -298    public double getRawExternalHeading() {
      -299        return imu.getAngularOrientation(AngleUnit.RADIANS).firstAngle;
      -300    }
      -301
      -302    @Override
      -303    public Double getExternalHeadingVelocity() {
      -304        // THIS IS WRONG AS OF SDK 8.1 (X is actually negative Y and Y is X, from this diagram)
      -305        // GO READ THE SDK DOCS ABOUT THE IMU!
      -306
      -307        // TODO: This must be changed to match your configuration
      -308        //                           | Z axis
      -309        //                           |
      -310        //     (Motor Port Side)     |   / X axis
      -311        //                       ____|__/____
      -312        //          Y axis     / *   | /    /|   (IO Side)
      -313        //          _________ /______|/    //      I2C
      -314        //                   /___________ //     Digital
      -315        //                  |____________|/      Analog
      -316        //
      -317        //                 (Servo Port Side)
      -318        //
      -319        // The positive x axis points toward the USB port(s)
      -320        //
      -321        // Adjust the axis rotation rate as necessary
      -322        // Rotate about the z axis is the default assuming your REV Hub/Control Hub is laying
      -323        // flat on a surface
      -324
      -325        return (double) imu.getAngularVelocity(AngleUnit.RADIANS).zRotationRate;
      -326    }
      -327
      -328    public static TrajectoryVelocityConstraint getVelocityConstraint(
      -329        double maxVel,
      -330        double maxAngularVel,
      -331        double trackWidth
      -332    ) {
      -333        return new MinVelocityConstraint(
      -334            Arrays.asList(new AngularVelocityConstraint(maxAngularVel), new TankVelocityConstraint(maxVel, trackWidth))
      -335        );
      -336    }
      -337
      -338    public static TrajectoryAccelerationConstraint getAccelerationConstraint(double maxAccel) {
      -339        return new ProfileAccelerationConstraint(maxAccel);
      -340    }
      -341}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html b/docs/Path/src-html/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html deleted file mode 100644 index abcbfa2c..00000000 --- a/docs/Path/src-html/com/technototes/path/subsystem/ThreeDeadWheelLocalizer.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.subsystem;
      -002
      -003import static com.technototes.path.subsystem.DeadWheelConstants.*;
      -004
      -005import androidx.annotation.NonNull;
      -006import com.acmerobotics.roadrunner.geometry.Pose2d;
      -007import com.acmerobotics.roadrunner.localization.ThreeTrackingWheelLocalizer;
      -008import com.technototes.library.hardware.sensor.encoder.MotorEncoder;
      -009import com.technototes.library.subsystem.Subsystem;
      -010import java.util.Arrays;
      -011import java.util.List;
      -012
      -013/*
      -014 * Sample tracking wheel localizer implementation assuming the standard configuration:
      -015 *
      -016 *    /--------------\
      -017 *    |     ____     |
      -018 *    |     ----     |
      -019 *    | ||        || |
      -020 *    | ||        || |
      -021 *    |              |
      -022 *    |              |
      -023 *    \--------------/
      -024 *
      -025 */
      -026public class ThreeDeadWheelLocalizer extends ThreeTrackingWheelLocalizer implements Subsystem {
      -027
      -028    protected MotorEncoder leftEncoder, rightEncoder, frontEncoder;
      -029    protected double lateralDistance, forwardOffset, gearRatio, wheelRadius, ticksPerRev;
      -030
      -031    protected boolean encoderOverflow;
      -032
      -033    public ThreeDeadWheelLocalizer(MotorEncoder l, MotorEncoder r, MotorEncoder f, DeadWheelConstants constants) {
      -034        super(
      -035            Arrays.asList(
      -036                new Pose2d(0, constants.getDouble(LateralDistance.class) / 2, 0), // left
      -037                new Pose2d(0, -constants.getDouble(LateralDistance.class) / 2, 0), // right
      -038                new Pose2d(constants.getDouble(ForwardOffset.class), 0, Math.toRadians(90)) // front
      -039            )
      -040        );
      -041        leftEncoder = l;
      -042        rightEncoder = r;
      -043        frontEncoder = f;
      -044
      -045        lateralDistance = constants.getDouble(LateralDistance.class);
      -046        forwardOffset = constants.getDouble(ForwardOffset.class);
      -047        encoderOverflow = constants.getBoolean(EncoderOverflow.class);
      -048        gearRatio = constants.getDouble(GearRatio.class);
      -049        ticksPerRev = constants.getDouble(TicksPerRev.class);
      -050        wheelRadius = constants.getDouble(WheelRadius.class);
      -051    }
      -052
      -053    public double encoderTicksToInches(double ticks) {
      -054        return ((getWheelRadius() * 2 * Math.PI * getGearRatio() * ticks) / getTicksPerRev());
      -055    }
      -056
      -057    @NonNull
      -058    @Override
      -059    public List<Double> getWheelPositions() {
      -060        return Arrays.asList(
      -061            encoderTicksToInches(leftEncoder.getCurrentPosition()),
      -062            encoderTicksToInches(rightEncoder.getCurrentPosition()),
      -063            encoderTicksToInches(frontEncoder.getCurrentPosition())
      -064        );
      -065    }
      -066
      -067    @NonNull
      -068    @Override
      -069    public List<Double> getWheelVelocities() {
      -070        // TODO: If your encoder velocity can exceed 32767 counts / second (such as the REV Through Bore and other
      -071        //  competing magnetic encoders), change Encoder.getRawVelocity() to Encoder.getCorrectedVelocity() to enable a
      -072        //  compensation method
      -073
      -074        return Arrays.asList(
      -075            encoderTicksToInches(leftEncoder.getCorrectedVelocity()),
      -076            encoderTicksToInches(rightEncoder.getCorrectedVelocity()),
      -077            encoderTicksToInches(frontEncoder.getCorrectedVelocity())
      -078        );
      -079    }
      -080
      -081    public double getTicksPerRev() {
      -082        return ticksPerRev;
      -083    }
      -084
      -085    public double getWheelRadius() {
      -086        return wheelRadius;
      -087    }
      -088
      -089    public double getGearRatio() {
      -090        return gearRatio;
      -091    }
      -092}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/EmptySequenceException.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/EmptySequenceException.html deleted file mode 100644 index ef1a30a2..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/EmptySequenceException.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence;
      -002
      -003public class EmptySequenceException extends RuntimeException {}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequence.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequence.html deleted file mode 100644 index 9fadde3a..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequence.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment;
      -005import java.util.Collections;
      -006import java.util.List;
      -007
      -008public class TrajectorySequence {
      -009
      -010    private final List<SequenceSegment> sequenceList;
      -011
      -012    public TrajectorySequence(List<SequenceSegment> sequenceList) {
      -013        if (sequenceList.size() == 0) throw new EmptySequenceException();
      -014
      -015        this.sequenceList = Collections.unmodifiableList(sequenceList);
      -016    }
      -017
      -018    public Pose2d start() {
      -019        return sequenceList.get(0).getStartPose();
      -020    }
      -021
      -022    public Pose2d end() {
      -023        return sequenceList.get(sequenceList.size() - 1).getEndPose();
      -024    }
      -025
      -026    public double duration() {
      -027        double total = 0.0;
      -028
      -029        for (SequenceSegment segment : sequenceList) {
      -030            total += segment.getDuration();
      -031        }
      -032
      -033        return total;
      -034    }
      -035
      -036    public SequenceSegment get(int i) {
      -037        return sequenceList.get(i);
      -038    }
      -039
      -040    public int size() {
      -041        return sequenceList.size();
      -042    }
      -043}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html deleted file mode 100644 index fb452de6..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceBuilder.html +++ /dev/null @@ -1,838 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.geometry.Vector2d;
      -005import com.acmerobotics.roadrunner.path.PathContinuityViolationException;
      -006import com.acmerobotics.roadrunner.profile.MotionProfile;
      -007import com.acmerobotics.roadrunner.profile.MotionProfileGenerator;
      -008import com.acmerobotics.roadrunner.profile.MotionState;
      -009import com.acmerobotics.roadrunner.trajectory.DisplacementMarker;
      -010import com.acmerobotics.roadrunner.trajectory.DisplacementProducer;
      -011import com.acmerobotics.roadrunner.trajectory.MarkerCallback;
      -012import com.acmerobotics.roadrunner.trajectory.SpatialMarker;
      -013import com.acmerobotics.roadrunner.trajectory.TemporalMarker;
      -014import com.acmerobotics.roadrunner.trajectory.TimeProducer;
      -015import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -016import com.acmerobotics.roadrunner.trajectory.TrajectoryBuilder;
      -017import com.acmerobotics.roadrunner.trajectory.TrajectoryMarker;
      -018import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryAccelerationConstraint;
      -019import com.acmerobotics.roadrunner.trajectory.constraints.TrajectoryVelocityConstraint;
      -020import com.acmerobotics.roadrunner.util.Angle;
      -021import com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment;
      -022import com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment;
      -023import com.technototes.path.trajectorysequence.sequencesegment.TurnSegment;
      -024import com.technototes.path.trajectorysequence.sequencesegment.WaitSegment;
      -025import java.util.ArrayList;
      -026import java.util.Collections;
      -027import java.util.List;
      -028
      -029public class TrajectorySequenceBuilder {
      -030
      -031    private final double resolution = 0.25;
      -032
      -033    private final TrajectoryVelocityConstraint baseVelConstraint;
      -034    private final TrajectoryAccelerationConstraint baseAccelConstraint;
      -035
      -036    private TrajectoryVelocityConstraint currentVelConstraint;
      -037    private TrajectoryAccelerationConstraint currentAccelConstraint;
      -038
      -039    private final double baseTurnConstraintMaxAngVel;
      -040    private final double baseTurnConstraintMaxAngAccel;
      -041
      -042    private double currentTurnConstraintMaxAngVel;
      -043    private double currentTurnConstraintMaxAngAccel;
      -044
      -045    private final List<SequenceSegment> sequenceSegments;
      -046
      -047    private final List<TemporalMarker> temporalMarkers;
      -048    private final List<DisplacementMarker> displacementMarkers;
      -049    private final List<SpatialMarker> spatialMarkers;
      -050
      -051    private Pose2d lastPose;
      -052
      -053    private double tangentOffset;
      -054
      -055    private boolean setAbsoluteTangent;
      -056    private double absoluteTangent;
      -057
      -058    private TrajectoryBuilder currentTrajectoryBuilder;
      -059
      -060    private double currentDuration;
      -061    private double currentDisplacement;
      -062
      -063    private double lastDurationTraj;
      -064    private double lastDisplacementTraj;
      -065
      -066    public TrajectorySequenceBuilder(
      -067        Pose2d startPose,
      -068        Double startTangent,
      -069        TrajectoryVelocityConstraint baseVelConstraint,
      -070        TrajectoryAccelerationConstraint baseAccelConstraint,
      -071        double baseTurnConstraintMaxAngVel,
      -072        double baseTurnConstraintMaxAngAccel
      -073    ) {
      -074        this.baseVelConstraint = baseVelConstraint;
      -075        this.baseAccelConstraint = baseAccelConstraint;
      -076
      -077        this.currentVelConstraint = baseVelConstraint;
      -078        this.currentAccelConstraint = baseAccelConstraint;
      -079
      -080        this.baseTurnConstraintMaxAngVel = baseTurnConstraintMaxAngVel;
      -081        this.baseTurnConstraintMaxAngAccel = baseTurnConstraintMaxAngAccel;
      -082
      -083        this.currentTurnConstraintMaxAngVel = baseTurnConstraintMaxAngVel;
      -084        this.currentTurnConstraintMaxAngAccel = baseTurnConstraintMaxAngAccel;
      -085
      -086        sequenceSegments = new ArrayList<>();
      -087
      -088        temporalMarkers = new ArrayList<>();
      -089        displacementMarkers = new ArrayList<>();
      -090        spatialMarkers = new ArrayList<>();
      -091
      -092        lastPose = startPose;
      -093
      -094        tangentOffset = 0.0;
      -095
      -096        setAbsoluteTangent = (startTangent != null);
      -097        absoluteTangent = startTangent != null ? startTangent : 0.0;
      -098
      -099        currentTrajectoryBuilder = null;
      -100
      -101        currentDuration = 0.0;
      -102        currentDisplacement = 0.0;
      -103
      -104        lastDurationTraj = 0.0;
      -105        lastDisplacementTraj = 0.0;
      -106    }
      -107
      -108    public TrajectorySequenceBuilder(
      -109        Pose2d startPose,
      -110        TrajectoryVelocityConstraint baseVelConstraint,
      -111        TrajectoryAccelerationConstraint baseAccelConstraint,
      -112        double baseTurnConstraintMaxAngVel,
      -113        double baseTurnConstraintMaxAngAccel
      -114    ) {
      -115        this(
      -116            startPose,
      -117            null,
      -118            baseVelConstraint,
      -119            baseAccelConstraint,
      -120            baseTurnConstraintMaxAngVel,
      -121            baseTurnConstraintMaxAngAccel
      -122        );
      -123    }
      -124
      -125    public TrajectorySequenceBuilder lineTo(Vector2d endPosition) {
      -126        return addPath(() -> currentTrajectoryBuilder.lineTo(endPosition, currentVelConstraint, currentAccelConstraint)
      -127        );
      -128    }
      -129
      -130    public TrajectorySequenceBuilder lineTo(
      -131        Vector2d endPosition,
      -132        TrajectoryVelocityConstraint velConstraint,
      -133        TrajectoryAccelerationConstraint accelConstraint
      -134    ) {
      -135        return addPath(() -> currentTrajectoryBuilder.lineTo(endPosition, velConstraint, accelConstraint));
      -136    }
      -137
      -138    public TrajectorySequenceBuilder lineToConstantHeading(Vector2d endPosition) {
      -139        return addPath(() ->
      -140            currentTrajectoryBuilder.lineToConstantHeading(endPosition, currentVelConstraint, currentAccelConstraint)
      -141        );
      -142    }
      -143
      -144    public TrajectorySequenceBuilder lineToConstantHeading(
      -145        Vector2d endPosition,
      -146        TrajectoryVelocityConstraint velConstraint,
      -147        TrajectoryAccelerationConstraint accelConstraint
      -148    ) {
      -149        return addPath(() -> currentTrajectoryBuilder.lineToConstantHeading(endPosition, velConstraint, accelConstraint)
      -150        );
      -151    }
      -152
      -153    public TrajectorySequenceBuilder lineToLinearHeading(Pose2d endPose) {
      -154        return addPath(() ->
      -155            currentTrajectoryBuilder.lineToLinearHeading(endPose, currentVelConstraint, currentAccelConstraint)
      -156        );
      -157    }
      -158
      -159    public TrajectorySequenceBuilder lineToLinearHeading(
      -160        Pose2d endPose,
      -161        TrajectoryVelocityConstraint velConstraint,
      -162        TrajectoryAccelerationConstraint accelConstraint
      -163    ) {
      -164        return addPath(() -> currentTrajectoryBuilder.lineToLinearHeading(endPose, velConstraint, accelConstraint));
      -165    }
      -166
      -167    public TrajectorySequenceBuilder lineToSplineHeading(Pose2d endPose) {
      -168        return addPath(() ->
      -169            currentTrajectoryBuilder.lineToSplineHeading(endPose, currentVelConstraint, currentAccelConstraint)
      -170        );
      -171    }
      -172
      -173    public TrajectorySequenceBuilder lineToSplineHeading(
      -174        Pose2d endPose,
      -175        TrajectoryVelocityConstraint velConstraint,
      -176        TrajectoryAccelerationConstraint accelConstraint
      -177    ) {
      -178        return addPath(() -> currentTrajectoryBuilder.lineToSplineHeading(endPose, velConstraint, accelConstraint));
      -179    }
      -180
      -181    public TrajectorySequenceBuilder strafeTo(Vector2d endPosition) {
      -182        return addPath(() ->
      -183            currentTrajectoryBuilder.strafeTo(endPosition, currentVelConstraint, currentAccelConstraint)
      -184        );
      -185    }
      -186
      -187    public TrajectorySequenceBuilder strafeTo(
      -188        Vector2d endPosition,
      -189        TrajectoryVelocityConstraint velConstraint,
      -190        TrajectoryAccelerationConstraint accelConstraint
      -191    ) {
      -192        return addPath(() -> currentTrajectoryBuilder.strafeTo(endPosition, velConstraint, accelConstraint));
      -193    }
      -194
      -195    public TrajectorySequenceBuilder forward(double distance) {
      -196        return addPath(() -> currentTrajectoryBuilder.forward(distance, currentVelConstraint, currentAccelConstraint));
      -197    }
      -198
      -199    public TrajectorySequenceBuilder forward(
      -200        double distance,
      -201        TrajectoryVelocityConstraint velConstraint,
      -202        TrajectoryAccelerationConstraint accelConstraint
      -203    ) {
      -204        return addPath(() -> currentTrajectoryBuilder.forward(distance, velConstraint, accelConstraint));
      -205    }
      -206
      -207    public TrajectorySequenceBuilder back(double distance) {
      -208        return addPath(() -> currentTrajectoryBuilder.back(distance, currentVelConstraint, currentAccelConstraint));
      -209    }
      -210
      -211    public TrajectorySequenceBuilder back(
      -212        double distance,
      -213        TrajectoryVelocityConstraint velConstraint,
      -214        TrajectoryAccelerationConstraint accelConstraint
      -215    ) {
      -216        return addPath(() -> currentTrajectoryBuilder.back(distance, velConstraint, accelConstraint));
      -217    }
      -218
      -219    public TrajectorySequenceBuilder strafeLeft(double distance) {
      -220        return addPath(() -> currentTrajectoryBuilder.strafeLeft(distance, currentVelConstraint, currentAccelConstraint)
      -221        );
      -222    }
      -223
      -224    public TrajectorySequenceBuilder strafeLeft(
      -225        double distance,
      -226        TrajectoryVelocityConstraint velConstraint,
      -227        TrajectoryAccelerationConstraint accelConstraint
      -228    ) {
      -229        return addPath(() -> currentTrajectoryBuilder.strafeLeft(distance, velConstraint, accelConstraint));
      -230    }
      -231
      -232    public TrajectorySequenceBuilder strafeRight(double distance) {
      -233        return addPath(() ->
      -234            currentTrajectoryBuilder.strafeRight(distance, currentVelConstraint, currentAccelConstraint)
      -235        );
      -236    }
      -237
      -238    public TrajectorySequenceBuilder strafeRight(
      -239        double distance,
      -240        TrajectoryVelocityConstraint velConstraint,
      -241        TrajectoryAccelerationConstraint accelConstraint
      -242    ) {
      -243        return addPath(() -> currentTrajectoryBuilder.strafeRight(distance, velConstraint, accelConstraint));
      -244    }
      -245
      -246    public TrajectorySequenceBuilder splineTo(Vector2d endPosition, double endHeading) {
      -247        return addPath(() ->
      -248            currentTrajectoryBuilder.splineTo(endPosition, endHeading, currentVelConstraint, currentAccelConstraint)
      -249        );
      -250    }
      -251
      -252    public TrajectorySequenceBuilder splineTo(
      -253        Vector2d endPosition,
      -254        double endHeading,
      -255        TrajectoryVelocityConstraint velConstraint,
      -256        TrajectoryAccelerationConstraint accelConstraint
      -257    ) {
      -258        return addPath(() -> currentTrajectoryBuilder.splineTo(endPosition, endHeading, velConstraint, accelConstraint)
      -259        );
      -260    }
      -261
      -262    public TrajectorySequenceBuilder splineToConstantHeading(Vector2d endPosition, double endHeading) {
      -263        return addPath(() ->
      -264            currentTrajectoryBuilder.splineToConstantHeading(
      -265                endPosition,
      -266                endHeading,
      -267                currentVelConstraint,
      -268                currentAccelConstraint
      -269            )
      -270        );
      -271    }
      -272
      -273    public TrajectorySequenceBuilder splineToConstantHeading(
      -274        Vector2d endPosition,
      -275        double endHeading,
      -276        TrajectoryVelocityConstraint velConstraint,
      -277        TrajectoryAccelerationConstraint accelConstraint
      -278    ) {
      -279        return addPath(() ->
      -280            currentTrajectoryBuilder.splineToConstantHeading(endPosition, endHeading, velConstraint, accelConstraint)
      -281        );
      -282    }
      -283
      -284    public TrajectorySequenceBuilder splineToLinearHeading(Pose2d endPose, double endHeading) {
      -285        return addPath(() ->
      -286            currentTrajectoryBuilder.splineToLinearHeading(
      -287                endPose,
      -288                endHeading,
      -289                currentVelConstraint,
      -290                currentAccelConstraint
      -291            )
      -292        );
      -293    }
      -294
      -295    public TrajectorySequenceBuilder splineToLinearHeading(
      -296        Pose2d endPose,
      -297        double endHeading,
      -298        TrajectoryVelocityConstraint velConstraint,
      -299        TrajectoryAccelerationConstraint accelConstraint
      -300    ) {
      -301        return addPath(() ->
      -302            currentTrajectoryBuilder.splineToLinearHeading(endPose, endHeading, velConstraint, accelConstraint)
      -303        );
      -304    }
      -305
      -306    public TrajectorySequenceBuilder splineToSplineHeading(Pose2d endPose, double endHeading) {
      -307        return addPath(() ->
      -308            currentTrajectoryBuilder.splineToSplineHeading(
      -309                endPose,
      -310                endHeading,
      -311                currentVelConstraint,
      -312                currentAccelConstraint
      -313            )
      -314        );
      -315    }
      -316
      -317    public TrajectorySequenceBuilder splineToSplineHeading(
      -318        Pose2d endPose,
      -319        double endHeading,
      -320        TrajectoryVelocityConstraint velConstraint,
      -321        TrajectoryAccelerationConstraint accelConstraint
      -322    ) {
      -323        return addPath(() ->
      -324            currentTrajectoryBuilder.splineToSplineHeading(endPose, endHeading, velConstraint, accelConstraint)
      -325        );
      -326    }
      -327
      -328    private TrajectorySequenceBuilder addPath(AddPathCallback callback) {
      -329        if (currentTrajectoryBuilder == null) newPath();
      -330
      -331        try {
      -332            callback.run();
      -333        } catch (PathContinuityViolationException e) {
      -334            newPath();
      -335            callback.run();
      -336        }
      -337
      -338        Trajectory builtTraj = currentTrajectoryBuilder.build();
      -339
      -340        double durationDifference = builtTraj.duration() - lastDurationTraj;
      -341        double displacementDifference = builtTraj.getPath().length() - lastDisplacementTraj;
      -342
      -343        lastPose = builtTraj.end();
      -344        currentDuration += durationDifference;
      -345        currentDisplacement += displacementDifference;
      -346
      -347        lastDurationTraj = builtTraj.duration();
      -348        lastDisplacementTraj = builtTraj.getPath().length();
      -349
      -350        return this;
      -351    }
      -352
      -353    public TrajectorySequenceBuilder setTangent(double tangent) {
      -354        setAbsoluteTangent = true;
      -355        absoluteTangent = tangent;
      -356
      -357        pushPath();
      -358
      -359        return this;
      -360    }
      -361
      -362    private TrajectorySequenceBuilder setTangentOffset(double offset) {
      -363        setAbsoluteTangent = false;
      -364
      -365        this.tangentOffset = offset;
      -366        this.pushPath();
      -367
      -368        return this;
      -369    }
      -370
      -371    public TrajectorySequenceBuilder setReversed(boolean reversed) {
      -372        return reversed ? this.setTangentOffset(Math.toRadians(180.0)) : this.setTangentOffset(0.0);
      -373    }
      -374
      -375    public TrajectorySequenceBuilder setConstraints(
      -376        TrajectoryVelocityConstraint velConstraint,
      -377        TrajectoryAccelerationConstraint accelConstraint
      -378    ) {
      -379        this.currentVelConstraint = velConstraint;
      -380        this.currentAccelConstraint = accelConstraint;
      -381
      -382        return this;
      -383    }
      -384
      -385    public TrajectorySequenceBuilder resetConstraints() {
      -386        this.currentVelConstraint = this.baseVelConstraint;
      -387        this.currentAccelConstraint = this.baseAccelConstraint;
      -388
      -389        return this;
      -390    }
      -391
      -392    public TrajectorySequenceBuilder setVelConstraint(TrajectoryVelocityConstraint velConstraint) {
      -393        this.currentVelConstraint = velConstraint;
      -394
      -395        return this;
      -396    }
      -397
      -398    public TrajectorySequenceBuilder resetVelConstraint() {
      -399        this.currentVelConstraint = this.baseVelConstraint;
      -400
      -401        return this;
      -402    }
      -403
      -404    public TrajectorySequenceBuilder setAccelConstraint(TrajectoryAccelerationConstraint accelConstraint) {
      -405        this.currentAccelConstraint = accelConstraint;
      -406
      -407        return this;
      -408    }
      -409
      -410    public TrajectorySequenceBuilder resetAccelConstraint() {
      -411        this.currentAccelConstraint = this.baseAccelConstraint;
      -412
      -413        return this;
      -414    }
      -415
      -416    public TrajectorySequenceBuilder setTurnConstraint(double maxAngVel, double maxAngAccel) {
      -417        this.currentTurnConstraintMaxAngVel = maxAngVel;
      -418        this.currentTurnConstraintMaxAngAccel = maxAngAccel;
      -419
      -420        return this;
      -421    }
      -422
      -423    public TrajectorySequenceBuilder resetTurnConstraint() {
      -424        this.currentTurnConstraintMaxAngVel = baseTurnConstraintMaxAngVel;
      -425        this.currentTurnConstraintMaxAngAccel = baseTurnConstraintMaxAngAccel;
      -426
      -427        return this;
      -428    }
      -429
      -430    public TrajectorySequenceBuilder addTemporalMarker(MarkerCallback callback) {
      -431        return this.addTemporalMarker(currentDuration, callback);
      -432    }
      -433
      -434    public TrajectorySequenceBuilder UNSTABLE_addTemporalMarkerOffset(double offset, MarkerCallback callback) {
      -435        return this.addTemporalMarker(currentDuration + offset, callback);
      -436    }
      -437
      -438    public TrajectorySequenceBuilder addTemporalMarker(double time, MarkerCallback callback) {
      -439        return this.addTemporalMarker(0.0, time, callback);
      -440    }
      -441
      -442    public TrajectorySequenceBuilder addTemporalMarker(double scale, double offset, MarkerCallback callback) {
      -443        return this.addTemporalMarker(time -> scale * time + offset, callback);
      -444    }
      -445
      -446    public TrajectorySequenceBuilder addTemporalMarker(TimeProducer time, MarkerCallback callback) {
      -447        this.temporalMarkers.add(new TemporalMarker(time, callback));
      -448        return this;
      -449    }
      -450
      -451    public TrajectorySequenceBuilder addSpatialMarker(Vector2d point, MarkerCallback callback) {
      -452        this.spatialMarkers.add(new SpatialMarker(point, callback));
      -453        return this;
      -454    }
      -455
      -456    public TrajectorySequenceBuilder addDisplacementMarker(MarkerCallback callback) {
      -457        return this.addDisplacementMarker(currentDisplacement, callback);
      -458    }
      -459
      -460    public TrajectorySequenceBuilder UNSTABLE_addDisplacementMarkerOffset(double offset, MarkerCallback callback) {
      -461        return this.addDisplacementMarker(currentDisplacement + offset, callback);
      -462    }
      -463
      -464    public TrajectorySequenceBuilder addDisplacementMarker(double displacement, MarkerCallback callback) {
      -465        return this.addDisplacementMarker(0.0, displacement, callback);
      -466    }
      -467
      -468    public TrajectorySequenceBuilder addDisplacementMarker(double scale, double offset, MarkerCallback callback) {
      -469        return addDisplacementMarker((displacement -> scale * displacement + offset), callback);
      -470    }
      -471
      -472    public TrajectorySequenceBuilder addDisplacementMarker(DisplacementProducer displacement, MarkerCallback callback) {
      -473        displacementMarkers.add(new DisplacementMarker(displacement, callback));
      -474
      -475        return this;
      -476    }
      -477
      -478    public TrajectorySequenceBuilder turn(double angle) {
      -479        return turn(angle, currentTurnConstraintMaxAngVel, currentTurnConstraintMaxAngAccel);
      -480    }
      -481
      -482    public TrajectorySequenceBuilder turn(double angle, double maxAngVel, double maxAngAccel) {
      -483        pushPath();
      -484
      -485        MotionProfile turnProfile = MotionProfileGenerator.generateSimpleMotionProfile(
      -486            new MotionState(lastPose.getHeading(), 0.0, 0.0, 0.0),
      -487            new MotionState(lastPose.getHeading() + angle, 0.0, 0.0, 0.0),
      -488            maxAngVel,
      -489            maxAngAccel
      -490        );
      -491
      -492        sequenceSegments.add(new TurnSegment(lastPose, angle, turnProfile, Collections.emptyList()));
      -493
      -494        lastPose = new Pose2d(lastPose.getX(), lastPose.getY(), Angle.norm(lastPose.getHeading() + angle));
      -495
      -496        currentDuration += turnProfile.duration();
      -497
      -498        return this;
      -499    }
      -500
      -501    public TrajectorySequenceBuilder waitSeconds(double seconds) {
      -502        pushPath();
      -503        sequenceSegments.add(new WaitSegment(lastPose, seconds, Collections.emptyList()));
      -504
      -505        currentDuration += seconds;
      -506        return this;
      -507    }
      -508
      -509    public TrajectorySequenceBuilder addTrajectory(Trajectory trajectory) {
      -510        pushPath();
      -511
      -512        sequenceSegments.add(new TrajectorySegment(trajectory));
      -513        return this;
      -514    }
      -515
      -516    private void pushPath() {
      -517        if (currentTrajectoryBuilder != null) {
      -518            Trajectory builtTraj = currentTrajectoryBuilder.build();
      -519            sequenceSegments.add(new TrajectorySegment(builtTraj));
      -520        }
      -521
      -522        currentTrajectoryBuilder = null;
      -523    }
      -524
      -525    private void newPath() {
      -526        if (currentTrajectoryBuilder != null) pushPath();
      -527
      -528        lastDurationTraj = 0.0;
      -529        lastDisplacementTraj = 0.0;
      -530
      -531        double tangent = setAbsoluteTangent ? absoluteTangent : Angle.norm(lastPose.getHeading() + tangentOffset);
      -532
      -533        currentTrajectoryBuilder =
      -534            new TrajectoryBuilder(lastPose, tangent, currentVelConstraint, currentAccelConstraint, resolution);
      -535    }
      -536
      -537    public TrajectorySequence build() {
      -538        pushPath();
      -539
      -540        List<TrajectoryMarker> globalMarkers = convertMarkersToGlobal(
      -541            sequenceSegments,
      -542            temporalMarkers,
      -543            displacementMarkers,
      -544            spatialMarkers
      -545        );
      -546
      -547        return new TrajectorySequence(projectGlobalMarkersToLocalSegments(globalMarkers, sequenceSegments));
      -548    }
      -549
      -550    private List<TrajectoryMarker> convertMarkersToGlobal(
      -551        List<SequenceSegment> sequenceSegments,
      -552        List<TemporalMarker> temporalMarkers,
      -553        List<DisplacementMarker> displacementMarkers,
      -554        List<SpatialMarker> spatialMarkers
      -555    ) {
      -556        ArrayList<TrajectoryMarker> trajectoryMarkers = new ArrayList<>();
      -557
      -558        // Convert temporal markers
      -559        for (TemporalMarker marker : temporalMarkers) {
      -560            trajectoryMarkers.add(
      -561                new TrajectoryMarker(marker.getProducer().produce(currentDuration), marker.getCallback())
      -562            );
      -563        }
      -564
      -565        // Convert displacement markers
      -566        for (DisplacementMarker marker : displacementMarkers) {
      -567            double time = displacementToTime(sequenceSegments, marker.getProducer().produce(currentDisplacement));
      -568
      -569            trajectoryMarkers.add(new TrajectoryMarker(time, marker.getCallback()));
      -570        }
      -571
      -572        // Convert spatial markers
      -573        for (SpatialMarker marker : spatialMarkers) {
      -574            trajectoryMarkers.add(
      -575                new TrajectoryMarker(pointToTime(sequenceSegments, marker.getPoint()), marker.getCallback())
      -576            );
      -577        }
      -578
      -579        return trajectoryMarkers;
      -580    }
      -581
      -582    private List<SequenceSegment> projectGlobalMarkersToLocalSegments(
      -583        List<TrajectoryMarker> markers,
      -584        List<SequenceSegment> sequenceSegments
      -585    ) {
      -586        if (sequenceSegments.isEmpty()) return Collections.emptyList();
      -587
      -588        double totalSequenceDuration = 0;
      -589        for (SequenceSegment segment : sequenceSegments) {
      -590            totalSequenceDuration += segment.getDuration();
      -591        }
      -592
      -593        for (TrajectoryMarker marker : markers) {
      -594            SequenceSegment segment = null;
      -595            int segmentIndex = 0;
      -596            double segmentOffsetTime = 0;
      -597
      -598            double currentTime = 0;
      -599            for (int i = 0; i < sequenceSegments.size(); i++) {
      -600                SequenceSegment seg = sequenceSegments.get(i);
      -601
      -602                double markerTime = Math.min(marker.getTime(), totalSequenceDuration);
      -603
      -604                if (currentTime + seg.getDuration() >= markerTime) {
      -605                    segment = seg;
      -606                    segmentIndex = i;
      -607                    segmentOffsetTime = markerTime - currentTime;
      -608
      -609                    break;
      -610                } else {
      -611                    currentTime += seg.getDuration();
      -612                }
      -613            }
      -614
      -615            SequenceSegment newSegment = null;
      -616
      -617            if (segment instanceof WaitSegment) {
      -618                List<TrajectoryMarker> newMarkers = new ArrayList<>(segment.getMarkers());
      -619
      -620                newMarkers.addAll(sequenceSegments.get(segmentIndex).getMarkers());
      -621                newMarkers.add(new TrajectoryMarker(segmentOffsetTime, marker.getCallback()));
      -622
      -623                WaitSegment thisSegment = (WaitSegment) segment;
      -624                newSegment = new WaitSegment(thisSegment.getStartPose(), thisSegment.getDuration(), newMarkers);
      -625            } else if (segment instanceof TurnSegment) {
      -626                List<TrajectoryMarker> newMarkers = new ArrayList<>(segment.getMarkers());
      -627
      -628                newMarkers.addAll(sequenceSegments.get(segmentIndex).getMarkers());
      -629                newMarkers.add(new TrajectoryMarker(segmentOffsetTime, marker.getCallback()));
      -630
      -631                TurnSegment thisSegment = (TurnSegment) segment;
      -632                newSegment =
      -633                    new TurnSegment(
      -634                        thisSegment.getStartPose(),
      -635                        thisSegment.getTotalRotation(),
      -636                        thisSegment.getMotionProfile(),
      -637                        newMarkers
      -638                    );
      -639            } else if (segment instanceof TrajectorySegment) {
      -640                TrajectorySegment thisSegment = (TrajectorySegment) segment;
      -641
      -642                List<TrajectoryMarker> newMarkers = new ArrayList<>(thisSegment.getTrajectory().getMarkers());
      -643                newMarkers.add(new TrajectoryMarker(segmentOffsetTime, marker.getCallback()));
      -644
      -645                newSegment =
      -646                    new TrajectorySegment(
      -647                        new Trajectory(
      -648                            thisSegment.getTrajectory().getPath(),
      -649                            thisSegment.getTrajectory().getProfile(),
      -650                            newMarkers
      -651                        )
      -652                    );
      -653            }
      -654
      -655            sequenceSegments.set(segmentIndex, newSegment);
      -656        }
      -657
      -658        return sequenceSegments;
      -659    }
      -660
      -661    // Taken from Road Runner's TrajectoryGenerator.displacementToTime() since it's private
      -662    // note: this assumes that the profile position is monotonic increasing
      -663    private Double motionProfileDisplacementToTime(MotionProfile profile, double s) {
      -664        double tLo = 0.0;
      -665        double tHi = profile.duration();
      -666        while (!(Math.abs(tLo - tHi) < 1e-6)) {
      -667            double tMid = 0.5 * (tLo + tHi);
      -668            if (profile.get(tMid).getX() > s) {
      -669                tHi = tMid;
      -670            } else {
      -671                tLo = tMid;
      -672            }
      -673        }
      -674        return 0.5 * (tLo + tHi);
      -675    }
      -676
      -677    private Double displacementToTime(List<SequenceSegment> sequenceSegments, double s) {
      -678        double currentTime = 0.0;
      -679        double currentDisplacement = 0.0;
      -680
      -681        for (SequenceSegment segment : sequenceSegments) {
      -682            if (segment instanceof TrajectorySegment) {
      -683                TrajectorySegment thisSegment = (TrajectorySegment) segment;
      -684
      -685                double segmentLength = thisSegment.getTrajectory().getPath().length();
      -686
      -687                if (currentDisplacement + segmentLength > s) {
      -688                    double target = s - currentDisplacement;
      -689                    double timeInSegment = motionProfileDisplacementToTime(
      -690                        thisSegment.getTrajectory().getProfile(),
      -691                        target
      -692                    );
      -693
      -694                    return currentTime + timeInSegment;
      -695                } else {
      -696                    currentDisplacement += segmentLength;
      -697                    currentTime += thisSegment.getTrajectory().duration();
      -698                }
      -699            } else {
      -700                currentTime += segment.getDuration();
      -701            }
      -702        }
      -703
      -704        return 0.0;
      -705    }
      -706
      -707    private Double pointToTime(List<SequenceSegment> sequenceSegments, Vector2d point) {
      -708        class ComparingPoints {
      -709
      -710            private final double distanceToPoint;
      -711            private final double totalDisplacement;
      -712            private final double thisPathDisplacement;
      -713
      -714            public ComparingPoints(double distanceToPoint, double totalDisplacement, double thisPathDisplacement) {
      -715                this.distanceToPoint = distanceToPoint;
      -716                this.totalDisplacement = totalDisplacement;
      -717                this.thisPathDisplacement = thisPathDisplacement;
      -718            }
      -719        }
      -720
      -721        List<ComparingPoints> projectedPoints = new ArrayList<>();
      -722
      -723        for (SequenceSegment segment : sequenceSegments) {
      -724            if (segment instanceof TrajectorySegment) {
      -725                TrajectorySegment thisSegment = (TrajectorySegment) segment;
      -726
      -727                double displacement = thisSegment.getTrajectory().getPath().project(point, 0.25);
      -728                Vector2d projectedPoint = thisSegment.getTrajectory().getPath().get(displacement).vec();
      -729                double distanceToPoint = point.minus(projectedPoint).norm();
      -730
      -731                double totalDisplacement = 0.0;
      -732
      -733                for (ComparingPoints comparingPoint : projectedPoints) {
      -734                    totalDisplacement += comparingPoint.totalDisplacement;
      -735                }
      -736
      -737                totalDisplacement += displacement;
      -738
      -739                projectedPoints.add(new ComparingPoints(distanceToPoint, displacement, totalDisplacement));
      -740            }
      -741        }
      -742
      -743        ComparingPoints closestPoint = null;
      -744
      -745        for (ComparingPoints comparingPoint : projectedPoints) {
      -746            if (closestPoint == null) {
      -747                closestPoint = comparingPoint;
      -748                continue;
      -749            }
      -750
      -751            if (comparingPoint.distanceToPoint < closestPoint.distanceToPoint) closestPoint = comparingPoint;
      -752        }
      -753
      -754        return displacementToTime(sequenceSegments, closestPoint.thisPathDisplacement);
      -755    }
      -756
      -757    private interface AddPathCallback {
      -758        void run();
      -759    }
      -760}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html deleted file mode 100644 index 6a9c577b..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/TrajectorySequenceRunner.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence;
      -002
      -003import androidx.annotation.Nullable;
      -004import com.acmerobotics.dashboard.FtcDashboard;
      -005import com.acmerobotics.dashboard.canvas.Canvas;
      -006import com.acmerobotics.dashboard.config.Config;
      -007import com.acmerobotics.dashboard.telemetry.TelemetryPacket;
      -008import com.acmerobotics.roadrunner.control.PIDCoefficients;
      -009import com.acmerobotics.roadrunner.control.PIDFController;
      -010import com.acmerobotics.roadrunner.drive.DriveSignal;
      -011import com.acmerobotics.roadrunner.followers.TrajectoryFollower;
      -012import com.acmerobotics.roadrunner.geometry.Pose2d;
      -013import com.acmerobotics.roadrunner.profile.MotionState;
      -014import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -015import com.acmerobotics.roadrunner.trajectory.TrajectoryMarker;
      -016import com.acmerobotics.roadrunner.util.NanoClock;
      -017import com.technototes.path.trajectorysequence.sequencesegment.SequenceSegment;
      -018import com.technototes.path.trajectorysequence.sequencesegment.TrajectorySegment;
      -019import com.technototes.path.trajectorysequence.sequencesegment.TurnSegment;
      -020import com.technototes.path.trajectorysequence.sequencesegment.WaitSegment;
      -021import com.technototes.path.util.DashboardUtil;
      -022import java.util.ArrayList;
      -023import java.util.Collections;
      -024import java.util.LinkedList;
      -025import java.util.List;
      -026
      -027@Config
      -028public class TrajectorySequenceRunner {
      -029
      -030    public static boolean DO_DASH = false;
      -031
      -032    public static String COLOR_INACTIVE_TRAJECTORY = "#4caf507a";
      -033    public static String COLOR_INACTIVE_TURN = "#7c4dff7a";
      -034    public static String COLOR_INACTIVE_WAIT = "#dd2c007a";
      -035
      -036    public static String COLOR_ACTIVE_TRAJECTORY = "#4CAF50";
      -037    public static String COLOR_ACTIVE_TURN = "#7c4dff";
      -038    public static String COLOR_ACTIVE_WAIT = "#dd2c00";
      -039
      -040    public static int POSE_HISTORY_LIMIT = 100;
      -041
      -042    private final TrajectoryFollower follower;
      -043
      -044    private final PIDFController turnController;
      -045
      -046    private final NanoClock clock;
      -047
      -048    private TrajectorySequence currentTrajectorySequence;
      -049    private double currentSegmentStartTime;
      -050    private int currentSegmentIndex;
      -051    private int lastSegmentIndex;
      -052
      -053    private Pose2d lastPoseError = new Pose2d();
      -054
      -055    List<TrajectoryMarker> remainingMarkers = new ArrayList<>();
      -056
      -057    private FtcDashboard dashboard;
      -058    private final LinkedList<Pose2d> poseHistory = new LinkedList<>();
      -059
      -060    public TrajectorySequenceRunner(TrajectoryFollower follower, PIDCoefficients headingPIDCoefficients) {
      -061        this.follower = follower;
      -062
      -063        turnController = new PIDFController(headingPIDCoefficients);
      -064        turnController.setInputBounds(0, 2 * Math.PI);
      -065
      -066        clock = NanoClock.system();
      -067
      -068        if (DO_DASH) dashboard = FtcDashboard.getInstance();
      -069        if (dashboard != null) dashboard.setTelemetryTransmissionInterval(25);
      -070    }
      -071
      -072    public void followTrajectorySequenceAsync(TrajectorySequence trajectorySequence) {
      -073        currentTrajectorySequence = trajectorySequence;
      -074        currentSegmentStartTime = clock.seconds();
      -075        currentSegmentIndex = 0;
      -076        lastSegmentIndex = -1;
      -077    }
      -078
      -079    public @Nullable DriveSignal update(Pose2d poseEstimate, Pose2d poseVelocity) {
      -080        Pose2d targetPose = null;
      -081        DriveSignal driveSignal = null;
      -082
      -083        SequenceSegment currentSegment = null;
      -084
      -085        if (currentTrajectorySequence != null) {
      -086            if (currentSegmentIndex >= currentTrajectorySequence.size()) {
      -087                for (TrajectoryMarker marker : remainingMarkers) {
      -088                    marker.getCallback().onMarkerReached();
      -089                }
      -090
      -091                remainingMarkers.clear();
      -092
      -093                currentTrajectorySequence = null;
      -094            }
      -095
      -096            if (currentTrajectorySequence == null) return new DriveSignal();
      -097
      -098            double now = clock.seconds();
      -099            boolean isNewTransition = currentSegmentIndex != lastSegmentIndex;
      -100
      -101            currentSegment = currentTrajectorySequence.get(currentSegmentIndex);
      -102
      -103            if (isNewTransition) {
      -104                currentSegmentStartTime = now;
      -105                lastSegmentIndex = currentSegmentIndex;
      -106
      -107                for (TrajectoryMarker marker : remainingMarkers) {
      -108                    marker.getCallback().onMarkerReached();
      -109                }
      -110
      -111                remainingMarkers.clear();
      -112
      -113                remainingMarkers.addAll(currentSegment.getMarkers());
      -114                Collections.sort(remainingMarkers, (t1, t2) -> Double.compare(t1.getTime(), t2.getTime()));
      -115            }
      -116
      -117            double deltaTime = now - currentSegmentStartTime;
      -118
      -119            if (currentSegment instanceof TrajectorySegment) {
      -120                Trajectory currentTrajectory = ((TrajectorySegment) currentSegment).getTrajectory();
      -121
      -122                if (isNewTransition) follower.followTrajectory(currentTrajectory);
      -123
      -124                if (!follower.isFollowing()) {
      -125                    currentSegmentIndex++;
      -126
      -127                    driveSignal = new DriveSignal();
      -128                } else {
      -129                    driveSignal = follower.update(poseEstimate, poseVelocity);
      -130                    lastPoseError = follower.getLastError();
      -131                }
      -132
      -133                targetPose = currentTrajectory.get(deltaTime);
      -134            } else if (currentSegment instanceof TurnSegment) {
      -135                MotionState targetState = ((TurnSegment) currentSegment).getMotionProfile().get(deltaTime);
      -136
      -137                turnController.setTargetPosition(targetState.getX());
      -138
      -139                double correction = turnController.update(poseEstimate.getHeading());
      -140
      -141                double targetOmega = targetState.getV();
      -142                double targetAlpha = targetState.getA();
      -143
      -144                lastPoseError = new Pose2d(0, 0, turnController.getLastError());
      -145
      -146                Pose2d startPose = currentSegment.getStartPose();
      -147                targetPose = startPose.copy(startPose.getX(), startPose.getY(), targetState.getX());
      -148
      -149                driveSignal =
      -150                    new DriveSignal(new Pose2d(0, 0, targetOmega + correction), new Pose2d(0, 0, targetAlpha));
      -151
      -152                if (deltaTime >= currentSegment.getDuration()) {
      -153                    currentSegmentIndex++;
      -154                    driveSignal = new DriveSignal();
      -155                }
      -156            } else if (currentSegment instanceof WaitSegment) {
      -157                lastPoseError = new Pose2d();
      -158
      -159                targetPose = currentSegment.getStartPose();
      -160                driveSignal = new DriveSignal();
      -161
      -162                if (deltaTime >= currentSegment.getDuration()) {
      -163                    currentSegmentIndex++;
      -164                }
      -165            }
      -166
      -167            while (remainingMarkers.size() > 0 && deltaTime > remainingMarkers.get(0).getTime()) {
      -168                remainingMarkers.get(0).getCallback().onMarkerReached();
      -169                remainingMarkers.remove(0);
      -170            }
      -171        }
      -172
      -173        poseHistory.add(poseEstimate);
      -174
      -175        if (POSE_HISTORY_LIMIT > -1 && poseHistory.size() > POSE_HISTORY_LIMIT) {
      -176            poseHistory.removeFirst();
      -177        }
      -178
      -179        if (DO_DASH) {
      -180            TelemetryPacket packet = new TelemetryPacket();
      -181            Canvas fieldOverlay = packet.fieldOverlay();
      -182
      -183            packet.put("x", poseEstimate.getX());
      -184            packet.put("y", poseEstimate.getY());
      -185            packet.put("heading (deg)", Math.toDegrees(poseEstimate.getHeading()));
      -186
      -187            packet.put("xError", getLastPoseError().getX());
      -188            packet.put("yError", getLastPoseError().getY());
      -189            packet.put("headingError (deg)", Math.toDegrees(getLastPoseError().getHeading()));
      -190
      -191            if (dashboard != null) draw(
      -192                fieldOverlay,
      -193                currentTrajectorySequence,
      -194                currentSegment,
      -195                targetPose,
      -196                poseEstimate
      -197            );
      -198
      -199            if (dashboard != null) dashboard.sendTelemetryPacket(packet);
      -200        }
      -201
      -202        return driveSignal;
      -203    }
      -204
      -205    private void draw(
      -206        Canvas fieldOverlay,
      -207        TrajectorySequence sequence,
      -208        SequenceSegment currentSegment,
      -209        Pose2d targetPose,
      -210        Pose2d poseEstimate
      -211    ) {
      -212        if (sequence != null) {
      -213            for (int i = 0; i < sequence.size(); i++) {
      -214                SequenceSegment segment = sequence.get(i);
      -215
      -216                if (segment instanceof TrajectorySegment) {
      -217                    fieldOverlay.setStrokeWidth(1);
      -218                    fieldOverlay.setStroke(COLOR_INACTIVE_TRAJECTORY);
      -219
      -220                    DashboardUtil.drawSampledPath(
      -221                        fieldOverlay,
      -222                        ((TrajectorySegment) segment).getTrajectory().getPath()
      -223                    );
      -224                } else if (segment instanceof TurnSegment) {
      -225                    Pose2d pose = segment.getStartPose();
      -226
      -227                    fieldOverlay.setFill(COLOR_INACTIVE_TURN);
      -228                    fieldOverlay.fillCircle(pose.getX(), pose.getY(), 2);
      -229                } else if (segment instanceof WaitSegment) {
      -230                    Pose2d pose = segment.getStartPose();
      -231
      -232                    fieldOverlay.setStrokeWidth(1);
      -233                    fieldOverlay.setStroke(COLOR_INACTIVE_WAIT);
      -234                    fieldOverlay.strokeCircle(pose.getX(), pose.getY(), 3);
      -235                }
      -236            }
      -237        }
      -238
      -239        if (currentSegment != null) {
      -240            if (currentSegment instanceof TrajectorySegment) {
      -241                Trajectory currentTrajectory = ((TrajectorySegment) currentSegment).getTrajectory();
      -242
      -243                fieldOverlay.setStrokeWidth(1);
      -244                fieldOverlay.setStroke(COLOR_ACTIVE_TRAJECTORY);
      -245
      -246                DashboardUtil.drawSampledPath(fieldOverlay, currentTrajectory.getPath());
      -247            } else if (currentSegment instanceof TurnSegment) {
      -248                Pose2d pose = currentSegment.getStartPose();
      -249
      -250                fieldOverlay.setFill(COLOR_ACTIVE_TURN);
      -251                fieldOverlay.fillCircle(pose.getX(), pose.getY(), 3);
      -252            } else if (currentSegment instanceof WaitSegment) {
      -253                Pose2d pose = currentSegment.getStartPose();
      -254
      -255                fieldOverlay.setStrokeWidth(1);
      -256                fieldOverlay.setStroke(COLOR_ACTIVE_WAIT);
      -257                fieldOverlay.strokeCircle(pose.getX(), pose.getY(), 3);
      -258            }
      -259        }
      -260
      -261        if (targetPose != null) {
      -262            fieldOverlay.setStrokeWidth(1);
      -263            fieldOverlay.setStroke("#4CAF50");
      -264            DashboardUtil.drawRobot(fieldOverlay, targetPose);
      -265        }
      -266
      -267        fieldOverlay.setStroke("#3F51B5");
      -268        DashboardUtil.drawPoseHistory(fieldOverlay, poseHistory);
      -269
      -270        fieldOverlay.setStroke("#3F51B5");
      -271        DashboardUtil.drawRobot(fieldOverlay, poseEstimate);
      -272    }
      -273
      -274    public Pose2d getLastPoseError() {
      -275        return lastPoseError;
      -276    }
      -277
      -278    public boolean isBusy() {
      -279        return currentTrajectorySequence != null;
      -280    }
      -281}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html deleted file mode 100644 index 43321945..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/SequenceSegment.html +++ /dev/null @@ -1,114 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence.sequencesegment;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.trajectory.TrajectoryMarker;
      -005import java.util.List;
      -006
      -007public abstract class SequenceSegment {
      -008
      -009    private final double duration;
      -010    private final Pose2d startPose;
      -011    private final Pose2d endPose;
      -012    private final List<TrajectoryMarker> markers;
      -013
      -014    protected SequenceSegment(double duration, Pose2d startPose, Pose2d endPose, List<TrajectoryMarker> markers) {
      -015        this.duration = duration;
      -016        this.startPose = startPose;
      -017        this.endPose = endPose;
      -018        this.markers = markers;
      -019    }
      -020
      -021    public double getDuration() {
      -022        return this.duration;
      -023    }
      -024
      -025    public Pose2d getStartPose() {
      -026        return startPose;
      -027    }
      -028
      -029    public Pose2d getEndPose() {
      -030        return endPose;
      -031    }
      -032
      -033    public List<TrajectoryMarker> getMarkers() {
      -034        return markers;
      -035    }
      -036}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html deleted file mode 100644 index 0f4882b1..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TrajectorySegment.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence.sequencesegment;
      -002
      -003import com.acmerobotics.roadrunner.trajectory.Trajectory;
      -004import java.util.Collections;
      -005
      -006public final class TrajectorySegment extends SequenceSegment {
      -007
      -008    private final Trajectory trajectory;
      -009
      -010    public TrajectorySegment(Trajectory trajectory) {
      -011        // Note: Markers are already stored in the `Trajectory` itself.
      -012        // This class should not hold any markers
      -013        super(trajectory.duration(), trajectory.start(), trajectory.end(), Collections.emptyList());
      -014        this.trajectory = trajectory;
      -015    }
      -016
      -017    public Trajectory getTrajectory() {
      -018        return this.trajectory;
      -019    }
      -020}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html deleted file mode 100644 index 780fc61e..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/TurnSegment.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence.sequencesegment;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.profile.MotionProfile;
      -005import com.acmerobotics.roadrunner.trajectory.TrajectoryMarker;
      -006import com.acmerobotics.roadrunner.util.Angle;
      -007import java.util.List;
      -008
      -009public final class TurnSegment extends SequenceSegment {
      -010
      -011    private final double totalRotation;
      -012    private final MotionProfile motionProfile;
      -013
      -014    public TurnSegment(
      -015        Pose2d startPose,
      -016        double totalRotation,
      -017        MotionProfile motionProfile,
      -018        List<TrajectoryMarker> markers
      -019    ) {
      -020        super(
      -021            motionProfile.duration(),
      -022            startPose,
      -023            new Pose2d(startPose.getX(), startPose.getY(), Angle.norm(startPose.getHeading() + totalRotation)),
      -024            markers
      -025        );
      -026        this.totalRotation = totalRotation;
      -027        this.motionProfile = motionProfile;
      -028    }
      -029
      -030    public final double getTotalRotation() {
      -031        return this.totalRotation;
      -032    }
      -033
      -034    public final MotionProfile getMotionProfile() {
      -035        return this.motionProfile;
      -036    }
      -037}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html b/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html deleted file mode 100644 index 45812339..00000000 --- a/docs/Path/src-html/com/technototes/path/trajectorysequence/sequencesegment/WaitSegment.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.trajectorysequence.sequencesegment;
      -002
      -003import com.acmerobotics.roadrunner.geometry.Pose2d;
      -004import com.acmerobotics.roadrunner.trajectory.TrajectoryMarker;
      -005import java.util.List;
      -006
      -007public final class WaitSegment extends SequenceSegment {
      -008
      -009    public WaitSegment(Pose2d pose, double seconds, List<TrajectoryMarker> markers) {
      -010        super(seconds, pose, pose, markers);
      -011    }
      -012}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/AxesSigns.html b/docs/Path/src-html/com/technototes/path/util/AxesSigns.html deleted file mode 100644 index fd89dccf..00000000 --- a/docs/Path/src-html/com/technototes/path/util/AxesSigns.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003/**
      -004 * IMU axes signs in the order XYZ (after remapping).
      -005 */
      -006public enum AxesSigns {
      -007    PPP(0b000),
      -008    PPN(0b001),
      -009    PNP(0b010),
      -010    PNN(0b011),
      -011    NPP(0b100),
      -012    NPN(0b101),
      -013    NNP(0b110),
      -014    NNN(0b111);
      -015
      -016    public final int bVal;
      -017
      -018    AxesSigns(int bVal) {
      -019        this.bVal = bVal;
      -020    }
      -021}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/BNO055IMUUtil.html b/docs/Path/src-html/com/technototes/path/util/BNO055IMUUtil.html deleted file mode 100644 index eeb3daa0..00000000 --- a/docs/Path/src-html/com/technototes/path/util/BNO055IMUUtil.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import com.qualcomm.hardware.bosch.BNO055IMU;
      -004import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder;
      -005
      -006/**
      -007 * Various utility functions for the BNO055 IMU.
      -008 */
      -009public class BNO055IMUUtil {
      -010
      -011    /**
      -012     * Remap BNO055 IMU axes and signs. For reference, the default order is {@link AxesOrder#ZYX}.
      -013     * Call after {@link BNO055IMU#initialize(BNO055IMU.Parameters)}. Although this isn't
      -014     * mentioned in the datasheet, the axes order appears to affect the onboard sensor fusion.
      -015     *
      -016     * Adapted from <a href="https://ftcforum.usfirst.org/forum/ftc-technology/53812-mounting-the-revhub-vertically?p=56587#post56587">this post</a>.
      -017     *
      -018     * @param imu IMU
      -019     * @param order axes order
      -020     * @param signs axes signs
      -021     */
      -022    public static void remapAxes(BNO055IMU imu, AxesOrder order, AxesSigns signs) {
      -023        try {
      -024            // the indices correspond with the 2-bit encodings specified in the datasheet
      -025            int[] indices = order.indices();
      -026            int axisMapConfig = 0;
      -027            axisMapConfig |= (indices[0] << 4);
      -028            axisMapConfig |= (indices[1] << 2);
      -029            axisMapConfig |= (indices[2] << 0);
      -030
      -031            // the BNO055 driver flips the first orientation vector so we also flip here
      -032            int axisMapSign = signs.bVal ^ (0b100 >> indices[0]);
      -033
      -034            // Enter CONFIG mode
      -035            imu.write8(BNO055IMU.Register.OPR_MODE, BNO055IMU.SensorMode.CONFIG.bVal & 0x0F);
      -036
      -037            Thread.sleep(100);
      -038
      -039            // Write the AXIS_MAP_CONFIG register
      -040            imu.write8(BNO055IMU.Register.AXIS_MAP_CONFIG, axisMapConfig & 0x3F);
      -041
      -042            // Write the AXIS_MAP_SIGN register
      -043            imu.write8(BNO055IMU.Register.AXIS_MAP_SIGN, axisMapSign & 0x07);
      -044
      -045            // Switch back to the previous mode
      -046            imu.write8(BNO055IMU.Register.OPR_MODE, imu.getParameters().mode.bVal & 0x0F);
      -047
      -048            Thread.sleep(100);
      -049        } catch (InterruptedException e) {
      -050            Thread.currentThread().interrupt();
      -051        }
      -052    }
      -053}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/DashboardUtil.html b/docs/Path/src-html/com/technototes/path/util/DashboardUtil.html deleted file mode 100644 index 736a8f60..00000000 --- a/docs/Path/src-html/com/technototes/path/util/DashboardUtil.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import com.acmerobotics.dashboard.canvas.Canvas;
      -004import com.acmerobotics.roadrunner.geometry.Pose2d;
      -005import com.acmerobotics.roadrunner.geometry.Vector2d;
      -006import com.acmerobotics.roadrunner.path.Path;
      -007import java.util.List;
      -008
      -009/**
      -010 * Set of helper functions for drawing Road Runner paths and trajectories on dashboard canvases.
      -011 */
      -012public class DashboardUtil {
      -013
      -014    private static final double DEFAULT_RESOLUTION = 2.0; // distance units; presumed inches
      -015    private static final double ROBOT_RADIUS = 9; // in
      -016
      -017    public static void drawPoseHistory(Canvas canvas, List<Pose2d> poseHistory) {
      -018        double[] xPoints = new double[poseHistory.size()];
      -019        double[] yPoints = new double[poseHistory.size()];
      -020        for (int i = 0; i < poseHistory.size(); i++) {
      -021            Pose2d pose = poseHistory.get(i);
      -022            xPoints[i] = pose.getX();
      -023            yPoints[i] = pose.getY();
      -024        }
      -025        canvas.strokePolyline(xPoints, yPoints);
      -026    }
      -027
      -028    public static void drawSampledPath(Canvas canvas, Path path, double resolution) {
      -029        int samples = (int) Math.ceil(path.length() / resolution);
      -030        double[] xPoints = new double[samples];
      -031        double[] yPoints = new double[samples];
      -032        double dx = path.length() / (samples - 1);
      -033        for (int i = 0; i < samples; i++) {
      -034            double displacement = i * dx;
      -035            Pose2d pose = path.get(displacement);
      -036            xPoints[i] = pose.getX();
      -037            yPoints[i] = pose.getY();
      -038        }
      -039        canvas.strokePolyline(xPoints, yPoints);
      -040    }
      -041
      -042    public static void drawSampledPath(Canvas canvas, Path path) {
      -043        drawSampledPath(canvas, path, DEFAULT_RESOLUTION);
      -044    }
      -045
      -046    public static void drawRobot(Canvas canvas, Pose2d pose) {
      -047        canvas.strokeCircle(pose.getX(), pose.getY(), ROBOT_RADIUS);
      -048        Vector2d v = pose.headingVec().times(ROBOT_RADIUS);
      -049        double x1 = pose.getX() + v.getX() / 2, y1 = pose.getY() + v.getY() / 2;
      -050        double x2 = pose.getX() + v.getX(), y2 = pose.getY() + v.getY();
      -051        canvas.strokeLine(x1, y1, x2, y2);
      -052    }
      -053}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/LoggingUtil.html b/docs/Path/src-html/com/technototes/path/util/LoggingUtil.html deleted file mode 100644 index d45770c4..00000000 --- a/docs/Path/src-html/com/technototes/path/util/LoggingUtil.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import java.io.File;
      -004import java.util.ArrayList;
      -005import java.util.Collections;
      -006import java.util.List;
      -007import org.firstinspires.ftc.robotcore.internal.system.AppUtil;
      -008
      -009/**
      -010 * Utility functions for log files.
      -011 */
      -012public class LoggingUtil {
      -013
      -014    public static final File ROAD_RUNNER_FOLDER = new File(AppUtil.ROOT_FOLDER + "/RoadRunner/");
      -015
      -016    private static final long LOG_QUOTA = 25 * 1024 * 1024; // 25MB log quota for now
      -017
      -018    private static void buildLogList(List<File> logFiles, File dir) {
      -019        for (File file : dir.listFiles()) {
      -020            if (file.isDirectory()) {
      -021                buildLogList(logFiles, file);
      -022            } else {
      -023                logFiles.add(file);
      -024            }
      -025        }
      -026    }
      -027
      -028    private static void pruneLogsIfNecessary() {
      -029        List<File> logFiles = new ArrayList<>();
      -030        buildLogList(logFiles, ROAD_RUNNER_FOLDER);
      -031        Collections.sort(logFiles, (lhs, rhs) -> Long.compare(lhs.lastModified(), rhs.lastModified()));
      -032
      -033        long dirSize = 0;
      -034        for (File file : logFiles) {
      -035            dirSize += file.length();
      -036        }
      -037
      -038        while (dirSize > LOG_QUOTA) {
      -039            if (logFiles.size() == 0) break;
      -040            File fileToRemove = logFiles.remove(0);
      -041            dirSize -= fileToRemove.length();
      -042            //noinspection ResultOfMethodCallIgnored
      -043            fileToRemove.delete();
      -044        }
      -045    }
      -046
      -047    /**
      -048     * Obtain a log file with the provided name
      -049     */
      -050    public static File getLogFile(String name) {
      -051        //noinspection ResultOfMethodCallIgnored
      -052        ROAD_RUNNER_FOLDER.mkdirs();
      -053
      -054        pruneLogsIfNecessary();
      -055
      -056        return new File(ROAD_RUNNER_FOLDER, name);
      -057    }
      -058}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html b/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html deleted file mode 100644 index 0a2acc77..00000000 --- a/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersion.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import com.qualcomm.hardware.lynx.LynxModule;
      -004import com.qualcomm.robotcore.hardware.HardwareMap;
      -005import java.util.HashMap;
      -006import java.util.Map;
      -007import org.firstinspires.ftc.robotcore.internal.system.Misc;
      -008
      -009/**
      -010 * Collection of utilites for interacting with Lynx modules.
      -011 */
      -012public class LynxModuleUtil {
      -013
      -014    private static final LynxFirmwareVersion MIN_VERSION = new LynxFirmwareVersion(1, 8, 2);
      -015
      -016    /**
      -017     * Parsed representation of a Lynx module firmware version.
      -018     */
      -019    public static class LynxFirmwareVersion implements Comparable<LynxFirmwareVersion> {
      -020
      -021        public final int major;
      -022        public final int minor;
      -023        public final int eng;
      -024
      -025        public LynxFirmwareVersion(int major, int minor, int eng) {
      -026            this.major = major;
      -027            this.minor = minor;
      -028            this.eng = eng;
      -029        }
      -030
      -031        @Override
      -032        public boolean equals(Object other) {
      -033            if (other instanceof LynxFirmwareVersion) {
      -034                LynxFirmwareVersion otherVersion = (LynxFirmwareVersion) other;
      -035                return (major == otherVersion.major && minor == otherVersion.minor && eng == otherVersion.eng);
      -036            } else {
      -037                return false;
      -038            }
      -039        }
      -040
      -041        @Override
      -042        public int compareTo(LynxFirmwareVersion other) {
      -043            int majorComp = Integer.compare(major, other.major);
      -044            if (majorComp == 0) {
      -045                int minorComp = Integer.compare(minor, other.minor);
      -046                if (minorComp == 0) {
      -047                    return Integer.compare(eng, other.eng);
      -048                } else {
      -049                    return minorComp;
      -050                }
      -051            } else {
      -052                return majorComp;
      -053            }
      -054        }
      -055
      -056        @Override
      -057        public String toString() {
      -058            return Misc.formatInvariant("%d.%d.%d", major, minor, eng);
      -059        }
      -060    }
      -061
      -062    /**
      -063     * Retrieve and parse Lynx module firmware version.
      -064     * @param module Lynx module
      -065     * @return parsed firmware version
      -066     */
      -067    public static LynxFirmwareVersion getFirmwareVersion(LynxModule module) {
      -068        String versionString = module.getNullableFirmwareVersionString();
      -069        if (versionString == null) {
      -070            return null;
      -071        }
      -072
      -073        String[] parts = versionString.split("[ :,]+");
      -074        try {
      -075            // note: for now, we ignore the hardware entry
      -076            return new LynxFirmwareVersion(
      -077                Integer.parseInt(parts[3]),
      -078                Integer.parseInt(parts[5]),
      -079                Integer.parseInt(parts[7])
      -080            );
      -081        } catch (NumberFormatException e) {
      -082            return null;
      -083        }
      -084    }
      -085
      -086    /**
      -087     * Exception indicating an outdated Lynx firmware version.
      -088     */
      -089    public static class LynxFirmwareVersionException extends RuntimeException {
      -090
      -091        public LynxFirmwareVersionException(String detailMessage) {
      -092            super(detailMessage);
      -093        }
      -094    }
      -095
      -096    /**
      -097     * Ensure all of the Lynx modules attached to the robot satisfy the minimum requirement.
      -098     * @param hardwareMap hardware map containing Lynx modules
      -099     */
      -100    public static void ensureMinimumFirmwareVersion(HardwareMap hardwareMap) {
      -101        Map<String, LynxFirmwareVersion> outdatedModules = new HashMap<>();
      -102        for (LynxModule module : hardwareMap.getAll(LynxModule.class)) {
      -103            LynxFirmwareVersion version = getFirmwareVersion(module);
      -104            if (version == null || version.compareTo(MIN_VERSION) < 0) {
      -105                for (String name : hardwareMap.getNamesOf(module)) {
      -106                    outdatedModules.put(name, version);
      -107                }
      -108            }
      -109        }
      -110        if (outdatedModules.size() > 0) {
      -111            StringBuilder msgBuilder = new StringBuilder();
      -112            msgBuilder.append("One or more of the attached Lynx modules has outdated firmware\n");
      -113            msgBuilder.append(
      -114                Misc.formatInvariant("Mandatory minimum firmware version for Road Runner: %s\n", MIN_VERSION.toString())
      -115            );
      -116            for (Map.Entry<String, LynxFirmwareVersion> entry : outdatedModules.entrySet()) {
      -117                msgBuilder.append(
      -118                    Misc.formatInvariant(
      -119                        "\t%s: %s\n",
      -120                        entry.getKey(),
      -121                        entry.getValue() == null ? "Unknown" : entry.getValue().toString()
      -122                    )
      -123                );
      -124            }
      -125            throw new LynxFirmwareVersionException(msgBuilder.toString());
      -126        }
      -127    }
      -128}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html b/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html deleted file mode 100644 index 8f4d67fe..00000000 --- a/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.LynxFirmwareVersionException.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import com.qualcomm.hardware.lynx.LynxModule;
      -004import com.qualcomm.robotcore.hardware.HardwareMap;
      -005import java.util.HashMap;
      -006import java.util.Map;
      -007import org.firstinspires.ftc.robotcore.internal.system.Misc;
      -008
      -009/**
      -010 * Collection of utilites for interacting with Lynx modules.
      -011 */
      -012public class LynxModuleUtil {
      -013
      -014    private static final LynxFirmwareVersion MIN_VERSION = new LynxFirmwareVersion(1, 8, 2);
      -015
      -016    /**
      -017     * Parsed representation of a Lynx module firmware version.
      -018     */
      -019    public static class LynxFirmwareVersion implements Comparable<LynxFirmwareVersion> {
      -020
      -021        public final int major;
      -022        public final int minor;
      -023        public final int eng;
      -024
      -025        public LynxFirmwareVersion(int major, int minor, int eng) {
      -026            this.major = major;
      -027            this.minor = minor;
      -028            this.eng = eng;
      -029        }
      -030
      -031        @Override
      -032        public boolean equals(Object other) {
      -033            if (other instanceof LynxFirmwareVersion) {
      -034                LynxFirmwareVersion otherVersion = (LynxFirmwareVersion) other;
      -035                return (major == otherVersion.major && minor == otherVersion.minor && eng == otherVersion.eng);
      -036            } else {
      -037                return false;
      -038            }
      -039        }
      -040
      -041        @Override
      -042        public int compareTo(LynxFirmwareVersion other) {
      -043            int majorComp = Integer.compare(major, other.major);
      -044            if (majorComp == 0) {
      -045                int minorComp = Integer.compare(minor, other.minor);
      -046                if (minorComp == 0) {
      -047                    return Integer.compare(eng, other.eng);
      -048                } else {
      -049                    return minorComp;
      -050                }
      -051            } else {
      -052                return majorComp;
      -053            }
      -054        }
      -055
      -056        @Override
      -057        public String toString() {
      -058            return Misc.formatInvariant("%d.%d.%d", major, minor, eng);
      -059        }
      -060    }
      -061
      -062    /**
      -063     * Retrieve and parse Lynx module firmware version.
      -064     * @param module Lynx module
      -065     * @return parsed firmware version
      -066     */
      -067    public static LynxFirmwareVersion getFirmwareVersion(LynxModule module) {
      -068        String versionString = module.getNullableFirmwareVersionString();
      -069        if (versionString == null) {
      -070            return null;
      -071        }
      -072
      -073        String[] parts = versionString.split("[ :,]+");
      -074        try {
      -075            // note: for now, we ignore the hardware entry
      -076            return new LynxFirmwareVersion(
      -077                Integer.parseInt(parts[3]),
      -078                Integer.parseInt(parts[5]),
      -079                Integer.parseInt(parts[7])
      -080            );
      -081        } catch (NumberFormatException e) {
      -082            return null;
      -083        }
      -084    }
      -085
      -086    /**
      -087     * Exception indicating an outdated Lynx firmware version.
      -088     */
      -089    public static class LynxFirmwareVersionException extends RuntimeException {
      -090
      -091        public LynxFirmwareVersionException(String detailMessage) {
      -092            super(detailMessage);
      -093        }
      -094    }
      -095
      -096    /**
      -097     * Ensure all of the Lynx modules attached to the robot satisfy the minimum requirement.
      -098     * @param hardwareMap hardware map containing Lynx modules
      -099     */
      -100    public static void ensureMinimumFirmwareVersion(HardwareMap hardwareMap) {
      -101        Map<String, LynxFirmwareVersion> outdatedModules = new HashMap<>();
      -102        for (LynxModule module : hardwareMap.getAll(LynxModule.class)) {
      -103            LynxFirmwareVersion version = getFirmwareVersion(module);
      -104            if (version == null || version.compareTo(MIN_VERSION) < 0) {
      -105                for (String name : hardwareMap.getNamesOf(module)) {
      -106                    outdatedModules.put(name, version);
      -107                }
      -108            }
      -109        }
      -110        if (outdatedModules.size() > 0) {
      -111            StringBuilder msgBuilder = new StringBuilder();
      -112            msgBuilder.append("One or more of the attached Lynx modules has outdated firmware\n");
      -113            msgBuilder.append(
      -114                Misc.formatInvariant("Mandatory minimum firmware version for Road Runner: %s\n", MIN_VERSION.toString())
      -115            );
      -116            for (Map.Entry<String, LynxFirmwareVersion> entry : outdatedModules.entrySet()) {
      -117                msgBuilder.append(
      -118                    Misc.formatInvariant(
      -119                        "\t%s: %s\n",
      -120                        entry.getKey(),
      -121                        entry.getValue() == null ? "Unknown" : entry.getValue().toString()
      -122                    )
      -123                );
      -124            }
      -125            throw new LynxFirmwareVersionException(msgBuilder.toString());
      -126        }
      -127    }
      -128}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.html b/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.html deleted file mode 100644 index e1447ca3..00000000 --- a/docs/Path/src-html/com/technototes/path/util/LynxModuleUtil.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import com.qualcomm.hardware.lynx.LynxModule;
      -004import com.qualcomm.robotcore.hardware.HardwareMap;
      -005import java.util.HashMap;
      -006import java.util.Map;
      -007import org.firstinspires.ftc.robotcore.internal.system.Misc;
      -008
      -009/**
      -010 * Collection of utilites for interacting with Lynx modules.
      -011 */
      -012public class LynxModuleUtil {
      -013
      -014    private static final LynxFirmwareVersion MIN_VERSION = new LynxFirmwareVersion(1, 8, 2);
      -015
      -016    /**
      -017     * Parsed representation of a Lynx module firmware version.
      -018     */
      -019    public static class LynxFirmwareVersion implements Comparable<LynxFirmwareVersion> {
      -020
      -021        public final int major;
      -022        public final int minor;
      -023        public final int eng;
      -024
      -025        public LynxFirmwareVersion(int major, int minor, int eng) {
      -026            this.major = major;
      -027            this.minor = minor;
      -028            this.eng = eng;
      -029        }
      -030
      -031        @Override
      -032        public boolean equals(Object other) {
      -033            if (other instanceof LynxFirmwareVersion) {
      -034                LynxFirmwareVersion otherVersion = (LynxFirmwareVersion) other;
      -035                return (major == otherVersion.major && minor == otherVersion.minor && eng == otherVersion.eng);
      -036            } else {
      -037                return false;
      -038            }
      -039        }
      -040
      -041        @Override
      -042        public int compareTo(LynxFirmwareVersion other) {
      -043            int majorComp = Integer.compare(major, other.major);
      -044            if (majorComp == 0) {
      -045                int minorComp = Integer.compare(minor, other.minor);
      -046                if (minorComp == 0) {
      -047                    return Integer.compare(eng, other.eng);
      -048                } else {
      -049                    return minorComp;
      -050                }
      -051            } else {
      -052                return majorComp;
      -053            }
      -054        }
      -055
      -056        @Override
      -057        public String toString() {
      -058            return Misc.formatInvariant("%d.%d.%d", major, minor, eng);
      -059        }
      -060    }
      -061
      -062    /**
      -063     * Retrieve and parse Lynx module firmware version.
      -064     * @param module Lynx module
      -065     * @return parsed firmware version
      -066     */
      -067    public static LynxFirmwareVersion getFirmwareVersion(LynxModule module) {
      -068        String versionString = module.getNullableFirmwareVersionString();
      -069        if (versionString == null) {
      -070            return null;
      -071        }
      -072
      -073        String[] parts = versionString.split("[ :,]+");
      -074        try {
      -075            // note: for now, we ignore the hardware entry
      -076            return new LynxFirmwareVersion(
      -077                Integer.parseInt(parts[3]),
      -078                Integer.parseInt(parts[5]),
      -079                Integer.parseInt(parts[7])
      -080            );
      -081        } catch (NumberFormatException e) {
      -082            return null;
      -083        }
      -084    }
      -085
      -086    /**
      -087     * Exception indicating an outdated Lynx firmware version.
      -088     */
      -089    public static class LynxFirmwareVersionException extends RuntimeException {
      -090
      -091        public LynxFirmwareVersionException(String detailMessage) {
      -092            super(detailMessage);
      -093        }
      -094    }
      -095
      -096    /**
      -097     * Ensure all of the Lynx modules attached to the robot satisfy the minimum requirement.
      -098     * @param hardwareMap hardware map containing Lynx modules
      -099     */
      -100    public static void ensureMinimumFirmwareVersion(HardwareMap hardwareMap) {
      -101        Map<String, LynxFirmwareVersion> outdatedModules = new HashMap<>();
      -102        for (LynxModule module : hardwareMap.getAll(LynxModule.class)) {
      -103            LynxFirmwareVersion version = getFirmwareVersion(module);
      -104            if (version == null || version.compareTo(MIN_VERSION) < 0) {
      -105                for (String name : hardwareMap.getNamesOf(module)) {
      -106                    outdatedModules.put(name, version);
      -107                }
      -108            }
      -109        }
      -110        if (outdatedModules.size() > 0) {
      -111            StringBuilder msgBuilder = new StringBuilder();
      -112            msgBuilder.append("One or more of the attached Lynx modules has outdated firmware\n");
      -113            msgBuilder.append(
      -114                Misc.formatInvariant("Mandatory minimum firmware version for Road Runner: %s\n", MIN_VERSION.toString())
      -115            );
      -116            for (Map.Entry<String, LynxFirmwareVersion> entry : outdatedModules.entrySet()) {
      -117                msgBuilder.append(
      -118                    Misc.formatInvariant(
      -119                        "\t%s: %s\n",
      -120                        entry.getKey(),
      -121                        entry.getValue() == null ? "Unknown" : entry.getValue().toString()
      -122                    )
      -123                );
      -124            }
      -125            throw new LynxFirmwareVersionException(msgBuilder.toString());
      -126        }
      -127    }
      -128}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/RegressionUtil.AccelResult.html b/docs/Path/src-html/com/technototes/path/util/RegressionUtil.AccelResult.html deleted file mode 100644 index d66782a1..00000000 --- a/docs/Path/src-html/com/technototes/path/util/RegressionUtil.AccelResult.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import androidx.annotation.Nullable;
      -004import com.acmerobotics.roadrunner.kinematics.Kinematics;
      -005import java.io.File;
      -006import java.io.FileNotFoundException;
      -007import java.io.PrintWriter;
      -008import java.util.ArrayList;
      -009import java.util.List;
      -010import org.apache.commons.math3.stat.regression.SimpleRegression;
      -011
      -012/**
      -013 * Various regression utilities.
      -014 */
      -015public class RegressionUtil {
      -016
      -017    /**
      -018     * Feedforward parameter estimates from the ramp regression and additional summary statistics
      -019     */
      -020    public static class RampResult {
      -021
      -022        public final double kV, kStatic, rSquare;
      -023
      -024        public RampResult(double kV, double kStatic, double rSquare) {
      -025            this.kV = kV;
      -026            this.kStatic = kStatic;
      -027            this.rSquare = rSquare;
      -028        }
      -029    }
      -030
      -031    /**
      -032     * Feedforward parameter estimates from the ramp regression and additional summary statistics
      -033     */
      -034    public static class AccelResult {
      -035
      -036        public final double kA, rSquare;
      -037
      -038        public AccelResult(double kA, double rSquare) {
      -039            this.kA = kA;
      -040            this.rSquare = rSquare;
      -041        }
      -042    }
      -043
      -044    /**
      -045     * Numerically compute dy/dx from the given x and y values. The returned list is padded to match
      -046     * the length of the original sequences.
      -047     *
      -048     * @param x x-values
      -049     * @param y y-values
      -050     * @return derivative values
      -051     */
      -052    private static List<Double> numericalDerivative(List<Double> x, List<Double> y) {
      -053        List<Double> deriv = new ArrayList<>(x.size());
      -054        for (int i = 1; i < x.size() - 1; i++) {
      -055            deriv.add((y.get(i + 1) - y.get(i - 1)) / (x.get(i + 1) - x.get(i - 1)));
      -056        }
      -057        // copy endpoints to pad output
      -058        deriv.add(0, deriv.get(0));
      -059        deriv.add(deriv.get(deriv.size() - 1));
      -060        return deriv;
      -061    }
      -062
      -063    /**
      -064     * Run regression to compute velocity and static feedforward from ramp test data.
      -065     *
      -066     * Here's the general procedure for gathering the requisite data:
      -067     *   1. Slowly ramp the motor power/voltage and record encoder values along the way.
      -068     *   2. Run a linear regression on the encoder velocity vs. motor power plot to obtain a slope
      -069     *      (kV) and an optional intercept (kStatic).
      -070     *
      -071     * @param timeSamples time samples
      -072     * @param positionSamples position samples
      -073     * @param powerSamples power samples
      -074     * @param fitStatic fit kStatic
      -075     * @param file log file
      -076     */
      -077    public static RampResult fitRampData(
      -078        List<Double> timeSamples,
      -079        List<Double> positionSamples,
      -080        List<Double> powerSamples,
      -081        boolean fitStatic,
      -082        @Nullable File file
      -083    ) {
      -084        if (file != null) {
      -085            try (PrintWriter pw = new PrintWriter(file)) {
      -086                pw.println("time,position,power");
      -087                for (int i = 0; i < timeSamples.size(); i++) {
      -088                    double time = timeSamples.get(i);
      -089                    double pos = positionSamples.get(i);
      -090                    double power = powerSamples.get(i);
      -091                    pw.println(time + "," + pos + "," + power);
      -092                }
      -093            } catch (FileNotFoundException e) {
      -094                // ignore
      -095            }
      -096        }
      -097
      -098        List<Double> velSamples = numericalDerivative(timeSamples, positionSamples);
      -099
      -100        SimpleRegression rampReg = new SimpleRegression(fitStatic);
      -101        for (int i = 0; i < timeSamples.size(); i++) {
      -102            double vel = velSamples.get(i);
      -103            double power = powerSamples.get(i);
      -104
      -105            rampReg.addData(vel, power);
      -106        }
      -107
      -108        return new RampResult(Math.abs(rampReg.getSlope()), Math.abs(rampReg.getIntercept()), rampReg.getRSquare());
      -109    }
      -110
      -111    /**
      -112     * Run regression to compute acceleration feedforward.
      -113     *
      -114     * @param timeSamples time samples
      -115     * @param positionSamples position samples
      -116     * @param powerSamples power samples
      -117     * @param rampResult ramp result
      -118     * @param file log file
      -119     */
      -120    public static AccelResult fitAccelData(
      -121        List<Double> timeSamples,
      -122        List<Double> positionSamples,
      -123        List<Double> powerSamples,
      -124        RampResult rampResult,
      -125        @Nullable File file
      -126    ) {
      -127        if (file != null) {
      -128            try (PrintWriter pw = new PrintWriter(file)) {
      -129                pw.println("time,position,power");
      -130                for (int i = 0; i < timeSamples.size(); i++) {
      -131                    double time = timeSamples.get(i);
      -132                    double pos = positionSamples.get(i);
      -133                    double power = powerSamples.get(i);
      -134                    pw.println(time + "," + pos + "," + power);
      -135                }
      -136            } catch (FileNotFoundException e) {
      -137                // ignore
      -138            }
      -139        }
      -140
      -141        List<Double> velSamples = numericalDerivative(timeSamples, positionSamples);
      -142        List<Double> accelSamples = numericalDerivative(timeSamples, velSamples);
      -143
      -144        SimpleRegression accelReg = new SimpleRegression(false);
      -145        for (int i = 0; i < timeSamples.size(); i++) {
      -146            double vel = velSamples.get(i);
      -147            double accel = accelSamples.get(i);
      -148            double power = powerSamples.get(i);
      -149
      -150            double powerFromVel = Kinematics.calculateMotorFeedforward(
      -151                vel,
      -152                0.0,
      -153                rampResult.kV,
      -154                0.0,
      -155                rampResult.kStatic
      -156            );
      -157            double powerFromAccel = power - powerFromVel;
      -158
      -159            accelReg.addData(accel, powerFromAccel);
      -160        }
      -161
      -162        return new AccelResult(Math.abs(accelReg.getSlope()), accelReg.getRSquare());
      -163    }
      -164}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/RegressionUtil.RampResult.html b/docs/Path/src-html/com/technototes/path/util/RegressionUtil.RampResult.html deleted file mode 100644 index 121ed314..00000000 --- a/docs/Path/src-html/com/technototes/path/util/RegressionUtil.RampResult.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import androidx.annotation.Nullable;
      -004import com.acmerobotics.roadrunner.kinematics.Kinematics;
      -005import java.io.File;
      -006import java.io.FileNotFoundException;
      -007import java.io.PrintWriter;
      -008import java.util.ArrayList;
      -009import java.util.List;
      -010import org.apache.commons.math3.stat.regression.SimpleRegression;
      -011
      -012/**
      -013 * Various regression utilities.
      -014 */
      -015public class RegressionUtil {
      -016
      -017    /**
      -018     * Feedforward parameter estimates from the ramp regression and additional summary statistics
      -019     */
      -020    public static class RampResult {
      -021
      -022        public final double kV, kStatic, rSquare;
      -023
      -024        public RampResult(double kV, double kStatic, double rSquare) {
      -025            this.kV = kV;
      -026            this.kStatic = kStatic;
      -027            this.rSquare = rSquare;
      -028        }
      -029    }
      -030
      -031    /**
      -032     * Feedforward parameter estimates from the ramp regression and additional summary statistics
      -033     */
      -034    public static class AccelResult {
      -035
      -036        public final double kA, rSquare;
      -037
      -038        public AccelResult(double kA, double rSquare) {
      -039            this.kA = kA;
      -040            this.rSquare = rSquare;
      -041        }
      -042    }
      -043
      -044    /**
      -045     * Numerically compute dy/dx from the given x and y values. The returned list is padded to match
      -046     * the length of the original sequences.
      -047     *
      -048     * @param x x-values
      -049     * @param y y-values
      -050     * @return derivative values
      -051     */
      -052    private static List<Double> numericalDerivative(List<Double> x, List<Double> y) {
      -053        List<Double> deriv = new ArrayList<>(x.size());
      -054        for (int i = 1; i < x.size() - 1; i++) {
      -055            deriv.add((y.get(i + 1) - y.get(i - 1)) / (x.get(i + 1) - x.get(i - 1)));
      -056        }
      -057        // copy endpoints to pad output
      -058        deriv.add(0, deriv.get(0));
      -059        deriv.add(deriv.get(deriv.size() - 1));
      -060        return deriv;
      -061    }
      -062
      -063    /**
      -064     * Run regression to compute velocity and static feedforward from ramp test data.
      -065     *
      -066     * Here's the general procedure for gathering the requisite data:
      -067     *   1. Slowly ramp the motor power/voltage and record encoder values along the way.
      -068     *   2. Run a linear regression on the encoder velocity vs. motor power plot to obtain a slope
      -069     *      (kV) and an optional intercept (kStatic).
      -070     *
      -071     * @param timeSamples time samples
      -072     * @param positionSamples position samples
      -073     * @param powerSamples power samples
      -074     * @param fitStatic fit kStatic
      -075     * @param file log file
      -076     */
      -077    public static RampResult fitRampData(
      -078        List<Double> timeSamples,
      -079        List<Double> positionSamples,
      -080        List<Double> powerSamples,
      -081        boolean fitStatic,
      -082        @Nullable File file
      -083    ) {
      -084        if (file != null) {
      -085            try (PrintWriter pw = new PrintWriter(file)) {
      -086                pw.println("time,position,power");
      -087                for (int i = 0; i < timeSamples.size(); i++) {
      -088                    double time = timeSamples.get(i);
      -089                    double pos = positionSamples.get(i);
      -090                    double power = powerSamples.get(i);
      -091                    pw.println(time + "," + pos + "," + power);
      -092                }
      -093            } catch (FileNotFoundException e) {
      -094                // ignore
      -095            }
      -096        }
      -097
      -098        List<Double> velSamples = numericalDerivative(timeSamples, positionSamples);
      -099
      -100        SimpleRegression rampReg = new SimpleRegression(fitStatic);
      -101        for (int i = 0; i < timeSamples.size(); i++) {
      -102            double vel = velSamples.get(i);
      -103            double power = powerSamples.get(i);
      -104
      -105            rampReg.addData(vel, power);
      -106        }
      -107
      -108        return new RampResult(Math.abs(rampReg.getSlope()), Math.abs(rampReg.getIntercept()), rampReg.getRSquare());
      -109    }
      -110
      -111    /**
      -112     * Run regression to compute acceleration feedforward.
      -113     *
      -114     * @param timeSamples time samples
      -115     * @param positionSamples position samples
      -116     * @param powerSamples power samples
      -117     * @param rampResult ramp result
      -118     * @param file log file
      -119     */
      -120    public static AccelResult fitAccelData(
      -121        List<Double> timeSamples,
      -122        List<Double> positionSamples,
      -123        List<Double> powerSamples,
      -124        RampResult rampResult,
      -125        @Nullable File file
      -126    ) {
      -127        if (file != null) {
      -128            try (PrintWriter pw = new PrintWriter(file)) {
      -129                pw.println("time,position,power");
      -130                for (int i = 0; i < timeSamples.size(); i++) {
      -131                    double time = timeSamples.get(i);
      -132                    double pos = positionSamples.get(i);
      -133                    double power = powerSamples.get(i);
      -134                    pw.println(time + "," + pos + "," + power);
      -135                }
      -136            } catch (FileNotFoundException e) {
      -137                // ignore
      -138            }
      -139        }
      -140
      -141        List<Double> velSamples = numericalDerivative(timeSamples, positionSamples);
      -142        List<Double> accelSamples = numericalDerivative(timeSamples, velSamples);
      -143
      -144        SimpleRegression accelReg = new SimpleRegression(false);
      -145        for (int i = 0; i < timeSamples.size(); i++) {
      -146            double vel = velSamples.get(i);
      -147            double accel = accelSamples.get(i);
      -148            double power = powerSamples.get(i);
      -149
      -150            double powerFromVel = Kinematics.calculateMotorFeedforward(
      -151                vel,
      -152                0.0,
      -153                rampResult.kV,
      -154                0.0,
      -155                rampResult.kStatic
      -156            );
      -157            double powerFromAccel = power - powerFromVel;
      -158
      -159            accelReg.addData(accel, powerFromAccel);
      -160        }
      -161
      -162        return new AccelResult(Math.abs(accelReg.getSlope()), accelReg.getRSquare());
      -163    }
      -164}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/src-html/com/technototes/path/util/RegressionUtil.html b/docs/Path/src-html/com/technototes/path/util/RegressionUtil.html deleted file mode 100644 index a18c21d8..00000000 --- a/docs/Path/src-html/com/technototes/path/util/RegressionUtil.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - -Source code - - - - - - -
      -
      -
      001package com.technototes.path.util;
      -002
      -003import androidx.annotation.Nullable;
      -004import com.acmerobotics.roadrunner.kinematics.Kinematics;
      -005import java.io.File;
      -006import java.io.FileNotFoundException;
      -007import java.io.PrintWriter;
      -008import java.util.ArrayList;
      -009import java.util.List;
      -010import org.apache.commons.math3.stat.regression.SimpleRegression;
      -011
      -012/**
      -013 * Various regression utilities.
      -014 */
      -015public class RegressionUtil {
      -016
      -017    /**
      -018     * Feedforward parameter estimates from the ramp regression and additional summary statistics
      -019     */
      -020    public static class RampResult {
      -021
      -022        public final double kV, kStatic, rSquare;
      -023
      -024        public RampResult(double kV, double kStatic, double rSquare) {
      -025            this.kV = kV;
      -026            this.kStatic = kStatic;
      -027            this.rSquare = rSquare;
      -028        }
      -029    }
      -030
      -031    /**
      -032     * Feedforward parameter estimates from the ramp regression and additional summary statistics
      -033     */
      -034    public static class AccelResult {
      -035
      -036        public final double kA, rSquare;
      -037
      -038        public AccelResult(double kA, double rSquare) {
      -039            this.kA = kA;
      -040            this.rSquare = rSquare;
      -041        }
      -042    }
      -043
      -044    /**
      -045     * Numerically compute dy/dx from the given x and y values. The returned list is padded to match
      -046     * the length of the original sequences.
      -047     *
      -048     * @param x x-values
      -049     * @param y y-values
      -050     * @return derivative values
      -051     */
      -052    private static List<Double> numericalDerivative(List<Double> x, List<Double> y) {
      -053        List<Double> deriv = new ArrayList<>(x.size());
      -054        for (int i = 1; i < x.size() - 1; i++) {
      -055            deriv.add((y.get(i + 1) - y.get(i - 1)) / (x.get(i + 1) - x.get(i - 1)));
      -056        }
      -057        // copy endpoints to pad output
      -058        deriv.add(0, deriv.get(0));
      -059        deriv.add(deriv.get(deriv.size() - 1));
      -060        return deriv;
      -061    }
      -062
      -063    /**
      -064     * Run regression to compute velocity and static feedforward from ramp test data.
      -065     *
      -066     * Here's the general procedure for gathering the requisite data:
      -067     *   1. Slowly ramp the motor power/voltage and record encoder values along the way.
      -068     *   2. Run a linear regression on the encoder velocity vs. motor power plot to obtain a slope
      -069     *      (kV) and an optional intercept (kStatic).
      -070     *
      -071     * @param timeSamples time samples
      -072     * @param positionSamples position samples
      -073     * @param powerSamples power samples
      -074     * @param fitStatic fit kStatic
      -075     * @param file log file
      -076     */
      -077    public static RampResult fitRampData(
      -078        List<Double> timeSamples,
      -079        List<Double> positionSamples,
      -080        List<Double> powerSamples,
      -081        boolean fitStatic,
      -082        @Nullable File file
      -083    ) {
      -084        if (file != null) {
      -085            try (PrintWriter pw = new PrintWriter(file)) {
      -086                pw.println("time,position,power");
      -087                for (int i = 0; i < timeSamples.size(); i++) {
      -088                    double time = timeSamples.get(i);
      -089                    double pos = positionSamples.get(i);
      -090                    double power = powerSamples.get(i);
      -091                    pw.println(time + "," + pos + "," + power);
      -092                }
      -093            } catch (FileNotFoundException e) {
      -094                // ignore
      -095            }
      -096        }
      -097
      -098        List<Double> velSamples = numericalDerivative(timeSamples, positionSamples);
      -099
      -100        SimpleRegression rampReg = new SimpleRegression(fitStatic);
      -101        for (int i = 0; i < timeSamples.size(); i++) {
      -102            double vel = velSamples.get(i);
      -103            double power = powerSamples.get(i);
      -104
      -105            rampReg.addData(vel, power);
      -106        }
      -107
      -108        return new RampResult(Math.abs(rampReg.getSlope()), Math.abs(rampReg.getIntercept()), rampReg.getRSquare());
      -109    }
      -110
      -111    /**
      -112     * Run regression to compute acceleration feedforward.
      -113     *
      -114     * @param timeSamples time samples
      -115     * @param positionSamples position samples
      -116     * @param powerSamples power samples
      -117     * @param rampResult ramp result
      -118     * @param file log file
      -119     */
      -120    public static AccelResult fitAccelData(
      -121        List<Double> timeSamples,
      -122        List<Double> positionSamples,
      -123        List<Double> powerSamples,
      -124        RampResult rampResult,
      -125        @Nullable File file
      -126    ) {
      -127        if (file != null) {
      -128            try (PrintWriter pw = new PrintWriter(file)) {
      -129                pw.println("time,position,power");
      -130                for (int i = 0; i < timeSamples.size(); i++) {
      -131                    double time = timeSamples.get(i);
      -132                    double pos = positionSamples.get(i);
      -133                    double power = powerSamples.get(i);
      -134                    pw.println(time + "," + pos + "," + power);
      -135                }
      -136            } catch (FileNotFoundException e) {
      -137                // ignore
      -138            }
      -139        }
      -140
      -141        List<Double> velSamples = numericalDerivative(timeSamples, positionSamples);
      -142        List<Double> accelSamples = numericalDerivative(timeSamples, velSamples);
      -143
      -144        SimpleRegression accelReg = new SimpleRegression(false);
      -145        for (int i = 0; i < timeSamples.size(); i++) {
      -146            double vel = velSamples.get(i);
      -147            double accel = accelSamples.get(i);
      -148            double power = powerSamples.get(i);
      -149
      -150            double powerFromVel = Kinematics.calculateMotorFeedforward(
      -151                vel,
      -152                0.0,
      -153                rampResult.kV,
      -154                0.0,
      -155                rampResult.kStatic
      -156            );
      -157            double powerFromAccel = power - powerFromVel;
      -158
      -159            accelReg.addData(accel, powerFromAccel);
      -160        }
      -161
      -162        return new AccelResult(Math.abs(accelReg.getSlope()), accelReg.getRSquare());
      -163    }
      -164}
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - - diff --git a/docs/Path/stylesheet.css b/docs/Path/stylesheet.css deleted file mode 100644 index 236a306f..00000000 --- a/docs/Path/stylesheet.css +++ /dev/null @@ -1,951 +0,0 @@ -/* - * Javadoc style sheet - */ - -@import url('resources/fonts/dejavu.css'); - -/* - * Styles for individual HTML elements. - * - * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular - * HTML element throughout the page. - */ - -body { - background-color: #ffffff; - color: #353833; - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; - margin: 0; - padding: 0; - height: 100%; - width: 100%; -} -iframe { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overflow-y: scroll; - border: none; -} -a:link, -a:visited { - text-decoration: none; - color: #4a6782; -} -a[href]:hover, -a[href]:focus { - text-decoration: none; - color: #bb7a2a; -} -a[name] { - color: #353833; -} -pre { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; -} -h1 { - font-size: 20px; -} -h2 { - font-size: 18px; -} -h3 { - font-size: 16px; -} -h4 { - font-size: 15px; -} -h5 { - font-size: 14px; -} -h6 { - font-size: 13px; -} -ul { - list-style-type: disc; -} -code, -tt { - font-family: 'DejaVu Sans Mono', monospace; -} -:not(h1, h2, h3, h4, h5, h6) > code, -:not(h1, h2, h3, h4, h5, h6) > tt { - font-size: 14px; - padding-top: 4px; - margin-top: 8px; - line-height: 1.4em; -} -dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - padding-top: 4px; -} -.summary-table dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - vertical-align: top; - padding-top: 4px; -} -sup { - font-size: 8px; -} -button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; -} -/* - * Styles for HTML generated by javadoc. - * - * These are style classes that are used by the standard doclet to generate HTML documentation. - */ - -/* - * Styles for document title and copyright. - */ -.clear { - clear: both; - height: 0; - overflow: hidden; -} -.about-language { - float: right; - padding: 0 21px 8px 8px; - font-size: 11px; - margin-top: -9px; - height: 2.9em; -} -.legal-copy { - margin-left: 0.5em; -} -.tab { - background-color: #0066ff; - color: #ffffff; - padding: 8px; - width: 5em; - font-weight: bold; -} -/* - * Styles for navigation bar. - */ -@media screen { - .flex-box { - position: fixed; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } -} -.top-nav { - background-color: #4d7a97; - color: #ffffff; - float: left; - padding: 0; - width: 100%; - clear: right; - min-height: 2.8em; - padding-top: 10px; - overflow: hidden; - font-size: 12px; -} -.sub-nav { - background-color: #dee3e9; - float: left; - width: 100%; - overflow: hidden; - font-size: 12px; -} -.sub-nav div { - clear: left; - float: left; - padding: 0 0 5px 6px; - text-transform: uppercase; -} -.sub-nav .nav-list { - padding-top: 5px; -} -ul.nav-list { - display: block; - margin: 0 25px 0 0; - padding: 0; -} -ul.sub-nav-list { - float: left; - margin: 0 25px 0 0; - padding: 0; -} -ul.nav-list li { - list-style: none; - float: left; - padding: 5px 6px; - text-transform: uppercase; -} -.sub-nav .nav-list-search { - float: right; - margin: 0 0 0 0; - padding: 5px 6px; - clear: none; -} -.nav-list-search label { - position: relative; - right: -16px; -} -ul.sub-nav-list li { - list-style: none; - float: left; - padding-top: 10px; -} -.top-nav a:link, -.top-nav a:active, -.top-nav a:visited { - color: #ffffff; - text-decoration: none; - text-transform: uppercase; -} -.top-nav a:hover { - text-decoration: none; - color: #bb7a2a; - text-transform: uppercase; -} -.nav-bar-cell1-rev { - background-color: #f8981d; - color: #253441; - margin: auto 5px; -} -.skip-nav { - position: absolute; - top: auto; - left: -9999px; - overflow: hidden; -} -/* - * Hide navigation links and search box in print layout - */ -@media print { - ul.nav-list, - div.sub-nav { - display: none; - } -} -/* - * Styles for page header and footer. - */ -.title { - color: #2c4557; - margin: 10px 0; -} -.sub-title { - margin: 5px 0 0 0; -} -.header ul { - margin: 0 0 15px 0; - padding: 0; -} -.header ul li, -.footer ul li { - list-style: none; - font-size: 13px; -} -/* - * Styles for headings. - */ -body.class-declaration-page .summary h2, -body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding: 0; - margin: 15px 0; -} -body.class-declaration-page .summary h3, -body.class-declaration-page .details h3, -body.class-declaration-page .summary .inherited-list h2 { - background-color: #dee3e9; - border: 1px solid #d0d9e0; - margin: 0 0 6px -8px; - padding: 7px 5px; -} -/* - * Styles for page layout containers. - */ -main { - clear: both; - padding: 10px 20px; - position: relative; -} -dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: bold; - margin: 10px 0 0 0; - color: #4e4e4e; -} -dl.notes > dd { - margin: 5px 10px 10px 0; - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; -} -dl.name-value > dt { - margin-left: 1px; - font-size: 1.1em; - display: inline; - font-weight: bold; -} -dl.name-value > dd { - margin: 0 0 0 1px; - font-size: 1.1em; - display: inline; -} -/* - * Styles for lists. - */ -li.circle { - list-style: circle; -} -ul.horizontal li { - display: inline; - font-size: 0.9em; -} -div.inheritance { - margin: 0; - padding: 0; -} -div.inheritance div.inheritance { - margin-left: 2em; -} -ul.block-list, -ul.details-list, -ul.member-list, -ul.summary-list { - margin: 10px 0 10px 0; - padding: 0; -} -ul.block-list > li, -ul.details-list > li, -ul.member-list > li, -ul.summary-list > li { - list-style: none; - margin-bottom: 15px; - line-height: 1.4; -} -.summary-table dl, -.summary-table dl dt, -.summary-table dl dd { - margin-top: 0; - margin-bottom: 1px; -} -ul.see-list, -ul.see-list-long { - padding-left: 0; - list-style: none; -} -ul.see-list li { - display: inline; -} -ul.see-list li:not(:last-child):after, -ul.see-list-long li:not(:last-child):after { - content: ', '; - white-space: pre-wrap; -} -/* - * Styles for tables. - */ -.summary-table, -.details-table { - width: 100%; - border-spacing: 0; - border-left: 1px solid #eee; - border-right: 1px solid #eee; - border-bottom: 1px solid #eee; - padding: 0; -} -.caption { - position: relative; - text-align: left; - background-repeat: no-repeat; - color: #253441; - font-weight: bold; - clear: none; - overflow: hidden; - padding: 0; - padding-top: 10px; - padding-left: 1px; - margin: 0; - white-space: pre; -} -.caption a:link, -.caption a:visited { - color: #1f389c; -} -.caption a:hover, -.caption a:active { - color: #ffffff; -} -.caption span { - white-space: nowrap; - padding-top: 5px; - padding-left: 12px; - padding-right: 12px; - padding-bottom: 7px; - display: inline-block; - float: left; - background-color: #f8981d; - border: none; - height: 16px; -} -div.table-tabs { - padding: 10px 0 0 1px; - margin: 0; -} -div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; -} -div.table-tabs > button.active-table-tab { - background: #f8981d; - color: #253441; -} -div.table-tabs > button.table-tab { - background: #4d7a97; - color: #ffffff; -} -.two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); -} -.three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); -} -.four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( - 10%, - auto - ); -} -@media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } -} -@media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } -} -@media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, -.details-table > div { - text-align: left; - padding: 8px 3px 3px 7px; -} -.col-first, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name { - vertical-align: top; - padding-right: 0; - padding-top: 8px; - padding-bottom: 3px; -} -.table-header { - background: #dee3e9; - font-weight: bold; -} -.col-first, -.col-first { - font-size: 13px; -} -.col-second, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name, -.col-last { - font-size: 13px; -} -.col-first, -.col-second, -.col-constructor-name { - vertical-align: top; - overflow: auto; -} -.col-last { - white-space: normal; -} -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-constructor-name a:link, -.col-constructor-name a:visited, -.col-summary-item-name a:link, -.col-summary-item-name a:visited, -.constant-values-container a:link, -.constant-values-container a:visited, -.all-classes-container a:link, -.all-classes-container a:visited, -.all-packages-container a:link, -.all-packages-container a:visited { - font-weight: bold; -} -.table-sub-heading-color { - background-color: #eeeeff; -} -.even-row-color, -.even-row-color .table-header { - background-color: #ffffff; -} -.odd-row-color, -.odd-row-color .table-header { - background-color: #eeeeef; -} -/* - * Styles for contents. - */ -.deprecated-content { - margin: 0; - padding: 10px 0; -} -div.block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; -} -.col-last div { - padding-top: 0; -} -.col-last a { - padding-bottom: 3px; -} -.module-signature, -.package-signature, -.type-signature, -.member-signature { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - margin: 14px 0; - white-space: pre-wrap; -} -.module-signature, -.package-signature, -.type-signature { - margin-top: 0; -} -.member-signature .type-parameters-long, -.member-signature .parameters, -.member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; -} -.member-signature .type-parameters { - white-space: normal; -} -/* - * Styles for formatting effect. - */ -.source-line-no { - color: green; - padding: 0 30px 0 0; -} -h1.hidden { - visibility: hidden; - overflow: hidden; - font-size: 10px; -} -.block { - display: block; - margin: 0 10px 5px 0; - color: #474747; -} -.deprecated-label, -.descfrm-type-label, -.implementation-label, -.member-name-label, -.member-name-link, -.module-label-in-package, -.module-label-in-type, -.override-specify-label, -.package-label-in-type, -.package-hierarchy-label, -.type-name-label, -.type-name-link, -.search-tag-link, -.preview-label { - font-weight: bold; -} -.deprecation-comment, -.help-footnote, -.preview-comment { - font-style: italic; -} -.deprecation-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; -} -.preview-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; -} -div.block div.deprecation-comment { - font-style: normal; -} -/* - * Styles specific to HTML5 elements. - */ -main, -nav, -header, -footer, -section { - display: block; -} -/* - * Styles for javadoc search. - */ -.ui-autocomplete-category { - font-weight: bold; - font-size: 15px; - padding: 7px 0 7px 3px; - background-color: #4d7a97; - color: #ffffff; -} -.result-item { - font-size: 13px; -} -.ui-autocomplete { - max-height: 85%; - max-width: 65%; - overflow-y: scroll; - overflow-x: scroll; - white-space: nowrap; - box-shadow: - 0 3px 6px rgba(0, 0, 0, 0.16), - 0 3px 6px rgba(0, 0, 0, 0.23); -} -ul.ui-autocomplete { - position: fixed; - z-index: 999999; - background-color: #ffffff; -} -ul.ui-autocomplete li { - float: left; - clear: both; - width: 100%; -} -.result-highlight { - font-weight: bold; -} -.ui-autocomplete .result-item { - font-size: inherit; -} -#search-input { - background-image: url('resources/glass.png'); - background-size: 13px; - background-repeat: no-repeat; - background-position: 2px 3px; - padding-left: 20px; - position: relative; - right: -18px; - width: 400px; -} -#reset-button { - background-color: rgb(255, 255, 255); - background-image: url('resources/x.png'); - background-position: center; - background-repeat: no-repeat; - background-size: 12px; - border: 0 none; - width: 16px; - height: 16px; - position: relative; - left: -4px; - top: -4px; - font-size: 0px; -} -.watermark { - color: #545454; -} -.search-tag-desc-result { - font-style: italic; - font-size: 11px; -} -.search-tag-holder-result { - font-style: italic; - font-size: 12px; -} -.search-tag-result:target { - background-color: yellow; -} -.module-graph span { - display: none; - position: absolute; -} -.module-graph:hover span { - display: block; - margin: -100px 0 0 100px; - z-index: 1; -} -.inherited-list { - margin: 10px 0 10px 0; -} -section.class-description { - line-height: 1.4; -} -.summary section[class$='-summary'], -.details section[class$='-details'], -.class-uses .detail, -.serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, -section[class$='-details'] .detail { - padding: 0 0 5px 8px; - background-color: #ffffff; - border: none; -} -.vertical-separator { - padding: 0 5px; -} -ul.help-section-list { - margin: 0; -} -ul.help-subtoc > li { - display: inline-block; - padding-right: 5px; - font-size: smaller; -} -ul.help-subtoc > li::before { - content: '\2022'; - padding-right: 2px; -} -span.help-note { - font-style: italic; -} -/* - * Indicator icon for external links. - */ -main a[href*="://"]::after -{ - content: ''; - display: inline-block; - background-image: url('data:image/svg+xml; utf8, \ - \ - \ - '); - background-size: 100% 100%; - width: 7px; - height: 7px; - margin-left: 2px; - margin-bottom: 4px; -} -main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after -{ - background-image: url('data:image/svg+xml; utf8, \ - \ - \ - '); -} - -/* - * Styles for user-provided tables. - * - * borderless: - * No borders, vertical margins, styled caption. - * This style is provided for use with existing doc comments. - * In general, borderless tables should not be used for layout purposes. - * - * plain: - * Plain borders around table and cells, vertical margins, styled caption. - * Best for small tables or for complex tables for tables with cells that span - * rows and columns, when the "striped" style does not work well. - * - * striped: - * Borders around the table and vertical borders between cells, striped rows, - * vertical margins, styled caption. - * Best for tables that have a header row, and a body containing a series of simple rows. - */ - -table.borderless, -table.plain, -table.striped { - margin-top: 10px; - margin-bottom: 10px; -} -table.borderless > caption, -table.plain > caption, -table.striped > caption { - font-weight: bold; - font-size: smaller; -} -table.borderless th, -table.borderless td, -table.plain th, -table.plain td, -table.striped th, -table.striped td { - padding: 2px 5px; -} -table.borderless, -table.borderless > thead > tr > th, -table.borderless > tbody > tr > th, -table.borderless > tr > th, -table.borderless > thead > tr > td, -table.borderless > tbody > tr > td, -table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, -table.borderless > tbody > tr, -table.borderless > tr { - background-color: transparent; -} -table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, -table.plain > tbody tr, -table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, -table.plain > tbody > tr > th, -table.plain > tr > th, -table.plain > thead > tr > td, -table.plain > tbody > tr > td, -table.plain > tr > td { - border: 1px solid black; -} -table.striped { - border-collapse: collapse; - border: 1px solid black; -} -table.striped > thead { - background-color: #e3e3e3; -} -table.striped > thead > tr > th, -table.striped > thead > tr > td { - border: 1px solid black; -} -table.striped > tbody > tr:nth-child(even) { - background-color: #eee; -} -table.striped > tbody > tr:nth-child(odd) { - background-color: #fff; -} -table.striped > tbody > tr > th, -table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; -} -table.striped > tbody > tr > th { - font-weight: normal; -} -/** - * Tweak font sizes and paddings for small screens. - */ -@media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } -} -@media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$='-summary'], - .details section[class$='-details'], - .class-uses .detail, - .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } -} -@media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } -} diff --git a/docs/Path/tag-search-index.js b/docs/Path/tag-search-index.js deleted file mode 100644 index 6080d404..00000000 --- a/docs/Path/tag-search-index.js +++ /dev/null @@ -1,2 +0,0 @@ -tagSearchIndex = [{ l: 'Serialized Form', h: '', u: 'serialized-form.html' }]; -updateSearchResults(); diff --git a/docs/Path/type-search-index.js b/docs/Path/type-search-index.js deleted file mode 100644 index 941e2e37..00000000 --- a/docs/Path/type-search-index.js +++ /dev/null @@ -1,88 +0,0 @@ -typeSearchIndex = [ - { p: 'com.technototes.path.util', l: 'RegressionUtil.AccelResult' }, - { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, - { p: 'com.technototes.path.util', l: 'AxesSigns' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.AxialPID' }, - { p: 'com.technototes.path.util', l: 'BNO055IMUUtil' }, - { p: 'com.technototes.path.geometry', l: 'ConfigurablePose' }, - { p: 'com.technototes.path.geometry', l: 'ConfigurablePoseD' }, - { p: 'com.technototes.path.geometry', l: 'ConfigurableVector' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.CrossPID' }, - { p: 'com.technototes.path.util', l: 'DashboardUtil' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants' }, - { p: 'com.technototes.path.subsystem', l: 'DistanceSensorLocalizer' }, - { p: 'com.technototes.path.trajectorysequence', l: 'EmptySequenceException' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.EncoderOverflow' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.ForwardOffset' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.GearRatio' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.GearRatio' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.GearRatio' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.HeadPID' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.HeadPID' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KA' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.KA' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KStatic' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.KStatic' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.KV' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.KV' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.LateralDistance' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.LateralMult' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.LateralMult' }, - { p: 'com.technototes.path.util', l: 'LoggingUtil' }, - { p: 'com.technototes.path.util', l: 'LynxModuleUtil.LynxFirmwareVersion' }, - { p: 'com.technototes.path.util', l: 'LynxModuleUtil.LynxFirmwareVersionException' }, - { p: 'com.technototes.path.util', l: 'LynxModuleUtil' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAccel' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAccel' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAngleAccel' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAngleAccel' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxAngleVelo' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxAngleVelo' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxRPM' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxRPM' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MaxVelo' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MaxVelo' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants' }, - { p: 'com.technototes.path.command', l: 'MecanumDriveCommand' }, - { p: 'com.technototes.path.subsystem', l: 'PathingMecanumDrivebaseSubsystem.Mode' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.MotorVeloPID' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.MotorVeloPID' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.OmegaWeight' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.OmegaWeight' }, - { p: 'com.technototes.path.subsystem', l: 'PathingMecanumDrivebaseSubsystem' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.PoseLimit' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.PoseLimit' }, - { p: 'com.technototes.path.util', l: 'RegressionUtil.RampResult' }, - { p: 'com.technototes.path.command', l: 'RegenerativeTrajectoryCommand' }, - { p: 'com.technototes.path.command', l: 'RegenerativeTrajectorySequenceCommand' }, - { p: 'com.technototes.path.util', l: 'RegressionUtil' }, - { p: 'com.technototes.path.command', l: 'ResetGyroCommand' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'SequenceSegment' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants' }, - { p: 'com.technototes.path.subsystem', l: 'TankDrivebaseSubsystem' }, - { p: 'com.technototes.path.subsystem', l: 'ThreeDeadWheelLocalizer' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.TicksPerRev' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TicksPerRev' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.TicksPerRev' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TrackWidth' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.TrackWidth' }, - { p: 'com.technototes.path.command', l: 'TrajectoryCommand' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'TrajectorySegment' }, - { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequence' }, - { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequenceBuilder' }, - { p: 'com.technototes.path.command', l: 'TrajectorySequenceCommand' }, - { p: 'com.technototes.path.trajectorysequence', l: 'TrajectorySequenceRunner' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.TransPID' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'TurnSegment' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.UseDriveEncoder' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.UseDriveEncoder' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.VXWeight' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.VXWeight' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.VYWeight' }, - { p: 'com.technototes.path.trajectorysequence.sequencesegment', l: 'WaitSegment' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.WheelBase' }, - { p: 'com.technototes.path.subsystem', l: 'DeadWheelConstants.WheelRadius' }, - { p: 'com.technototes.path.subsystem', l: 'MecanumConstants.WheelRadius' }, - { p: 'com.technototes.path.subsystem', l: 'TankConstants.WheelRadius' }, -]; -updateSearchResults(); diff --git a/docs/TechnoLib/allclasses-index.html b/docs/TechnoLib/allclasses-index.html index a0615610..26bcc20f 100644 --- a/docs/TechnoLib/allclasses-index.html +++ b/docs/TechnoLib/allclasses-index.html @@ -1,7 +1,7 @@ - + All Classes and Interfaces (RobotLibrary API) @@ -11,7 +11,7 @@ - + @@ -31,6 +31,15 @@
      -
      + -
      +
      Not sure what this is for.
      -
      + -
      +
      Not sure what this is for.
      @@ -176,36 +185,26 @@

      All Classes and Interfaces<

      -
      -
      TODO: Remove this.
      -
      - -
      +
      Class for analog sensors
      -
      + -
      +
      The class to extend custom gamepad axis from
      -
      + -
      +
      Class for bindings to extend
      -
      + -
      +
      Button type
      -
      + -
      +
       
      -
      + -
      +
      The class to extend custom gamepad buttons from
      +
      + CanBeEnabled<T + extends + CanBeEnabled<T>> +
      +
      +
      Interface for anything that can be enabled/disabled
      +
      -
      -
      TODO: Remove this.
      -
      - -
      -   -
      -
      -
      TODO: Remove this.
      +  
      -
      - Deprecated. -
      - -
      +
      Command implementation of All Classes and Interfaces< >
      -
      + -
      +
      Class for command buttons for gamepad
      -
      + -
      +
      Class for command gamepads that specifies class params
      -
      + -
      +
      Root class for all command groups (Sequential, Parallel, etc...) WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than using this one directly.
      -
      + -
      +
      Class for gamepad-command integration
      -
      + -
      +
      Class for command based op modes
      -
      + -
      +
      Enum for op mode state
      -
      + -
      +
      This is a "singleton" object for scheduling commands.
      -
      + -
      +
      Simple class for commands that require a certain condition to be true to run
      - -
      -
      TODO: Remove this.
      -
      DeviceSubsystem<TCRServo - extends - HardwareDevice<?>>
      -
      class for subsystems
      +
      This is for "continuous rotation" servos.
      -
      -
      TODO: Remove this.
      -
      - -
      -
      Class for digital sensors
      -
      -
      -
      TODO: Remove this.
      +
      Class for digital sensors
      All Classes and Interfaces<
      This isn't worth actually doing.
      -
      - Enablable<T - extends - Enablable<T>> -
      -
      -
      Interface for anything that can be enabled/disabled
      -
      -
      + -
      -
      Class for encoded motors
      -
      -
      - EncodedMotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
      -
      Class for encoded motor groups
      -
      - -
      -
      Class for encoded motor subsystems
      +
      Class for encoded motors
      -
      + -
      +
      Interfaces for encoders to use
      -
      + -
      +
      The root class for logging entries
      -
      + -
      +
      A wrapper around an AnalogInput that enables "zeroing" for usefulness
      + +
      +   +
      -
      -
      TODO: Remove this.
      -
      - -
      - Deprecated. -
      -
      -
      - Deprecated. +
      +
      + Class for hardware devices This just adds an extra layer of indirection that + doesn't feel like it's worth the hassle. +
      -
      The direction of the axes signs when remapping the axes
      -
      -
      -
      -
      TODO: Remove this.
      -
      - -
      -
      This is duplicated in the IMU class
      + Deprecated.
      InvertableInvertible<T extends InvertableInvertible<T>>
      @@ -968,96 +831,96 @@

      All Classes and Interfaces<
       
      -
      +
      Log
      -
      +
      The root annotation for annotation logging, also doubles as a basic string log
      -
      + -
      +
       
      -
      + -
      +
       
      -
      + -
      +
      Log a number
      -
      + -
      +
      Annotations for configuring Logs
      -
      + -
      +
      Annotation for allowing Opmodes to log this item
      -
      + -
      +
      Annotation for denying Opmodes to log this item
      -
      + -
      +
      Annotation to completely disable the entry
      -
      + -
      +
      Annotation for determining when logged item will be sent to Telemetry
      @@ -1106,6 +969,22 @@

      All Classes and Interfaces<
      Class with various math functions

      +
      +
      + This is an alternative to using the Command.create(...) interface, as it's a + little more obvious to new/non-Java-informed coders as to what's happening, + while the Command.create function may require understanding that + subsystem::method is a 'Command' because it's Runnable and Java will promote it + to a Command from a Runnable. +
      +
      + -
      +
      Class for motors
      -
      +
      MotorBuilderMotorAsServo<T + extends com.qualcomm.robotcore.hardware.DcMotor>
      -
      -
      TODO: Remove this.
      +
      +
      + This is to use a motor as a servo using the built-in capabilities (instead of + doing it manually) One rather important feature would be to hand control back + invalid input: '&' forth between a normal + encoded motor. +
      -
      + -
      +
      Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding slot's motor direction
      -
      + -
      +
       
      -
      - MotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> -
      -
      -
      Class for a group of motors
      -
      - MotorSubsystem<T - extends - Motor<?>> -
      -
      -
      Class for motor subsystems
      -
      - -
      +
       
      -
      + -
      +
      Command group to run commands in parallel until all of them finish
      -
      + -
      +
      Command group to run commands in parallel until one particular command completes
      -
      + -
      +
      Command group to run commands in parallel until *one* is finished
      -
      + -
      +
      An interface for classes to have the periodic function
      -
      + -
      -
      Helper class for tracking a range
      +
      + Deprecated.
      -
      + -
      - Deprecated. +
      +
      + Class for the Rev '2m' range sensors Note for users: The Rev 2m range sensor is + actually only useful at about 1.1 - 1.2m :/ +
      -
      + -
      +
      Root class for the Robot Library (I will put important stuff here)
      -
      + -
      - Deprecated. +
      +
      Root class for sensors
      -
      + -
      - Deprecated. +
      +
      Class for hardware devices with a sensor value
      -
      + -
      +
      A grouping command which runs a list of commands in sequence
      -
      + -
      - Deprecated. -
      -
      -
      TODO: Remove this.
      +
      + Class for servos There's some useful functionality in here, but it can be added + more easily by making something that direction extends the robotcore Servo + instead. +
      -
      - Deprecated. -
      - -
      +
       
      - - -
      - Deprecated. -
      -
      + -
      +
      Interface for objects that behave as sticks
      -
      + -
      +
       
      -
      + -
      +
       
      -
      + -
      +
      Class for drivebase subsystems
      -
      + -
      +
      A command to do nothing but wait for a span of time.
      diff --git a/docs/TechnoLib/allpackages-index.html b/docs/TechnoLib/allpackages-index.html index fd25660d..2565013d 100644 --- a/docs/TechnoLib/allpackages-index.html +++ b/docs/TechnoLib/allpackages-index.html @@ -1,7 +1,7 @@ - + All Packages (RobotLibrary API) @@ -11,7 +11,7 @@ - + @@ -27,6 +27,15 @@
      diff --git a/docs/TechnoLib/com/technototes/library/RobotLibrary.html b/docs/TechnoLib/com/technototes/library/RobotLibrary.html index 4dbc1cb6..179cd61a 100644 --- a/docs/TechnoLib/com/technototes/library/RobotLibrary.html +++ b/docs/TechnoLib/com/technototes/library/RobotLibrary.html @@ -1,182 +1,433 @@ - + - - -RobotLibrary (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class RobotLibrary

      -
      -
      java.lang.Object -
      com.technototes.library.RobotLibrary
      -
      -
      -
      -
      public class RobotLibrary -extends Object
      -
      Root class for the Robot Library (I will put important stuff here)
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getVersion

          -
          public static String getVersion()
          -
          Get library version
          -
          -
          Returns:
          -
          Library version
          -
          -
          -
        • -
        • -
          -

          isPreRelease

          -
          public static boolean isPreRelease()
          -
          Get if the library is a pre release
          -
          -
          Returns:
          -
          If this library version is a pre release
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + RobotLibrary (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class RobotLibrary

      +
      +
      + java.lang.Object +
      com.technototes.library.RobotLibrary
      +
      +
      +
      +
      + public class RobotLibrary + extends + Object +
      +
      + Root class for the Robot Library (I will put important stuff here) +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getVersion

          +
          + public static String getVersion() +
          +
          Get library version
          +
          +
          Returns:
          +
          Library version
          +
          +
          +
        • +
        • +
          +

          isPreRelease

          +
          + public static boolean isPreRelease() +
          +
          Get if the library is a pre release
          +
          +
          Returns:
          +
          If this library version is a pre release
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/ChoiceCommand.html b/docs/TechnoLib/com/technototes/library/command/ChoiceCommand.html index 5614114d..49f55624 100644 --- a/docs/TechnoLib/com/technototes/library/command/ChoiceCommand.html +++ b/docs/TechnoLib/com/technototes/library/command/ChoiceCommand.html @@ -1,197 +1,585 @@ - + - - -ChoiceCommand (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ChoiceCommand

      -
      - -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      public class ChoiceCommand -extends ParallelRaceGroup
      -
      A command that allows choosing among a number of commands based on variety of conditions
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ChoiceCommand

          -
          @SafeVarargs -public ChoiceCommand(android.util.Pair<BooleanSupplier,Command>... cs)
          -
          Each pair represents a condition to check, and the command to execute if that condition is - true
          -
          -
          Parameters:
          -
          cs - The pair of BooleanSupplier (function that returns true/false) and Command to - execute if the function is true
          -
          -
          -
        • -
        • -
          -

          ChoiceCommand

          - -
          This is a simplistic ChoiceCommand that is simply a single conditional command - I *think* this will wwait until b is true
          -
          -
          Parameters:
          -
          b - The function to invoke to determine if the command should be run
          -
          c - The command to be run
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ChoiceCommand (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ChoiceCommand

      +
      + +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class ChoiceCommand + extends + ParallelRaceGroup +
      +
      + A command that allows choosing among a number of commands based on variety of + conditions +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ChoiceCommand

          +
          + @SafeVarargs public ChoiceCommand(android.util.Pair<BooleanSupplier,Command>... cs) +
          +
          + Each pair represents a condition to check, and the command to execute if + that condition is true +
          +
          +
          Parameters:
          +
          + cs - The pair of BooleanSupplier (function that returns + true/false) and Command to execute if the function is true +
          +
          +
          +
        • +
        • +
          +

          ChoiceCommand

          +
          + public ChoiceCommand(BooleanSupplier b, + Command c) +
          +
          + This is a simplistic ChoiceCommand that is simply a single conditional + command I *think* this will wwait until b is true +
          +
          +
          Parameters:
          +
          + b - The function to invoke to determine if the command + should be run +
          +
          c - The command to be run
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/Command.CommandState.html b/docs/TechnoLib/com/technototes/library/command/Command.CommandState.html index cee1a221..624d86bb 100644 --- a/docs/TechnoLib/com/technototes/library/command/Command.CommandState.html +++ b/docs/TechnoLib/com/technototes/library/command/Command.CommandState.html @@ -1,283 +1,828 @@ - + - - -Command.CommandState (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class Command.CommandState

      -
      -
      java.lang.Object -
      java.lang.Enum<Command.CommandState> -
      com.technototes.library.command.Command.CommandState
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<Command.CommandState>, Constable
      -
      -
      -
      Enclosing interface:
      -
      Command
      -
      -
      -
      public static enum Command.CommandState -extends Enum<Command.CommandState>
      -
      The command state enum
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static Command.CommandState[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static Command.CommandState valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Command.CommandState (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Enum Class Command.CommandState +

      +
      +
      + java.lang.Object +
      + java.lang.Enum<Command.CommandState> +
      com.technototes.library.command.Command.CommandState
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<Command.CommandState>, + Constable +
      +
      +
      +
      Enclosing interface:
      +
      + Command +
      +
      +
      +
      + public static enum Command.CommandState + extends + Enum<Command.CommandState> +
      +
      The command state enum
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        +

        + Nested classes/interfaces inherited from class java.lang.Enum +

        + Enum.EnumDesc<E + extends + Enum<E>> +
        +
        +
      • + +
      • +
        +

        Enum Constant Summary

        +
        Enum Constants
        +
        +
        Enum Constant
        +
        Description
        +
        + CANCELLED +
        +
        +
        The command has been cancelled
        +
        +
        + EXECUTING +
        +
        +
        The command is running normally
        +
        +
        + FINISHED +
        +
        +
        The command has completed successfully
        +
        + +
        +
        + The command is initializing after having been triggered +
        +
        + +
        +
        + The command is pending cancellation (but has not yet processed the + cancellation) +
        +
        +
        + RESET +
        +
        +
        The command has just be scheduled
        +
        +
        + STARTED +
        +
        +
        The command has been triggered
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static + Command.CommandState +
        +
        + valueOf(String name) +
        +
        +
        + Returns the enum constant of this class with the specified name. +
        +
        +
        + static + Command.CommandState[] +
        +
        + values() +
        +
        +
        + Returns an array containing the constants of this enum class, in the + order they are declared. +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Enum +

        + clone, + compareTo, + describeConstable, + equals, + finalize, + getDeclaringClass, + hashCode, + name, + ordinal, + toString, + valueOf +
        +
        +

        + Methods inherited from class java.lang.Object +

        + getClass, + notify, + notifyAll, + wait, + wait, + wait +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static Command.CommandState[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static Command.CommandState valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/Command.html b/docs/TechnoLib/com/technototes/library/command/Command.html index 333e5d00..7fd2d77b 100644 --- a/docs/TechnoLib/com/technototes/library/command/Command.html +++ b/docs/TechnoLib/com/technototes/library/command/Command.html @@ -1,715 +1,2787 @@ - + - - -Command (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Command

      -
      -
      -
      -
      All Superinterfaces:
      -
      Runnable, Supplier<Command.CommandState>
      -
      -
      -
      All Known Implementing Classes:
      -
      ChoiceCommand, CommandBase, CommandGroup, ConditionalCommand, IterativeCommand, ParallelCommandGroup, ParallelDeadlineGroup, ParallelRaceGroup, SequentialCommandGroup, WaitCommand
      -
      -
      -
      Functional Interface:
      -
      This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
      -
      -
      - -
      The root Command class
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          addRequirements

          -
          default Command addRequirements(Subsystem... requirements)
          -
          Add requirement subsystems to command -

          - Requirements are subsystems upon which this command depends. When executing a command, - any commands that are currently being executed which depend upon the subsystem(s) required - will be cancelled by the CommandScheduler.

          -
          -
          Parameters:
          -
          requirements - The subsystems this command uses
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          initialize

          -
          default void initialize()
          -
          Init the command -

          - Defaults to doing nothing

          -
          -
        • -
        • -
          -

          execute

          -
          void execute()
          -
          Execute the command -

          - This is (probably) where the majority of your command belongs

          -
          -
        • -
        • -
          -

          isFinished

          -
          default boolean isFinished()
          -
          Return if the command is finished -

          - Defaults to returning *true* which means that the command will execute once and complete.

          -
          -
          Returns:
          -
          Is the command finished
          -
          -
          -
        • -
        • -
          -

          end

          -
          default void end(boolean cancel)
          -
          End the command -

          - Defaults to doing nothing

          -
          -
          Parameters:
          -
          cancel - True if the command was cancelled, False if it ended naturally
          -
          -
          -
        • -
        • -
          -

          andThen

          - -
          Run a command or series of ParallelCommands after this one
          -
          -
          Parameters:
          -
          c - the list of commands to run
          -
          Returns:
          -
          the new SequentialCommandGroup of this Command, then the next set
          -
          -
          -
        • -
        • -
          -

          sleep

          -
          default SequentialCommandGroup sleep(double sec)
          -
          Delay the command for some time
          -
          -
          Parameters:
          -
          sec - The number of sections to delay
          -
          Returns:
          -
          The new SequentialCommandGroup of this command and a WaitCommand
          -
          -
          -
        • -
        • -
          -

          sleep

          - -
          Delay the command for some time
          -
          -
          Parameters:
          -
          sup - A function that returns the number of sections to delay
          -
          Returns:
          -
          The new SequentialCommandGroup of this command and a WaitCommand
          -
          -
          -
        • -
        • -
          -

          waitUntil

          - -
          After this command, wait until the condition function is true
          -
          -
          Parameters:
          -
          condition - The function that returns true when ready to proceed
          -
          Returns:
          -
          the new SequentialCommandGroup of this command and a Conditional Command - for waiting
          -
          -
          -
        • -
        • -
          -

          alongWith

          - -
          Run this command in parallel with additional commands
          -
          -
          Parameters:
          -
          c - the command (or list of commands) to be run in parallel
          -
          Returns:
          -
          a ParallelCommandGroup of this command, and all the c commands
          -
          -
          -
        • -
        • -
          -

          deadline

          - -
          Runs all the commands specified in parallel *until this command is completed*
          -
          -
          Parameters:
          -
          c - The command or list of commands to run in parallel with this command
          -
          Returns:
          -
          a new ParallelDeadlineGroup with this command, and all the other commands
          -
          -
          -
        • -
        • -
          -

          raceWith

          - -
          Runs all the commands in parallel (including this command) until one of them finishes
          -
          -
          Parameters:
          -
          c - the additional commands to run in parallel
          -
          Returns:
          -
          a ParallelRaceGroup
          -
          -
          -
        • -
        • -
          -

          asConditional

          - -
          Creates a conditional command out of this
          -
          -
          Parameters:
          -
          condition - The condition to run the command under
          -
          Returns:
          -
          the conditional command
          -
          -
          -
        • -
        • -
          -

          withTimeout

          -
          default ParallelRaceGroup withTimeout(double seconds)
          -
          Runs this command until it either finishes, or the timeout has elapsed
          -
          -
          Parameters:
          -
          seconds - The maximum number of seconds to wait
          -
          Returns:
          -
          A ParallelRaceGroup of this command and a WaitCommand
          -
          -
          -
        • -
        • -
          -

          cancelUpon

          - -
          Runs this command until it finishes, or until the condition supplied is true
          -
          -
          Parameters:
          -
          condition - A boolean function that returns true if the command should be cancelled
          -
          Returns:
          -
          A ParallelRaceGroup of this command and a ConditionalCommand of condition
          -
          -
          -
        • -
        • -
          -

          onlyIf

          -
          default ChoiceCommand onlyIf(BooleanSupplier choiceCondition)
          -
          Runs this command only if the choiceCondition is met (i.e. returns true)
          -
          -
          Parameters:
          -
          choiceCondition - a boolean function that determins if this command should run or not
          -
          Returns:
          -
          a ChoiceCommand with this command as the "true" command.
          -
          -
          -
        • -
        • -
          -

          run

          -
          default void run()
          -
          Run the commmand
          -
          -
          Specified by:
          -
          run in interface Runnable
          -
          -
          -
        • -
        • -
          -

          getRuntime

          -
          default com.qualcomm.robotcore.util.ElapsedTime getRuntime()
          -
          Return the amount of time since the command was first initialized
          -
          -
          Returns:
          -
          The runtime as an ElapsedTime
          -
          -
          -
        • -
        • -
          -

          getState

          - -
          Return the command state: Probably don't use this
          -
          -
          Returns:
          -
          The state as an Command.CommandState
          -
          -
          -
        • -
        • -
          -

          setState

          - -
          Set the command state: DEFINITELY DO NOT USE THIS!
          -
          -
          Parameters:
          -
          s - The state to set this command to
          -
          Returns:
          -
          This command
          -
          -
          -
        • -
        • -
          -

          getRequirements

          - -
          Return the subsystem requirements for this command
          -
          -
          Returns:
          -
          The DeviceSubsystem requirements
          -
          -
          -
        • -
        • -
          -

          justFinished

          -
          default boolean justFinished()
          -
          Is this command finished?
          -
          -
          Returns:
          -
          True if the command has finished, or has been cancelled
          -
          -
          -
        • -
        • -
          -

          justFinishedNoCancel

          -
          default boolean justFinishedNoCancel()
          -
          Is this command completed?
          -
          -
          Returns:
          -
          True if the command has finished and NOT been cancelled.
          -
          -
          -
        • -
        • -
          -

          justStarted

          -
          default boolean justStarted()
          -
          Has the command just be started?
          -
          -
          Returns:
          -
          True if the command was started, but hasn't yet been run
          -
          -
          -
        • -
        • -
          -

          isRunning

          -
          default boolean isRunning()
          -
          Is the command in some state of running/started/finished/cancelled
          -
          -
          Returns:
          -
          True if the command is not in the RESET state
          -
          -
          -
        • -
        • -
          -

          isCancelled

          -
          default boolean isCancelled()
          -
          Exactly what it says
          -
          -
          Returns:
          -
          True if the command has been cancelled
          -
          -
          -
        • -
        • -
          -

          cancel

          -
          default void cancel()
          -
          If the command is running, interrupt it such that it can be cancelled
          -
          -
        • -
        • -
          -

          clear

          -
          static void clear()
          -
          Clear out the state, time, and requirement maps. Be careful with this one!
          -
          -
        • -
        • -
          -

          create

          -
          static Command create(Command c, - Subsystem... s)
          -
          This is a helper to create a new command from an existing command, but with additional - subsystem requirements
          -
          -
          Parameters:
          -
          c - The command to add the extra subsystem
          -
          s - The subsystem (or list of subsystems) to add to the commands requiremets
          -
          Returns:
          -
          The new command
          -
          -
          -
        • -
        • -
          -

          get

          - -
          Gets the current state of the command (Supplier<CommandState>)
          -
          -
          Specified by:
          -
          get in interface Supplier<Command.CommandState>
          -
          Returns:
          -
          The current CommandState of this command
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Command (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Command

      +
      +
      +
      +
      All Superinterfaces:
      +
      + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      All Known Implementing Classes:
      +
      + ChoiceCommand, + CommandGroup, + ConditionalCommand, + IterativeCommand, + MethodCommand, + ParallelCommandGroup, + ParallelDeadlineGroup, + ParallelRaceGroup, + SequentialCommandGroup, + WaitCommand +
      +
      +
      +
      Functional Interface:
      +
      + This is a functional interface and can therefore be used as the assignment target + for a lambda expression or method reference. +
      +
      +
      +
      + @FunctionalInterface public interface Command + extends + Runnable, + Supplier<Command.CommandState> +
      +
      The root Command class
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          stateMap

          + +
          The Command to Current State of the Command lookup
          +
          +
        • +
        • +
          +

          timeMap

          +
          + static final Map<Command,com.qualcomm.robotcore.util.ElapsedTime> timeMap +
          +
          The Command to Total Time Spent Running lookup
          +
          +
        • +
        • +
          +

          requirementMap

          +
          + static final Map<Command,Set<Subsystem>> requirementMap +
          +
          + The Command to Required Subsystems lookup +

          KBF-TODO: Change this to controllerMap and add an observer list

          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          addRequirements

          +
          + default Command addRequirements(Subsystem... requirements) +
          +
          + Add requirement subsystems to command +

          + Requirements are subsystems upon which this command depends. When + executing a command, any commands that are currently being executed + which depend upon the subsystem(s) required will be cancelled by the + CommandScheduler. +

          +
          +
          +
          Parameters:
          +
          requirements - The subsystems this command uses
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          initialize

          +
          + default void initialize() +
          +
          + Init the command +

          Defaults to doing nothing

          +
          +
          +
        • +
        • +
          +

          execute

          +
          + void execute() +
          +
          + Execute the command +

          This is (probably) where the majority of your command belongs

          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + default boolean isFinished() +
          +
          + Return if the command is finished +

          + Defaults to returning *true* which means that the command will execute + once and complete. +

          +
          +
          +
          Returns:
          +
          Is the command finished
          +
          +
          +
        • +
        • +
          +

          end

          +
          + default void end(boolean cancel) +
          +
          + End the command +

          Defaults to doing nothing

          +
          +
          +
          Parameters:
          +
          + cancel - True if the command was cancelled, False if it + ended naturally +
          +
          +
          +
        • +
        • +
          +

          andThen

          +
          + default SequentialCommandGroup andThen(Command... c) +
          +
          + Run a command or series of ParallelCommands after this one +
          +
          +
          Parameters:
          +
          c - the list of commands to run
          +
          Returns:
          +
          the new SequentialCommandGroup of this Command, then the next set
          +
          +
          +
        • +
        • +
          +

          sleep

          +
          + default SequentialCommandGroup sleep(double sec) +
          +
          Delay the command for some time
          +
          +
          Parameters:
          +
          sec - The number of sections to delay
          +
          Returns:
          +
          The new SequentialCommandGroup of this command and a WaitCommand
          +
          +
          +
        • +
        • +
          +

          sleep

          + +
          Delay the command for some time
          +
          +
          Parameters:
          +
          + sup - A function that returns the number of sections to + delay +
          +
          Returns:
          +
          The new SequentialCommandGroup of this command and a WaitCommand
          +
          +
          +
        • +
        • +
          +

          waitUntil

          + +
          + After this command, wait until the condition function is true +
          +
          +
          Parameters:
          +
          + condition - The function that returns true when ready to + proceed +
          +
          Returns:
          +
          + the new SequentialCommandGroup of this command and a Conditional Command + for waiting +
          +
          +
          +
        • +
        • +
          +

          alongWith

          +
          + default ParallelCommandGroup alongWith(Command... c) +
          +
          + Run this command in parallel with additional commands +
          +
          +
          Parameters:
          +
          + c - the command (or list of commands) to be run in parallel +
          +
          Returns:
          +
          a ParallelCommandGroup of this command, and all the c commands
          +
          +
          +
        • +
        • +
          +

          deadline

          +
          + default ParallelDeadlineGroup deadline(Command... c) +
          +
          + Runs all the commands specified in parallel *until this command is + completed* +
          +
          +
          Parameters:
          +
          + c - The command or list of commands to run in parallel with + this command +
          +
          Returns:
          +
          + a new ParallelDeadlineGroup with this command, and all the other + commands +
          +
          +
          +
        • +
        • +
          +

          raceWith

          +
          + default ParallelRaceGroup raceWith(Command... c) +
          +
          + Runs all the commands in parallel (including this command) until one of + them finishes +
          +
          +
          Parameters:
          +
          c - the additional commands to run in parallel
          +
          Returns:
          +
          a ParallelRaceGroup
          +
          +
          +
        • +
        • +
          +

          asConditional

          + +
          Creates a conditional command out of this
          +
          +
          Parameters:
          +
          condition - The condition to run the command under
          +
          Returns:
          +
          the conditional command
          +
          +
          +
        • +
        • +
          +

          withTimeout

          +
          + default ParallelRaceGroup withTimeout(double seconds) +
          +
          + Runs this command until it either finishes, or the timeout has elapsed +
          +
          +
          Parameters:
          +
          seconds - The maximum number of seconds to wait
          +
          Returns:
          +
          A ParallelRaceGroup of this command and a WaitCommand
          +
          +
          +
        • +
        • +
          +

          cancelUpon

          +
          + default ParallelRaceGroup cancelUpon(BooleanSupplier condition) +
          +
          + Runs this command until it finishes, or until the condition supplied is + true +
          +
          +
          Parameters:
          +
          + condition - A boolean function that returns true if the + command should be cancelled +
          +
          Returns:
          +
          + A ParallelRaceGroup of this command and a ConditionalCommand of + condition +
          +
          +
          +
        • +
        • +
          +

          onlyIf

          +
          + default ChoiceCommand onlyIf(BooleanSupplier choiceCondition) +
          +
          + Runs this command only if the choiceCondition is met (i.e. returns true) +
          +
          +
          Parameters:
          +
          + choiceCondition - a boolean function that determins if this + command should run or not +
          +
          Returns:
          +
          a ChoiceCommand with this command as the "true" command.
          +
          +
          +
        • +
        • +
          +

          run

          +
          + default void run() +
          +
          Run the commmand
          +
          +
          Specified by:
          +
          + run in interface Runnable +
          +
          +
          +
        • +
        • +
          +

          getRuntime

          +
          + default com.qualcomm.robotcore.util.ElapsedTime getRuntime() +
          +
          + Return the amount of time since the command was first initialized +
          +
          +
          Returns:
          +
          The runtime as an ElapsedTime
          +
          +
          +
        • +
        • +
          +

          getState

          +
          + default Command.CommandState getState() +
          +
          Return the command state: Probably don't use this
          +
          +
          Returns:
          +
          + The state as an + Command.CommandState +
          +
          +
          +
        • +
        • +
          +

          setState

          + +
          Set the command state: DEFINITELY DO NOT USE THIS!
          +
          +
          Parameters:
          +
          s - The state to set this command to
          +
          Returns:
          +
          This command
          +
          +
          +
        • +
        • +
          +

          getRequirements

          +
          + default Set<Subsystem> getRequirements() +
          +
          Return the subsystem requirements for this command
          +
          +
          Returns:
          +
          + The + Subsystem + requirements +
          +
          +
          +
        • +
        • +
          +

          justFinished

          +
          + default boolean justFinished() +
          +
          Is this command finished?
          +
          +
          Returns:
          +
          True if the command has finished, or has been cancelled
          +
          +
          +
        • +
        • +
          +

          justFinishedNoCancel

          +
          + default boolean justFinishedNoCancel() +
          +
          Is this command completed?
          +
          +
          Returns:
          +
          True if the command has finished and NOT been cancelled.
          +
          +
          +
        • +
        • +
          +

          justStarted

          +
          + default boolean justStarted() +
          +
          Has the command just be started?
          +
          +
          Returns:
          +
          True if the command was started, but hasn't yet been run
          +
          +
          +
        • +
        • +
          +

          isRunning

          +
          + default boolean isRunning() +
          +
          + Is the command in some state of running/started/finished/cancelled +
          +
          +
          Returns:
          +
          True if the command is not in the RESET state
          +
          +
          +
        • +
        • +
          +

          isCancelled

          +
          + default boolean isCancelled() +
          +
          Exactly what it says
          +
          +
          Returns:
          +
          True if the command has been cancelled
          +
          +
          +
        • +
        • +
          +

          cancel

          +
          + default void cancel() +
          +
          + If the command is running, interrupt it such that it can be cancelled +
          +
          +
        • +
        • +
          +

          clear

          +
          + static void clear() +
          +
          + Clear out the state, time, and requirement maps. Be careful with this one! +
          +
          +
        • +
        • +
          +

          create

          +
          + static Command create(Command c, + Subsystem... s) +
          +
          + This is a helper to create a new command from an existing command, but + with additional subsystem requirements. "Existing commands" also happen to + be method references, because a command is a Runnable, and Java will + up-cast the interface to a command interface on the fly. +
          +
          +
          Parameters:
          +
          c - The command to add the extra subsystem
          +
          + s - The subsystem (or list of subsystems) to add to the + command's requirements +
          +
          Returns:
          +
          The new command
          +
          +
          +
        • +
        • +
          +

          + create +

          +
          + static <T> Command create(Consumer<T> method, T arg, + Subsystem... s) +
          +
          +
        • +
        • +
          +

          create

          +
          + static <T> Command create(Consumer<T> method, + Supplier<T> argSupplier, + Subsystem... s) +
          +
          +
        • +
        • +
          +

          + create +

          +
          + static <T, U> Command create(BiConsumer<T,U> method, + Supplier<T> arg1supplier, U arg2, + Subsystem... s) +
          +
          +
        • +
        • +
          +

          + create +

          +
          + static <T, U> Command create(BiConsumer<T,U> method, T arg1, + Supplier<U> arg2supplier, + Subsystem... s) +
          +
          +
        • +
        • +
          +

          create

          +
          + static <T, U> Command create(BiConsumer<T,U> method, + Supplier<T> arg1supplier, + Supplier<U> arg2supplier, + Subsystem... s) +
          +
          +
        • +
        • +
          +

          + create +

          +
          + static <T, U> Command create(BiConsumer<T,U> method, T arg1, U arg2, + Subsystem... s) +
          +
          +
        • +
        • +
          +

          get

          +
          + default Command.CommandState get() +
          +
          + Gets the current state of the command (Supplier<CommandState>) +
          +
          +
          Specified by:
          +
          + get in interface Supplier<Command.CommandState> +
          +
          Returns:
          +
          The current CommandState of this command
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/CommandBase.html b/docs/TechnoLib/com/technototes/library/command/CommandBase.html deleted file mode 100644 index 0522bca5..00000000 --- a/docs/TechnoLib/com/technototes/library/command/CommandBase.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - -CommandBase (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandBase

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandBase
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      @Deprecated -public abstract class CommandBase -extends Object -implements Command
      -
      Deprecated.
      -
      Command base class for people who like parity with wpilib -

      - Deprecated because I don't care about wpilib in the least

      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          CommandBase

          -
          public CommandBase()
          -
          Deprecated.
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          execute

          -
          public void execute()
          -
          Deprecated.
          -
          Execute the command
          -
          -
          Specified by:
          -
          execute in interface Command
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Deprecated.
          -
          Is this command finished
          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Returns:
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/command/CommandGroup.html b/docs/TechnoLib/com/technototes/library/command/CommandGroup.html index 753d1a81..5a53f705 100644 --- a/docs/TechnoLib/com/technototes/library/command/CommandGroup.html +++ b/docs/TechnoLib/com/technototes/library/command/CommandGroup.html @@ -1,380 +1,1104 @@ - + - - -CommandGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandGroup

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandGroup
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      Direct Known Subclasses:
      -
      ParallelCommandGroup, ParallelDeadlineGroup, ParallelRaceGroup, SequentialCommandGroup
      -
      -
      -
      public abstract class CommandGroup -extends Object -implements Command
      -
      Root class for all command groups (Sequential, Parallel, etc...) - WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than - using this one directly.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          commandMap

          - -
          This is a map from the command to whether it has been run
          -
          -
        • -
        • -
          -

          countCancel

          -
          protected boolean countCancel
          -
          Should a cancelled command be considered 'finished'
          -
          -
        • -
        • -
          -

          anyCancelled

          -
          protected boolean anyCancelled
          -
          Have *any* of the command list been cancelled
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          CommandGroup

          -
          public CommandGroup(boolean countCancel, - Command... commands)
          -
          Create a command group with commands
          -
          -
          Parameters:
          -
          countCancel - true if a cancelled command is considered 'finished'
          -
          commands - Commands for group
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          addCommands

          -
          public CommandGroup addCommands(Command... commands)
          -
          Add a command to the group
          -
          -
          Parameters:
          -
          commands - The command
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          countCancel

          - -
          Specify that this CommandGroup should count a cancellation as 'completed'
          -
          -
          Returns:
          -
          this CommandGroup
          -
          -
          -
        • -
        • -
          -

          ignoreCancel

          - -
          Specify that this CommandGroup should NOT count cancellation as 'completed'
          -
          -
          Returns:
          -
          this CommandGroup
          -
          -
          -
        • -
        • -
          -

          schedule

          -
          public abstract void schedule(Command c)
          -
          This should schedule the command as part of this command group, I think. - TODO: Is this correct?
          -
          -
          Parameters:
          -
          c - The command to add to the command group
          -
          -
          -
        • -
        • -
          -

          initialize

          -
          public void initialize()
          -
          Mark all commands in the group as not yet run
          -
          -
          Specified by:
          -
          initialize in interface Command
          -
          -
          -
        • -
        • -
          -

          execute

          -
          public void execute()
          -
          Description copied from interface: Command
          -
          Execute the command -

          - This is (probably) where the majority of your command belongs

          -
          -
          Specified by:
          -
          execute in interface Command
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public abstract boolean isFinished()
          -
          MUST IMPLEMENT IN SUBCLASSES:
          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Returns:
          -
          True if this CommandGroup is finished
          -
          -
          -
        • -
        • -
          -

          end

          -
          public void end(boolean cancel)
          -
          This stops the command group from executing
          -
          -
          Specified by:
          -
          end in interface Command
          -
          Parameters:
          -
          cancel - True if the command was cancelled, False if it ended naturally
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + CommandGroup (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandGroup

      +
      +
      + java.lang.Object +
      com.technototes.library.command.CommandGroup
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      Direct Known Subclasses:
      +
      + ParallelCommandGroup, + ParallelDeadlineGroup, + ParallelRaceGroup, + SequentialCommandGroup +
      +
      +
      +
      + public abstract class CommandGroup + extends + Object + implements + Command +
      +
      + Root class for all command groups (Sequential, Parallel, etc...) WARNING: You probably + will be better served by the specific CommandGroup subclasses, rather than using this + one directly. +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          commandMap

          +
          + protected Map<Command,Boolean> commandMap +
          +
          + This is a map from the command to whether it has been run +
          +
          +
        • +
        • +
          +

          countCancel

          +
          + protected boolean countCancel +
          +
          Should a cancelled command be considered 'finished'
          +
          +
        • +
        • +
          +

          anyCancelled

          +
          + protected boolean anyCancelled +
          +
          Have *any* of the command list been cancelled
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          CommandGroup

          +
          + public CommandGroup(boolean countCancel, + Command... commands) +
          +
          Create a command group with commands
          +
          +
          Parameters:
          +
          + countCancel - true if a cancelled command is considered + 'finished' +
          +
          commands - Commands for group
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          addCommands

          +
          + public CommandGroup addCommands(Command... commands) +
          +
          Add a command to the group
          +
          +
          Parameters:
          +
          commands - The command
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          countCancel

          +
          + public CommandGroup countCancel() +
          +
          + Specify that this CommandGroup should count a cancellation as 'completed' +
          +
          +
          Returns:
          +
          this CommandGroup
          +
          +
          +
        • +
        • +
          +

          ignoreCancel

          +
          + public CommandGroup ignoreCancel() +
          +
          + Specify that this CommandGroup should NOT count cancellation as + 'completed' +
          +
          +
          Returns:
          +
          this CommandGroup
          +
          +
          +
        • +
        • +
          +

          schedule

          +
          + public abstract void schedule(Command c) +
          +
          + This should schedule the command as part of this command group, I think. + TODO: Is this correct? +
          +
          +
          Parameters:
          +
          c - The command to add to the command group
          +
          +
          +
        • +
        • +
          +

          initialize

          +
          + public void initialize() +
          +
          Mark all commands in the group as not yet run
          +
          +
          Specified by:
          +
          + initialize in interface Command +
          +
          +
          +
        • +
        • +
          +

          execute

          +
          + public void execute() +
          +
          + Description copied from interface: Command +
          +
          + Execute the command +

          This is (probably) where the majority of your command belongs

          +
          +
          +
          Specified by:
          +
          + execute in interface Command +
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public abstract boolean isFinished() +
          +
          MUST IMPLEMENT IN SUBCLASSES:
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Returns:
          +
          True if this CommandGroup is finished
          +
          +
          +
        • +
        • +
          +

          end

          +
          + public void end(boolean cancel) +
          +
          This stops the command group from executing
          +
          +
          Specified by:
          +
          + end in interface Command +
          +
          Parameters:
          +
          + cancel - True if the command was cancelled, False if it + ended naturally +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/CommandScheduler.html b/docs/TechnoLib/com/technototes/library/command/CommandScheduler.html index 74e10baa..87f5cc5d 100644 --- a/docs/TechnoLib/com/technototes/library/command/CommandScheduler.html +++ b/docs/TechnoLib/com/technototes/library/command/CommandScheduler.html @@ -1,621 +1,1900 @@ - + - - -CommandScheduler (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandScheduler

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandScheduler
      -
      -
      -
      -
      public final class CommandScheduler -extends Object
      -
      This is a "singleton" object for scheduling commands. Most usage originates from Command - methods Command.andThen(com.technototes.library.command.Command...) or Command.alongWith(com.technototes.library.command.Command...) for example. Outside of - those usages, you will typically use CommandScheduler.getInstance().scheduleJoystick to - control a drivebase. + + + CommandScheduler (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandScheduler

      +
      +
      + java.lang.Object +
      com.technototes.library.command.CommandScheduler
      +
      +
      +
      +
      + public final class CommandScheduler + extends + Object +
      +
      + This is a "singleton" object for scheduling commands. Most usage originates from + Command + methods + Command.andThen(com.technototes.library.command.Command...) + or + Command.alongWith(com.technototes.library.command.Command...) + for example. Outside of those usages, you will typically use + CommandScheduler.getInstance().scheduleJoystick to control a drivebase. -

      - TODO: The "CommandScheduler.getInstance()" thing is really kinda silly. Perhaps it's how WPIlib - TODO: works, but it's clunky and makes things messier for non-FRC programmers. I think I'm going - TODO: yoink that method and make static methods for next year's release...

      -
      -
      - -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setOpMode

          - -
          Set the scheduler's opmode
          -
          -
          Parameters:
          -
          c - the opmode
          -
          Returns:
          -
          the CommandScheduler (useful for chaining)
          -
          -
          -
        • -
        • -
          -

          terminateOpMode

          - -
          Forcefully halt the opmode
          -
          -
          Returns:
          -
          the CommandScheduler (useful for chaining)
          -
          -
          -
        • -
        • -
          -

          getOpModeRuntime

          -
          public double getOpModeRuntime()
          -
          Gets the number of seconds that the opmode has been executing
          -
          -
          Returns:
          -
          elapsed time since opmode was started, in seconds
          -
          -
          -
        • -
        • -
          -

          getInstance

          -
          public static CommandScheduler getInstance()
          -
          Get (or create) the singleton CommandScheduler object
          -
          -
          Returns:
          -
          The CommandScheduler singleton
          -
          -
          -
        • -
        • -
          -

          resetScheduler

          - -
          Alex had a comment "be careful with this" and he's not wrong. - This removes the old Singleton and creates a new one. That's pretty dangerous...
          -
          -
          Returns:
          -
          a *new* singleton object (which makes very little sense)
          -
          -
          -
        • -
        • -
          -

          schedule

          -
          public CommandScheduler schedule(Command command)
          -
          Schedule a command to run
          -
          -
          Parameters:
          -
          command - the command to schedule
          -
          Returns:
          -
          the CommandScheduler (useful for chaining)
          -
          -
          -
        • -
        • -
          -

          scheduleOnce

          - -
          Schedule a command to run
          -
          -
          Parameters:
          -
          command - the command to schedule
          -
          Returns:
          -
          the CommandScheduler (useful for chaining)
          -
          -
          -
        • -
        • -
          -

          scheduleOnceForState

          - -
          Schedule a command to run during a particular OpModeState
          -
          -
          Parameters:
          -
          command - the command to schedule
          -
          state - the state during which the command should be scheduled
          -
          Returns:
          -
          the CommandScheduler (useful for chaining)
          -
          -
          -
        • -
        • -
          -

          scheduleInit

          -
          public CommandScheduler scheduleInit(Command command, - BooleanSupplier supplier)
          -
          Schedule a command to be run recurringly during the 'Init' phase of an opmode. - This can be used for vision, as well as running any system to help the - drive team ensure that the robot is appropriately positioned on the field. - This will only be run if the BooleanSupplier 'supplier' is also true!
          -
          -
          Parameters:
          -
          command - The command to run
          -
          supplier - The condition which also must be true to run the command
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleInit

          - -
          Schedule a command to be run recurringly during the 'Init' phase of an opmode. - This can be used for vision, as well as running any system to help the - drive team ensure that the robot is appropriately positioned on the field.
          -
          -
          Parameters:
          -
          command - The command to run
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleJoystick

          - -
          Schedules a command to be run during Run and End states, all the time. - This is called "Schedule for Joystick" because joysticks don't really have a - condition you might consider 'useful for triggering', so the command - just runs repeatedly. This adds the requirement that the BooleanSupplier function - is also true for the command to be run.
          -
          -
          Parameters:
          -
          command - The command to run repeatedly
          -
          supplier - The condition which must also be true to run the command
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleJoystick

          - -
          Schedules a command to be run during Run and End states, all the time. - This is called "Schedule for Joystick" because joysticks don't really have a - condition you might consider 'useful for triggering', so the command - just runs repeatedly
          -
          -
          Parameters:
          -
          command - The command to run repeatedly.
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleForState

          - -
          Schedule a command to be run when the OpMode is one of the provided list of states and the - 'supplier' boolean function is also true.
          -
          -
          Parameters:
          -
          command - The command to run
          -
          states - The list of states to schedule the command
          -
          supplier - The function to determin in the command should be scheduled
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleForState

          - -
          Schedule a command to be run when the OpMode is one of the provided list of states.
          -
          -
          Parameters:
          -
          command - The command to run
          -
          states - The list of states to schedule the command
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleAfterOther

          -
          public CommandScheduler scheduleAfterOther(Command dependency, - Command other)
          -
          Schedule the 'other' command (the second one) when the 'dependency' command has - finished (but *not* been cancelled!).
          -
          -
          Parameters:
          -
          dependency - The command upon which 'other' depends
          -
          other - The command to schedule when 'dependency' has finished
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleWithOther

          -
          public CommandScheduler scheduleWithOther(Command dependency, - Command other)
          -
          Schedule the 'other' command (the second one) when the 'dependency' command has - just started.
          -
          -
          Parameters:
          -
          dependency - The command upon which 'other' depends
          -
          other - The command to schedule when 'dependency' has started
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleAfterOther

          -
          public CommandScheduler scheduleAfterOther(Command dependency, - Command other, - BooleanSupplier additionalCondition)
          -
          Schedule the 'other' command (the second one) when the 'dependency' command has - finished (but *not* been cancelled!) *and* 'additionalCondition' is true.
          -
          -
          Parameters:
          -
          dependency - The command upon which 'other' depends
          -
          other - The command to schedule when 'dependency' has finished
          -
          additionalCondition - The additional condition necessary to be true to schedule the 'other' command
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleWithOther

          -
          public CommandScheduler scheduleWithOther(Command dependency, - Command other, - BooleanSupplier additionalCondition)
          -
          Schedule the 'other' command (the second one) when the 'dependency' command has - just started *and* 'additionalCondition' is also true.
          -
          -
          Parameters:
          -
          dependency - The command upon which 'other' depends
          -
          other - The command to schedule when 'dependency' has started
          -
          additionalCondition - The additional condition necessary to be true to schedule the 'other' command
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          scheduleDefault

          -
          public CommandScheduler scheduleDefault(Command command, - Subsystem subsystem)
          -
          Schedule the default command for a given subsystem. The default command will be run - if no other command is currently running on that subsystem.
          -
          -
          Parameters:
          -
          command - The command to be run when others aren't using that subsystem
          -
          subsystem - The subsystem to run the command against when it's unused
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          register

          - -
          Register a periodic function to be run once each schedule loop
          -
          -
          Parameters:
          -
          p - The Periodic function to run
          -
          Returns:
          -
          The CommandScheduler singleton for chaining
          -
          -
          -
        • -
        • -
          -

          getDefault

          -
          @Nullable -public Command getDefault(Subsystem s)
          -
          Get the default command that is running on the subsystem provided
          -
          -
          Parameters:
          -
          s - The subsystem in question
          -
          Returns:
          -
          the default command for the subsystem, or null if there is none
          -
          -
          -
        • -
        • -
          -

          getCurrent

          -
          @Nullable -public Command getCurrent(Subsystem s)
          -
          This gets the command currently using the subsystem provided
          -
          -
          Parameters:
          -
          s - The subsystem in question.
          -
          Returns:
          -
          The Command currently using the subsystem, the default - command for the subsystem, or null if there is no current - command usint the subsystem, nor a default command
          -
          -
          -
        • -
        • -
          -

          schedule

          -
          public CommandScheduler schedule(Command command, - BooleanSupplier supplier)
          -
          Register a command to be scheduled. The 'supplier' function is what triggers - the schedule to begin running the command.
          -
          -
          Parameters:
          -
          command - The command to schedule
          -
          supplier - The function that returns true when the command should be run
          -
          Returns:
          -
          the CommandScheduler singleton for easy chaining
          -
          -
          -
        • -
        • -
          -

          run

          -
          public void run()
          -
          This is invoked from inside the CommandOpMode method, during the opCode. - It it the core logic of actually scheduling & running the commands.
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - +

      + TODO: The "CommandScheduler.getInstance()" thing is really kinda silly. Perhaps it's + how WPIlib TODO: works, but it's clunky and makes things messier for non-FRC + programmers. I think I'm going TODO: yoink that method and make static methods for + next year's release... +

      +
      +
      +
      +
        + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        + +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static + Command +
        + +
        +
        + This gets the command currently using the subsystem provided +
        +
        +
        + static + Command +
        + +
        +
        + Get the default command that is running on the subsystem provided +
        +
        +
        + static double +
        + +
        +
        + Gets the number of seconds that the opmode has been executing +
        +
        +
        + static void +
        +
        + register(Periodic p) +
        +
        +
        + Register a periodic function to be run once each schedule loop +
        +
        +
        + static void +
        + +
        +
        Reset the scheduler...
        +
        +
        + static void +
        +
        + run() +
        +
        +
        + This is invoked from inside the CommandOpMode method, during the opCode. +
        +
        +
        + static void +
        +
        + schedule(Command command) +
        +
        +
        Schedule a command to run
        +
        +
        + static void +
        +
        + schedule(Command command, + BooleanSupplier supplier) +
        +
        +
        Register a command to be scheduled.
        +
        +
        + static void +
        +
        + scheduleAfterOther(Command dependency, + Command other) +
        +
        +
        + Schedule the 'other' command (the second one) when the 'dependency' + command has finished (but *not* been cancelled!). +
        +
        +
        + static void +
        +
        + scheduleAfterOther(Command dependency, + Command other, + BooleanSupplier additionalCondition) +
        +
        +
        + Schedule the 'other' command (the second one) when the 'dependency' + command has finished (but *not* been cancelled!) *and* + 'additionalCondition' is true. +
        +
        +
        + static void +
        +
        + scheduleDefault(Command command, + Subsystem subsystem) +
        +
        +
        + Schedule the default command for a given subsystem. +
        +
        +
        + static void +
        +
        + scheduleForState(Command command, + CommandOpMode.OpModeState... states) +
        +
        +
        + Schedule a command to be run when the OpMode is one of the provided list + of states. +
        +
        +
        + static void +
        +
        + scheduleForState(Command command, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states) +
        +
        +
        + Schedule a command to be run when the OpMode is one of the provided list + of states and the 'supplier' boolean function is also true. +
        +
        +
        + static void +
        +
        + scheduleInit(Command command) +
        +
        +
        + Schedule a command to be run recurringly during the 'Init' phase of an + opmode. +
        +
        +
        + static void +
        +
        + scheduleInit(Command command, + BooleanSupplier supplier) +
        +
        +
        + Schedule a command to be run recurringly during the 'Init' phase of an + opmode. +
        +
        +
        + static void +
        +
        + scheduleJoystick(Command command) +
        +
        +
        + Schedules a command to be run during Run and End states, all the time. +
        +
        +
        + static void +
        +
        + scheduleJoystick(Command command, + BooleanSupplier supplier) +
        +
        +
        + Schedules a command to be run during Run and End states, all the time. +
        +
        +
        + static void +
        +
        + scheduleOnce(Command command) +
        +
        +
        Schedule a command to run (just use "schedule")
        +
        +
        + static void +
        + +
        +
        + Schedule a command to run during a particular OpModeState You can just + use scheduleForState instead... +
        +
        +
        + static void +
        +
        + scheduleWithOther(Command dependency, + Command other) +
        +
        +
        + Schedule the 'other' command (the second one) when the 'dependency' + command has just started. +
        +
        +
        + static void +
        +
        + scheduleWithOther(Command dependency, + Command other, + BooleanSupplier additionalCondition) +
        +
        +
        + Schedule the 'other' command (the second one) when the 'dependency' + command has just started *and* 'additionalCondition' is also true. +
        +
        +
        + static void +
        + +
        +
        Set the scheduler's opmode
        +
        +
        + static void +
        + +
        +
        Forcefully halt the opmode
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          setOpMode

          +
          + public static void setOpMode(CommandOpMode c) +
          +
          Set the scheduler's opmode
          +
          +
          Parameters:
          +
          c - the opmode
          +
          +
          +
        • +
        • +
          +

          terminateOpMode

          +
          + public static void terminateOpMode() +
          +
          Forcefully halt the opmode
          +
          +
        • +
        • +
          +

          getOpModeRuntime

          +
          + public static double getOpModeRuntime() +
          +
          + Gets the number of seconds that the opmode has been executing +
          +
          +
          Returns:
          +
          elapsed time since opmode was started, in seconds
          +
          +
          +
        • +
        • +
          +

          resetScheduler

          +
          + public static void resetScheduler() +
          +
          Reset the scheduler...
          +
          +
        • +
        • +
          +

          scheduleOnce

          +
          + public static void scheduleOnce(Command command) +
          +
          Schedule a command to run (just use "schedule")
          +
          +
          Parameters:
          +
          command - the command to schedule
          +
          +
          +
        • +
        • +
          +

          scheduleOnceForState

          +
          + public static void scheduleOnceForState(Command command, + CommandOpMode.OpModeState state) +
          +
          + Schedule a command to run during a particular OpModeState You can just use + scheduleForState instead... +
          +
          +
          Parameters:
          +
          command - the command to schedule
          +
          + state - the state during which the command should be + scheduled +
          +
          +
          +
        • +
        • +
          +

          scheduleJoystick

          +
          + public static void scheduleJoystick(Command command, + BooleanSupplier supplier) +
          +
          + Schedules a command to be run during Run and End states, all the time. + This is called "Schedule for Joystick" because joysticks don't really have + a condition you might consider 'useful for triggering', so the command + just runs repeatedly. This adds the requirement that the BooleanSupplier + function is also true for the command to be run. +
          +
          +
          Parameters:
          +
          command - The command to run repeatedly
          +
          + supplier - The condition which must also be true to run the + command +
          +
          +
          +
        • +
        • +
          +

          scheduleJoystick

          +
          + public static void scheduleJoystick(Command command) +
          +
          + Schedules a command to be run during Run and End states, all the time. + This is called "Schedule for Joystick" because joysticks don't really have + a condition you might consider 'useful for triggering', so the command + just runs repeatedly +
          +
          +
          Parameters:
          +
          command - The command to run repeatedly.
          +
          +
          +
        • +
        • +
          +

          schedule

          +
          + public static void schedule(Command command) +
          +
          Schedule a command to run
          +
          +
          Parameters:
          +
          command - the command to schedule
          +
          +
          +
        • +
        • +
          +

          scheduleInit

          +
          + public static void scheduleInit(Command command, + BooleanSupplier supplier) +
          +
          + Schedule a command to be run recurringly during the 'Init' phase of an + opmode. This can be used for vision, as well as running any system to help + the drive team ensure that the robot is appropriately positioned on the + field. This will only be run if the BooleanSupplier 'supplier' is also + true! +
          +
          +
          Parameters:
          +
          command - The command to run
          +
          + supplier - The condition which also must be true to run the + command +
          +
          +
          +
        • +
        • +
          +

          scheduleInit

          +
          + public static void scheduleInit(Command command) +
          +
          + Schedule a command to be run recurringly during the 'Init' phase of an + opmode. This can be used for vision, as well as running any system to help + the drive team ensure that the robot is appropriately positioned on the + field. +
          +
          +
          Parameters:
          +
          command - The command to run
          +
          +
          +
        • +
        • +
          +

          scheduleForState

          +
          + public static void scheduleForState(Command command, + BooleanSupplier supplier, + CommandOpMode.OpModeState... states) +
          +
          + Schedule a command to be run when the OpMode is one of the provided list + of states and the 'supplier' boolean function is also true. +
          +
          +
          Parameters:
          +
          command - The command to run
          +
          states - The list of states to schedule the command
          +
          + supplier - The function to determin in the command should + be scheduled +
          +
          +
          +
        • +
        • +
          +

          scheduleForState

          +
          + public static void scheduleForState(Command command, + CommandOpMode.OpModeState... states) +
          +
          + Schedule a command to be run when the OpMode is one of the provided list + of states. +
          +
          +
          Parameters:
          +
          command - The command to run
          +
          states - The list of states to schedule the command
          +
          +
          +
        • +
        • +
          +

          scheduleAfterOther

          +
          + public static void scheduleAfterOther(Command dependency, + Command other) +
          +
          + Schedule the 'other' command (the second one) when the 'dependency' + command has finished (but *not* been cancelled!). +
          +
          +
          Parameters:
          +
          dependency - The command upon which 'other' depends
          +
          + other - The command to schedule when 'dependency' has + finished +
          +
          +
          +
        • +
        • +
          +

          scheduleWithOther

          +
          + public static void scheduleWithOther(Command dependency, + Command other) +
          +
          + Schedule the 'other' command (the second one) when the 'dependency' + command has just started. +
          +
          +
          Parameters:
          +
          dependency - The command upon which 'other' depends
          +
          + other - The command to schedule when 'dependency' has + started +
          +
          +
          +
        • +
        • +
          +

          scheduleAfterOther

          +
          + public static void scheduleAfterOther(Command dependency, + Command other, + BooleanSupplier additionalCondition) +
          +
          + Schedule the 'other' command (the second one) when the 'dependency' + command has finished (but *not* been cancelled!) *and* + 'additionalCondition' is true. +
          +
          +
          Parameters:
          +
          dependency - The command upon which 'other' depends
          +
          + other - The command to schedule when 'dependency' has + finished +
          +
          + additionalCondition - The additional condition necessary to + be true to schedule the 'other' command +
          +
          +
          +
        • +
        • +
          +

          scheduleWithOther

          +
          + public static void scheduleWithOther(Command dependency, + Command other, + BooleanSupplier additionalCondition) +
          +
          + Schedule the 'other' command (the second one) when the 'dependency' + command has just started *and* 'additionalCondition' is also true. +
          +
          +
          Parameters:
          +
          dependency - The command upon which 'other' depends
          +
          + other - The command to schedule when 'dependency' has + started +
          +
          + additionalCondition - The additional condition necessary to + be true to schedule the 'other' command +
          +
          +
          +
        • +
        • +
          +

          scheduleDefault

          +
          + public static void scheduleDefault(Command command, + Subsystem subsystem) +
          +
          + Schedule the default command for a given subsystem. The default command + will be run if no other command is currently running on that subsystem. +
          +
          +
          Parameters:
          +
          + command - The command to be run when others aren't using + that subsystem +
          +
          + subsystem - The subsystem to run the command against when + it's unused +
          +
          +
          +
        • +
        • +
          +

          register

          +
          + public static void register(Periodic p) +
          +
          + Register a periodic function to be run once each schedule loop +
          +
          +
          Parameters:
          +
          p - The Periodic function to run
          +
          +
          +
        • +
        • +
          +

          getDefault

          +
          + @Nullable public static Command getDefault(Subsystem s) +
          +
          + Get the default command that is running on the subsystem provided +
          +
          +
          Parameters:
          +
          s - The subsystem in question
          +
          Returns:
          +
          the default command for the subsystem, or null if there is none
          +
          +
          +
        • +
        • +
          +

          getCurrent

          +
          + @Nullable public static Command getCurrent(Subsystem s) +
          +
          + This gets the command currently using the subsystem provided +
          +
          +
          Parameters:
          +
          s - The subsystem in question.
          +
          Returns:
          +
          + The Command currently using the subsystem, the default command for the + subsystem, or null if there is no current command usint the subsystem, + nor a default command +
          +
          +
          +
        • +
        • +
          +

          schedule

          +
          + public static void schedule(Command command, + BooleanSupplier supplier) +
          +
          + Register a command to be scheduled. The 'supplier' function is what + triggers the schedule to begin running the command. +
          +
          +
          Parameters:
          +
          command - The command to schedule
          +
          + supplier - The function that returns true when the command + should be run +
          +
          +
          +
        • +
        • +
          +

          run

          +
          + public static void run() +
          +
          + This is invoked from inside the CommandOpMode method, during the opCode. + It it the core logic of actually scheduling & running the commands. +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/ConditionalCommand.html b/docs/TechnoLib/com/technototes/library/command/ConditionalCommand.html index 71fbd95a..d74bcfa3 100644 --- a/docs/TechnoLib/com/technototes/library/command/ConditionalCommand.html +++ b/docs/TechnoLib/com/technototes/library/command/ConditionalCommand.html @@ -1,272 +1,757 @@ - + - - -ConditionalCommand (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ConditionalCommand

      -
      -
      java.lang.Object -
      com.technototes.library.command.ConditionalCommand
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      public class ConditionalCommand -extends Object -implements Command
      -
      Simple class for commands that require a certain condition to be true to run -

      - This encapsulates *two* different capabilities. - 1. A ConditionalCommand with only a condition, but no commands, is a a "wait" command. - It will only finish once the condition is true. - 2. A ConditionalCommand with a condition and a true (and optionally false) command - is a generic "if/else" command: If the condition is true, execute the 'true command', - if not true, execute the 'false command' if it is supplied. -

      - TODO: This makes the class a little clunky. It wouldn't be terrible to break the functionality - TODO: out into multiple classes instead

      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ConditionalCommand

          - -
          This makes a "wait" command
          -
          -
          Parameters:
          -
          condition - The BooleanSupplier that will be waited upon until true
          -
          -
          -
        • -
        • -
          -

          ConditionalCommand

          -
          public ConditionalCommand(BooleanSupplier condition, - Command command)
          -
          Make a conditional command
          -
          -
          Parameters:
          -
          condition - The condition
          -
          command - The command to run when the condition is true.
          -
          -
          -
        • -
        • -
          -

          ConditionalCommand

          -
          public ConditionalCommand(BooleanSupplier condition, - Command trueC, - Command falseC)
          -
          Make a conditional command
          -
          -
          Parameters:
          -
          condition - The condition
          -
          trueC - The command to run when the condition is true
          -
          falseC - The command to run when the condition is false
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          execute

          -
          public void execute()
          -
          Description copied from interface: Command
          -
          Execute the command -

          - This is (probably) where the majority of your command belongs

          -
          -
          Specified by:
          -
          execute in interface Command
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Description copied from interface: Command
          -
          Return if the command is finished -

          - Defaults to returning *true* which means that the command will execute once and complete.

          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Returns:
          -
          Is the command finished
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ConditionalCommand (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ConditionalCommand

      +
      +
      + java.lang.Object +
      com.technototes.library.command.ConditionalCommand
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class ConditionalCommand + extends + Object + implements + Command +
      +
      + Simple class for commands that require a certain condition to be true to run +

      + This encapsulates *two* different capabilities. 1. A ConditionalCommand with only a + condition, but no commands, is a a "wait" command. It will only finish once the + condition is true. 2. A ConditionalCommand with a condition and a true (and + optionally false) command is a generic "if/else" command: If the condition is true, + execute the 'true command', if not true, execute the 'false command' if it is + supplied. +

      + +

      + TODO: This makes the class a little clunky. It wouldn't be terrible to break the + functionality TODO: out into multiple classes instead +

      +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ConditionalCommand

          +
          + public ConditionalCommand(BooleanSupplier condition) +
          +
          This makes a "wait" command
          +
          +
          Parameters:
          +
          + condition - The BooleanSupplier that will be waited upon + until true +
          +
          +
          +
        • +
        • +
          +

          ConditionalCommand

          +
          + public ConditionalCommand(BooleanSupplier condition, + Command command) +
          +
          Make a conditional command
          +
          +
          Parameters:
          +
          condition - The condition
          +
          + command - The command to run when the condition is true. +
          +
          +
          +
        • +
        • +
          +

          ConditionalCommand

          +
          + public ConditionalCommand(BooleanSupplier condition, + Command trueC, + Command falseC) +
          +
          Make a conditional command
          +
          +
          Parameters:
          +
          condition - The condition
          +
          + trueC - The command to run when the condition is true +
          +
          + falseC - The command to run when the condition is false +
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          execute

          +
          + public void execute() +
          +
          + Description copied from interface: Command +
          +
          + Execute the command +

          This is (probably) where the majority of your command belongs

          +
          +
          +
          Specified by:
          +
          + execute in interface Command +
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public boolean isFinished() +
          +
          + Description copied from interface: Command +
          +
          + Return if the command is finished +

          + Defaults to returning *true* which means that the command will execute + once and complete. +

          +
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Returns:
          +
          Is the command finished
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/IterativeCommand.html b/docs/TechnoLib/com/technototes/library/command/IterativeCommand.html index 23b64c3d..a5a5c098 100644 --- a/docs/TechnoLib/com/technototes/library/command/IterativeCommand.html +++ b/docs/TechnoLib/com/technototes/library/command/IterativeCommand.html @@ -1,245 +1,821 @@ - + - - -IterativeCommand (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class IterativeCommand

      -
      - -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      - -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + IterativeCommand (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class IterativeCommand

      +
      + +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class IterativeCommand + extends + SequentialCommandGroup +
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/MethodCommand.html b/docs/TechnoLib/com/technototes/library/command/MethodCommand.html new file mode 100644 index 00000000..b566581d --- /dev/null +++ b/docs/TechnoLib/com/technototes/library/command/MethodCommand.html @@ -0,0 +1,1084 @@ + + + + + MethodCommand (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class MethodCommand

      +
      +
      + java.lang.Object +
      com.technototes.library.command.MethodCommand
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class MethodCommand + extends + Object + implements + Command +
      +
      + This is an alternative to using the Command.create(...) interface, as it's a little + more obvious to new/non-Java-informed coders as to what's happening, while the + Command.create function may require understanding that subsystem::method is a + 'Command' because it's Runnable and Java will promote it to a Command from a Runnable. +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          MethodCommand

          +
          + public MethodCommand(Runnable m, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Parameters:
          +
          m - A method to invoke
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        • +
          +

          + MethodCommand +

          +
          + public MethodCommand(Consumer<T> m, T arg, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Type Parameters:
          +
          + T - The type of the argument for the method being invoked +
          +
          Parameters:
          +
          m - A method to invoke
          +
          arg - The argument to pass to the method
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        • +
          +

          MethodCommand

          +
          + public MethodCommand(Consumer<T> m, + Supplier<T> argSupplier, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Type Parameters:
          +
          + T - The type of the argument for the method being invoked +
          +
          Parameters:
          +
          m - A method to invoke
          +
          + argSupplier - The function to compute the argument to the + method +
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        • +
          +

          + MethodCommand +

          +
          + public MethodCommand(BiConsumer<T,U> m, + Supplier<T> arg1supplier, U arg2, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Type Parameters:
          +
          + T - The type of the first argument for the method being + invoked +
          +
          + U - The type of the second argument for the method being + invoked +
          +
          Parameters:
          +
          m - A method to invoke
          +
          + arg1supplier - The function to compute the argument to pass + to the method +
          +
          arg2 - The second argument to pass to the method
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        • +
          +

          + MethodCommand +

          +
          + public MethodCommand(BiConsumer<T,U> m, T arg1, + Supplier<U> arg2supplier, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Type Parameters:
          +
          + T - The type of the first argument for the method being + invoked +
          +
          + U - The type of the second argument for the method being + invoked +
          +
          Parameters:
          +
          m - A method to invoke
          +
          arg1 - The first argument to pass to the method
          +
          + arg2supplier - The function to compute the second argument + to pass to the method +
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        • +
          +

          MethodCommand

          +
          + public MethodCommand(BiConsumer<T,U> m, + Supplier<T> arg1supplier, + Supplier<U> arg2supplier, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Type Parameters:
          +
          + T - The type of the first argument for the method being + invoked +
          +
          + U - The type of the second argument for the method being + invoked +
          +
          Parameters:
          +
          m - A method to invoke
          +
          + arg1supplier - The function to compute the first argument + to pass to the method +
          +
          + arg2supplier - The function to compute the second argument + to pass to the method +
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        • +
          +

          + MethodCommand +

          +
          + public MethodCommand(BiConsumer<T,U> m, T arg1, U arg2, + Subsystem... subs) +
          +
          + This is an alternative to the Command.create(...) interface +
          +
          +
          Type Parameters:
          +
          + T - The type of the first argument for the method being + invoked +
          +
          + U - The type of the second argument for the method being + invoked +
          +
          Parameters:
          +
          m - A method to invoke
          +
          arg1 - The first argument to pass to the method
          +
          arg2 - The second argument to pass to the method
          +
          subs - Any subsystems this command requires
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          execute

          +
          + public void execute() +
          +
          + Description copied from interface: Command +
          +
          + Execute the command +

          This is (probably) where the majority of your command belongs

          +
          +
          +
          Specified by:
          +
          + execute in interface Command +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/TechnoLib/com/technototes/library/command/ParallelCommandGroup.html b/docs/TechnoLib/com/technototes/library/command/ParallelCommandGroup.html index 0d95acad..4ef1bc48 100644 --- a/docs/TechnoLib/com/technototes/library/command/ParallelCommandGroup.html +++ b/docs/TechnoLib/com/technototes/library/command/ParallelCommandGroup.html @@ -1,231 +1,687 @@ - + - - -ParallelCommandGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ParallelCommandGroup

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandGroup -
      com.technototes.library.command.ParallelCommandGroup
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      public class ParallelCommandGroup -extends CommandGroup
      -
      Command group to run commands in parallel until all of them finish
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ParallelCommandGroup

          -
          public ParallelCommandGroup(Command... commands)
          -
          Make parallel command group
          -
          -
          Parameters:
          -
          commands - The commands for the group
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          schedule

          -
          public void schedule(Command c)
          -
          Description copied from class: CommandGroup
          -
          This should schedule the command as part of this command group, I think. - TODO: Is this correct?
          -
          -
          Specified by:
          -
          schedule in class CommandGroup
          -
          Parameters:
          -
          c - The command to add to the command group
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Description copied from class: CommandGroup
          -
          MUST IMPLEMENT IN SUBCLASSES:
          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Specified by:
          -
          isFinished in class CommandGroup
          -
          Returns:
          -
          True if *all* of the commands are finished
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ParallelCommandGroup (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ParallelCommandGroup

      +
      +
      + java.lang.Object +
      + com.technototes.library.command.CommandGroup +
      com.technototes.library.command.ParallelCommandGroup
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class ParallelCommandGroup + extends + CommandGroup +
      +
      + Command group to run commands in parallel until all of them finish +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ParallelCommandGroup

          +
          + public ParallelCommandGroup(Command... commands) +
          +
          Make parallel command group
          +
          +
          Parameters:
          +
          commands - The commands for the group
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          schedule

          +
          + public void schedule(Command c) +
          +
          + Description copied from class: CommandGroup +
          +
          + This should schedule the command as part of this command group, I think. + TODO: Is this correct? +
          +
          +
          Specified by:
          +
          + schedule in class CommandGroup +
          +
          Parameters:
          +
          c - The command to add to the command group
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public boolean isFinished() +
          +
          + Description copied from class: CommandGroup +
          +
          MUST IMPLEMENT IN SUBCLASSES:
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Specified by:
          +
          + isFinished in class CommandGroup +
          +
          Returns:
          +
          True if *all* of the commands are finished
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/ParallelDeadlineGroup.html b/docs/TechnoLib/com/technototes/library/command/ParallelDeadlineGroup.html index 98ad3022..9062e11c 100644 --- a/docs/TechnoLib/com/technototes/library/command/ParallelDeadlineGroup.html +++ b/docs/TechnoLib/com/technototes/library/command/ParallelDeadlineGroup.html @@ -1,232 +1,690 @@ - + - - -ParallelDeadlineGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ParallelDeadlineGroup

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandGroup -
      com.technototes.library.command.ParallelDeadlineGroup
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      public class ParallelDeadlineGroup -extends CommandGroup
      -
      Command group to run commands in parallel until one particular command completes
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ParallelDeadlineGroup

          -
          public ParallelDeadlineGroup(Command command, - Command... commands)
          -
          Make parallel deadline group
          -
          -
          Parameters:
          -
          command - the deadline condition (Once this is complete, the rest are cancelled)
          -
          commands - The other commands for the group
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          schedule

          -
          public void schedule(Command c)
          -
          Add another command to the group to be run while waiting for the 'deadline' command to finish
          -
          -
          Specified by:
          -
          schedule in class CommandGroup
          -
          Parameters:
          -
          c - The command to add to the command group
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Description copied from class: CommandGroup
          -
          MUST IMPLEMENT IN SUBCLASSES:
          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Specified by:
          -
          isFinished in class CommandGroup
          -
          Returns:
          -
          True if the 'deadline' command has finished
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ParallelDeadlineGroup (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ParallelDeadlineGroup

      +
      +
      + java.lang.Object +
      + com.technototes.library.command.CommandGroup +
      com.technototes.library.command.ParallelDeadlineGroup
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class ParallelDeadlineGroup + extends + CommandGroup +
      +
      + Command group to run commands in parallel until one particular command completes +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ParallelDeadlineGroup

          +
          + public ParallelDeadlineGroup(Command command, + Command... commands) +
          +
          Make parallel deadline group
          +
          +
          Parameters:
          +
          + command - the deadline condition (Once this is complete, + the rest are cancelled) +
          +
          commands - The other commands for the group
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          schedule

          +
          + public void schedule(Command c) +
          +
          + Add another command to the group to be run while waiting for the + 'deadline' command to finish +
          +
          +
          Specified by:
          +
          + schedule in class CommandGroup +
          +
          Parameters:
          +
          c - The command to add to the command group
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public boolean isFinished() +
          +
          + Description copied from class: CommandGroup +
          +
          MUST IMPLEMENT IN SUBCLASSES:
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Specified by:
          +
          + isFinished in class CommandGroup +
          +
          Returns:
          +
          True if the 'deadline' command has finished
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/ParallelRaceGroup.html b/docs/TechnoLib/com/technototes/library/command/ParallelRaceGroup.html index e7db2ed5..710b5150 100644 --- a/docs/TechnoLib/com/technototes/library/command/ParallelRaceGroup.html +++ b/docs/TechnoLib/com/technototes/library/command/ParallelRaceGroup.html @@ -1,232 +1,684 @@ - + - - -ParallelRaceGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ParallelRaceGroup

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandGroup -
      com.technototes.library.command.ParallelRaceGroup
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      Direct Known Subclasses:
      -
      ChoiceCommand
      -
      -
      -
      public class ParallelRaceGroup -extends CommandGroup
      -
      Command group to run commands in parallel until *one* is finished
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ParallelRaceGroup

          -
          public ParallelRaceGroup(Command... commands)
          -
          Make parallel race group
          -
          -
          Parameters:
          -
          commands - The commands for the group
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          schedule

          -
          public void schedule(Command c)
          -
          Add one more command to the list of commands that will be run at the same time
          -
          -
          Specified by:
          -
          schedule in class CommandGroup
          -
          Parameters:
          -
          c - The command to add to the group
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Is this finished?
          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Specified by:
          -
          isFinished in class CommandGroup
          -
          Returns:
          -
          True if *any* of the commands are finished, false if *none* have finished.
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ParallelRaceGroup (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ParallelRaceGroup

      +
      +
      + java.lang.Object +
      + com.technototes.library.command.CommandGroup +
      com.technototes.library.command.ParallelRaceGroup
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      Direct Known Subclasses:
      +
      + ChoiceCommand +
      +
      +
      +
      + public class ParallelRaceGroup + extends + CommandGroup +
      +
      + Command group to run commands in parallel until *one* is finished +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ParallelRaceGroup

          +
          + public ParallelRaceGroup(Command... commands) +
          +
          Make parallel race group
          +
          +
          Parameters:
          +
          commands - The commands for the group
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          schedule

          +
          + public void schedule(Command c) +
          +
          + Add one more command to the list of commands that will be run at the same + time +
          +
          +
          Specified by:
          +
          + schedule in class CommandGroup +
          +
          Parameters:
          +
          c - The command to add to the group
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public boolean isFinished() +
          +
          Is this finished?
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Specified by:
          +
          + isFinished in class CommandGroup +
          +
          Returns:
          +
          + True if *any* of the commands are finished, false if *none* have + finished. +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/SequentialCommandGroup.html b/docs/TechnoLib/com/technototes/library/command/SequentialCommandGroup.html index 13eef90a..9d4f5bd9 100644 --- a/docs/TechnoLib/com/technototes/library/command/SequentialCommandGroup.html +++ b/docs/TechnoLib/com/technototes/library/command/SequentialCommandGroup.html @@ -1,256 +1,726 @@ - + - - -SequentialCommandGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class SequentialCommandGroup

      -
      -
      java.lang.Object -
      com.technototes.library.command.CommandGroup -
      com.technototes.library.command.SequentialCommandGroup
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      Direct Known Subclasses:
      -
      IterativeCommand
      -
      -
      -
      public class SequentialCommandGroup -extends CommandGroup
      -
      A grouping command which runs a list of commands in sequence
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          SequentialCommandGroup

          -
          public SequentialCommandGroup(Command... commands)
          -
          Make sequential command group. By default if a command is cancelled, the next commend in - the sequence is run.
          -
          -
          Parameters:
          -
          commands - The commands to run
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          schedule

          -
          public void schedule(Command c)
          -
          This allows you to append another command to the Sequential Command Group
          -
          -
          Specified by:
          -
          schedule in class CommandGroup
          -
          Parameters:
          -
          c - The command to add to the end of the list
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Returns if all the commands are finished
          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Specified by:
          -
          isFinished in class CommandGroup
          -
          Returns:
          -
          Is the command group finished
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + SequentialCommandGroup (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class SequentialCommandGroup

      +
      +
      + java.lang.Object +
      + com.technototes.library.command.CommandGroup +
      com.technototes.library.command.SequentialCommandGroup
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      Direct Known Subclasses:
      +
      + IterativeCommand +
      +
      +
      +
      + public class SequentialCommandGroup + extends + CommandGroup +
      +
      A grouping command which runs a list of commands in sequence
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        + +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          SequentialCommandGroup

          +
          + public SequentialCommandGroup(Command... commands) +
          +
          + Make sequential command group. By default if a command is cancelled, the + next commend in the sequence is run. +
          +
          +
          Parameters:
          +
          commands - The commands to run
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          schedule

          +
          + public void schedule(Command c) +
          +
          + This allows you to append another command to the Sequential Command Group +
          +
          +
          Specified by:
          +
          + schedule in class CommandGroup +
          +
          Parameters:
          +
          c - The command to add to the end of the list
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public boolean isFinished() +
          +
          Returns if all the commands are finished
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Specified by:
          +
          + isFinished in class CommandGroup +
          +
          Returns:
          +
          Is the command group finished
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/WaitCommand.html b/docs/TechnoLib/com/technototes/library/command/WaitCommand.html index f84c0e31..1172f989 100644 --- a/docs/TechnoLib/com/technototes/library/command/WaitCommand.html +++ b/docs/TechnoLib/com/technototes/library/command/WaitCommand.html @@ -1,254 +1,693 @@ - + - - -WaitCommand (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class WaitCommand

      -
      -
      java.lang.Object -
      com.technototes.library.command.WaitCommand
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Command, Runnable, Supplier<Command.CommandState>
      -
      -
      -
      public class WaitCommand -extends Object -implements Command
      -
      A command to do nothing but wait for a span of time. - In an ideal world, you wouldn't need this. But the world is far from ideal...
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          WaitCommand

          -
          public WaitCommand(double sec)
          -
          Create a wait command for a fixed number of seconds
          -
          -
          Parameters:
          -
          sec - The number of seconds (can be non-whole numbers!)
          -
          -
          -
        • -
        • -
          -

          WaitCommand

          - -
          Create a wait command for a number of seconds that can be calculated when the commannd is - triggered
          -
          -
          Parameters:
          -
          sup - The DoublerSupplier function which calculates the number of seconds to wait
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getSeconds

          -
          public double getSeconds()
          -
          -
          Returns:
          -
          the number of seconds the command will wait
          -
          -
          -
        • -
        • -
          -

          execute

          -
          public void execute()
          -
          Description copied from interface: Command
          -
          Execute the command -

          - This is (probably) where the majority of your command belongs

          -
          -
          Specified by:
          -
          execute in interface Command
          -
          -
          -
        • -
        • -
          -

          isFinished

          -
          public boolean isFinished()
          -
          Description copied from interface: Command
          -
          Return if the command is finished -

          - Defaults to returning *true* which means that the command will execute once and complete.

          -
          -
          Specified by:
          -
          isFinished in interface Command
          -
          Returns:
          -
          Is the command finished
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + WaitCommand (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class WaitCommand

      +
      +
      + java.lang.Object +
      com.technototes.library.command.WaitCommand
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Command, + Runnable, + Supplier<Command.CommandState> +
      +
      +
      +
      + public class WaitCommand + extends + Object + implements + Command +
      +
      + A command to do nothing but wait for a span of time. In an ideal world, you wouldn't + need this. But the world is far from ideal... +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          WaitCommand

          +
          + public WaitCommand(double sec) +
          +
          Create a wait command for a fixed number of seconds
          +
          +
          Parameters:
          +
          + sec - The number of seconds (can be non-whole numbers!) +
          +
          +
          +
        • +
        • +
          +

          WaitCommand

          +
          + public WaitCommand(DoubleSupplier sup) +
          +
          + Create a wait command for a number of seconds that can be calculated when + the commannd is triggered +
          +
          +
          Parameters:
          +
          + sup - The DoublerSupplier function which calculates the + number of seconds to wait +
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getSeconds

          +
          + public double getSeconds() +
          +
          +
          Returns:
          +
          the number of seconds the command will wait
          +
          +
          +
        • +
        • +
          +

          execute

          +
          + public void execute() +
          +
          + Description copied from interface: Command +
          +
          + Execute the command +

          This is (probably) where the majority of your command belongs

          +
          +
          +
          Specified by:
          +
          + execute in interface Command +
          +
          +
          +
        • +
        • +
          +

          isFinished

          +
          + public boolean isFinished() +
          +
          + Description copied from interface: Command +
          +
          + Return if the command is finished +

          + Defaults to returning *true* which means that the command will execute + once and complete. +

          +
          +
          +
          Specified by:
          +
          + isFinished in interface Command +
          +
          Returns:
          +
          Is the command finished
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/package-summary.html b/docs/TechnoLib/com/technototes/library/command/package-summary.html index d5f93055..4ca90173 100644 --- a/docs/TechnoLib/com/technototes/library/command/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/command/package-summary.html @@ -1,147 +1,340 @@ - + - - -com.technototes.library.command (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.command

      -
      -
      -
      package com.technototes.library.command
      -
      -
        -
      • - -
      • -
      • -
        -
        -
        -
        -
        Class
        -
        Description
        - -
        -
        A command that allows choosing among a number of commands based on variety of conditions
        -
        - -
        -
        The root Command class
        -
        - -
        -
        The command state enum
        -
        - -
        Deprecated.
        - -
        -
        Root class for all command groups (Sequential, Parallel, etc...) - WARNING: You probably will be better served by the specific CommandGroup subclasses, rather than - using this one directly.
        -
        - -
        -
        This is a "singleton" object for scheduling commands.
        -
        - -
        -
        Simple class for commands that require a certain condition to be true to run
        -
        - -
         
        - -
        -
        Command group to run commands in parallel until all of them finish
        -
        - -
        -
        Command group to run commands in parallel until one particular command completes
        -
        - -
        -
        Command group to run commands in parallel until *one* is finished
        -
        - -
        -
        A grouping command which runs a list of commands in sequence
        -
        - -
        -
        A command to do nothing but wait for a span of time.
        -
        -
        -
        -
        -
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.command (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.command +

      +
      +
      +
      + package com.technototes.library.command +
      +
      +
        +
      • + +
      • +
      • +
        +
        + +
        +
        +
        +
        Class
        +
        Description
        + +
        +
        + A command that allows choosing among a number of commands based on variety + of conditions +
        +
        +
        + Command +
        +
        +
        The root Command class
        +
        + +
        +
        The command state enum
        +
        + +
        +
        + Root class for all command groups (Sequential, Parallel, etc...) WARNING: + You probably will be better served by the specific CommandGroup + subclasses, rather than using this one directly. +
        +
        + +
        +
        + This is a "singleton" object for scheduling commands. +
        +
        + +
        +
        + Simple class for commands that require a certain condition to be true to + run +
        +
        + +
        +   +
        + +
        +
        + This is an alternative to using the Command.create(...) interface, as it's + a little more obvious to new/non-Java-informed coders as to what's + happening, while the Command.create function may require understanding + that subsystem::method is a 'Command' because it's Runnable and Java will + promote it to a Command from a Runnable. +
        +
        + +
        +
        + Command group to run commands in parallel until all of them finish +
        +
        + +
        +
        + Command group to run commands in parallel until one particular command + completes +
        +
        + +
        +
        + Command group to run commands in parallel until *one* is finished +
        +
        + +
        +
        + A grouping command which runs a list of commands in sequence +
        +
        + +
        +
        + A command to do nothing but wait for a span of time. +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/command/package-tree.html b/docs/TechnoLib/com/technototes/library/command/package-tree.html index f02e1d6e..768ecc3f 100644 --- a/docs/TechnoLib/com/technototes/library/command/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/command/package-tree.html @@ -1,119 +1,316 @@ - + - - -com.technototes.library.command Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.command

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -

      Interface Hierarchy

      - -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.command Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.command

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +

      Interface Hierarchy

      +
        +
      • + java.lang.Runnable +
          +
        • + com.technototes.library.command.Command + (also extends java.util.function.Supplier<T>) +
        • +
        +
      • +
      • + java.util.function.Supplier<T> +
          +
        • + com.technototes.library.command.Command + (also extends java.lang.Runnable) +
        • +
        +
      • +
      +
      +
      +

      Enum Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/AxisBase.html b/docs/TechnoLib/com/technototes/library/control/AxisBase.html index 4162c835..3fa9ba6f 100644 --- a/docs/TechnoLib/com/technototes/library/control/AxisBase.html +++ b/docs/TechnoLib/com/technototes/library/control/AxisBase.html @@ -1,300 +1,809 @@ - + - - -AxisBase (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class AxisBase

      -
      -
      java.lang.Object -
      com.technototes.library.control.ButtonBase -
      com.technototes.library.control.AxisBase
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Enablable<ButtonBase>, Invertable<ButtonBase>, Periodic, BooleanSupplier, DoubleSupplier
      -
      -
      -
      Direct Known Subclasses:
      -
      CommandAxis
      -
      -
      -
      public class AxisBase -extends ButtonBase -implements DoubleSupplier, Periodic
      -
      The class to extend custom gamepad axis from
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          AxisBase

          - -
          Make a GamepadAxis with the supplier
          -
          -
          Parameters:
          -
          d - The supplier to make the axis around
          -
          -
          -
        • -
        • -
          -

          AxisBase

          -
          public AxisBase(DoubleSupplier d, - double t)
          -
          Make a GamepadAxis with the supplier and the threshold for the stick to behave as a button
          -
          -
          Parameters:
          -
          d - The supplier to make the axis around
          -
          t - The threshold
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getAsDouble

          -
          public double getAsDouble()
          -
          Returns the double from the axis
          -
          -
          Specified by:
          -
          getAsDouble in interface DoubleSupplier
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          getTriggerThreshold

          -
          public double getTriggerThreshold()
          -
          Gets the trigger threshold
          -
          -
          Returns:
          -
          The threshold
          -
          -
          -
        • -
        • -
          -

          setTriggerThreshold

          -
          public AxisBase setTriggerThreshold(double threshold)
          -
          Set threshold
          -
          -
          Parameters:
          -
          threshold - the new threshold
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + AxisBase (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class AxisBase

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.ButtonBase +
      com.technototes.library.control.AxisBase
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + CanBeEnabled<ButtonBase>, + Invertible<ButtonBase>, + Periodic, + BooleanSupplier, + DoubleSupplier +
      +
      +
      +
      Direct Known Subclasses:
      +
      + CommandAxis +
      +
      +
      +
      + public class AxisBase + extends + ButtonBase + implements + DoubleSupplier, + Periodic +
      +
      The class to extend custom gamepad axis from
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        + +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          AxisBase

          +
          + public AxisBase(DoubleSupplier d) +
          +
          Make a GamepadAxis with the supplier
          +
          +
          Parameters:
          +
          d - The supplier to make the axis around
          +
          +
          +
        • +
        • +
          +

          AxisBase

          +
          + public AxisBase(DoubleSupplier d, double t) +
          +
          + Make a GamepadAxis with the supplier and the threshold for the stick to + behave as a button +
          +
          +
          Parameters:
          +
          d - The supplier to make the axis around
          +
          t - The threshold
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getAsDouble

          +
          + public double getAsDouble() +
          +
          Returns the double from the axis
          +
          +
          Specified by:
          +
          + getAsDouble in interface DoubleSupplier +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          getTriggerThreshold

          +
          + public double getTriggerThreshold() +
          +
          Gets the trigger threshold
          +
          +
          Returns:
          +
          The threshold
          +
          +
          +
        • +
        • +
          +

          setTriggerThreshold

          +
          + public AxisBase setTriggerThreshold(double threshold) +
          +
          Set threshold
          +
          +
          Parameters:
          +
          threshold - the new threshold
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/Binding.Type.html b/docs/TechnoLib/com/technototes/library/control/Binding.Type.html index 93bd225e..d534c6d3 100644 --- a/docs/TechnoLib/com/technototes/library/control/Binding.Type.html +++ b/docs/TechnoLib/com/technototes/library/control/Binding.Type.html @@ -1,230 +1,702 @@ - + - - -Binding.Type (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class Binding.Type

      -
      -
      java.lang.Object -
      java.lang.Enum<Binding.Type> -
      com.technototes.library.control.Binding.Type
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<Binding.Type>, Constable
      -
      -
      -
      Enclosing interface:
      -
      Binding<T extends BooleanSupplier>
      -
      -
      -
      public static enum Binding.Type -extends Enum<Binding.Type>
      -
      Button type
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static Binding.Type[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static Binding.Type valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Binding.Type (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Enum Class Binding.Type

      +
      +
      + java.lang.Object +
      + java.lang.Enum<Binding.Type> +
      com.technototes.library.control.Binding.Type
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<Binding.Type>, + Constable +
      +
      +
      +
      Enclosing interface:
      +
      + Binding<T extends + BooleanSupplier> +
      +
      +
      +
      + public static enum Binding.Type + extends + Enum<Binding.Type> +
      +
      Button type
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static Binding.Type[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static Binding.Type valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/Binding.html b/docs/TechnoLib/com/technototes/library/control/Binding.html index 9883d20b..598f3046 100644 --- a/docs/TechnoLib/com/technototes/library/control/Binding.html +++ b/docs/TechnoLib/com/technototes/library/control/Binding.html @@ -1,200 +1,511 @@ - + - - -Binding (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Binding<T extends BooleanSupplier>

      -
      -
      -
      -
      All Superinterfaces:
      -
      BooleanSupplier
      -
      -
      -
      All Known Implementing Classes:
      -
      CommandBinding
      -
      -
      -
      public interface Binding<T extends BooleanSupplier> -extends BooleanSupplier
      -
      Class for bindings to extend
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        Nested Classes
        -
        -
        Modifier and Type
        -
        Interface
        -
        Description
        -
        static enum 
        - -
        -
        Button type
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default boolean
        -
        get()
        -
         
        -
        default boolean
        - -
        -
        Get this as boolean for the type
        -
        -
        default boolean
        - -
         
        - - -
         
        -
        T[]
        - -
         
        -
        -
        -
        -
        -
      • -
      -
      -
      - -
      - -
      -
      -
      - + + + Binding (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Interface Binding<T extends + BooleanSupplier> +

      +
      +
      +
      +
      All Superinterfaces:
      +
      + BooleanSupplier +
      +
      +
      +
      All Known Implementing Classes:
      +
      + CommandBinding +
      +
      +
      +
      + public interface Binding<T extends + BooleanSupplier> + extends + BooleanSupplier +
      +
      Class for bindings to extend
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Interface
        +
        Description
        +
        static enum 
        + +
        +
        Button type
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default boolean +
        +
        + get() +
        +
        +   +
        +
        + default boolean +
        +
        + get(Binding.Type type) +
        +
        +
        Get this as boolean for the type
        +
        +
        + default boolean +
        +
        + getAsBoolean() +
        +
        +   +
        + + +
        +   +
        +
        + T[] +
        +
        + getSuppliers() +
        +
        +   +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getSuppliers

          +
          + T[] getSuppliers() +
          +
          +
        • +
        • +
          +

          getDefaultType

          + +
          +
        • +
        • +
          +

          getAsBoolean

          +
          + default boolean getAsBoolean() +
          +
          +
          Specified by:
          +
          + getAsBoolean in interface BooleanSupplier +
          +
          +
          +
        • +
        • +
          +

          get

          +
          + default boolean get(Binding.Type type) +
          +
          Get this as boolean for the type
          +
          +
          Parameters:
          +
          type - The type to get boolean as
          +
          Returns:
          +
          If the binding meets the criteria
          +
          +
          +
        • +
        • +
          +

          get

          +
          + default boolean get() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/ButtonBase.html b/docs/TechnoLib/com/technototes/library/control/ButtonBase.html index fdaa6b6c..303039ae 100644 --- a/docs/TechnoLib/com/technototes/library/control/ButtonBase.html +++ b/docs/TechnoLib/com/technototes/library/control/ButtonBase.html @@ -1,440 +1,1212 @@ - + - - -ButtonBase (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ButtonBase

      -
      -
      java.lang.Object -
      com.technototes.library.control.ButtonBase
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Enablable<ButtonBase>, Invertable<ButtonBase>, Periodic, BooleanSupplier
      -
      -
      -
      Direct Known Subclasses:
      -
      AxisBase, CommandButton
      -
      -
      - -
      The class to extend custom gamepad buttons from
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ButtonBase

          - -
          Create button with boolean supplier
          -
          -
          Parameters:
          -
          b - The supplier
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          periodic

          -
          public void periodic()
          -
          Description copied from interface: Periodic
          -
          The periodic function
          -
          -
          Specified by:
          -
          periodic in interface Periodic
          -
          -
          -
        • -
        • -
          -

          isJustPressed

          -
          public boolean isJustPressed()
          -
          Returns if the button is just pressed
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isJustReleased

          -
          public boolean isJustReleased()
          -
          Returns if the button is just released
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isPressed

          -
          public boolean isPressed()
          -
          Returns if the button is pressed
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isReleased

          -
          public boolean isReleased()
          -
          Returns if the button is released
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isJustToggled

          -
          public boolean isJustToggled()
          -
          Returns if the button is just toggled
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isJustInverseToggled

          -
          public boolean isJustInverseToggled()
          -
          Returns if the button is just untoggled
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isToggled

          -
          public boolean isToggled()
          -
          Returns if the button is toggled
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          isInverseToggled

          -
          public boolean isInverseToggled()
          -
          Returns if the button is untoggled
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          getAsBoolean

          -
          public boolean getAsBoolean()
          -
          Same as isPressed()
          -
          -
          Specified by:
          -
          getAsBoolean in interface BooleanSupplier
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        • -
          -

          setInverted

          -
          public ButtonBase setInverted(boolean invert)
          -
          Description copied from interface: Invertable
          -
          Set the inversion (true -> Is inverted, false -> Not inverted)
          -
          -
          Specified by:
          -
          setInverted in interface Invertable<ButtonBase>
          -
          Parameters:
          -
          invert - Inversion value
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          getInverted

          -
          public boolean getInverted()
          -
          Description copied from interface: Invertable
          -
          Get current inversion
          -
          -
          Specified by:
          -
          getInverted in interface Invertable<ButtonBase>
          -
          Returns:
          -
          Current inversion
          -
          -
          -
        • -
        • -
          -

          setEnabled

          -
          public ButtonBase setEnabled(boolean enable)
          -
          Description copied from interface: Enablable
          -
          Set whether or not the device is enabled
          -
          -
          Specified by:
          -
          setEnabled in interface Enablable<ButtonBase>
          -
          Parameters:
          -
          enable - True for enabled, false for disabled
          -
          Returns:
          -
          The object
          -
          -
          -
        • -
        • -
          -

          isEnabled

          -
          public boolean isEnabled()
          -
          -
          Specified by:
          -
          isEnabled in interface Enablable<ButtonBase>
          -
          Returns:
          -
          Is this object enabled?
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ButtonBase (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ButtonBase

      +
      +
      + java.lang.Object +
      com.technototes.library.control.ButtonBase
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + CanBeEnabled<ButtonBase>, + Invertible<ButtonBase>, + Periodic, + BooleanSupplier +
      +
      +
      +
      Direct Known Subclasses:
      +
      + AxisBase, + CommandButton +
      +
      +
      +
      + public class ButtonBase + extends + Object + implements + BooleanSupplier, + Periodic, + Invertible<ButtonBase>, + CanBeEnabled<ButtonBase> +
      +
      The class to extend custom gamepad buttons from
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + protected + BooleanSupplier +
        + +
         
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        + +
        +
        Create button with boolean supplier
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + boolean +
        +
        + getAsBoolean() +
        +
        +
        Same as isPressed()
        +
        +
        + boolean +
        +
        + getInverted() +
        +
        +
        Get current inversion
        +
        +
        + boolean +
        +
        + isEnabled() +
        +
        +   +
        +
        + boolean +
        + +
        +
        Returns if the button is untoggled
        +
        +
        + boolean +
        + +
        +
        Returns if the button is just untoggled
        +
        +
        + boolean +
        + +
        +
        Returns if the button is just pressed
        +
        +
        + boolean +
        + +
        +
        Returns if the button is just released
        +
        +
        + boolean +
        + +
        +
        Returns if the button is just toggled
        +
        +
        + boolean +
        +
        + isPressed() +
        +
        +
        Returns if the button is pressed
        +
        +
        + boolean +
        +
        + isReleased() +
        +
        +
        Returns if the button is released
        +
        +
        + boolean +
        +
        + isToggled() +
        +
        +
        Returns if the button is toggled
        +
        +
        + void +
        +
        + periodic() +
        +
        +
        The periodic function
        +
        + +
        + setEnabled(boolean enable) +
        +
        +
        Enable or disable the button
        +
        + +
        + setInverted(boolean invert) +
        +
        +
        + Inverts the button, such that "isPressed" and "isReleased" are opposite, + along with everything that entails +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        + Methods inherited from interface com.technototes.library.general.CanBeEnabled +

        + disable, + enable, + isDisabled, + toggleEnabled +
        +
        +

        + Methods inherited from interface com.technototes.library.general.Invertible +

        + invert +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        + +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ButtonBase

          +
          + public ButtonBase(BooleanSupplier b) +
          +
          Create button with boolean supplier
          +
          +
          Parameters:
          +
          b - The supplier
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          periodic

          +
          + public void periodic() +
          +
          + Description copied from interface: Periodic +
          +
          The periodic function
          +
          +
          Specified by:
          +
          + periodic in interface Periodic +
          +
          +
          +
        • +
        • +
          +

          isJustPressed

          +
          + public boolean isJustPressed() +
          +
          Returns if the button is just pressed
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isJustReleased

          +
          + public boolean isJustReleased() +
          +
          Returns if the button is just released
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isPressed

          +
          + public boolean isPressed() +
          +
          Returns if the button is pressed
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isReleased

          +
          + public boolean isReleased() +
          +
          Returns if the button is released
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isJustToggled

          +
          + public boolean isJustToggled() +
          +
          Returns if the button is just toggled
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isJustInverseToggled

          +
          + public boolean isJustInverseToggled() +
          +
          Returns if the button is just untoggled
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isToggled

          +
          + public boolean isToggled() +
          +
          Returns if the button is toggled
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          isInverseToggled

          +
          + public boolean isInverseToggled() +
          +
          Returns if the button is untoggled
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          getAsBoolean

          +
          + public boolean getAsBoolean() +
          +
          Same as isPressed()
          +
          +
          Specified by:
          +
          + getAsBoolean in interface BooleanSupplier +
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        • +
          +

          setInverted

          +
          + public ButtonBase setInverted(boolean invert) +
          +
          + Inverts the button, such that "isPressed" and "isReleased" are opposite, + along with everything that entails +
          +
          +
          Specified by:
          +
          + setInverted in interface Invertible<ButtonBase> +
          +
          Parameters:
          +
          + invert - Inversion value (true inverts, false leaves the + values as is) +
          +
          Returns:
          +
          the ButtonBase object
          +
          +
          +
        • +
        • +
          +

          getInverted

          +
          + public boolean getInverted() +
          +
          + Description copied from interface: Invertible +
          +
          Get current inversion
          +
          +
          Specified by:
          +
          + getInverted in interface Invertible<ButtonBase> +
          +
          Returns:
          +
          + True if the button is inverted (pressed registers as released, etc...) +
          +
          +
          +
        • +
        • +
          +

          setEnabled

          +
          + public ButtonBase setEnabled(boolean enable) +
          +
          Enable or disable the button
          +
          +
          Specified by:
          +
          + setEnabled in interface CanBeEnabled<ButtonBase> +
          +
          Parameters:
          +
          enable - True for enabled, false for disabled
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          isEnabled

          +
          + public boolean isEnabled() +
          +
          +
          Specified by:
          +
          + isEnabled in interface CanBeEnabled<ButtonBase> +
          +
          Returns:
          +
          True if the button is enabled
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/CommandAxis.html b/docs/TechnoLib/com/technototes/library/control/CommandAxis.html index 88fe5f9e..279468f2 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandAxis.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandAxis.html @@ -1,314 +1,1163 @@ - + - - -CommandAxis (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandAxis

      -
      - -
      -
      -
      All Implemented Interfaces:
      -
      CommandInput<CommandAxis>, Enablable<ButtonBase>, Invertable<ButtonBase>, Periodic, BooleanSupplier, DoubleSupplier
      -
      -
      -
      public class CommandAxis -extends AxisBase -implements CommandInput<CommandAxis>
      -
      Class for command axis for the gamepad
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + CommandAxis (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandAxis

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.ButtonBase +
      + com.technototes.library.control.AxisBase +
      com.technototes.library.control.CommandAxis
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + CommandInput<CommandAxis>, + CanBeEnabled<ButtonBase>, + Invertible<ButtonBase>, + Periodic, + BooleanSupplier, + DoubleSupplier +
      +
      +
      +
      + public class CommandAxis + extends + AxisBase + implements + CommandInput<CommandAxis> +
      +
      Class for command axis for the gamepad
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/CommandBinding.html b/docs/TechnoLib/com/technototes/library/control/CommandBinding.html index aa8ae6bb..931f213a 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandBinding.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandBinding.html @@ -1,231 +1,809 @@ - + - - -CommandBinding (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandBinding

      -
      - -
      -
      -
      All Implemented Interfaces:
      -
      Binding<CommandInput>, CommandInput<CommandButton>, Enablable<ButtonBase>, Invertable<ButtonBase>, Periodic, BooleanSupplier
      -
      -
      -
      public class CommandBinding -extends CommandButton -implements Binding<CommandInput>
      -
      Command implementation of Binding
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + CommandBinding (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandBinding

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.ButtonBase +
      + com.technototes.library.control.CommandButton +
      com.technototes.library.control.CommandBinding
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Binding<CommandInput>, + CommandInput<CommandButton>, + CanBeEnabled<ButtonBase>, + Invertible<ButtonBase>, + Periodic, + BooleanSupplier +
      +
      +
      +
      + public class CommandBinding + extends + CommandButton + implements + Binding<CommandInput> +
      +
      + Command implementation of + Binding +
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/CommandButton.html b/docs/TechnoLib/com/technototes/library/control/CommandButton.html index 9947bd17..4412c78c 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandButton.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandButton.html @@ -1,252 +1,908 @@ - + - - -CommandButton (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandButton

      -
      -
      java.lang.Object -
      com.technototes.library.control.ButtonBase -
      com.technototes.library.control.CommandButton
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      CommandInput<CommandButton>, Enablable<ButtonBase>, Invertable<ButtonBase>, Periodic, BooleanSupplier
      -
      -
      -
      Direct Known Subclasses:
      -
      CommandBinding
      -
      -
      -
      public class CommandButton -extends ButtonBase -implements CommandInput<CommandButton>
      -
      Class for command buttons for gamepad
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + CommandButton (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandButton

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.ButtonBase +
      com.technototes.library.control.CommandButton
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + CommandInput<CommandButton>, + CanBeEnabled<ButtonBase>, + Invertible<ButtonBase>, + Periodic, + BooleanSupplier +
      +
      +
      +
      Direct Known Subclasses:
      +
      + CommandBinding +
      +
      +
      +
      + public class CommandButton + extends + ButtonBase + implements + CommandInput<CommandButton> +
      +
      Class for command buttons for gamepad
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html b/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html index b0b07896..40ebaee7 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandGamepad.html @@ -1,297 +1,1340 @@ - + - - -CommandGamepad (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandGamepad

      -
      -
      java.lang.Object -
      com.technototes.library.control.GamepadBase<CommandButton,CommandAxis> -
      com.technototes.library.control.CommandGamepad
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Enablable<GamepadBase<CommandButton,CommandAxis>>, Periodic
      -
      -
      - -
      Class for command gamepads that specifies class params
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + CommandGamepad (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandGamepad

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.GamepadBase<CommandButton,CommandAxis> +
      com.technototes.library.control.CommandGamepad
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + CanBeEnabled<GamepadBase<CommandButton,CommandAxis>>, + Periodic +
      +
      +
      +
      + public class CommandGamepad + extends + GamepadBase<CommandButton,CommandAxis> +
      +
      Class for command gamepads that specifies class params
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/CommandInput.html b/docs/TechnoLib/com/technototes/library/control/CommandInput.html index 81e2d43c..c4e8992e 100644 --- a/docs/TechnoLib/com/technototes/library/control/CommandInput.html +++ b/docs/TechnoLib/com/technototes/library/control/CommandInput.html @@ -1,469 +1,1484 @@ - + - - -CommandInput (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface CommandInput<T extends ButtonBase>

      -
      -
      -
      -
      Type Parameters:
      -
      T - The type of Gamepad Button
      -
      -
      -
      All Superinterfaces:
      -
      BooleanSupplier
      -
      -
      -
      All Known Implementing Classes:
      -
      CommandAxis, CommandBinding, CommandButton
      -
      -
      -
      public interface CommandInput<T extends ButtonBase> -extends BooleanSupplier
      -
      Class for gamepad-command integration
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - - -
        -
        Return instance of class parameter
        -
        -
        default T
        -
        schedule(Command command)
        -
        -
        Schedule the command to run
        -
        -
        default T
        -
        schedule(BooleanSupplier condition, - Command command)
        -
        -
        Schedule the command to run over & over
        -
        -
        default T
        -
        toggle(Command toggle, - Command itoggle)
        -
        -
        For scheduling a pair of "opposite" commands for toggling when something - is or is not being toggled
        -
        -
        default T
        - -
        -
        Schedule the command to be run when the input has only stopped being toggled
        -
        -
        default T
        - -
        -
        Schedule a command to be run once the input is pressed.
        -
        -
        default T
        -
        whenPressedReleased(Command press, - Command release)
        -
        -
        For scheduling a pair commands for when the input is pressed and released.
        -
        -
        default T
        - -
        -
        Schedule a command to be run once the input is released.
        -
        -
        default T
        - -
        -
        Schedule a command to be run when the input was just toggled - (From pressed to released, or released to pressed)
        -
        -
        default T
        - -
        -
        Schedule the command to run over & over while the input is *not* changing - It will be canceled once the input is toggled.
        -
        -
        default T
        - -
        -
        Schedule a command to be run over & over while the input is pressed, - but once it's released, the command will be cancelled.
        -
        -
        default T
        - -
        -
        Schedule a command to be run over & over while the input is pressed
        -
        -
        default T
        - -
        -
        Schedule a command to be run while the input is pressed, but only once, - and if the command takes so long that the input is released, the command - will be cancelled.
        -
        -
        default T
        - -
        -
        For scheduling a pair commands for while the input is pressed and released.
        -
        -
        default T
        - -
        -
        Schedule a command to be run over & over while the input is released, - but once it's pressed, the command will be cancelled.
        -
        -
        default T
        - -
        -
        Schdule the command to be run when the input is released, but only once!
        -
        -
        default T
        - -
        -
        Schedule the command to be run while the input is changing.
        -
        -
        -
        -
        -
        -

        Methods inherited from interface java.util.function.BooleanSupplier

        -getAsBoolean
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          whenPressed

          -
          default T whenPressed(Command command)
          -
          Schedule a command to be run once the input is pressed.
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whenReleased

          -
          default T whenReleased(Command command)
          -
          Schedule a command to be run once the input is released.
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whilePressed

          -
          default T whilePressed(Command command)
          -
          Schedule a command to be run over & over while the input is pressed, - but once it's released, the command will be cancelled.
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whileReleased

          -
          default T whileReleased(Command command)
          -
          Schedule a command to be run over & over while the input is released, - but once it's pressed, the command will be cancelled.
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whilePressedOnce

          -
          default T whilePressedOnce(Command command)
          -
          Schedule a command to be run while the input is pressed, but only once, - and if the command takes so long that the input is released, the command - will be cancelled.
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whilePressedContinuous

          -
          default T whilePressedContinuous(Command command)
          -
          Schedule a command to be run over & over while the input is pressed
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whileReleasedOnce

          -
          default T whileReleasedOnce(Command command)
          -
          Schdule the command to be run when the input is released, but only once!
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whenToggled

          -
          default T whenToggled(Command command)
          -
          Schedule a command to be run when the input was just toggled - (From pressed to released, or released to pressed)
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whenInverseToggled

          -
          default T whenInverseToggled(Command command)
          -
          Schedule the command to be run when the input has only stopped being toggled
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whileToggled

          -
          default T whileToggled(Command command)
          -
          Schedule the command to be run while the input is changing. - It will be canceled once the input is not changing. - This is questionably useful, as toggling over & over is a 'frequency' problem. - I expect this is going to behave almost the same as whenToggled...
          -
          -
          Parameters:
          -
          command - The command to be run
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whileInverseToggled

          -
          default T whileInverseToggled(Command command)
          -
          Schedule the command to run over & over while the input is *not* changing - It will be canceled once the input is toggled.
          -
          -
          Parameters:
          -
          command - The command to be run repetetively
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          getInstance

          - -
          Return instance of class parameter
          -
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          schedule

          -
          default T schedule(BooleanSupplier condition, - Command command)
          -
          Schedule the command to run over & over
          -
          -
          Parameters:
          -
          condition - The condition
          -
          command - The command to schedule
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          schedule

          -
          default T schedule(Command command)
          -
          Schedule the command to run
          -
          -
          Parameters:
          -
          command - The command
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whenPressedReleased

          -
          default T whenPressedReleased(Command press, - Command release)
          -
          For scheduling a pair commands for when the input is pressed and released. - 'press' will be executed once when the input is pressed. - 'release' will be executed once when the input is released.
          -
          -
          Parameters:
          -
          press - The command to run on Press
          -
          release - The command to run on Release
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          whilePressedReleased

          -
          default T whilePressedReleased(Command press, - Command release)
          -
          For scheduling a pair commands for while the input is pressed and released. - 'press' will be executed over & over while the input is pressed. - 'release' will be exeucted over & over while the input is released.
          -
          -
          Parameters:
          -
          press - The command to run on Press
          -
          release - The command to run on Release
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        • -
          -

          toggle

          -
          default T toggle(Command toggle, - Command itoggle)
          -
          For scheduling a pair of "opposite" commands for toggling when something - is or is not being toggled
          -
          -
          Parameters:
          -
          toggle - The command to run when the input flips states
          -
          itoggle - The command to run when the input has not changed states
          -
          Returns:
          -
          The CommandInput<T> instance
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + CommandInput (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Interface CommandInput<T extends + ButtonBase> +

      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of Gamepad Button
      +
      +
      +
      All Superinterfaces:
      +
      + BooleanSupplier +
      +
      +
      +
      All Known Implementing Classes:
      +
      + CommandAxis, + CommandBinding, + CommandButton +
      +
      +
      +
      + public interface CommandInput<T extends + ButtonBase> + extends + BooleanSupplier +
      +
      Class for gamepad-command integration
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + T +
        +
        + getInstance() +
        +
        +
        Return instance of class parameter
        +
        +
        + default + T +
        +
        + schedule(Command command) +
        +
        +
        Schedule the command to run
        +
        +
        + default + T +
        +
        + schedule(BooleanSupplier condition, + Command command) +
        +
        +
        Schedule the command to run over & over
        +
        +
        + default + T +
        +
        + toggle(Command toggle, + Command itoggle) +
        +
        +
        + For scheduling a pair of "opposite" commands for toggling when something + is or is not being toggled For non-command (method ref) usage, just use + button.whenToggled(toggled).whenInverseToggled(notToggled) +
        +
        +
        + default + T +
        +
        + whenInverseToggled(Command command) +
        +
        +
        + Schedule the command to be run when the input has only stopped being + toggled +
        +
        +
        + default + T +
        +
        + whenPressed(Command command) +
        +
        +
        + Schedule a command to be run once the input is pressed. +
        +
        +
        + default + T +
        +
        + whenPressedReleased(Command press, + Command release) +
        +
        +
        + For scheduling a pair commands for when the input is pressed and + released. +
        +
        +
        + default + T +
        +
        + whenReleased(Command command) +
        +
        +
        + Schedule a command to be run once the input is released. +
        +
        +
        + default + T +
        +
        + whenToggled(Command command) +
        +
        +
        + Schedule a command to be run when the input was just toggled (From + pressed to released, or released to pressed) +
        +
        +
        + default + T +
        + +
        +
        + Schedule the command to run over & over while the input is *not* + changing It will be canceled once the input is toggled. +
        +
        +
        + default + T +
        +
        + whilePressed(Command command) +
        +
        +
        + Schedule a command to be run over & over while the input is pressed, + but once it's released, the command will be cancelled. +
        +
        +
        + default + T +
        + +
        +
        + Schedule a command to be run over & over while the input is pressed +
        +
        +
        + default + T +
        +
        + whilePressedOnce(Command command) +
        +
        +
        + Schedule a command to be run while the input is pressed, but only once, + and if the command takes so long that the input is released, the command + will be cancelled. +
        +
        +
        + default + T +
        +
        + whilePressedReleased(Command press, + Command release) +
        +
        +
        + For scheduling a pair commands for while the input is pressed and + released. +
        +
        +
        + default + T +
        +
        + whileReleased(Command command) +
        +
        +
        + Schedule a command to be run over & over while the input is + released, but once it's pressed, the command will be cancelled. +
        +
        +
        + default + T +
        +
        + whileReleasedOnce(Command command) +
        +
        +
        + Schedule the command to be run when the input is released, but only + once! +
        +
        +
        + default + T +
        +
        + whileToggled(Command command) +
        +
        +
        + Schedule the command to be run while the input is changing. +
        +
        +
        +
        +
        +
        +

        + Methods inherited from interface java.util.function.BooleanSupplier +

        + getAsBoolean +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          whenPressed

          +
          + default T whenPressed(Command command) +
          +
          + Schedule a command to be run once the input is pressed. +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whenReleased

          +
          + default T whenReleased(Command command) +
          +
          + Schedule a command to be run once the input is released. +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whilePressed

          +
          + default T whilePressed(Command command) +
          +
          + Schedule a command to be run over & over while the input is pressed, + but once it's released, the command will be cancelled. +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whileReleased

          +
          + default T whileReleased(Command command) +
          +
          + Schedule a command to be run over & over while the input is released, + but once it's pressed, the command will be cancelled. +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whilePressedOnce

          +
          + default T whilePressedOnce(Command command) +
          +
          + Schedule a command to be run while the input is pressed, but only once, + and if the command takes so long that the input is released, the command + will be cancelled. +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whilePressedContinuous

          +
          + default T whilePressedContinuous(Command command) +
          +
          + Schedule a command to be run over & over while the input is pressed +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whileReleasedOnce

          +
          + default T whileReleasedOnce(Command command) +
          +
          + Schedule the command to be run when the input is released, but only once! +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whenToggled

          +
          + default T whenToggled(Command command) +
          +
          + Schedule a command to be run when the input was just toggled (From pressed + to released, or released to pressed) +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whenInverseToggled

          +
          + default T whenInverseToggled(Command command) +
          +
          + Schedule the command to be run when the input has only stopped being + toggled +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whileToggled

          +
          + default T whileToggled(Command command) +
          +
          + Schedule the command to be run while the input is changing. It will be + canceled once the input is not changing. This is questionably useful, as + toggling over & over is a 'frequency' problem. I expect this is going + to behave almost the same as whenToggled... +
          +
          +
          Parameters:
          +
          command - The command to be run
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whileInverseToggled

          +
          + default T whileInverseToggled(Command command) +
          +
          + Schedule the command to run over & over while the input is *not* + changing It will be canceled once the input is toggled. +
          +
          +
          Parameters:
          +
          command - The command to be run repetetively
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          getInstance

          +
          + T getInstance() +
          +
          Return instance of class parameter
          +
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          schedule

          +
          + default T schedule(BooleanSupplier condition, + Command command) +
          +
          Schedule the command to run over & over
          +
          +
          Parameters:
          +
          condition - The condition
          +
          command - The command to schedule
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          schedule

          +
          + default T schedule(Command command) +
          +
          Schedule the command to run
          +
          +
          Parameters:
          +
          command - The command
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whenPressedReleased

          +
          + default T whenPressedReleased(Command press, + Command release) +
          +
          + For scheduling a pair commands for when the input is pressed and released. + 'press' will be executed once when the input is pressed. 'release' will be + executed once when the input is released. You could just use + button.whenPressed(press).whenRelease(release) +
          +
          +
          Parameters:
          +
          press - The command to run on Press
          +
          release - The command to run on Release
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          whilePressedReleased

          +
          + default T whilePressedReleased(Command press, + Command release) +
          +
          + For scheduling a pair commands for while the input is pressed and + released. 'press' will be executed over & over while the input is + pressed. 'release' will be executed over & over while the input is + released. Just use button.whilePressed(...).whileReleased(...) +
          +
          +
          Parameters:
          +
          press - The command to run on Press
          +
          release - The command to run on Release
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        • +
          +

          toggle

          +
          + default T toggle(Command toggle, + Command itoggle) +
          +
          + For scheduling a pair of "opposite" commands for toggling when something + is or is not being toggled For non-command (method ref) usage, just use + button.whenToggled(toggled).whenInverseToggled(notToggled) +
          +
          +
          Parameters:
          +
          + toggle - The command to run when the input flips states +
          +
          + itoggle - The command to run when the input has not changed + states +
          +
          Returns:
          +
          The CommandInput<T> instance
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/GamepadBase.Axis.html b/docs/TechnoLib/com/technototes/library/control/GamepadBase.Axis.html index f5dc3482..d547def1 100644 --- a/docs/TechnoLib/com/technototes/library/control/GamepadBase.Axis.html +++ b/docs/TechnoLib/com/technototes/library/control/GamepadBase.Axis.html @@ -1,272 +1,803 @@ - + - - -GamepadBase.Axis (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class GamepadBase.Axis

      -
      -
      java.lang.Object -
      java.lang.Enum<GamepadBase.Axis> -
      com.technototes.library.control.GamepadBase.Axis
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<GamepadBase.Axis>, Constable
      -
      -
      -
      Enclosing class:
      -
      GamepadBase<T extends ButtonBase,U extends AxisBase>
      -
      -
      -
      public static enum GamepadBase.Axis -extends Enum<GamepadBase.Axis>
      -
      Axis enum for all axis on gamepad
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static GamepadBase.Axis[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static GamepadBase.Axis valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + GamepadBase.Axis (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Enum Class GamepadBase.Axis

      +
      +
      + java.lang.Object +
      + java.lang.Enum<GamepadBase.Axis> +
      com.technototes.library.control.GamepadBase.Axis
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<GamepadBase.Axis>, + Constable +
      +
      +
      +
      Enclosing class:
      +
      + GamepadBase<T + extends + ButtonBase,U + extends + AxisBase> +
      +
      +
      +
      + public static enum GamepadBase.Axis + extends + Enum<GamepadBase.Axis> +
      +
      Axis enum for all axis on gamepad
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static GamepadBase.Axis[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static GamepadBase.Axis valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html b/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html index b6feb1bf..74d15039 100644 --- a/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html +++ b/docs/TechnoLib/com/technototes/library/control/GamepadBase.Button.html @@ -1,382 +1,1077 @@ - + - - -GamepadBase.Button (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class GamepadBase.Button

      -
      -
      java.lang.Object -
      java.lang.Enum<GamepadBase.Button> -
      com.technototes.library.control.GamepadBase.Button
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<GamepadBase.Button>, Constable
      -
      -
      -
      Enclosing class:
      -
      GamepadBase<T extends ButtonBase,U extends AxisBase>
      -
      -
      -
      public static enum GamepadBase.Button -extends Enum<GamepadBase.Button>
      -
      Button enum for all buttons on gamepad
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + GamepadBase.Button (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Enum Class GamepadBase.Button +

      +
      +
      + java.lang.Object +
      + java.lang.Enum<GamepadBase.Button> +
      com.technototes.library.control.GamepadBase.Button
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<GamepadBase.Button>, + Constable +
      +
      +
      +
      Enclosing class:
      +
      + GamepadBase<T + extends + ButtonBase,U + extends + AxisBase> +
      +
      +
      +
      + public static enum GamepadBase.Button + extends + Enum<GamepadBase.Button> +
      +
      Button enum for all buttons on gamepad
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/GamepadBase.html b/docs/TechnoLib/com/technototes/library/control/GamepadBase.html index ba921b46..8ee84e75 100644 --- a/docs/TechnoLib/com/technototes/library/control/GamepadBase.html +++ b/docs/TechnoLib/com/technototes/library/control/GamepadBase.html @@ -1,916 +1,2832 @@ - + - - -GamepadBase (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class GamepadBase<T extends ButtonBase,U extends AxisBase>

      -
      -
      java.lang.Object -
      com.technototes.library.control.GamepadBase<T,U>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The class for the button components on the gamepad
      -
      U - The class for the axis components on the gamepad
      -
      -
      -
      All Implemented Interfaces:
      -
      Enablable<GamepadBase<T,U>>, Periodic
      -
      -
      -
      Direct Known Subclasses:
      -
      CommandGamepad
      -
      -
      -
      public class GamepadBase<T extends ButtonBase,U extends AxisBase> -extends Object -implements Periodic, Enablable<GamepadBase<T,U>>
      -
      A class to extend gamepads from, it does the internal processing for you.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          GamepadBase

          -
          public GamepadBase(com.qualcomm.robotcore.hardware.Gamepad g, - Class<T> bClass, - Class<U> aClass)
          -
          Creates a gamepad with these parameters
          -
          -
          Parameters:
          -
          g - The gamepad to base around
          -
          bClass - The class object passed for the button components (Should be the same as the one used for the class parameter T)
          -
          aClass - The class object passed for the axis components (Should be the same as the one used for the class parameter U)
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getButton

          - -
          Returns a button
          -
          -
          Parameters:
          -
          bu - The enum to choose which gamepad button to return
          -
          Returns:
          -
          The gamepad button that you choose with the enum
          -
          -
          -
        • -
        • -
          -

          getAxis

          -
          public U getAxis(GamepadBase.Axis as)
          -
          Returns an axis
          -
          -
          Parameters:
          -
          as - The enum for the axis that is wanted to be returned
          -
          Returns:
          -
          The chosen axis
          -
          -
          -
        • -
        • -
          -

          getButtonAsBoolean

          - -
          Returns a button as boolean (same as isPressed)
          -
          -
          Parameters:
          -
          bu - The enum to specify which button to get as boolean
          -
          Returns:
          -
          The chosen button as boolean
          -
          -
          -
        • -
        • -
          -

          getAxisAsDouble

          -
          public double getAxisAsDouble(GamepadBase.Axis as)
          -
          Returns an axis as double
          -
          -
          Parameters:
          -
          as - The enum to specify which axis to get as double
          -
          Returns:
          -
          The chosen axis as double
          -
          -
          -
        • -
        • -
          -

          getAxisAsBoolean

          -
          public boolean getAxisAsBoolean(GamepadBase.Axis as)
          -
          Returns an axis as boolean
          -
          -
          Parameters:
          -
          as - The enum to specify which axis to get as boolean
          -
          Returns:
          -
          The chosen axis as boolean
          -
          -
          -
        • -
        • -
          -

          getLeftStick

          - -
          Returns the left stick
          -
          -
          Returns:
          -
          The left stick on the gamepad
          -
          -
          -
        • -
        • -
          -

          getRightStick

          - -
          Returns the right stick
          -
          -
          Returns:
          -
          The right stick on the gamepad
          -
          -
          -
        • -
        • -
          -

          getDpad

          -
          public GamepadDpad<T> getDpad()
          -
          Returns the Dpad object
          -
          -
          Returns:
          -
          The dpad
          -
          -
          -
        • -
        • -
          -

          periodic

          -
          public void periodic()
          -
          Run the periodic functions for the controller (if the controller is enabled)
          -
          -
          Specified by:
          -
          periodic in interface Periodic
          -
          -
          -
        • -
        • -
          -

          getGamepad

          -
          public com.qualcomm.robotcore.hardware.Gamepad getGamepad()
          -
          Returns the encapsulated gamepad
          -
          -
          Returns:
          -
          The gamepad
          -
          -
          -
        • -
        • -
          -

          buttonInstance

          - -
          Great a ButtonBase type from the given BooleanSupplier
          -
          -
          Parameters:
          -
          b - the function to wrap in a ButtonBase
          -
          Returns:
          -
          the T (extends ButtonBase) which the ButtonBase will wrap
          -
          Throws:
          -
          InstantiationException - Couldn't create the target type
          -
          IllegalAccessException - Couldn't access the constructor
          -
          NoSuchMethodException - Couldn't find a constructor with a BooleanSupplier parameter
          -
          InvocationTargetException - Couldn't invoke the constructor for other reasons
          -
          -
          -
        • -
        • -
          -

          axisInstance

          - -
          Returns the U (extended from AxisBase) type wrapped around a simple DoubleSupplier
          -
          -
          Parameters:
          -
          d - The function to call
          -
          Returns:
          -
          A U (of AxisBase type) that's wrapped around the DoubleSupplier d provided
          -
          Throws:
          -
          InstantiationException - Couldn't create the target type
          -
          IllegalAccessException - Couldn't access the constructor
          -
          NoSuchMethodException - Couldn't find a constructor with a BooleanSupplier parameter
          -
          InvocationTargetException - Couldn't invoke the constructor for other reasons
          -
          -
          -
        • -
        • -
          -

          rumbleBlips

          -
          public void rumbleBlips(int blips)
          -
          Run a bunch of "RumbleBlips"
          -
          -
          Parameters:
          -
          blips - The number of blips
          -
          -
          -
        • -
        • -
          -

          rumbleBlip

          -
          public void rumbleBlip()
          -
          Run a single "RumbleBlip"
          -
          -
        • -
        • -
          -

          rumble

          -
          public void rumble(double seconds)
          -
          Rumble the gamepad for 'seconds'
          -
          -
          Parameters:
          -
          seconds - The number of (fractional) seconds to rumble for
          -
          -
          -
        • -
        • -
          -

          isRumbling

          -
          public boolean isRumbling()
          -
          Is the gamepad rumbling
          -
          -
          Returns:
          -
          true if the gamepad is rumbling
          -
          -
          -
        • -
        • -
          -

          stopRumble

          -
          public void stopRumble()
          -
          Stop rumbling on the gamepad
          -
          -
        • -
        • -
          -

          rumble

          -
          public void rumble()
          -
          Rumble for about 1/8th of a second
          -
          -
        • -
        • -
          -

          setEnabled

          -
          public GamepadBase<T,U> setEnabled(boolean enable)
          -
          Enable/disable the gamepad (and all potentially bound commands!)
          -
          -
          Specified by:
          -
          setEnabled in interface Enablable<T extends ButtonBase>
          -
          Parameters:
          -
          enable - True for enabled, false for disabled
          -
          Returns:
          -
          the Gamepad (for chaining)
          -
          -
          -
        • -
        • -
          -

          isEnabled

          -
          public boolean isEnabled()
          -
          Is the gamepad (and all bound commands from it!) enabled?
          -
          -
          Specified by:
          -
          isEnabled in interface Enablable<T extends ButtonBase>
          -
          Returns:
          -
          true if it's enabled, false if it's disabled
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + GamepadBase (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class GamepadBase<T extends + ButtonBase,U extends + AxisBase> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.GamepadBase<T,U> +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The class for the button components on the gamepad
      +
      U - The class for the axis components on the gamepad
      +
      +
      +
      All Implemented Interfaces:
      +
      + CanBeEnabled<GamepadBase<T,U>>, + Periodic +
      +
      +
      +
      Direct Known Subclasses:
      +
      + CommandGamepad +
      +
      +
      +
      + public class GamepadBase<T extends + ButtonBase,U extends + AxisBase> + extends + Object + implements + Periodic, + CanBeEnabled<GamepadBase<T,U>> +
      +
      + A class to extend gamepads from, it does the internal processing for you. +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static enum 
        + +
        +
        Axis enum for all axis on gamepad
        +
        +
        static enum 
        + +
        +
        Button enum for all buttons on gamepad
        +
        +
        +
        +
      • + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + GamepadDpad<T> +
        +
        + dpad +
        +
        +
        The dpad object
        +
        +
        + T +
        +
        + dpadDown +
        +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        +
        + T +
        +
        + dpadLeft +
        +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        +
        + T +
        +
        + dpadRight +
        +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        +
        + T +
        +
        + dpadUp +
        +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        +
        + T +
        + +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        + +
        + leftStick +
        +
        +
        The stick objects
        +
        +
        + T +
        + +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        +
        + U +
        + +
        +
        The axis objects
        +
        +
        + U +
        + +
        +
        The axis objects
        +
        +
        + U +
        + +
        +
        The axis objects
        +
        +
        + T +
        +
        + ps_circle +
        +
        +
        The button objects for the PS4 game controller
        +
        +
        + T +
        +
        + ps_cross +
        +
        +
        The button objects for the PS4 game controller
        +
        +
        + T +
        + +
        +
        The button objects for the PS4 game controller
        +
        +
        + T +
        +
        + ps_share +
        +
        +
        The button objects for the PS4 game controller
        +
        +
        + T +
        +
        + ps_square +
        +
        +
        The button objects for the PS4 game controller
        +
        +
        + T +
        + +
        +
        The button objects for the PS4 game controller
        +
        +
        + T +
        + +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        + + +
        +
        The stick objects
        +
        +
        + T +
        + +
        +
        + The button objects for both the XBox and PS4 controllers +
        +
        +
        + U +
        + +
        +
        The axis objects
        +
        +
        + U +
        + +
        +
        The axis objects
        +
        +
        + U +
        + +
        +
        The axis objects
        +
        +
        + T +
        +
        + xbox_a +
        +
        +
        The button objects for the XBox game controller
        +
        +
        + T +
        +
        + xbox_b +
        +
        +
        The button objects for the XBox game controller
        +
        +
        + T +
        +
        + xbox_back +
        +
        +
        The button objects for the XBox game controller
        +
        +
        + T +
        + +
        +
        The button objects for the XBox game controller
        +
        +
        + T +
        +
        + xbox_x +
        +
        +
        The button objects for the XBox game controller
        +
        +
        + T +
        +
        + xbox_y +
        +
        +
        The button objects for the XBox game controller
        +
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + GamepadBase(com.qualcomm.robotcore.hardware.Gamepad g, + Class<T> bClass, + Class<U> aClass) +
        +
        +
        Creates a gamepad with these parameters
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + U +
        + +
        +
        + Returns the U (extended from AxisBase) type wrapped around a simple + DoubleSupplier +
        +
        +
        + T +
        + +
        +
        + Great a ButtonBase type from the given BooleanSupplier +
        +
        +
        + U +
        + +
        +
        Returns an axis
        +
        +
        + boolean +
        + +
        +
        Returns an axis as boolean
        +
        +
        + double +
        + +
        +
        Returns an axis as double
        +
        +
        + T +
        + +
        +
        Returns a button
        +
        +
        + boolean +
        + +
        +
        Returns a button as boolean (same as isPressed)
        +
        +
        + GamepadDpad<T> +
        +
        + getDpad() +
        +
        +
        Returns the Dpad object
        +
        +
        + com.qualcomm.robotcore.hardware.Gamepad +
        +
        + getGamepad() +
        +
        +
        Returns the encapsulated gamepad
        +
        + +
        + getLeftStick() +
        +
        +
        Returns the left stick
        +
        + + +
        +
        Returns the right stick
        +
        +
        + boolean +
        +
        + isEnabled() +
        +
        +
        + Is the gamepad (and all bound commands from it!) enabled? +
        +
        +
        + boolean +
        +
        + isRumbling() +
        +
        +
        Is the gamepad rumbling
        +
        +
        + void +
        +
        + periodic() +
        +
        +
        + Run the periodic functions for the controller (if the controller is + enabled) +
        +
        +
        + void +
        +
        + rumble() +
        +
        +
        Rumble for about 1/8th of a second
        +
        +
        + void +
        +
        + rumble(double seconds) +
        +
        +
        Rumble the gamepad for 'seconds'
        +
        +
        + void +
        +
        + rumbleBlip() +
        +
        +
        Run a single "RumbleBlip"
        +
        +
        + void +
        +
        + rumbleBlips(int blips) +
        +
        +
        Run a bunch of "RumbleBlips"
        +
        +
        + GamepadBase<T,U> +
        +
        + setEnabled(boolean enable) +
        +
        +
        + Enable/disable the gamepad (and all potentially bound commands!) +
        +
        +
        + void +
        +
        + stopRumble() +
        +
        +
        Stop rumbling on the gamepad
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        + Methods inherited from interface com.technototes.library.general.CanBeEnabled +

        + disable, + enable, + isDisabled, + toggleEnabled +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          xbox_a

          +
          + public T + extends + ButtonBase xbox_a +
          +
          The button objects for the XBox game controller
          +
          +
        • +
        • +
          +

          xbox_b

          +
          + public T + extends + ButtonBase xbox_b +
          +
          The button objects for the XBox game controller
          +
          +
        • +
        • +
          +

          xbox_x

          +
          + public T + extends + ButtonBase xbox_x +
          +
          The button objects for the XBox game controller
          +
          +
        • +
        • +
          +

          xbox_y

          +
          + public T + extends + ButtonBase xbox_y +
          +
          The button objects for the XBox game controller
          +
          +
        • +
        • +
          +

          xbox_start

          +
          + public T + extends + ButtonBase xbox_start +
          +
          The button objects for the XBox game controller
          +
          +
        • +
        • +
          +

          xbox_back

          +
          + public T + extends + ButtonBase xbox_back +
          +
          The button objects for the XBox game controller
          +
          +
        • +
        • +
          +

          ps_cross

          +
          + public T + extends + ButtonBase ps_cross +
          +
          The button objects for the PS4 game controller
          +
          +
        • +
        • +
          +

          ps_circle

          +
          + public T + extends + ButtonBase ps_circle +
          +
          The button objects for the PS4 game controller
          +
          +
        • +
        • +
          +

          ps_square

          +
          + public T + extends + ButtonBase ps_square +
          +
          The button objects for the PS4 game controller
          +
          +
        • +
        • +
          +

          ps_triangle

          +
          + public T + extends + ButtonBase ps_triangle +
          +
          The button objects for the PS4 game controller
          +
          +
        • +
        • +
          +

          ps_share

          +
          + public T + extends + ButtonBase ps_share +
          +
          The button objects for the PS4 game controller
          +
          +
        • +
        • +
          +

          ps_options

          +
          + public T + extends + ButtonBase ps_options +
          +
          The button objects for the PS4 game controller
          +
          +
        • +
        • +
          +

          leftBumper

          +
          + public T + extends + ButtonBase leftBumper +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          rightBumper

          +
          + public T + extends + ButtonBase rightBumper +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          dpadUp

          +
          + public T + extends + ButtonBase dpadUp +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          dpadDown

          +
          + public T + extends + ButtonBase dpadDown +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          dpadLeft

          +
          + public T + extends + ButtonBase dpadLeft +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          dpadRight

          +
          + public T + extends + ButtonBase dpadRight +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          leftStickButton

          +
          + public T + extends + ButtonBase leftStickButton +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          rightStickButton

          +
          + public T + extends + ButtonBase rightStickButton +
          +
          + The button objects for both the XBox and PS4 controllers +
          +
          +
        • +
        • +
          +

          leftTrigger

          +
          + public U + extends + AxisBase leftTrigger +
          +
          The axis objects
          +
          +
        • +
        • +
          +

          rightTrigger

          +
          + public U + extends + AxisBase rightTrigger +
          +
          The axis objects
          +
          +
        • +
        • +
          +

          leftStickX

          +
          + public U + extends + AxisBase leftStickX +
          +
          The axis objects
          +
          +
        • +
        • +
          +

          leftStickY

          +
          + public U + extends + AxisBase leftStickY +
          +
          The axis objects
          +
          +
        • +
        • +
          +

          rightStickX

          +
          + public U + extends + AxisBase rightStickX +
          +
          The axis objects
          +
          +
        • +
        • +
          +

          rightStickY

          +
          + public U + extends + AxisBase rightStickY +
          +
          The axis objects
          +
          +
        • +
        • +
          +

          leftStick

          +
          + public GamepadStick<U + extends + AxisBase,T + extends + ButtonBase> leftStick +
          +
          The stick objects
          +
          +
        • +
        • +
          +

          rightStick

          +
          + public GamepadStick<U + extends + AxisBase,T + extends + ButtonBase> rightStick +
          +
          The stick objects
          +
          +
        • +
        • +
          +

          dpad

          +
          + public GamepadDpad<T + extends + ButtonBase> dpad +
          +
          The dpad object
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          GamepadBase

          +
          + public GamepadBase(com.qualcomm.robotcore.hardware.Gamepad g, + Class<T> bClass, + Class<U> aClass) +
          +
          Creates a gamepad with these parameters
          +
          +
          Parameters:
          +
          g - The gamepad to base around
          +
          + bClass - The class object passed for the button components + (Should be the same as the one used for the class parameter T) +
          +
          + aClass - The class object passed for the axis components + (Should be the same as the one used for the class parameter U) +
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getButton

          +
          + public T getButton(GamepadBase.Button bu) +
          +
          Returns a button
          +
          +
          Parameters:
          +
          + bu - The enum to choose which gamepad button to return +
          +
          Returns:
          +
          The gamepad button that you choose with the enum
          +
          +
          +
        • +
        • +
          +

          getAxis

          +
          + public U getAxis(GamepadBase.Axis as) +
          +
          Returns an axis
          +
          +
          Parameters:
          +
          + as - The enum for the axis that is wanted to be returned +
          +
          Returns:
          +
          The chosen axis
          +
          +
          +
        • +
        • +
          +

          getButtonAsBoolean

          +
          + public boolean getButtonAsBoolean(GamepadBase.Button bu) +
          +
          Returns a button as boolean (same as isPressed)
          +
          +
          Parameters:
          +
          + bu - The enum to specify which button to get as boolean +
          +
          Returns:
          +
          The chosen button as boolean
          +
          +
          +
        • +
        • +
          +

          getAxisAsDouble

          +
          + public double getAxisAsDouble(GamepadBase.Axis as) +
          +
          Returns an axis as double
          +
          +
          Parameters:
          +
          as - The enum to specify which axis to get as double
          +
          Returns:
          +
          The chosen axis as double
          +
          +
          +
        • +
        • +
          +

          getAxisAsBoolean

          +
          + public boolean getAxisAsBoolean(GamepadBase.Axis as) +
          +
          Returns an axis as boolean
          +
          +
          Parameters:
          +
          + as - The enum to specify which axis to get as boolean +
          +
          Returns:
          +
          The chosen axis as boolean
          +
          +
          +
        • +
        • +
          +

          getLeftStick

          +
          + public GamepadStick<U,T> getLeftStick() +
          +
          Returns the left stick
          +
          +
          Returns:
          +
          The left stick on the gamepad
          +
          +
          +
        • +
        • +
          +

          getRightStick

          +
          + public GamepadStick<U,T> getRightStick() +
          +
          Returns the right stick
          +
          +
          Returns:
          +
          The right stick on the gamepad
          +
          +
          +
        • +
        • +
          +

          getDpad

          +
          + public GamepadDpad<T> getDpad() +
          +
          Returns the Dpad object
          +
          +
          Returns:
          +
          The dpad
          +
          +
          +
        • +
        • +
          +

          periodic

          +
          + public void periodic() +
          +
          + Run the periodic functions for the controller (if the controller is + enabled) +
          +
          +
          Specified by:
          +
          + periodic in interface Periodic +
          +
          +
          +
        • +
        • +
          +

          getGamepad

          +
          + public com.qualcomm.robotcore.hardware.Gamepad getGamepad() +
          +
          Returns the encapsulated gamepad
          +
          +
          Returns:
          +
          The gamepad
          +
          +
          +
        • +
        • +
          +

          buttonInstance

          + +
          + Great a ButtonBase type from the given BooleanSupplier +
          +
          +
          Parameters:
          +
          b - the function to wrap in a ButtonBase
          +
          Returns:
          +
          the T (extends ButtonBase) which the ButtonBase will wrap
          +
          Throws:
          +
          + InstantiationException + - Couldn't create the target type +
          +
          + IllegalAccessException + - Couldn't access the constructor +
          +
          + NoSuchMethodException + - Couldn't find a constructor with a BooleanSupplier parameter +
          +
          + InvocationTargetException + - Couldn't invoke the constructor for other reasons +
          +
          +
          +
        • +
        • +
          +

          axisInstance

          + +
          + Returns the U (extended from AxisBase) type wrapped around a simple + DoubleSupplier +
          +
          +
          Parameters:
          +
          d - The function to call
          +
          Returns:
          +
          + A U (of AxisBase type) that's wrapped around the DoubleSupplier d + provided +
          +
          Throws:
          +
          + InstantiationException + - Couldn't create the target type +
          +
          + IllegalAccessException + - Couldn't access the constructor +
          +
          + NoSuchMethodException + - Couldn't find a constructor with a BooleanSupplier parameter +
          +
          + InvocationTargetException + - Couldn't invoke the constructor for other reasons +
          +
          +
          +
        • +
        • +
          +

          rumbleBlips

          +
          + public void rumbleBlips(int blips) +
          +
          Run a bunch of "RumbleBlips"
          +
          +
          Parameters:
          +
          blips - The number of blips
          +
          +
          +
        • +
        • +
          +

          rumbleBlip

          +
          + public void rumbleBlip() +
          +
          Run a single "RumbleBlip"
          +
          +
        • +
        • +
          +

          rumble

          +
          + public void rumble(double seconds) +
          +
          Rumble the gamepad for 'seconds'
          +
          +
          Parameters:
          +
          + seconds - The number of (fractional) seconds to rumble for +
          +
          +
          +
        • +
        • +
          +

          isRumbling

          +
          + public boolean isRumbling() +
          +
          Is the gamepad rumbling
          +
          +
          Returns:
          +
          true if the gamepad is rumbling
          +
          +
          +
        • +
        • +
          +

          stopRumble

          +
          + public void stopRumble() +
          +
          Stop rumbling on the gamepad
          +
          +
        • +
        • +
          +

          rumble

          +
          + public void rumble() +
          +
          Rumble for about 1/8th of a second
          +
          +
        • +
        • +
          +

          setEnabled

          +
          + public GamepadBase<T,U> setEnabled(boolean enable) +
          +
          + Enable/disable the gamepad (and all potentially bound commands!) +
          +
          +
          Specified by:
          +
          + setEnabled in interface CanBeEnabled<T + extends + ButtonBase> +
          +
          Parameters:
          +
          enable - True for enabled, false for disabled
          +
          Returns:
          +
          the Gamepad (for chaining)
          +
          +
          +
        • +
        • +
          +

          isEnabled

          +
          + public boolean isEnabled() +
          +
          + Is the gamepad (and all bound commands from it!) enabled? +
          +
          +
          Specified by:
          +
          + isEnabled in interface CanBeEnabled<T + extends + ButtonBase> +
          +
          Returns:
          +
          true if it's enabled, false if it's disabled
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/GamepadDpad.html b/docs/TechnoLib/com/technototes/library/control/GamepadDpad.html index fb58ff7f..ca9a3c2f 100644 --- a/docs/TechnoLib/com/technototes/library/control/GamepadDpad.html +++ b/docs/TechnoLib/com/technototes/library/control/GamepadDpad.html @@ -1,338 +1,899 @@ - + - - -GamepadDpad (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class GamepadDpad<T extends ButtonBase>

      -
      -
      java.lang.Object -
      com.technototes.library.control.GamepadDpad<T>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The gamepad button class
      -
      -
      -
      All Implemented Interfaces:
      -
      Stick, Enablable<Stick>, Periodic
      -
      -
      -
      public class GamepadDpad<T extends ButtonBase> -extends Object -implements Stick
      -
      A class for dpads
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          up

          -
          public T extends ButtonBase up
          -
          The objects for the dpad buttons
          -
          -
        • -
        • -
          -

          down

          -
          public T extends ButtonBase down
          -
          The objects for the dpad buttons
          -
          -
        • -
        • -
          -

          left

          -
          public T extends ButtonBase left
          -
          The objects for the dpad buttons
          -
          -
        • -
        • - -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          GamepadDpad

          -
          public GamepadDpad(T u, - T d, - T l, - T r)
          -
          Create dpad with 4 buttons
          -
          -
          Parameters:
          -
          u - Up button
          -
          d - Down button
          -
          l - Left button
          -
          r - Right button
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getXAxis

          -
          public double getXAxis()
          -
          Return x axis double (treating dpad as stick)
          -
          -
          Specified by:
          -
          getXAxis in interface Stick
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          getYAxis

          -
          public double getYAxis()
          -
          Return y axis double (treating dpad as stick)
          -
          -
          Specified by:
          -
          getYAxis in interface Stick
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          periodic

          -
          public void periodic()
          -
          Description copied from interface: Periodic
          -
          The periodic function
          -
          -
          Specified by:
          -
          periodic in interface Periodic
          -
          -
          -
        • -
        • -
          -

          setEnabled

          -
          public GamepadDpad<T> setEnabled(boolean enable)
          -
          Description copied from interface: Enablable
          -
          Set whether or not the device is enabled
          -
          -
          Specified by:
          -
          setEnabled in interface Enablable<T extends ButtonBase>
          -
          Parameters:
          -
          enable - True for enabled, false for disabled
          -
          Returns:
          -
          The object
          -
          -
          -
        • -
        • -
          -

          isEnabled

          -
          public boolean isEnabled()
          -
          -
          Specified by:
          -
          isEnabled in interface Enablable<T extends ButtonBase>
          -
          Returns:
          -
          Is this object enabled?
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + GamepadDpad (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class GamepadDpad<T extends + ButtonBase> +

      +
      +
      + java.lang.Object +
      com.technototes.library.control.GamepadDpad<T>
      +
      +
      +
      +
      Type Parameters:
      +
      T - The gamepad button class
      +
      +
      +
      All Implemented Interfaces:
      +
      + Stick, + CanBeEnabled<Stick>, + Periodic +
      +
      +
      +
      + public class GamepadDpad<T extends + ButtonBase> + extends + Object + implements + Stick +
      +
      A class for dpads
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + T +
        +
        + down +
        +
        +
        The objects for the dpad buttons
        +
        +
        + T +
        +
        + left +
        +
        +
        The objects for the dpad buttons
        +
        +
        + T +
        +
        + right +
        +
        +
        The objects for the dpad buttons
        +
        +
        + T +
        +
        + up +
        +
        +
        The objects for the dpad buttons
        +
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + GamepadDpad(T u, + T d, + T l, + T r) +
        +
        +
        Create dpad with 4 buttons
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + double +
        +
        + getXAxis() +
        +
        +
        Return x axis double (treating dpad as stick)
        +
        +
        + double +
        +
        + getYAxis() +
        +
        +
        Return y axis double (treating dpad as stick)
        +
        +
        + boolean +
        +
        + isEnabled() +
        +
        +   +
        +
        + void +
        +
        + periodic() +
        +
        +
        The periodic function
        +
        +
        + GamepadDpad<T> +
        +
        + setEnabled(boolean enable) +
        +
        +
        Set whether or not the device is enabled
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        + Methods inherited from interface com.technototes.library.general.CanBeEnabled +

        + disable, + enable, + isDisabled, + toggleEnabled +
        +
        +

        + Methods inherited from interface com.technototes.library.control.Stick +

        + getAngle, + getDistanceFromCenter, + getXSupplier, + getYSupplier +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          up

          +
          + public T + extends + ButtonBase up +
          +
          The objects for the dpad buttons
          +
          +
        • +
        • +
          +

          down

          +
          + public T + extends + ButtonBase down +
          +
          The objects for the dpad buttons
          +
          +
        • +
        • +
          +

          left

          +
          + public T + extends + ButtonBase left +
          +
          The objects for the dpad buttons
          +
          +
        • +
        • + +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          + GamepadDpad +

          +
          + public GamepadDpad(T u, + T d, + T l, + T r) +
          +
          Create dpad with 4 buttons
          +
          +
          Parameters:
          +
          u - Up button
          +
          d - Down button
          +
          l - Left button
          +
          r - Right button
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getXAxis

          +
          + public double getXAxis() +
          +
          Return x axis double (treating dpad as stick)
          +
          +
          Specified by:
          +
          + getXAxis in interface Stick +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          getYAxis

          +
          + public double getYAxis() +
          +
          Return y axis double (treating dpad as stick)
          +
          +
          Specified by:
          +
          + getYAxis in interface Stick +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          periodic

          +
          + public void periodic() +
          +
          + Description copied from interface: Periodic +
          +
          The periodic function
          +
          +
          Specified by:
          +
          + periodic in interface Periodic +
          +
          +
          +
        • +
        • +
          +

          setEnabled

          +
          + public GamepadDpad<T> setEnabled(boolean enable) +
          +
          + Description copied from interface: CanBeEnabled +
          +
          Set whether or not the device is enabled
          +
          +
          Specified by:
          +
          + setEnabled in interface CanBeEnabled<T + extends + ButtonBase> +
          +
          Parameters:
          +
          enable - True for enabled, false for disabled
          +
          Returns:
          +
          The object
          +
          +
          +
        • +
        • +
          +

          isEnabled

          +
          + public boolean isEnabled() +
          +
          +
          Specified by:
          +
          + isEnabled in interface CanBeEnabled<T + extends + ButtonBase> +
          +
          Returns:
          +
          Is this object enabled?
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/GamepadStick.html b/docs/TechnoLib/com/technototes/library/control/GamepadStick.html index fd8b5c25..a339a116 100644 --- a/docs/TechnoLib/com/technototes/library/control/GamepadStick.html +++ b/docs/TechnoLib/com/technototes/library/control/GamepadStick.html @@ -1,326 +1,895 @@ - + - - -GamepadStick (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class GamepadStick<T extends AxisBase,U extends ButtonBase>

      -
      -
      java.lang.Object -
      com.technototes.library.control.GamepadStick<T,U>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The class for the gamepad axis
      -
      U - The class for the gamepad buttons
      -
      -
      -
      All Implemented Interfaces:
      -
      Stick, Enablable<Stick>, Periodic
      -
      -
      -
      public class GamepadStick<T extends AxisBase,U extends ButtonBase> -extends Object -implements Stick
      -
      A class for gamepad sticks
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          xAxis

          -
          public T extends AxisBase xAxis
          -
          The objects for the stick axis
          -
          -
        • -
        • -
          -

          yAxis

          -
          public T extends AxisBase yAxis
          -
          The objects for the stick axis
          -
          -
        • -
        • -
          -

          stickButton

          -
          public U extends ButtonBase stickButton
          -
          The objects for the stick button
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          GamepadStick

          -
          public GamepadStick(T x, - T y, - U b)
          -
          Make a gamepad stick
          -
          -
          Parameters:
          -
          x - The x joystick axis
          -
          y - The y joystick axis
          -
          b - The joystick button
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          periodic

          -
          public void periodic()
          -
          Description copied from interface: Periodic
          -
          The periodic function
          -
          -
          Specified by:
          -
          periodic in interface Periodic
          -
          -
          -
        • -
        • -
          -

          getXAxis

          -
          public double getXAxis()
          -
          Description copied from interface: Stick
          -
          Return x axis double
          -
          -
          Specified by:
          -
          getXAxis in interface Stick
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          getYAxis

          -
          public double getYAxis()
          -
          Description copied from interface: Stick
          -
          Return y axis double
          -
          -
          Specified by:
          -
          getYAxis in interface Stick
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          setEnabled

          -
          public GamepadStick<T,U> setEnabled(boolean enable)
          -
          Description copied from interface: Enablable
          -
          Set whether or not the device is enabled
          -
          -
          Specified by:
          -
          setEnabled in interface Enablable<T extends AxisBase>
          -
          Parameters:
          -
          enable - True for enabled, false for disabled
          -
          Returns:
          -
          The object
          -
          -
          -
        • -
        • -
          -

          isEnabled

          -
          public boolean isEnabled()
          -
          -
          Specified by:
          -
          isEnabled in interface Enablable<T extends AxisBase>
          -
          Returns:
          -
          Is this object enabled?
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + GamepadStick (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class GamepadStick<T extends + AxisBase,U extends + ButtonBase> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.control.GamepadStick<T,U> +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The class for the gamepad axis
      +
      U - The class for the gamepad buttons
      +
      +
      +
      All Implemented Interfaces:
      +
      + Stick, + CanBeEnabled<Stick>, + Periodic +
      +
      +
      +
      + public class GamepadStick<T extends + AxisBase,U extends + ButtonBase> + extends + Object + implements + Stick +
      +
      A class for gamepad sticks
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          xAxis

          +
          + public T + extends + AxisBase xAxis +
          +
          The objects for the stick axis
          +
          +
        • +
        • +
          +

          yAxis

          +
          + public T + extends + AxisBase yAxis +
          +
          The objects for the stick axis
          +
          +
        • +
        • +
          +

          stickButton

          +
          + public U + extends + ButtonBase stickButton +
          +
          The objects for the stick button
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          + GamepadStick +

          +
          + public GamepadStick(T x, + T y, + U b) +
          +
          Make a gamepad stick
          +
          +
          Parameters:
          +
          x - The x joystick axis
          +
          y - The y joystick axis
          +
          b - The joystick button
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          periodic

          +
          + public void periodic() +
          +
          + Description copied from interface: Periodic +
          +
          The periodic function
          +
          +
          Specified by:
          +
          + periodic in interface Periodic +
          +
          +
          +
        • +
        • +
          +

          getXAxis

          +
          + public double getXAxis() +
          +
          + Description copied from interface: Stick +
          +
          Return x axis double
          +
          +
          Specified by:
          +
          + getXAxis in interface Stick +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          getYAxis

          +
          + public double getYAxis() +
          +
          + Description copied from interface: Stick +
          +
          Return y axis double
          +
          +
          Specified by:
          +
          + getYAxis in interface Stick +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          setEnabled

          +
          + public GamepadStick<T,U> setEnabled(boolean enable) +
          +
          + Description copied from interface: CanBeEnabled +
          +
          Set whether or not the device is enabled
          +
          +
          Specified by:
          +
          + setEnabled in interface CanBeEnabled<T + extends + AxisBase> +
          +
          Parameters:
          +
          enable - True for enabled, false for disabled
          +
          Returns:
          +
          The object
          +
          +
          +
        • +
        • +
          +

          isEnabled

          +
          + public boolean isEnabled() +
          +
          +
          Specified by:
          +
          + isEnabled in interface CanBeEnabled<T + extends + AxisBase> +
          +
          Returns:
          +
          Is this object enabled?
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/Stick.html b/docs/TechnoLib/com/technototes/library/control/Stick.html index ac794ab6..1f229e26 100644 --- a/docs/TechnoLib/com/technototes/library/control/Stick.html +++ b/docs/TechnoLib/com/technototes/library/control/Stick.html @@ -1,227 +1,544 @@ - + - - -Stick (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Stick

      -
      -
      -
      -
      All Superinterfaces:
      -
      Enablable<Stick>, Periodic
      -
      -
      -
      All Known Implementing Classes:
      -
      GamepadDpad, GamepadStick
      -
      -
      -
      public interface Stick -extends Periodic, Enablable<Stick>
      -
      Interface for objects that behave as sticks
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getXAxis

          -
          double getXAxis()
          -
          Return x axis double
          -
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          getYAxis

          -
          double getYAxis()
          -
          Return y axis double
          -
          -
          Returns:
          -
          The double
          -
          -
          -
        • -
        • -
          -

          getXSupplier

          - -
          Return x axis supplier
          -
          -
          Returns:
          -
          The double supplier
          -
          -
          -
        • -
        • -
          -

          getYSupplier

          - -
          Return y axis supplier
          -
          -
          Returns:
          -
          The double supplier
          -
          -
          -
        • -
        • -
          -

          getAngle

          -
          default double getAngle()
          -
          Returns the angle of the stick
          -
          -
          Returns:
          -
          The angle
          -
          -
          -
        • -
        • -
          -

          getDistanceFromCenter

          -
          default double getDistanceFromCenter()
          -
          Returns the stick's distance from the center
          -
          -
          Returns:
          -
          The distance
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Stick (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Stick

      +
      +
      +
      +
      All Superinterfaces:
      +
      + CanBeEnabled<Stick>, + Periodic +
      +
      +
      +
      All Known Implementing Classes:
      +
      + GamepadDpad, + GamepadStick +
      +
      +
      +
      + public interface Stick + extends + Periodic, + CanBeEnabled<Stick> +
      +
      Interface for objects that behave as sticks
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getXAxis

          +
          + double getXAxis() +
          +
          Return x axis double
          +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          getYAxis

          +
          + double getYAxis() +
          +
          Return y axis double
          +
          +
          Returns:
          +
          The double
          +
          +
          +
        • +
        • +
          +

          getXSupplier

          +
          + default DoubleSupplier getXSupplier() +
          +
          Return x axis supplier
          +
          +
          Returns:
          +
          The double supplier
          +
          +
          +
        • +
        • +
          +

          getYSupplier

          +
          + default DoubleSupplier getYSupplier() +
          +
          Return y axis supplier
          +
          +
          Returns:
          +
          The double supplier
          +
          +
          +
        • +
        • +
          +

          getAngle

          +
          + default double getAngle() +
          +
          Returns the angle of the stick
          +
          +
          Returns:
          +
          The angle
          +
          +
          +
        • +
        • +
          +

          getDistanceFromCenter

          +
          + default double getDistanceFromCenter() +
          +
          Returns the stick's distance from the center
          +
          +
          Returns:
          +
          The distance
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/package-summary.html b/docs/TechnoLib/com/technototes/library/control/package-summary.html index 4e462fbd..65565d86 100644 --- a/docs/TechnoLib/com/technototes/library/control/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/control/package-summary.html @@ -1,157 +1,356 @@ - + - - -com.technototes.library.control (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.control

      -
      -
      -
      package com.technototes.library.control
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.control (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.control +

      +
      +
      +
      + package com.technototes.library.control +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/control/package-tree.html b/docs/TechnoLib/com/technototes/library/control/package-tree.html index 8e7dfaab..86872990 100644 --- a/docs/TechnoLib/com/technototes/library/control/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/control/package-tree.html @@ -1,128 +1,381 @@ - + - - -com.technototes.library.control Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.control

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -

      Interface Hierarchy

      -
        -
      • java.util.function.BooleanSupplier -
          -
        • com.technototes.library.control.Binding<T>
        • -
        • com.technototes.library.control.CommandInput<T>
        • -
        -
      • -
      • com.technototes.library.general.Enablable<T> -
          -
        • com.technototes.library.control.Stick (also extends com.technototes.library.general.Periodic)
        • -
        -
      • -
      • com.technototes.library.general.Periodic -
          -
        • com.technototes.library.control.Stick (also extends com.technototes.library.general.Enablable<T>)
        • -
        -
      • -
      -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.control Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.control

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +

      Interface Hierarchy

      +
        +
      • + java.util.function.BooleanSupplier +
          +
        • + com.technototes.library.control.Binding<T> +
        • +
        • + com.technototes.library.control.CommandInput<T> +
        • +
        +
      • +
      • + com.technototes.library.general.CanBeEnabled<T> +
          +
        • + com.technototes.library.control.Stick + (also extends com.technototes.library.general.Periodic) +
        • +
        +
      • +
      • + com.technototes.library.general.Periodic +
          +
        • + com.technototes.library.control.Stick + (also extends com.technototes.library.general.CanBeEnabled<T>) +
        • +
        +
      • +
      +
      +
      +

      Enum Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/general/CanBeEnabled.html b/docs/TechnoLib/com/technototes/library/general/CanBeEnabled.html new file mode 100644 index 00000000..7ac43a15 --- /dev/null +++ b/docs/TechnoLib/com/technototes/library/general/CanBeEnabled.html @@ -0,0 +1,562 @@ + + + + + CanBeEnabled (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Interface CanBeEnabled<T extends CanBeEnabled<T>> +

      +
      +
      +
      +
      Type Parameters:
      +
      T - An Enable-able interface/class type
      +
      +
      +
      All Known Subinterfaces:
      +
      + Stick +
      +
      +
      +
      All Known Implementing Classes:
      +
      + AxisBase, + ButtonBase, + CommandAxis, + CommandBinding, + CommandButton, + CommandGamepad, + GamepadBase, + GamepadDpad, + GamepadStick +
      +
      +
      +
      + public interface CanBeEnabled<T extends CanBeEnabled<T>> +
      +
      + Interface for anything that can be enabled/disabled + +

      + You must have "setEnabled" and "isEnabled" functions. Everything else has functional + implementations in the interface +

      +
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default + T +
        +
        + disable() +
        +
        +
        Disable the object
        +
        +
        + default + T +
        +
        + enable() +
        +
        +
        Enable the object
        +
        +
        + default boolean +
        +
        + isDisabled() +
        +
        +   +
        +
        + boolean +
        +
        + isEnabled() +
        +
        +   +
        +
        + T +
        +
        + setEnabled(boolean enable) +
        +
        +
        Set whether or not the device is enabled
        +
        +
        + default + T +
        + +
        +
        Toggle whether this object is enabled or not
        +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          enable

          +
          + default T enable() +
          +
          Enable the object
          +
          +
          Returns:
          +
          The object
          +
          +
          +
        • +
        • +
          +

          disable

          +
          + default T disable() +
          +
          Disable the object
          +
          +
          Returns:
          +
          the object
          +
          +
          +
        • +
        • +
          +

          setEnabled

          +
          + T setEnabled(boolean enable) +
          +
          Set whether or not the device is enabled
          +
          +
          Parameters:
          +
          enable - True for enabled, false for disabled
          +
          Returns:
          +
          The object
          +
          +
          +
        • +
        • +
          +

          toggleEnabled

          +
          + default T toggleEnabled() +
          +
          Toggle whether this object is enabled or not
          +
          +
          Returns:
          +
          The object
          +
          +
          +
        • +
        • +
          +

          isEnabled

          +
          + boolean isEnabled() +
          +
          +
          Returns:
          +
          Is this object enabled?
          +
          +
          +
        • +
        • +
          +

          isDisabled

          +
          + default boolean isDisabled() +
          +
          +
          Returns:
          +
          Is this object disabled?
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/TechnoLib/com/technototes/library/general/Enablable.html b/docs/TechnoLib/com/technototes/library/general/Enablable.html deleted file mode 100644 index 68629a97..00000000 --- a/docs/TechnoLib/com/technototes/library/general/Enablable.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - -Enablable (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Enablable<T extends Enablable<T>>

      -
      -
      -
      -
      Type Parameters:
      -
      T - An Enable-able interface/class type
      -
      -
      -
      All Known Subinterfaces:
      -
      Stick
      -
      -
      -
      All Known Implementing Classes:
      -
      AxisBase, ButtonBase, CommandAxis, CommandBinding, CommandButton, CommandGamepad, GamepadBase, GamepadDpad, GamepadStick
      -
      -
      -
      public interface Enablable<T extends Enablable<T>>
      -
      Interface for anything that can be enabled/disabled -

      - You must have "setEnabled" and "isEnabled" functions. Everything else has - functional implementations in the interface

      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default T
        - -
        -
        Disable the object
        -
        -
        default T
        - -
        -
        Enable the object
        -
        -
        default boolean
        - -
         
        -
        boolean
        - -
         
        - -
        setEnabled(boolean enable)
        -
        -
        Set whether or not the device is enabled
        -
        -
        default T
        - -
        -
        Toggle whether this object is enabled or not
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          enable

          -
          default T enable()
          -
          Enable the object
          -
          -
          Returns:
          -
          The object
          -
          -
          -
        • -
        • -
          -

          disable

          -
          default T disable()
          -
          Disable the object
          -
          -
          Returns:
          -
          the object
          -
          -
          -
        • -
        • -
          -

          setEnabled

          -
          T setEnabled(boolean enable)
          -
          Set whether or not the device is enabled
          -
          -
          Parameters:
          -
          enable - True for enabled, false for disabled
          -
          Returns:
          -
          The object
          -
          -
          -
        • -
        • -
          -

          toggleEnabled

          -
          default T toggleEnabled()
          -
          Toggle whether this object is enabled or not
          -
          -
          Returns:
          -
          The object
          -
          -
          -
        • -
        • -
          -

          isEnabled

          -
          boolean isEnabled()
          -
          -
          Returns:
          -
          Is this object enabled?
          -
          -
          -
        • -
        • -
          -

          isDisabled

          -
          default boolean isDisabled()
          -
          -
          Returns:
          -
          Is this object disabled?
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/general/Invertable.html b/docs/TechnoLib/com/technototes/library/general/Invertable.html deleted file mode 100644 index a00afdfa..00000000 --- a/docs/TechnoLib/com/technototes/library/general/Invertable.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - -Invertable (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Invertable<T extends Invertable<T>>

      -
      -
      -
      -
      All Known Implementing Classes:
      -
      AxisBase, ButtonBase, CommandAxis, CommandBinding, CommandButton, EncodedMotor, EncodedMotorGroup, Motor, MotorGroup, Servo, ServoGroup
      -
      -
      -
      public interface Invertable<T extends Invertable<T>>
      -
      Interface for anything that can be inverted
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        boolean
        - -
        -
        Get current inversion
        -
        -
        default T
        - -
        -
        Toggle inversion
        -
        - -
        setInverted(boolean invert)
        -
        -
        Set the inversion (true -> Is inverted, false -> Not inverted)
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setInverted

          -
          T setInverted(boolean invert)
          -
          Set the inversion (true -> Is inverted, false -> Not inverted)
          -
          -
          Parameters:
          -
          invert - Inversion value
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          invert

          -
          default T invert()
          -
          Toggle inversion
          -
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          getInverted

          -
          boolean getInverted()
          -
          Get current inversion
          -
          -
          Returns:
          -
          Current inversion
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/general/Invertible.html b/docs/TechnoLib/com/technototes/library/general/Invertible.html new file mode 100644 index 00000000..9331188b --- /dev/null +++ b/docs/TechnoLib/com/technototes/library/general/Invertible.html @@ -0,0 +1,401 @@ + + + + + Invertible (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Interface Invertible<T extends Invertible<T>> +

      +
      +
      +
      +
      All Known Implementing Classes:
      +
      + AxisBase, + ButtonBase, + CommandAxis, + CommandBinding, + CommandButton, + Servo +
      +
      +
      +
      + public interface Invertible<T extends Invertible<T>> +
      +
      Interface for anything that can be inverted
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + boolean +
        +
        + getInverted() +
        +
        +
        Get current inversion
        +
        +
        + default + T +
        +
        + invert() +
        +
        +
        Toggle inversion
        +
        +
        + T +
        +
        + setInverted(boolean invert) +
        +
        +
        + Set the inversion (true -> Is inverted, false -> Not inverted) +
        +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          setInverted

          +
          + T setInverted(boolean invert) +
          +
          + Set the inversion (true -> Is inverted, false -> Not inverted) +
          +
          +
          Parameters:
          +
          invert - Inversion value
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          invert

          +
          + default T invert() +
          +
          Toggle inversion
          +
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          getInverted

          +
          + boolean getInverted() +
          +
          Get current inversion
          +
          +
          Returns:
          +
          Current inversion
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/TechnoLib/com/technototes/library/general/Periodic.html b/docs/TechnoLib/com/technototes/library/general/Periodic.html index db60bc36..4fe4895c 100644 --- a/docs/TechnoLib/com/technototes/library/general/Periodic.html +++ b/docs/TechnoLib/com/technototes/library/general/Periodic.html @@ -1,141 +1,363 @@ - + - - -Periodic (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Periodic

      -
      -
      -
      -
      All Known Subinterfaces:
      -
      Stick, Subsystem
      -
      -
      -
      All Known Implementing Classes:
      -
      AxisBase, ButtonBase, CommandAxis, CommandBinding, CommandButton, CommandGamepad, DeviceSubsystem, DrivebaseSubsystem, EncodedMotorSubsystem, GamepadBase, GamepadDpad, GamepadStick, MotorSubsystem, ServoSubsystem, SimpleMecanumDrivebaseSubsystem, TankDrivebaseSubsystem
      -
      -
      -
      Functional Interface:
      -
      This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
      -
      -
      -
      @FunctionalInterface -public interface Periodic
      -
      An interface for classes to have the periodic function
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        void
        - -
        -
        The periodic function
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          periodic

          -
          void periodic()
          -
          The periodic function
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Periodic (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Periodic

      +
      +
      +
      +
      All Known Subinterfaces:
      +
      + Stick, + Subsystem +
      +
      +
      +
      All Known Implementing Classes:
      +
      + AxisBase, + ButtonBase, + CommandAxis, + CommandBinding, + CommandButton, + CommandGamepad, + DrivebaseSubsystem, + GamepadBase, + GamepadDpad, + GamepadStick, + SimpleMecanumDrivebaseSubsystem, + TankDrivebaseSubsystem +
      +
      +
      +
      Functional Interface:
      +
      + This is a functional interface and can therefore be used as the assignment target + for a lambda expression or method reference. +
      +
      +
      +
      + @FunctionalInterface public interface Periodic +
      +
      An interface for classes to have the periodic function
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + void +
        +
        + periodic() +
        +
        +
        The periodic function
        +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          periodic

          +
          + void periodic() +
          +
          The periodic function
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/general/package-summary.html b/docs/TechnoLib/com/technototes/library/general/package-summary.html index bebf592c..32f726ae 100644 --- a/docs/TechnoLib/com/technototes/library/general/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/general/package-summary.html @@ -1,103 +1,168 @@ - + - - -com.technototes.library.general (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.general

      -
      -
      -
      package com.technototes.library.general
      -
      -
        -
      • - -
      • -
      • -
        -
        Interfaces
        -
        -
        Class
        -
        Description
        -
        Enablable<T extends Enablable<T>>
        -
        -
        Interface for anything that can be enabled/disabled
        -
        -
        Invertable<T extends Invertable<T>>
        -
        -
        Interface for anything that can be inverted
        -
        - -
        -
        An interface for classes to have the periodic function
        -
        -
        -
        -
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.general (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.general +

      +
      +
      +
      + package com.technototes.library.general +
      +
      +
        +
      • + +
      • +
      • +
        +
        Interfaces
        +
        +
        Class
        +
        Description
        +
        + CanBeEnabled<T extends + CanBeEnabled<T>> +
        +
        +
        Interface for anything that can be enabled/disabled
        +
        +
        + Invertible<T extends + Invertible<T>> +
        +
        +
        Interface for anything that can be inverted
        +
        +
        + Periodic +
        +
        +
        + An interface for classes to have the periodic function +
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/general/package-tree.html b/docs/TechnoLib/com/technototes/library/general/package-tree.html index 259ba504..9b7d47ad 100644 --- a/docs/TechnoLib/com/technototes/library/general/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/general/package-tree.html @@ -1,69 +1,115 @@ - + - - -com.technototes.library.general Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.general

      -Package Hierarchies: - -
      -
      -

      Interface Hierarchy

      -
        -
      • com.technototes.library.general.Enablable<T>
      • -
      • com.technototes.library.general.Invertable<T>
      • -
      • com.technototes.library.general.Periodic
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.general Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.general

      + Package Hierarchies: + +
      +
      +

      Interface Hierarchy

      +
        +
      • + com.technototes.library.general.CanBeEnabled<T> +
      • +
      • + com.technototes.library.general.Invertible<T> +
      • +
      • + com.technototes.library.general.Periodic +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/DummyDevice.html b/docs/TechnoLib/com/technototes/library/hardware/DummyDevice.html index 5a276968..06ae2a92 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/DummyDevice.html +++ b/docs/TechnoLib/com/technototes/library/hardware/DummyDevice.html @@ -1,256 +1,687 @@ - + - - -DummyDevice (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class DummyDevice<T>

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.DummyDevice<T>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The type of the device
      -
      -
      -
      All Implemented Interfaces:
      -
      com.qualcomm.robotcore.hardware.HardwareDevice
      -
      -
      -
      public class DummyDevice<T> -extends Object -implements com.qualcomm.robotcore.hardware.HardwareDevice
      -
      This isn't worth actually doing. You have to redo your configuration constantly if you create - a device that isn't part of the core runtime :(
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getManufacturer

          -
          public com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer getManufacturer()
          -
          -
          Specified by:
          -
          getManufacturer in interface com.qualcomm.robotcore.hardware.HardwareDevice
          -
          -
          -
        • -
        • -
          -

          getDeviceName

          - -
          -
          Specified by:
          -
          getDeviceName in interface com.qualcomm.robotcore.hardware.HardwareDevice
          -
          -
          -
        • -
        • -
          -

          getConnectionInfo

          - -
          -
          Specified by:
          -
          getConnectionInfo in interface com.qualcomm.robotcore.hardware.HardwareDevice
          -
          -
          -
        • -
        • -
          -

          getVersion

          -
          public int getVersion()
          -
          -
          Specified by:
          -
          getVersion in interface com.qualcomm.robotcore.hardware.HardwareDevice
          -
          -
          -
        • -
        • -
          -

          resetDeviceConfigurationForOpMode

          - -
          -
          Specified by:
          -
          resetDeviceConfigurationForOpMode in interface com.qualcomm.robotcore.hardware.HardwareDevice
          -
          -
          -
        • -
        • -
          -

          close

          -
          public void close()
          -
          -
          Specified by:
          -
          close in interface com.qualcomm.robotcore.hardware.HardwareDevice
          -
          -
          -
        • -
        • -
          -

          get

          -
          public T get()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + DummyDevice (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class DummyDevice<T>

      +
      +
      + java.lang.Object +
      com.technototes.library.hardware.DummyDevice<T>
      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of the device
      +
      +
      +
      All Implemented Interfaces:
      +
      com.qualcomm.robotcore.hardware.HardwareDevice
      +
      +
      +
      + public class DummyDevice<T> + extends + Object + implements com.qualcomm.robotcore.hardware.HardwareDevice +
      +
      + This isn't worth actually doing. You have to redo your configuration constantly if you + create a device that isn't part of the core runtime :( +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        +

        + Nested classes/interfaces inherited from + interface com.qualcomm.robotcore.hardware.HardwareDevice +

        + com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + DummyDevice(T inter) +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + void +
        +
        + close() +
        +
        +   +
        +
        + T +
        +
        + get() +
        +
        +   +
        +
        + String +
        + +
        +   +
        +
        + String +
        + +
        +   +
        +
        + com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer +
        + +
        +   +
        +
        + int +
        +
        + getVersion() +
        +
        +   +
        +
        + void +
        + +
        +   +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Constructor Details

        +
          +
        • +
          +

          DummyDevice

          +
          + public DummyDevice(T inter) +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getManufacturer

          +
          + public com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer getManufacturer() +
          +
          +
          Specified by:
          +
          + getManufacturer in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          getDeviceName

          +
          + public String getDeviceName() +
          +
          +
          Specified by:
          +
          + getDeviceName in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          getConnectionInfo

          +
          + public String getConnectionInfo() +
          +
          +
          Specified by:
          +
          + getConnectionInfo in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          getVersion

          +
          + public int getVersion() +
          +
          +
          Specified by:
          +
          + getVersion in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          resetDeviceConfigurationForOpMode

          +
          + public void resetDeviceConfigurationForOpMode() +
          +
          +
          Specified by:
          +
          + resetDeviceConfigurationForOpMode in + interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          close

          +
          + public void close() +
          +
          +
          Specified by:
          +
          + close in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          get

          +
          + public T get() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/FailedDevice.html b/docs/TechnoLib/com/technototes/library/hardware/FailedDevice.html new file mode 100644 index 00000000..a4a358d1 --- /dev/null +++ b/docs/TechnoLib/com/technototes/library/hardware/FailedDevice.html @@ -0,0 +1,707 @@ + + + + + FailedDevice (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class FailedDevice

      +
      +
      + java.lang.Object +
      com.technototes.library.hardware.FailedDevice
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      com.qualcomm.robotcore.hardware.HardwareDevice
      +
      +
      +
      + public class FailedDevice + extends + Object + implements com.qualcomm.robotcore.hardware.HardwareDevice +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        +

        + Nested classes/interfaces inherited from + interface com.qualcomm.robotcore.hardware.HardwareDevice +

        + com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer +
        +
        +
      • + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + protected + String +
        +
        + name +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Modifier
        +
        Constructor
        +
        Description
        +
        protected
        +
        + FailedDevice(String deviceName) +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + void +
        +
        + close() +
        +
        +   +
        +
        + String +
        + +
        +   +
        +
        + String +
        + +
        +   +
        +
        + com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer +
        + +
        +   +
        +
        + int +
        +
        + getVersion() +
        +
        +   +
        +
        + void +
        + +
        +   +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        + +
        +
      • + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getManufacturer

          +
          + public com.qualcomm.robotcore.hardware.HardwareDevice.Manufacturer getManufacturer() +
          +
          +
          Specified by:
          +
          + getManufacturer in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          getDeviceName

          +
          + public String getDeviceName() +
          +
          +
          Specified by:
          +
          + getDeviceName in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          getConnectionInfo

          +
          + public String getConnectionInfo() +
          +
          +
          Specified by:
          +
          + getConnectionInfo in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          getVersion

          +
          + public int getVersion() +
          +
          +
          Specified by:
          +
          + getVersion in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          resetDeviceConfigurationForOpMode

          +
          + public void resetDeviceConfigurationForOpMode() +
          +
          +
          Specified by:
          +
          + resetDeviceConfigurationForOpMode in + interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        • +
          +

          close

          +
          + public void close() +
          +
          +
          Specified by:
          +
          + close in interface com.qualcomm.robotcore.hardware.HardwareDevice +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/TechnoLib/com/technototes/library/hardware/HardwareDevice.html b/docs/TechnoLib/com/technototes/library/hardware/HardwareDevice.html index f0dc7d75..5eb3b762 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/HardwareDevice.html +++ b/docs/TechnoLib/com/technototes/library/hardware/HardwareDevice.html @@ -1,254 +1,960 @@ - + - - -HardwareDevice (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice>

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The class for the default device (ones found in ftcsdk)
      -
      -
      -
      Direct Known Subclasses:
      -
      Motor, Sensor, Servo
      -
      -
      -
      @Deprecated -public abstract class HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice> -extends Object
      -
      Deprecated.
      -
      Class for hardware devices - This just adds an extra layer of indirection that doesn't feel like it's worth the hassle.
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        -
        protected T
        - -
        -
        Deprecated.
        -
        static com.qualcomm.robotcore.hardware.HardwareMap
        - -
        -
        Deprecated.
        -
        Hardware map object for stuff
        -
        -
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Modifier
        -
        Constructor
        -
        Description
        -
        protected
        -
        HardwareDevice(String deviceName)
        -
        -
        Deprecated.
        -
        Make a hardware device with the string to get from hardwaremap
        -
        -
         
        -
        HardwareDevice(T device)
        -
        -
        Deprecated.
        -
        Make a hardware device
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - - -
        -
        Deprecated.
        -
        Get encapsulated device
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

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

        Field Details

        -
          -
        • -
          -

          hardwareMap

          -
          public static com.qualcomm.robotcore.hardware.HardwareMap hardwareMap
          -
          Deprecated.
          -
          Hardware map object for stuff
          -
          -
        • -
        • -
          -

          device

          -
          protected T extends com.qualcomm.robotcore.hardware.HardwareDevice device
          -
          Deprecated.
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          HardwareDevice

          -
          public HardwareDevice(T device)
          -
          Deprecated.
          -
          Make a hardware device
          -
          -
          Parameters:
          -
          device - The default device
          -
          -
          -
        • -
        • -
          -

          HardwareDevice

          -
          protected HardwareDevice(String deviceName)
          -
          Deprecated.
          -
          Make a hardware device with the string to get from hardwaremap
          -
          -
          Parameters:
          -
          deviceName - The device name
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getDevice

          -
          public T getDevice()
          -
          Deprecated.
          -
          Get encapsulated device
          -
          -
          Returns:
          -
          The device
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + HardwareDevice (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice> +

      +
      +
      + java.lang.Object +
      com.technototes.library.hardware.HardwareDevice<T>
      +
      +
      +
      +
      Type Parameters:
      +
      T - The class for the default device (ones found in ftcsdk)
      +
      +
      +
      Direct Known Subclasses:
      +
      + CRServo, + Motor, + MotorAsServo, + Sensor, + Servo +
      +
      +
      +
      + public abstract class HardwareDevice<T extends com.qualcomm.robotcore.hardware.HardwareDevice> + extends + Object +
      +
      + Class for hardware devices This just adds an extra layer of indirection that doesn't + feel like it's worth the hassle. +
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + static + Set<HardwareDevice<?>> +
        +
        + devices +
        +
         
        +
        + static com.qualcomm.robotcore.hardware.HardwareMap +
        + +
        +
        Hardware map object for stuff
        +
        +
        + protected + String +
        +
        + name +
        +
        +
        + The name of the hardware used for logging + invalid input: '&' hardware creation +
        +
        +
        + protected static + Map<String,HardwareDevice<?>> +
        +
        + names +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Modifier
        +
        Constructor
        +
        Description
        +
        protected
        +
        + HardwareDevice(String deviceName) +
        +
        +
        + Make a hardware device with the string to get from hardwaremap +
        +
        +
         
        +
        + HardwareDevice(T device, + String deviceName) +
        +
        +
        Make a hardware device
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + String +
        +
        + getName() +
        +
        +   +
        +
        + protected + T +
        +
        + getRawDevice() +
        +
        +
        Get encapsulated device
        +
        +
        + static void +
        +
        + initMap(com.qualcomm.robotcore.hardware.HardwareMap h) +
        +
        +   +
        +
        + protected + String +
        +
        + logData(String info) +
        +
        +
        Get the logging expression
        +
        +
        + abstract + String +
        +
        + LogLine() +
        +
        +
        + This is used for logging stuff by name and/or device type +
        +
        +
        + protected boolean +
        +
        + realHardware() +
        +
        +   +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          hardwareMap

          +
          + public static com.qualcomm.robotcore.hardware.HardwareMap hardwareMap +
          +
          Hardware map object for stuff
          +
          +
        • +
        • +
          +

          names

          +
          + protected static Map<String,HardwareDevice<?>> names +
          +
          +
        • +
        • +
          +

          devices

          +
          + public static Set<HardwareDevice<?>> devices +
          +
          +
        • +
        • +
          +

          name

          +
          + protected String name +
          +
          + The name of the hardware used for logging + invalid input: '&' hardware creation +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          + HardwareDevice +

          +
          + public HardwareDevice(T device, + String deviceName) +
          +
          Make a hardware device
          +
          +
          Parameters:
          +
          device - The default device
          +
          +
          +
        • +
        • +
          +

          HardwareDevice

          +
          + protected HardwareDevice(String deviceName) +
          +
          + Make a hardware device with the string to get from hardwaremap +
          +
          +
          Parameters:
          +
          deviceName - The device name
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          initMap

          +
          + public static void initMap(com.qualcomm.robotcore.hardware.HardwareMap h) +
          +
          +
        • +
        • +
          +

          getName

          +
          + public String getName() +
          +
          +
        • +
        • +
          +

          getRawDevice

          +
          + protected T getRawDevice() +
          +
          Get encapsulated device
          +
          +
          Returns:
          +
          The device
          +
          +
          +
        • +
        • +
          +

          realHardware

          +
          + protected boolean realHardware() +
          +
          +
        • +
        • +
          +

          logData

          +
          + protected String logData(String info) +
          +
          Get the logging expression
          +
          +
        • +
        • +
          +

          LogLine

          +
          + public abstract String LogLine() +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Returns:
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/HardwareDeviceGroup.html b/docs/TechnoLib/com/technototes/library/hardware/HardwareDeviceGroup.html deleted file mode 100644 index 980fa492..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware/HardwareDeviceGroup.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - -HardwareDeviceGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface HardwareDeviceGroup<T extends HardwareDevice>

      -
      -
      -
      -
      All Known Implementing Classes:
      -
      EncodedMotorGroup, MotorGroup, ServoGroup
      -
      -
      -
      @Deprecated -public interface HardwareDeviceGroup<T extends HardwareDevice>
      -
      Deprecated.
      -
      Interface for hardware device groups -

      - This is useful, but needs to be re-implemented separate from the HardwareDevice wrapper system

      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default List<T>
        - -
        -
        Deprecated.
        -
        T[]
        - -
        -
        Deprecated.
        -
        Get all devices in group
        -
        -
        default List<T>
        - -
        -
        Deprecated.
        -
        T[]
        - -
        -
        Deprecated.
        -
        Get the followers for the lead device
        -
        -
        default void
        -
        propagate(double value)
        -
        -
        Deprecated.
        -
        Propagate actions across the followers
        -
        -
        default void
        -
        propogate(double value)
        -
        -
        Deprecated.
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getFollowers

          - -
          Deprecated.
          -
          Get the followers for the lead device
          -
          -
          Returns:
          -
          The followers
          -
          -
          -
        • -
        • -
          -

          getFollowerist

          -
          default List<T> getFollowerist()
          -
          Deprecated.
          -
          -
        • -
        • -
          -

          getAllDevices

          - -
          Deprecated.
          -
          Get all devices in group
          -
          -
          Returns:
          -
          All devices
          -
          -
          -
        • -
        • -
          -

          getAllDeviceList

          -
          default List<T> getAllDeviceList()
          -
          Deprecated.
          -
          -
        • -
        • -
          -

          propogate

          -
          @Deprecated -default void propogate(double value)
          -
          Deprecated.
          -
          Propogate actions across the followers -

          - Note to self: Alex couldn't spell :)

          -
          -
          Parameters:
          -
          value - the value to propogate
          -
          -
          -
        • -
        • -
          -

          propagate

          -
          default void propagate(double value)
          -
          Deprecated.
          -
          Propagate actions across the followers -

          - Note to self: Alex couldn't spell :)

          -
          -
          Parameters:
          -
          value - the value to propagate
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware/Sensored.html b/docs/TechnoLib/com/technototes/library/hardware/Sensored.html index 459d4074..387fc7c3 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/Sensored.html +++ b/docs/TechnoLib/com/technototes/library/hardware/Sensored.html @@ -1,168 +1,393 @@ - + - - -Sensored (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Sensored

      -
      -
      -
      -
      All Superinterfaces:
      -
      DoubleSupplier
      -
      -
      -
      All Known Subinterfaces:
      -
      Encoder
      -
      -
      -
      All Known Implementing Classes:
      -
      EncodedMotor, EncodedMotorGroup, ExternalEncoder, MotorEncoder, Servo, ServoGroup
      -
      -
      -
      @Deprecated -public interface Sensored -extends DoubleSupplier
      -
      Deprecated.
      -
      Class for hardware devices with a sensor value -

      - This name is just bad. I'd also like to add normalization to it, so we could scale input values - to consistent ranges (triggers, joystick axes, distance sensors, servo ranges, etc...)

      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default double
        - -
        -
        Deprecated.
        -
        double
        - -
        -
        Deprecated.
        -
        Get the sensor value
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - + + + Sensored (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Sensored

      +
      +
      +
      +
      All Superinterfaces:
      +
      + DoubleSupplier +
      +
      +
      +
      All Known Subinterfaces:
      +
      + Encoder +
      +
      +
      +
      All Known Implementing Classes:
      +
      + EncodedMotor, + ExternalEncoder, + MotorAsServo, + MotorEncoder, + Servo +
      +
      +
      +
      + public interface Sensored + extends + DoubleSupplier +
      +
      + Class for hardware devices with a sensor value +

      + This name is just bad. I'd also like to add normalization to it, so we could scale + input values to consistent ranges (triggers, joystick axes, distance sensors, servo + ranges, etc...) +

      +
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default double +
        +
        + getAsDouble() +
        +
        +   +
        +
        + double +
        + +
        +
        Get the sensor value
        +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        + +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/Speaker.html b/docs/TechnoLib/com/technototes/library/hardware/Speaker.html deleted file mode 100644 index 6418915b..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware/Speaker.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - -Speaker (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Speaker

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.Speaker
      -
      -
      -
      -
      @Deprecated -public class Speaker -extends Object
      -
      Deprecated.
      -
      There's just no possible way I care about this. I think there are rules about *not* playing - anything through the speaker now, anyway. This is going away.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Speaker

          -
          public Speaker(String... songs)
          -
          Deprecated.
          -
          -
        • -
        • -
          -

          Speaker

          -
          public Speaker(float volume, - String... songs)
          -
          Deprecated.
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/CRServo.html b/docs/TechnoLib/com/technototes/library/hardware/motor/CRServo.html new file mode 100644 index 00000000..80628edd --- /dev/null +++ b/docs/TechnoLib/com/technototes/library/hardware/motor/CRServo.html @@ -0,0 +1,998 @@ + + + + + CRServo (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CRServo

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<com.qualcomm.robotcore.hardware.CRServo> +
      com.technototes.library.hardware.motor.CRServo
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Supplier<Double> +
      +
      +
      +
      + public class CRServo + extends + HardwareDevice<com.qualcomm.robotcore.hardware.CRServo> implements + Supplier<Double> +
      +
      + This is for "continuous rotation" servos. They work, unfortunately, like motors + without encoders: You can set a power (from 0 to 1, typically, with .5 as "stop") and + the servo will spin in the direct, at the provided speed... Not Yet Implemented! TODO: + Implement this +
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + protected com.qualcomm.robotcore.hardware.DcMotorSimple.Direction +
        +
        + dir +
        +
         
        +
        protected double
        +
        + power +
        +
         
        +
        +
        +

        + Fields inherited from class com.technototes.library.hardware.HardwareDevice +

        + devices, + hardwareMap, + name, + names +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + CRServo(com.qualcomm.robotcore.hardware.CRServo device, + String nm) +
        +
        +
        Create a motor
        +
        +
        + CRServo(String deviceName) +
        +
        +
        Create a motor
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + Double +
        +
        + get() +
        +
        +
        + Gets the *speed* of the motor when it's used as a DoubleSupplier +
        +
        +
        + com.qualcomm.robotcore.hardware.DcMotorSimple.Direction +
        +
        + getDirection() +
        +
        +
        + Returns the DcMotorSimple.Direction the motor is traveling +
        +
        +
        + double +
        +
        + getPower() +
        +
        +
        Gets the power value for the motor
        +
        +
        + String +
        +
        + LogLine() +
        +
        +
        + This is used for logging stuff by name and/or device type +
        +
        +
        + CRServo +
        +
        + setBackward() +
        +
        +
        Set the motor to go *backward*
        +
        +
        + CRServo +
        +
        + setDirection(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir) +
        +
        +
        Set the motor to go in a particular direction
        +
        +
        + CRServo +
        +
        + setForward() +
        +
        +
        Set the motor to go *forward*
        +
        +
        + CRServo +
        +
        + setLimits(double mi, double ma) +
        +
        +
        + Sets the min & max values for the motor power (still clipped to + -1/1) +
        +
        +
        + void +
        +
        + setPower(double pow) +
        +
        +
        Set the (range-clipped) power of the motor
        +
        +
        +
        +
        +
        +

        + Methods inherited from class com.technototes.library.hardware.HardwareDevice +

        + getName, + getRawDevice, + initMap, logData, + realHardware +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          power

          +
          + protected double power +
          +
          +
        • +
        • +
          +

          dir

          +
          + protected com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          CRServo

          +
          + public CRServo(com.qualcomm.robotcore.hardware.CRServo device, + String nm) +
          +
          Create a motor
          +
          +
          Parameters:
          +
          device - The hardware device
          +
          +
          +
        • +
        • +
          +

          CRServo

          +
          + public CRServo(String deviceName) +
          +
          Create a motor
          +
          +
          Parameters:
          +
          deviceName - The device name
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.CRServo> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          setLimits

          +
          + public CRServo setLimits(double mi, double ma) +
          +
          + Sets the min & max values for the motor power (still clipped to -1/1) +
          +
          +
          Parameters:
          +
          mi - The minimum value
          +
          ma - The maximum value
          +
          Returns:
          +
          The Motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          getDirection

          +
          + public com.qualcomm.robotcore.hardware.DcMotorSimple.Direction getDirection() +
          +
          + Returns the DcMotorSimple.Direction the motor is traveling +
          +
          +
        • +
        • +
          +

          setBackward

          +
          + public CRServo setBackward() +
          +
          Set the motor to go *backward*
          +
          +
        • +
        • +
          +

          setForward

          +
          + public CRServo setForward() +
          +
          Set the motor to go *forward*
          +
          +
        • +
        • +
          +

          setDirection

          +
          + public CRServo setDirection(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir) +
          +
          Set the motor to go in a particular direction
          +
          +
        • +
        • +
          +

          getPower

          +
          + public double getPower() +
          +
          Gets the power value for the motor
          +
          +
          Returns:
          +
          the power value (as a double)
          +
          +
          +
        • +
        • +
          +

          setPower

          +
          + public void setPower(double pow) +
          +
          Set the (range-clipped) power of the motor
          +
          +
          Parameters:
          +
          pow - The power value (-1 -> 1)
          +
          +
          +
        • +
        • +
          +

          get

          +
          + public Double get() +
          +
          + Gets the *speed* of the motor when it's used as a DoubleSupplier +
          +
          +
          Specified by:
          +
          + get in interface Supplier<Double> +
          +
          Returns:
          +
          The speed of the motor
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + + diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotor.html b/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotor.html index b10bd3e9..b57a2db4 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotor.html @@ -1,655 +1,1992 @@ - + - - -EncodedMotor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.motor.Motor<T> -
      com.technototes.library.hardware.motor.EncodedMotor<T>
      -
      -
      -
      -
      -
      -
      Type Parameters:
      -
      T - The qualcomm motor device interface
      -
      -
      -
      All Implemented Interfaces:
      -
      Invertable<Motor<T>>, Sensored, DoubleSupplier, Supplier<Double>
      -
      -
      -
      Direct Known Subclasses:
      -
      EncodedMotorGroup
      -
      -
      -
      public class EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends Motor<T> -implements Sensored
      -
      Class for encoded motors
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          positionThreshold

          -
          public double positionThreshold
          -
          Deadzone for going to positions with encoder
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          EncodedMotor

          -
          public EncodedMotor(T device, - Encoder e)
          -
          Make encoded motor
          -
          -
          Parameters:
          -
          device - The dcmotor object
          -
          e - The encoder for the motor
          -
          -
          -
        • -
        • -
          -

          EncodedMotor

          -
          public EncodedMotor(String device, - Encoder e)
          -
          Make encoded motor
          -
          -
          Parameters:
          -
          device - The name of the motor
          -
          e - The encoder for the motor
          -
          -
          -
        • -
        • -
          -

          EncodedMotor

          -
          public EncodedMotor(T device)
          -
          Make encoded motor, with the default encoder configured
          -
          -
          Parameters:
          -
          device - The dcmotor object
          -
          -
          -
        • -
        • -
          -

          EncodedMotor

          -
          public EncodedMotor(String deviceName)
          -
          Make encoded motor, with the default encoder configured
          -
          -
          Parameters:
          -
          deviceName - The dcmotor device name in hardware map
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setEncoder

          - -
          Explicitly set the encoder for the motor
          -
          -
          Parameters:
          -
          enc - The encoder
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          setPIDFCoeffecients

          -
          public EncodedMotor<T> setPIDFCoeffecients(double p, - double i, - double d, - double f)
          -
          Configure the PIDF constants for the motor
          -
          -
          Parameters:
          -
          p - The Proportional coefficient
          -
          i - The Integral coefficient
          -
          d - The Derivative coefficient
          -
          f - The Forward Feedback coefficient
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          setPIDFCoeffecients

          -
          public EncodedMotor<T> setPIDFCoeffecients(com.qualcomm.robotcore.hardware.PIDFCoefficients coeffecients)
          -
          Configure the PIDF constants for the motor
          -
          -
          Parameters:
          -
          coeffecients - The PIDF coefficients to set
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          setRunMode

          -
          public EncodedMotor<T> setRunMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode m)
          -
          Set the runmode for the motor
          -
          -
          Parameters:
          -
          m - The RunMode to set
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          setInverted

          -
          public EncodedMotor<T> setInverted(boolean invert)
          -
          Set the Inverted state for the motor. WARNING: THIS IS BACKWARD TO WHAT YOU MIGHT THINK! - True - Motor goes *forward*. False - motor goes *reverse*. -

          - This is overridden so it can return an EncodedMotor, and not just a Motor

          -
          -
          Specified by:
          -
          setInverted in interface Invertable<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Overrides:
          -
          setInverted in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          invert - true for forward, false for reverse (probably not what you were expecting)
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          invert

          -
          public EncodedMotor<T> invert()
          -
          Invert the motor (toggle inversion)
          -
          -
          Specified by:
          -
          invert in interface Invertable<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Overrides:
          -
          invert in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          getSensorValue

          -
          public double getSensorValue()
          -
          Get the encoder position value
          -
          -
          Specified by:
          -
          getSensorValue in interface Sensored
          -
          Returns:
          -
          The encoder position value
          -
          -
          -
        • -
        • -
          -

          setPosition

          -
          public boolean setPosition(double ticks)
          -
          Set the position of the motor
          -
          -
          Parameters:
          -
          ticks - The encoder ticks
          -
          Returns:
          -
          Is the motor at this position
          -
          -
          -
        • -
        • -
          -

          setPosition

          -
          public boolean setPosition(double ticks, - double speed)
          -
          Set the power for the motor to try to get to the position specified. - This is not particularly useful, unfortunately. You probably want to go look - at the MotorAsServoSubsystem code (which may or may not be in this repo currently)
          -
          -
          Parameters:
          -
          ticks - The encoder ticks to try to go to
          -
          speed - The speed to run the motor at
          -
          Returns:
          -
          Is the motor at this position (with no deadzone at all)
          -
          -
          -
        • -
        • -
          -

          isAtPosition

          -
          public boolean isAtPosition(double ticks)
          -
          Is the motor at the specified position
          -
          -
          Parameters:
          -
          ticks - The position
          -
          Returns:
          -
          Is the motor here or not
          -
          -
          -
        • -
        • -
          -

          getEncoder

          -
          public Encoder getEncoder()
          -
          Get the encoder object
          -
          -
          Returns:
          -
          The encoder
          -
          -
          -
        • -
        • -
          -

          tare

          -
          public EncodedMotor<T> tare()
          -
          Zero the encoder
          -
          -
          Returns:
          -
          This
          -
          -
          -
        • -
        • -
          -

          get

          -
          public Double get()
          -
          Description copied from class: Motor
          -
          Gets the *speed* of the motor when it's used as a DoubleSupplier
          -
          -
          Specified by:
          -
          get in interface Supplier<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Overrides:
          -
          get in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The speed of the motor
          -
          -
          -
        • -
        • -
          -

          setVelocity

          -
          public void setVelocity(double tps)
          -
          Set velocity of motor in tps
          -
          -
          Parameters:
          -
          tps - the speed in encoder ticks per second
          -
          -
          -
        • -
        • -
          -

          getVelocity

          -
          public double getVelocity()
          -
          Get the power for the motor (Velocity, I guess?)
          -
          -
          Returns:
          -
          the power for the motor
          -
          -
          -
        • -
        • -
          -

          getSpeed

          -
          public double getSpeed()
          -
          Gets the power set for the motor
          -
          -
          Overrides:
          -
          getSpeed in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          THe power for the motor
          -
          -
          -
        • -
        • -
          -

          setSpeed

          -
          public void setSpeed(double speed)
          -
          Sets the (clipped) speed for the motor
          -
          -
          Overrides:
          -
          setSpeed in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          speed - The speed of the motor
          -
          -
          -
        • -
        • -
          -

          brake

          -
          public EncodedMotor<T> brake()
          -
          Description copied from class: Motor
          -
          Configure the motor to *brake* when the power is set to zero.
          -
          -
          Overrides:
          -
          brake in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The Motor device (for chaining)
          -
          -
          -
        • -
        • -
          -

          coast

          -
          public EncodedMotor<T> coast()
          -
          Description copied from class: Motor
          -
          Configure the motor to *float* when the power is set to zero.
          -
          -
          Overrides:
          -
          coast in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The Motor device (for chaining)
          -
          -
          -
        • -
        • -
          -

          setLimits

          -
          public EncodedMotor<T> setLimits(double mi, - double ma)
          -
          Description copied from class: Motor
          -
          Sets the min & max values for the motor power (still clipped to -1/1)
          -
          -
          Overrides:
          -
          setLimits in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          mi - The minimum value
          -
          ma - The maximum value
          -
          Returns:
          -
          The Motor (for chaining)
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + EncodedMotor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.motor.Motor<T> +
      + com.technototes.library.hardware.motor.EncodedMotor<T> +
      +
      +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The qualcomm motor device interface
      +
      +
      +
      All Implemented Interfaces:
      +
      + Sensored, + DoubleSupplier, + Supplier<Double> +
      +
      +
      +
      + public class EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> + extends + Motor<T> implements + Sensored +
      +
      Class for encoded motors
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          positionThreshold

          +
          + public double positionThreshold +
          +
          Deadzone for going to positions with encoder
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          + EncodedMotor +

          +
          + public EncodedMotor(T device, + Encoder e, + String nm) +
          +
          Make encoded motor
          +
          +
          Parameters:
          +
          device - The dcmotor object
          +
          e - The encoder for the motor
          +
          +
          +
        • +
        • +
          +

          EncodedMotor

          +
          + public EncodedMotor(String device, + Encoder e) +
          +
          Make encoded motor
          +
          +
          Parameters:
          +
          device - The name of the motor
          +
          e - The encoder for the motor
          +
          +
          +
        • +
        • +
          +

          + EncodedMotor +

          +
          + public EncodedMotor(T device, + String nm) +
          +
          + Make encoded motor, with the default encoder configured +
          +
          +
          Parameters:
          +
          device - The dcmotor object
          +
          +
          +
        • +
        • +
          +

          EncodedMotor

          +
          + public EncodedMotor(String deviceName) +
          +
          + Make encoded motor, with the default encoder configured +
          +
          +
          Parameters:
          +
          deviceName - The dcmotor device name in hardware map
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          setEncoder

          +
          + public EncodedMotor<T> setEncoder(Encoder enc) +
          +
          Explicitly set the encoder for the motor
          +
          +
          Parameters:
          +
          enc - The encoder
          +
          Returns:
          +
          The motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          setPIDFCoefficients

          +
          + public EncodedMotor<T> setPIDFCoefficients(double p, double i, double d, double f) +
          +
          Configure the PIDF constants for the motor
          +
          +
          Parameters:
          +
          p - The Proportional coefficient
          +
          i - The Integral coefficient
          +
          d - The Derivative coefficient
          +
          f - The Forward Feedback coefficient
          +
          Returns:
          +
          The motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          setPIDFCoefficients

          +
          + public EncodedMotor<T> setPIDFCoefficients(com.qualcomm.robotcore.hardware.PIDFCoefficients coefficients) +
          +
          Configure the PIDF constants for the motor
          +
          +
          Parameters:
          +
          coefficients - The PIDF coefficients to set
          +
          Returns:
          +
          The motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          setPIDFCoefficients

          +
          + public EncodedMotor<T> setPIDFCoefficients(com.qualcomm.robotcore.hardware.DcMotor.RunMode m, + com.qualcomm.robotcore.hardware.PIDFCoefficients c) +
          +
          Configure the PIDF constants for the motor
          +
          +
          Parameters:
          +
          c - The PIDF coefficients to set
          +
          Returns:
          +
          The motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          setRunMode

          +
          + public EncodedMotor<T> setRunMode(com.qualcomm.robotcore.hardware.DcMotor.RunMode m) +
          +
          Set the runmode for the motor
          +
          +
          Parameters:
          +
          m - The RunMode to set
          +
          Returns:
          +
          The motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          setBackward

          +
          + public EncodedMotor<T> setBackward() +
          +
          Set the motor to go *backward*
          +
          +
          Overrides:
          +
          + setBackward in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          +
          +
        • +
        • +
          +

          setForward

          +
          + public EncodedMotor<T> setForward() +
          +
          Set the motor to go *forward*
          +
          +
          Overrides:
          +
          + setForward in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          +
          +
        • +
        • +
          +

          setDirection

          +
          + public EncodedMotor<T> setDirection(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir) +
          +
          Set the motor to go in a particular direction
          +
          +
          Overrides:
          +
          + setDirection in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          +
          +
        • +
        • +
          +

          getSensorValue

          +
          + public double getSensorValue() +
          +
          Get the encoder position value
          +
          +
          Specified by:
          +
          + getSensorValue in interface Sensored +
          +
          Returns:
          +
          The encoder position value
          +
          +
          +
        • +
        • +
          +

          setPosition

          +
          + public boolean setPosition(double ticks) +
          +
          Set the position of the motor
          +
          +
          Parameters:
          +
          ticks - The encoder ticks
          +
          Returns:
          +
          Is the motor at this position
          +
          +
          +
        • +
        • +
          +

          setPosition

          +
          + public boolean setPosition(double ticks, double speed) +
          +
          + Set the power for the motor to try to get to the position specified. This + is not particularly useful, unfortunately. You probably want to go look at + the MotorAsServoSubsystem code (which may or may not be in this repo + currently) +
          +
          +
          Parameters:
          +
          ticks - The encoder ticks to try to go to
          +
          speed - The speed to run the motor at
          +
          Returns:
          +
          Is the motor at this position (with no deadzone at all)
          +
          +
          +
        • +
        • +
          +

          isAtPosition

          +
          + public boolean isAtPosition(double ticks) +
          +
          Is the motor at the specified position
          +
          +
          Parameters:
          +
          ticks - The position
          +
          Returns:
          +
          Is the motor here or not
          +
          +
          +
        • +
        • +
          +

          getEncoder

          +
          + public Encoder getEncoder() +
          +
          Get the encoder object
          +
          +
          Returns:
          +
          The encoder
          +
          +
          +
        • +
        • +
          +

          tare

          +
          + public EncodedMotor<T> tare() +
          +
          Zero the encoder
          +
          +
          Returns:
          +
          This
          +
          +
          +
        • +
        • +
          +

          get

          +
          + public Double get() +
          +
          + Description copied from class: Motor +
          +
          + Gets the *speed* of the motor when it's used as a DoubleSupplier +
          +
          +
          Specified by:
          +
          + get in interface Supplier<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Overrides:
          +
          + get in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Returns:
          +
          The speed of the motor
          +
          +
          +
        • +
        • +
          +

          setVelocity

          +
          + public void setVelocity(double tps) +
          +
          Set velocity of motor in tps
          +
          +
          Parameters:
          +
          tps - the speed in encoder ticks per second
          +
          +
          +
        • +
        • +
          +

          getVelocity

          +
          + public double getVelocity() +
          +
          Get the power for the motor (Velocity, I guess?)
          +
          +
          Returns:
          +
          the power for the motor
          +
          +
          +
        • +
        • +
          +

          brake

          +
          + public EncodedMotor<T> brake() +
          +
          + Description copied from class: Motor +
          +
          + Configure the motor to *brake* when the power is set to zero. +
          +
          +
          Overrides:
          +
          + brake in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Returns:
          +
          The Motor device (for chaining)
          +
          +
          +
        • +
        • +
          +

          coast

          +
          + public EncodedMotor<T> coast() +
          +
          + Description copied from class: Motor +
          +
          + Configure the motor to *float* when the power is set to zero. +
          +
          +
          Overrides:
          +
          + coast in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Returns:
          +
          The Motor device (for chaining)
          +
          +
          +
        • +
        • +
          +

          setLimits

          +
          + public EncodedMotor<T> setLimits(double mi, double ma) +
          +
          + Description copied from class: Motor +
          +
          + Sets the min & max values for the motor power (still clipped to -1/1) +
          +
          +
          Overrides:
          +
          + setLimits in class Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Parameters:
          +
          mi - The minimum value
          +
          ma - The maximum value
          +
          Returns:
          +
          The Motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          getRawMotor

          +
          + public <U extends com.qualcomm.robotcore.hardware.DcMotorSimple> + U getRawMotor(Class<U> type) +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotorGroup.html b/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotorGroup.html deleted file mode 100644 index ccbbffc5..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware/motor/EncodedMotorGroup.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - -EncodedMotorGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class EncodedMotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      - -
      -
      -
      All Implemented Interfaces:
      -
      Invertable<Motor<T>>, HardwareDeviceGroup<Motor<T>>, Sensored, DoubleSupplier, Supplier<Double>
      -
      -
      -
      public class EncodedMotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends EncodedMotor<T> -implements HardwareDeviceGroup<Motor<T>>
      -
      Class for encoded motor groups
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          EncodedMotorGroup

          -
          public EncodedMotorGroup(EncodedMotor<T> leader, - Motor<T>... followers)
          -
          Create an encoded motor groupM
          -
          -
          Parameters:
          -
          leader - The Lead motor
          -
          followers - The following motors
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getFollowers

          -
          public Motor<T>[] getFollowers()
          -
          Description copied from interface: HardwareDeviceGroup
          -
          Get the followers for the lead device
          -
          -
          Specified by:
          -
          getFollowers in interface HardwareDeviceGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The followers
          -
          -
          -
        • -
        • -
          -

          getAllDevices

          -
          public Motor<T>[] getAllDevices()
          -
          Description copied from interface: HardwareDeviceGroup
          -
          Get all devices in group
          -
          -
          Specified by:
          -
          getAllDevices in interface HardwareDeviceGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          All devices
          -
          -
          -
        • -
        • -
          -

          propogate

          -
          public void propogate(double value)
          -
          Description copied from interface: HardwareDeviceGroup
          -
          Propogate actions across the followers -

          - Note to self: Alex couldn't spell :)

          -
          -
          Specified by:
          -
          propogate in interface HardwareDeviceGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          value - the value to propogate
          -
          -
          -
        • -
        • -
          -

          setVelocity

          -
          public void setVelocity(double tps)
          -
          Description copied from class: EncodedMotor
          -
          Set velocity of motor in tps
          -
          -
          Overrides:
          -
          setVelocity in class EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          tps - the speed in encoder ticks per second
          -
          -
          -
        • -
        • -
          -

          setPosition

          -
          public boolean setPosition(double ticks, - double speed)
          -
          Description copied from class: EncodedMotor
          -
          Set the power for the motor to try to get to the position specified. - This is not particularly useful, unfortunately. You probably want to go look - at the MotorAsServoSubsystem code (which may or may not be in this repo currently)
          -
          -
          Overrides:
          -
          setPosition in class EncodedMotor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          ticks - The encoder ticks to try to go to
          -
          speed - The speed to run the motor at
          -
          Returns:
          -
          Is the motor at this position (with no deadzone at all)
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/Motor.html b/docs/TechnoLib/com/technototes/library/hardware/motor/Motor.html index ad7c38d1..c3ac78a9 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/motor/Motor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/motor/Motor.html @@ -1,359 +1,1254 @@ - + - - -Motor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.motor.Motor<T>
      -
      -
      -
      -
      -
      Type Parameters:
      -
      T - The qualcomm hardware device interface
      -
      -
      -
      All Implemented Interfaces:
      -
      Invertable<Motor<T>>, Supplier<Double>
      -
      -
      -
      Direct Known Subclasses:
      -
      EncodedMotor, MotorGroup
      -
      -
      -
      public class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends HardwareDevice<T> -implements Invertable<Motor<T>>, Supplier<Double>
      -
      Class for motors
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        -

        Fields inherited from class com.technototes.library.hardware.HardwareDevice

        -device, hardwareMap
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        Motor(String deviceName)
        -
        -
        Create a motor
        -
        -
        Motor(T device)
        -
        -
        Create a motor
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - - -
        -
        Configure the motor to *brake* when the power is set to zero.
        -
        - - -
        -
        Configure the motor to *float* when the power is set to zero.
        -
        - -
        get()
        -
        -
        Gets the *speed* of the motor when it's used as a DoubleSupplier
        -
        -
        boolean
        - -
        -
        Returns whether the motor is inverted.
        -
        -
        double
        - -
        -
        Gets the power value for the motor
        -
        - - -
        -
        Invert the motor (toggle inversion)
        -
        - -
        setInverted(boolean inv)
        -
        -
        Set the Inverted state for the motor.
        -
        - -
        setLimits(double mi, - double ma)
        -
        -
        Sets the min & max values for the motor power (still clipped to -1/1)
        -
        -
        void
        -
        setSpeed(double speed)
        -
        -
        Set speed of motor
        -
        -
        -
        -
        -
        -

        Methods inherited from class com.technototes.library.hardware.HardwareDevice

        -getDevice
        -
        -

        Methods inherited from class java.lang.Object

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

        Constructor Details

        -
          -
        • -
          -

          Motor

          -
          public Motor(T device)
          -
          Create a motor
          -
          -
          Parameters:
          -
          device - The hardware device
          -
          -
          -
        • -
        • -
          -

          Motor

          -
          public Motor(String deviceName)
          -
          Create a motor
          -
          -
          Parameters:
          -
          deviceName - The device name
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setLimits

          -
          public Motor<T> setLimits(double mi, - double ma)
          -
          Sets the min & max values for the motor power (still clipped to -1/1)
          -
          -
          Parameters:
          -
          mi - The minimum value
          -
          ma - The maximum value
          -
          Returns:
          -
          The Motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          getInverted

          -
          public boolean getInverted()
          -
          Returns whether the motor is inverted. WARNING: THIS RETURNS TRUE FOR A "FORWARD" SETTING!
          -
          -
          Specified by:
          -
          getInverted in interface Invertable<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          True for inverted (forward) false for not inverted (reverse)
          -
          -
          -
        • -
        • -
          -

          setInverted

          -
          public Motor<T> setInverted(boolean inv)
          -
          Set the Inverted state for the motor. WARNING: THIS IS BACKWARD TO WHAT YOU MIGHT THINK! - True - Motor goes *forward*. False - motor goes *reverse*.
          -
          -
          Specified by:
          -
          setInverted in interface Invertable<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          inv - true for forward, false for reverse (probably not what you were expecting)
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          invert

          -
          public Motor<T> invert()
          -
          Invert the motor (toggle inversion)
          -
          -
          Specified by:
          -
          invert in interface Invertable<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The motor (for chaining)
          -
          -
          -
        • -
        • -
          -

          getSpeed

          -
          public double getSpeed()
          -
          Gets the power value for the motor
          -
          -
          Returns:
          -
          the power value (as a double)
          -
          -
          -
        • -
        • -
          -

          setSpeed

          -
          public void setSpeed(double speed)
          -
          Set speed of motor
          -
          -
          Parameters:
          -
          speed - The speed of the motor
          -
          -
          -
        • -
        • -
          -

          brake

          -
          public Motor<T> brake()
          -
          Configure the motor to *brake* when the power is set to zero.
          -
          -
          Returns:
          -
          The Motor device (for chaining)
          -
          -
          -
        • -
        • -
          -

          coast

          -
          public Motor<T> coast()
          -
          Configure the motor to *float* when the power is set to zero.
          -
          -
          Returns:
          -
          The Motor device (for chaining)
          -
          -
          -
        • -
        • -
          -

          get

          -
          public Double get()
          -
          Gets the *speed* of the motor when it's used as a DoubleSupplier
          -
          -
          Specified by:
          -
          get in interface Supplier<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The speed of the motor
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Motor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      com.technototes.library.hardware.motor.Motor<T>
      +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The qualcomm hardware device interface
      +
      +
      +
      All Implemented Interfaces:
      +
      + Supplier<Double> +
      +
      +
      +
      Direct Known Subclasses:
      +
      + EncodedMotor +
      +
      +
      +
      + public class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> + extends + HardwareDevice<T> implements + Supplier<Double> +
      +
      Class for motors
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + protected com.qualcomm.robotcore.hardware.DcMotorSimple.Direction +
        +
        + dir +
        +
         
        +
        protected double
        +
        + power +
        +
         
        +
        + protected com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior +
        + +
         
        +
        +
        +

        + Fields inherited from class com.technototes.library.hardware.HardwareDevice +

        + devices, + hardwareMap, + name, + names +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + Motor(String deviceName) +
        +
        +
        Create a motor
        +
        +
        + Motor(T device, + String nm) +
        +
        +
        Create a motor
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + Motor<T> +
        +
        + brake() +
        +
        +
        + Configure the motor to *brake* when the power is set to zero. +
        +
        +
        + Motor<T> +
        +
        + coast() +
        +
        +
        + Configure the motor to *float* when the power is set to zero. +
        +
        +
        + Double +
        +
        + get() +
        +
        +
        + Gets the *speed* of the motor when it's used as a DoubleSupplier +
        +
        +
        + com.qualcomm.robotcore.hardware.DcMotorSimple.Direction +
        +
        + getDirection() +
        +
        +
        + Returns the DcMotorSimple.Direction the motor is traveling +
        +
        +
        + double +
        +
        + getPower() +
        +
        +
        Gets the power value for the motor
        +
        +
        + double +
        +
        + getSpeed() +
        +
        +
        + Deprecated. +
        use getPower() instead
        +
        +
        +
        + String +
        +
        + LogLine() +
        +
        +
        + This is used for logging stuff by name and/or device type +
        +
        +
        + Motor<T> +
        +
        + setBackward() +
        +
        +
        Set the motor to go *backward*
        +
        +
        + Motor<T> +
        +
        + setDirection(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir) +
        +
        +
        Set the motor to go in a particular direction
        +
        +
        + Motor<T> +
        +
        + setForward() +
        +
        +
        Set the motor to go *forward*
        +
        +
        + Motor<T> +
        +
        + setLimits(double mi, double ma) +
        +
        +
        + Sets the min & max values for the motor power (still clipped to + -1/1) +
        +
        +
        + void +
        +
        + setPower(double pow) +
        +
        +
        Set the (range-clipped) power of the motor
        +
        +
        + void +
        +
        + setSpeed(double speed) +
        +
        +
        + Deprecated. +
        Please use setPower instead
        +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class com.technototes.library.hardware.HardwareDevice +

        + getName, + getRawDevice, + initMap, logData, + realHardware +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          power

          +
          + protected double power +
          +
          +
        • +
        • +
          +

          dir

          +
          + protected com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir +
          +
          +
        • +
        • +
          +

          zeroBehavior

          +
          + protected com.qualcomm.robotcore.hardware.DcMotor.ZeroPowerBehavior zeroBehavior +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          + Motor +

          +
          + public Motor(T device, + String nm) +
          +
          Create a motor
          +
          +
          Parameters:
          +
          device - The hardware device
          +
          +
          +
        • +
        • +
          +

          Motor

          +
          + public Motor(String deviceName) +
          +
          Create a motor
          +
          +
          Parameters:
          +
          deviceName - The device name
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          setLimits

          +
          + public Motor<T> setLimits(double mi, double ma) +
          +
          + Sets the min & max values for the motor power (still clipped to -1/1) +
          +
          +
          Parameters:
          +
          mi - The minimum value
          +
          ma - The maximum value
          +
          Returns:
          +
          The Motor (for chaining)
          +
          +
          +
        • +
        • +
          +

          getDirection

          +
          + public com.qualcomm.robotcore.hardware.DcMotorSimple.Direction getDirection() +
          +
          + Returns the DcMotorSimple.Direction the motor is traveling +
          +
          +
        • +
        • +
          +

          setBackward

          +
          + public Motor<T> setBackward() +
          +
          Set the motor to go *backward*
          +
          +
        • +
        • +
          +

          setForward

          +
          + public Motor<T> setForward() +
          +
          Set the motor to go *forward*
          +
          +
        • +
        • +
          +

          setDirection

          +
          + public Motor<T> setDirection(com.qualcomm.robotcore.hardware.DcMotorSimple.Direction dir) +
          +
          Set the motor to go in a particular direction
          +
          +
        • +
        • +
          +

          getSpeed

          +
          + @Deprecated public double getSpeed() +
          +
          + Deprecated. +
          use getPower() instead
          +
          +
          Gets the power value for the motor
          +
          +
          Returns:
          +
          the power value (as a double)
          +
          +
          +
        • +
        • +
          +

          getPower

          +
          + public double getPower() +
          +
          Gets the power value for the motor
          +
          +
          Returns:
          +
          the power value (as a double)
          +
          +
          +
        • +
        • +
          +

          setSpeed

          +
          + @Deprecated public void setSpeed(double speed) +
          +
          + Deprecated. +
          Please use setPower instead
          +
          +
          Set the (range-clipped) speed of motor
          +
          +
          Parameters:
          +
          speed - The speed of the motor
          +
          +
          +
        • +
        • +
          +

          setPower

          +
          + public void setPower(double pow) +
          +
          Set the (range-clipped) power of the motor
          +
          +
          Parameters:
          +
          pow - The power value (-1 -> 1)
          +
          +
          +
        • +
        • +
          +

          brake

          +
          + public Motor<T> brake() +
          +
          + Configure the motor to *brake* when the power is set to zero. +
          +
          +
          Returns:
          +
          The Motor device (for chaining)
          +
          +
          +
        • +
        • +
          +

          coast

          +
          + public Motor<T> coast() +
          +
          + Configure the motor to *float* when the power is set to zero. +
          +
          +
          Returns:
          +
          The Motor device (for chaining)
          +
          +
          +
        • +
        • +
          +

          get

          +
          + public Double get() +
          +
          + Gets the *speed* of the motor when it's used as a DoubleSupplier +
          +
          +
          Specified by:
          +
          + get in interface Supplier<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
          +
          Returns:
          +
          The speed of the motor
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/MotorGroup.html b/docs/TechnoLib/com/technototes/library/hardware/motor/MotorGroup.html deleted file mode 100644 index 1e2d164d..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware/motor/MotorGroup.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - -MotorGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class MotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      - -
      -
      -
      Type Parameters:
      -
      T - The type of motors to group
      -
      -
      -
      All Implemented Interfaces:
      -
      Invertable<Motor<T>>, HardwareDeviceGroup<Motor<T>>, Supplier<Double>
      -
      -
      -
      public class MotorGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends Motor<T> -implements HardwareDeviceGroup<Motor<T>>
      -
      Class for a group of motors
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getFollowers

          -
          public Motor<T>[] getFollowers()
          -
          Description copied from interface: HardwareDeviceGroup
          -
          Get the followers for the lead device
          -
          -
          Specified by:
          -
          getFollowers in interface HardwareDeviceGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          The followers
          -
          -
          -
        • -
        • -
          -

          getAllDevices

          -
          public Motor<T>[] getAllDevices()
          -
          Description copied from interface: HardwareDeviceGroup
          -
          Get all devices in group
          -
          -
          Specified by:
          -
          getAllDevices in interface HardwareDeviceGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Returns:
          -
          All devices
          -
          -
          -
        • -
        • -
          -

          propogate

          -
          public void propogate(double value)
          -
          Description copied from interface: HardwareDeviceGroup
          -
          Propogate actions across the followers -

          - Note to self: Alex couldn't spell :)

          -
          -
          Specified by:
          -
          propogate in interface HardwareDeviceGroup<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          value - the value to propogate
          -
          -
          -
        • -
        • -
          -

          setSpeed

          -
          public void setSpeed(double speed)
          -
          Description copied from class: Motor
          -
          Set speed of motor
          -
          -
          Overrides:
          -
          setSpeed in class Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>
          -
          Parameters:
          -
          speed - The speed of the motor
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/package-summary.html b/docs/TechnoLib/com/technototes/library/hardware/motor/package-summary.html index ff6bd0de..a0c8f23b 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/motor/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/hardware/motor/package-summary.html @@ -1,111 +1,173 @@ - + - - -com.technototes.library.hardware.motor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.hardware.motor

      -
      -
      -
      package com.technototes.library.hardware.motor
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.hardware.motor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.hardware.motor +

      +
      +
      +
      + package com.technototes.library.hardware.motor +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/motor/package-tree.html b/docs/TechnoLib/com/technototes/library/hardware/motor/package-tree.html index 6db3861f..b7834840 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/motor/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/hardware/motor/package-tree.html @@ -1,84 +1,152 @@ - + - - -com.technototes.library.hardware.motor Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.hardware.motor

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.hardware.motor Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.hardware.motor

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.technototes.library.hardware.HardwareDevice<T> +
            +
          • + com.technototes.library.hardware.motor.CRServo + (implements java.util.function.Supplier<T>) +
          • +
          • + com.technototes.library.hardware.motor.Motor<T> (implements java.util.function.Supplier<T>) +
              +
            • + com.technototes.library.hardware.motor.EncodedMotor<T> (implements com.technototes.library.hardware.Sensored) +
            • +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/package-summary.html b/docs/TechnoLib/com/technototes/library/hardware/package-summary.html index e564e9c1..0c1eeac7 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/hardware/package-summary.html @@ -1,115 +1,235 @@ - + - - -com.technototes.library.hardware (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.hardware

      -
      -
      -
      package com.technototes.library.hardware
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.hardware (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.hardware +

      +
      +
      +
      + package com.technototes.library.hardware +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/package-tree.html b/docs/TechnoLib/com/technototes/library/hardware/package-tree.html index c7e6bf34..a9ac137a 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/hardware/package-tree.html @@ -1,84 +1,149 @@ - + - - -com.technototes.library.hardware Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.hardware

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object -
          -
        • com.technototes.library.hardware.DummyDevice<T> (implements com.qualcomm.robotcore.hardware.HardwareDevice)
        • -
        • com.technototes.library.hardware.HardwareDevice<T>
        • -
        • com.technototes.library.hardware.Speaker
        • -
        -
      • -
      -
      -
      -

      Interface Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.hardware Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.hardware

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.technototes.library.hardware.DummyDevice<T> (implements com.qualcomm.robotcore.hardware.HardwareDevice) +
        • +
        • + com.technototes.library.hardware.FailedDevice + (implements com.qualcomm.robotcore.hardware.HardwareDevice) +
        • +
        • + com.technototes.library.hardware.HardwareDevice<T> +
        • +
        +
      • +
      +
      +
      +

      Interface Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/AnalogSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/AnalogSensor.html index 6ec1a0a3..4fc87f57 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/AnalogSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/AnalogSensor.html @@ -1,197 +1,566 @@ - + - - -AnalogSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class AnalogSensor

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.AnalogInput> -
      com.technototes.library.hardware.sensor.AnalogSensor
      -
      -
      -
      -
      -
      -
      public class AnalogSensor -extends Sensor<com.qualcomm.robotcore.hardware.AnalogInput>
      -
      Class for analog sensors
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          AnalogSensor

          -
          public AnalogSensor(com.qualcomm.robotcore.hardware.AnalogInput device)
          -
          Make an analog sensor
          -
          -
          Parameters:
          -
          device - The analog device
          -
          -
          -
        • -
        • -
          -

          AnalogSensor

          -
          public AnalogSensor(String deviceName)
          -
          Make an analog sensor
          -
          -
          Parameters:
          -
          deviceName - The device name in hardware map
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - + + + AnalogSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class AnalogSensor

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.AnalogInput> +
      com.technototes.library.hardware.sensor.AnalogSensor
      +
      +
      +
      +
      +
      +
      + public class AnalogSensor + extends + Sensor<com.qualcomm.robotcore.hardware.AnalogInput> +
      +
      Class for analog sensors
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          AnalogSensor

          +
          + public AnalogSensor(com.qualcomm.robotcore.hardware.AnalogInput device, + String nm) +
          +
          Make an analog sensor
          +
          +
          Parameters:
          +
          device - The analog device
          +
          +
          +
        • +
        • +
          +

          AnalogSensor

          +
          + public AnalogSensor(String deviceName) +
          +
          Make an analog sensor
          +
          +
          Parameters:
          +
          deviceName - The device name in hardware map
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.AnalogInput> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          getSensorValue

          +
          + public double getSensorValue() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorDistanceSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorDistanceSensor.html index 9fc013a2..018d4384 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorDistanceSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorDistanceSensor.html @@ -1,245 +1,830 @@ - + - - -ColorDistanceSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ColorDistanceSensor

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.ColorRangeSensor> -
      com.technototes.library.hardware.sensor.ColorDistanceSensor
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      IColorSensor, IDistanceSensor
      -
      -
      -
      public class ColorDistanceSensor -extends Sensor<com.qualcomm.robotcore.hardware.ColorRangeSensor> -implements IDistanceSensor, IColorSensor
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + ColorDistanceSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ColorDistanceSensor

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.ColorRangeSensor> +
      + com.technototes.library.hardware.sensor.ColorDistanceSensor +
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + IColorSensor, + IDistanceSensor +
      +
      +
      +
      + public class ColorDistanceSensor + extends + Sensor<com.qualcomm.robotcore.hardware.ColorRangeSensor> implements + IDistanceSensor, + IColorSensor +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.ColorRangeSensor> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          getDistance

          +
          + public double getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit unit) +
          +
          +
          Specified by:
          +
          + getDistance in interface IDistanceSensor +
          +
          +
          +
        • +
        • +
          +

          onUnit

          +
          + public ColorDistanceSensor onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit unit) +
          +
          +
          Specified by:
          +
          + onUnit in interface IDistanceSensor +
          +
          +
          +
        • +
        • +
          +

          getUnit

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit getUnit() +
          +
          +
          Specified by:
          +
          + getUnit in interface IDistanceSensor +
          +
          +
          +
        • +
        • +
          +

          argb

          +
          + public int argb() +
          +
          +
          Specified by:
          +
          + argb in interface IColorSensor +
          +
          +
          +
        • +
        • +
          +

          getLight

          +
          + public double getLight() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorSensor.html index 37aed985..1054a409 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/ColorSensor.html @@ -1,209 +1,651 @@ - + - - -ColorSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ColorSensor

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.ColorSensor> -
      com.technototes.library.hardware.sensor.ColorSensor
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      IColorSensor
      -
      -
      -
      public class ColorSensor -extends Sensor<com.qualcomm.robotcore.hardware.ColorSensor> -implements IColorSensor
      -
      Class for color sensors
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ColorSensor

          -
          public ColorSensor(com.qualcomm.robotcore.hardware.ColorSensor device)
          -
          Make a color Sensor
          -
          -
          Parameters:
          -
          device - The hardware device
          -
          -
          -
        • -
        • -
          -

          ColorSensor

          -
          public ColorSensor(String deviceName)
          -
          Make a color sensor
          -
          -
          Parameters:
          -
          deviceName - The device name in hardware map
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - + + + ColorSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ColorSensor

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.ColorSensor> +
      com.technototes.library.hardware.sensor.ColorSensor
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + IColorSensor +
      +
      +
      +
      + public class ColorSensor + extends + Sensor<com.qualcomm.robotcore.hardware.ColorSensor> implements + IColorSensor +
      +
      Class for color sensors
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          val

          +
          + public int val +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ColorSensor

          +
          + public ColorSensor(com.qualcomm.robotcore.hardware.ColorSensor device, + String nm) +
          +
          Make a color Sensor
          +
          +
          Parameters:
          +
          device - The hardware device
          +
          +
          +
        • +
        • +
          +

          ColorSensor

          +
          + public ColorSensor(String deviceName) +
          +
          Make a color sensor
          +
          +
          Parameters:
          +
          deviceName - The device name in hardware map
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.ColorSensor> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          argb

          +
          + public int argb() +
          +
          +
          Specified by:
          +
          + argb in interface IColorSensor +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/DigitalSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/DigitalSensor.html index 27b8d59c..e3a453c2 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/DigitalSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/DigitalSensor.html @@ -1,204 +1,568 @@ - + - - -DigitalSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class DigitalSensor

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.DigitalChannel> -
      com.technototes.library.hardware.sensor.DigitalSensor
      -
      -
      -
      -
      -
      -
      public class DigitalSensor -extends Sensor<com.qualcomm.robotcore.hardware.DigitalChannel>
      -
      Class for digital sensors
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          DigitalSensor

          -
          public DigitalSensor(com.qualcomm.robotcore.hardware.DigitalChannel device)
          -
          Make a digital sensor
          -
          -
          Parameters:
          -
          device - The device
          -
          -
          -
        • -
        • -
          -

          DigitalSensor

          -
          public DigitalSensor(String deviceName)
          -
          Make a digital sensor
          -
          -
          Parameters:
          -
          deviceName - The device name in hardware map
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getValue

          -
          public boolean getValue()
          -
          Get the sensor value as a boolean
          -
          -
          Returns:
          -
          Sensor value as boolean
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + DigitalSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class DigitalSensor

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.DigitalChannel> +
      com.technototes.library.hardware.sensor.DigitalSensor
      +
      +
      +
      +
      +
      +
      + public class DigitalSensor + extends + Sensor<com.qualcomm.robotcore.hardware.DigitalChannel> +
      +
      Class for digital sensors
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          DigitalSensor

          +
          + public DigitalSensor(com.qualcomm.robotcore.hardware.DigitalChannel device, + String nm) +
          +
          Make a digital sensor
          +
          +
          Parameters:
          +
          device - The device
          +
          +
          +
        • +
        • +
          +

          DigitalSensor

          +
          + public DigitalSensor(String deviceName) +
          +
          Make a digital sensor
          +
          +
          Parameters:
          +
          deviceName - The device name in hardware map
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.DigitalChannel> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          getValue

          +
          + public boolean getValue() +
          +
          Get the sensor value as a boolean
          +
          +
          Returns:
          +
          Sensor value as boolean
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/IColorSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/IColorSensor.html index b8bb2b4d..6c0d4fe5 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/IColorSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/IColorSensor.html @@ -1,275 +1,613 @@ - + - - -IColorSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface IColorSensor

      -
      -
      -
      -
      All Known Implementing Classes:
      -
      ColorDistanceSensor, ColorSensor
      -
      -
      -
      public interface IColorSensor
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default int
        - -
        -
        Get the alpha (transparency) of the color
        -
        -
        int
        - -
         
        -
        default int
        - -
        -
        Get the RGB blue of the sensor
        -
        -
        default int
        - -
        -
        Get the RGB green of the sensor
        -
        -
        default int
        -
        hsv()
        -
        -
        Get HSV as an int
        -
        -
        default float[]
        - -
         
        -
        default int
        -
        hue()
        -
        -
        Get HSV hue
        -
        -
        default int
        -
        red()
        -
        -
        Get the RGB red of the sensor
        -
        -
        default int
        -
        rgb()
        -
         
        -
        default int
        - -
        -
        Get HSV saturation
        -
        -
        default int
        - -
        -
        Get HSV value (not entire HSV, just 'V')
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          red

          -
          default int red()
          -
          Get the RGB red of the sensor
          -
          -
          Returns:
          -
          Red
          -
          -
          -
        • -
        • -
          -

          green

          -
          default int green()
          -
          Get the RGB green of the sensor
          -
          -
          Returns:
          -
          Green
          -
          -
          -
        • -
        • -
          -

          blue

          -
          default int blue()
          -
          Get the RGB blue of the sensor
          -
          -
          Returns:
          -
          Blue
          -
          -
          -
        • -
        • -
          -

          alpha

          -
          default int alpha()
          -
          Get the alpha (transparency) of the color
          -
          -
          Returns:
          -
          Alpha
          -
          -
          -
        • -
        • -
          -

          hsv

          -
          default int hsv()
          -
          Get HSV as an int
          -
          -
          Returns:
          -
          HSV
          -
          -
          -
        • -
        • -
          -

          rgb

          -
          default int rgb()
          -
          -
        • -
        • -
          -

          argb

          -
          @ColorInt -int argb()
          -
          -
        • -
        • -
          -

          hsvArray

          -
          default float[] hsvArray()
          -
          -
        • -
        • -
          -

          hue

          -
          default int hue()
          -
          Get HSV hue
          -
          -
          Returns:
          -
          Hue
          -
          -
          -
        • -
        • -
          -

          saturation

          -
          default int saturation()
          -
          Get HSV saturation
          -
          -
          Returns:
          -
          Saturation
          -
          -
          -
        • -
        • -
          -

          value

          -
          default int value()
          -
          Get HSV value (not entire HSV, just 'V')
          -
          -
          Returns:
          -
          Value
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + IColorSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface IColorSensor

      +
      +
      +
      +
      All Known Implementing Classes:
      +
      + ColorDistanceSensor, + ColorSensor +
      +
      +
      +
      + public interface IColorSensor +
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default int +
        +
        + alpha() +
        +
        +
        Get the alpha (transparency) of the color
        +
        +
        + int +
        +
        + argb() +
        +
        +   +
        +
        + default int +
        +
        + blue() +
        +
        +
        Get the RGB blue of the sensor
        +
        +
        + default int +
        +
        + green() +
        +
        +
        Get the RGB green of the sensor
        +
        +
        + default int +
        +
        + hsv() +
        +
        +
        Get HSV as an int
        +
        +
        + default float[] +
        +
        + hsvArray() +
        +
        +   +
        +
        + default int +
        +
        + hue() +
        +
        +
        Get HSV hue
        +
        +
        + default int +
        +
        + red() +
        +
        +
        Get the RGB red of the sensor
        +
        +
        + default int +
        +
        + rgb() +
        +
        +   +
        +
        + default int +
        +
        + saturation() +
        +
        +
        Get HSV saturation
        +
        +
        + default int +
        +
        + value() +
        +
        +
        Get HSV value (not entire HSV, just 'V')
        +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          red

          +
          + default int red() +
          +
          Get the RGB red of the sensor
          +
          +
          Returns:
          +
          Red
          +
          +
          +
        • +
        • +
          +

          green

          +
          + default int green() +
          +
          Get the RGB green of the sensor
          +
          +
          Returns:
          +
          Green
          +
          +
          +
        • +
        • +
          +

          blue

          +
          + default int blue() +
          +
          Get the RGB blue of the sensor
          +
          +
          Returns:
          +
          Blue
          +
          +
          +
        • +
        • +
          +

          alpha

          +
          + default int alpha() +
          +
          Get the alpha (transparency) of the color
          +
          +
          Returns:
          +
          Alpha
          +
          +
          +
        • +
        • +
          +

          hsv

          +
          + default int hsv() +
          +
          Get HSV as an int
          +
          +
          Returns:
          +
          HSV
          +
          +
          +
        • +
        • +
          +

          rgb

          +
          + default int rgb() +
          +
          +
        • +
        • +
          +

          argb

          +
          + @ColorInt int argb() +
          +
          +
        • +
        • +
          +

          hsvArray

          +
          + default float[] hsvArray() +
          +
          +
        • +
        • +
          +

          hue

          +
          + default int hue() +
          +
          Get HSV hue
          +
          +
          Returns:
          +
          Hue
          +
          +
          +
        • +
        • +
          +

          saturation

          +
          + default int saturation() +
          +
          Get HSV saturation
          +
          +
          Returns:
          +
          Saturation
          +
          +
          +
        • +
        • +
          +

          value

          +
          + default int value() +
          +
          Get HSV value (not entire HSV, just 'V')
          +
          +
          Returns:
          +
          Value
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/IDistanceSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/IDistanceSensor.html index ff0987a8..9219a8c1 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/IDistanceSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/IDistanceSensor.html @@ -1,155 +1,397 @@ - + - - -IDistanceSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface IDistanceSensor

      -
      -
      -
      -
      All Known Implementing Classes:
      -
      ColorDistanceSensor, Rev2MDistanceSensor
      -
      -
      -
      public interface IDistanceSensor
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default double
        - -
         
        -
        double
        -
        getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit unit)
        -
         
        -
        org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit
        - -
         
        - -
        onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit)
        -
         
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getDistance

          -
          default double getDistance()
          -
          -
        • -
        • -
          -

          getDistance

          -
          double getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit unit)
          -
          -
        • -
        • -
          -

          onUnit

          -
          IDistanceSensor onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit)
          -
          -
        • -
        • -
          -

          getUnit

          -
          org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit getUnit()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + IDistanceSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface IDistanceSensor

      +
      +
      +
      +
      All Known Implementing Classes:
      +
      + ColorDistanceSensor, + Rev2MDistanceSensor +
      +
      +
      +
      + public interface IDistanceSensor +
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default double +
        +
        + getDistance() +
        +
        +   +
        +
        + double +
        +
        + getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit unit) +
        +
        +   +
        +
        + org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit +
        +
        + getUnit() +
        +
        +   +
        + +
        + onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit) +
        +
        +   +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getDistance

          +
          + default double getDistance() +
          +
          +
        • +
        • +
          +

          getDistance

          +
          + double getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit unit) +
          +
          +
        • +
        • +
          +

          onUnit

          +
          + IDistanceSensor onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit) +
          +
          +
        • +
        • +
          +

          getUnit

          +
          + org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit getUnit() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/IGyro.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/IGyro.html index a364f9f0..711cfd7e 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/IGyro.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/IGyro.html @@ -1,196 +1,411 @@ - + - - -IGyro (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface IGyro

      -
      -
      -
      -
      All Known Implementing Classes:
      -
      IMU
      -
      -
      -
      public interface IGyro
      -
      An interface for a single-angle gyroscope
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        double
        - -
        -
        The heading (in default units)
        -
        -
        double
        - -
        -
        The heading (in degrees)
        -
        -
        double
        - -
        -
        The heading (in radians)
        -
        -
        void
        -
        setHeading(double newHeading)
        -
        -
        Sets the current heading (in default units)
        -
        -
        default void
        - -
        -
        Zeroes the current heading (in default units)
        -
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          gyroHeading

          -
          double gyroHeading()
          -
          The heading (in default units)
          -
          -
          Returns:
          -
          the head (in default units)
          -
          -
          -
        • -
        • -
          -

          gyroHeadingInDegrees

          - -
          The heading (in degrees)
          -
          -
          Returns:
          -
          the head (in degrees)
          -
          -
          -
        • -
        • -
          -

          gyroHeadingInRadians

          - -
          The heading (in radians)
          -
          -
          Returns:
          -
          the head (in radians units)
          -
          -
          -
        • -
        • -
          -

          setHeading

          -
          void setHeading(double newHeading)
          -
          Sets the current heading (in default units)
          -
          -
          Parameters:
          -
          newHeading - The new heading (in default units)
          -
          -
          -
        • -
        • -
          -

          zero

          -
          default void zero()
          -
          Zeroes the current heading (in default units)
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + IGyro (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface IGyro

      +
      +
      +
      +
      All Known Implementing Classes:
      +
      + IMU +
      +
      +
      +
      + public interface IGyro +
      +
      An interface for a single-angle gyroscope
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + double +
        +
        + gyroHeading() +
        +
        +
        The heading (in default units)
        +
        +
        + double +
        + +
        +
        The heading (in degrees)
        +
        +
        + double +
        + +
        +
        The heading (in radians)
        +
        +
        + void +
        +
        + setHeading(double newHeading) +
        +
        +
        Sets the current heading (in default units)
        +
        +
        + default void +
        +
        + zero() +
        +
        +
        Zeroes the current heading (in default units)
        +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          gyroHeading

          +
          + double gyroHeading() +
          +
          The heading (in default units)
          +
          +
          Returns:
          +
          the head (in default units)
          +
          +
          +
        • +
        • +
          +

          gyroHeadingInDegrees

          +
          + double gyroHeadingInDegrees() +
          +
          The heading (in degrees)
          +
          +
          Returns:
          +
          the head (in degrees)
          +
          +
          +
        • +
        • +
          +

          gyroHeadingInRadians

          +
          + double gyroHeadingInRadians() +
          +
          The heading (in radians)
          +
          +
          Returns:
          +
          the head (in radians units)
          +
          +
          +
        • +
        • +
          +

          setHeading

          +
          + void setHeading(double newHeading) +
          +
          Sets the current heading (in default units)
          +
          +
          Parameters:
          +
          newHeading - The new heading (in default units)
          +
          +
          +
        • +
        • +
          +

          zero

          +
          + default void zero() +
          +
          Zeroes the current heading (in default units)
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/ILightSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/ILightSensor.html index d5da6437..d2d92556 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/ILightSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/ILightSensor.html @@ -1,79 +1,138 @@ - + - - -ILightSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface ILightSensor

      -
      -
      -
      -
      public interface ILightSensor
      -
      - -
      -
      -
      - + + + ILightSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface ILightSensor

      +
      +
      +
      +
      + public interface ILightSensor +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.AxesSigns.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.AxesSigns.html index cc626fed..269c2c8d 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.AxesSigns.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.AxesSigns.html @@ -1,326 +1,952 @@ - + - - -IMU.AxesSigns (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class IMU.AxesSigns

      -
      -
      java.lang.Object -
      java.lang.Enum<IMU.AxesSigns> -
      com.technototes.library.hardware.sensor.IMU.AxesSigns
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<IMU.AxesSigns>, Constable
      -
      -
      -
      Enclosing class:
      -
      IMU
      -
      -
      -
      public static enum IMU.AxesSigns -extends Enum<IMU.AxesSigns>
      -
      The direction of the axes signs when remapping the axes
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        -

        Nested classes/interfaces inherited from class java.lang.Enum

        -Enum.EnumDesc<E extends Enum<E>>
        -
        -
      • - -
      • -
        -

        Enum Constant Summary

        -
        Enum Constants
        -
        -
        Enum Constant
        -
        Description
        - -
        -
        Negative, Negative, Negative
        -
        - -
        -
        Negative, Negative, Positive
        -
        - -
        -
        Negative, Positive, Negative
        -
        - -
        -
        Negative, Positive, Positive
        -
        - -
        -
        Positive, Negative, Negative
        -
        - -
        -
        Positive, Negative, Positive
        -
        - -
        -
        Positive, Positive, Negative
        -
        - -
        -
        Positive, Positive, Positive
        -
        -
        -
        -
      • - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        -
        int
        - -
        -
        The value of the enumeration
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - - -
        -
        Returns the enum constant of this class with the specified name.
        -
        -
        static IMU.AxesSigns[]
        - -
        -
        Returns an array containing the constants of this enum class, in -the order they are declared.
        -
        -
        -
        -
        - -
        -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        -
          -
        • -
          -

          PPP

          -
          public static final IMU.AxesSigns PPP
          -
          Positive, Positive, Positive
          -
          -
        • -
        • -
          -

          PPN

          -
          public static final IMU.AxesSigns PPN
          -
          Positive, Positive, Negative
          -
          -
        • -
        • -
          -

          PNP

          -
          public static final IMU.AxesSigns PNP
          -
          Positive, Negative, Positive
          -
          -
        • -
        • -
          -

          PNN

          -
          public static final IMU.AxesSigns PNN
          -
          Positive, Negative, Negative
          -
          -
        • -
        • -
          -

          NPP

          -
          public static final IMU.AxesSigns NPP
          -
          Negative, Positive, Positive
          -
          -
        • -
        • -
          -

          NPN

          -
          public static final IMU.AxesSigns NPN
          -
          Negative, Positive, Negative
          -
          -
        • -
        • -
          -

          NNP

          -
          public static final IMU.AxesSigns NNP
          -
          Negative, Negative, Positive
          -
          -
        • -
        • -
          -

          NNN

          -
          public static final IMU.AxesSigns NNN
          -
          Negative, Negative, Negative
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          bVal

          -
          public int bVal
          -
          The value of the enumeration
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static IMU.AxesSigns[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static IMU.AxesSigns valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + IMU.AxesSigns (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Enum Class IMU.AxesSigns

      +
      +
      + java.lang.Object +
      + java.lang.Enum<IMU.AxesSigns> +
      com.technototes.library.hardware.sensor.IMU.AxesSigns
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<IMU.AxesSigns>, + Constable +
      +
      +
      +
      Enclosing class:
      +
      + IMU +
      +
      +
      +
      + @Deprecated public static enum IMU.AxesSigns + extends + Enum<IMU.AxesSigns> +
      +
      Deprecated.
      +
      + The direction of the axes signs when remapping the axes Probably don't use this stuff. + Just use the IMU direction from the 8.1 and later SDK +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        +

        + Nested classes/interfaces inherited from class java.lang.Enum +

        + Enum.EnumDesc<E + extends + Enum<E>> +
        +
        +
      • + +
      • +
        +

        Enum Constant Summary

        +
        Enum Constants
        +
        +
        Enum Constant
        +
        Description
        +
        + NNN +
        +
        +
        Deprecated.
        +
        Negative, Negative, Negative
        +
        +
        + NNP +
        +
        +
        Deprecated.
        +
        Negative, Negative, Positive
        +
        +
        + NPN +
        +
        +
        Deprecated.
        +
        Negative, Positive, Negative
        +
        +
        + NPP +
        +
        +
        Deprecated.
        +
        Negative, Positive, Positive
        +
        +
        + PNN +
        +
        +
        Deprecated.
        +
        Positive, Negative, Negative
        +
        +
        + PNP +
        +
        +
        Deprecated.
        +
        Positive, Negative, Positive
        +
        +
        + PPN +
        +
        +
        Deprecated.
        +
        Positive, Positive, Negative
        +
        +
        + PPP +
        +
        +
        Deprecated.
        +
        Positive, Positive, Positive
        +
        +
        +
        +
      • + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        int
        +
        + bVal +
        +
        +
        Deprecated.
        +
        The value of the enumeration
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static + IMU.AxesSigns +
        +
        + valueOf(String name) +
        +
        +
        Deprecated.
        +
        + Returns the enum constant of this class with the specified name. +
        +
        +
        + static + IMU.AxesSigns[] +
        +
        + values() +
        +
        +
        Deprecated.
        +
        + Returns an array containing the constants of this enum class, in the + order they are declared. +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Enum +

        + clone, + compareTo, + describeConstable, + equals, + finalize, + getDeclaringClass, + hashCode, + name, + ordinal, + toString, + valueOf +
        +
        +

        + Methods inherited from class java.lang.Object +

        + getClass, + notify, + notifyAll, + wait, + wait, + wait +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        +
          +
        • +
          +

          PPP

          +
          + public static final IMU.AxesSigns PPP +
          +
          + Deprecated. +
          +
          Positive, Positive, Positive
          +
          +
        • +
        • +
          +

          PPN

          +
          + public static final IMU.AxesSigns PPN +
          +
          + Deprecated. +
          +
          Positive, Positive, Negative
          +
          +
        • +
        • +
          +

          PNP

          +
          + public static final IMU.AxesSigns PNP +
          +
          + Deprecated. +
          +
          Positive, Negative, Positive
          +
          +
        • +
        • +
          +

          PNN

          +
          + public static final IMU.AxesSigns PNN +
          +
          + Deprecated. +
          +
          Positive, Negative, Negative
          +
          +
        • +
        • +
          +

          NPP

          +
          + public static final IMU.AxesSigns NPP +
          +
          + Deprecated. +
          +
          Negative, Positive, Positive
          +
          +
        • +
        • +
          +

          NPN

          +
          + public static final IMU.AxesSigns NPN +
          +
          + Deprecated. +
          +
          Negative, Positive, Negative
          +
          +
        • +
        • +
          +

          NNP

          +
          + public static final IMU.AxesSigns NNP +
          +
          + Deprecated. +
          +
          Negative, Negative, Positive
          +
          +
        • +
        • +
          +

          NNN

          +
          + public static final IMU.AxesSigns NNN +
          +
          + Deprecated. +
          +
          Negative, Negative, Negative
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          bVal

          +
          + public int bVal +
          +
          + Deprecated. +
          +
          The value of the enumeration
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static IMU.AxesSigns[] values() +
          +
          + Deprecated. +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static IMU.AxesSigns valueOf(String name) +
          +
          + Deprecated. +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.html index 4cb8f885..6cb6d82a 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/IMU.html @@ -1,488 +1,1462 @@ - + - - -IMU (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - - -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.IMU> -
      com.technototes.library.hardware.sensor.IMU
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      IGyro
      -
      -
      -
      public class IMU -extends Sensor<com.qualcomm.robotcore.hardware.IMU> -implements IGyro
      -
      Class for the IMU (Inertial Movement Units) that implements the IGyro interface
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        Nested Classes
        -
        -
        Modifier and Type
        -
        Class
        -
        Description
        -
        static enum 
        - -
        -
        The direction of the axes signs when remapping the axes
        -
        -
        -
        -
      • - -
      • -
        -

        Field Summary

        -
        -

        Fields inherited from class com.technototes.library.hardware.HardwareDevice

        -device, hardwareMap
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        IMU(com.qualcomm.robotcore.hardware.IMU device, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb)
        -
        -
        Make an imu
        -
        -
        IMU(com.qualcomm.robotcore.hardware.IMU device, - com.qualcomm.robotcore.hardware.IMU.Parameters params)
        -
        -
        Make an imu
        -
        -
        IMU(String deviceName, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb)
        -
        -
        Make an imu
        -
        -
        IMU(String deviceName, - com.qualcomm.robotcore.hardware.IMU.Parameters params)
        -
        -
        Make an imu
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - - -
        -
        Set angle format to degrees
        -
        -
        org.firstinspires.ftc.robotcore.external.navigation.Orientation
        - -
         
        -
        org.firstinspires.ftc.robotcore.external.navigation.Orientation
        -
        getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units)
        -
        -
        Gets the Angular orientation of the IMU
        -
        -
        org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity
        - -
         
        -
        org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity
        -
        getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units)
        -
        -
        Gets the angular velocity (in default units)
        -
        -
        double
        - -
        -
        Get gyro heading
        -
        -
        double
        -
        gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit unit)
        -
        -
        Get the gyro heading in the provided units
        -
        -
        double
        - -
        -
        Gets the gyro heading in degrees
        -
        -
        double
        - -
        -
        Gets the gyro heading in radians
        -
        - -
        initialize(com.qualcomm.robotcore.hardware.IMU.Parameters imuParams)
        -
        -
        Initialize the IMU
        -
        - - -
        -
        Set angle format to radians
        -
        - -
        remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, - IMU.AxesSigns signs)
        -
        -
        Remaps the axes for the IMU in the order and sign provided.
        -
        - -
        remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder legacyOrder, - IMU.AxesSigns legacySigns)
        -
        -
        Remaps the axes for the BNO055 IMU in the order and sign provided - The SDK 8.1.1 added a new IMU class, which (delightfully) rotated - the X and Y axes around the Z axis by 90 degrees clock-wise (viewed from above) - If you have code that was using that layout, this is what you probably need to call.
        -
        -
        void
        -
        setHeading(double newHeading)
        -
        -
        Sets the current heading to be 'new heading'
        -
        -
        -
        -
        -
        -

        Methods inherited from class com.technototes.library.hardware.HardwareDevice

        -getDevice
        -
        -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        -
        -

        Methods inherited from interface com.technototes.library.hardware.sensor.IGyro

        -zero
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          IMU

          -
          public IMU(com.qualcomm.robotcore.hardware.IMU device, - com.qualcomm.robotcore.hardware.IMU.Parameters params)
          -
          Make an imu
          -
          -
        • -
        • -
          -

          IMU

          -
          public IMU(String deviceName, - com.qualcomm.robotcore.hardware.IMU.Parameters params)
          -
          Make an imu
          -
          -
        • -
        • -
          -

          IMU

          -
          public IMU(com.qualcomm.robotcore.hardware.IMU device, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb)
          -
          Make an imu
          -
          -
          Parameters:
          -
          device - The imu device
          -
          -
          -
        • -
        • -
          -

          IMU

          -
          public IMU(String deviceName, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, - com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb)
          -
          Make an imu
          -
          -
          Parameters:
          -
          deviceName - The device name in hardware map
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          degrees

          -
          public IMU degrees()
          -
          Set angle format to degrees
          -
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          radians

          -
          public IMU radians()
          -
          Set angle format to radians
          -
          -
          Returns:
          -
          this (for chaining)
          -
          -
          -
        • -
        • -
          -

          initialize

          -
          public IMU initialize(com.qualcomm.robotcore.hardware.IMU.Parameters imuParams)
          -
          Initialize the IMU
          -
          -
          Returns:
          -
          the IMU (for chaining)
          -
          -
          -
        • -
        • -
          -

          gyroHeading

          -
          public double gyroHeading()
          -
          Get gyro heading
          -
          -
          Specified by:
          -
          gyroHeading in interface IGyro
          -
          Returns:
          -
          The gyro heading (in preferred units, from -180/pi to +180/pi
          -
          -
          -
        • -
        • -
          -

          gyroHeading

          -
          public double gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit unit)
          -
          Get the gyro heading in the provided units
          -
          -
          Parameters:
          -
          unit - the unit desired
          -
          Returns:
          -
          The heading in 'unit' units from -180/pi to +180/pi
          -
          -
          -
        • -
        • -
          -

          gyroHeadingInDegrees

          -
          public double gyroHeadingInDegrees()
          -
          Gets the gyro heading in degrees
          -
          -
          Specified by:
          -
          gyroHeadingInDegrees in interface IGyro
          -
          Returns:
          -
          the heading
          -
          -
          -
        • -
        • -
          -

          gyroHeadingInRadians

          -
          public double gyroHeadingInRadians()
          -
          Gets the gyro heading in radians
          -
          -
          Specified by:
          -
          gyroHeadingInRadians in interface IGyro
          -
          Returns:
          -
          the heading
          -
          -
          -
        • -
        • -
          -

          setHeading

          -
          public void setHeading(double newHeading)
          -
          Sets the current heading to be 'new heading'
          -
          -
          Specified by:
          -
          setHeading in interface IGyro
          -
          Parameters:
          -
          newHeading - The new heading (in default units)
          -
          -
          -
        • -
        • -
          -

          remapAxesAndSigns

          -
          public IMU remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, - IMU.AxesSigns signs)
          -
          Remaps the axes for the IMU in the order and sign provided. - This is using the 8.1.1+ IMU axis order: - - Z up from the Control Hub - - X positive toward the sensor connector side (I2C, etc...) - - Y positive toward the USB connector end
          -
          -
          Parameters:
          -
          order - The axis order desired
          -
          signs - The signs desired
          -
          Returns:
          -
          this (for chaining)
          -
          -
          -
        • -
        • -
          -

          remapLegacyAxes

          -
          public IMU remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder legacyOrder, - IMU.AxesSigns legacySigns)
          -
          Remaps the axes for the BNO055 IMU in the order and sign provided - The SDK 8.1.1 added a new IMU class, which (delightfully) rotated - the X and Y axes around the Z axis by 90 degrees clock-wise (viewed from above) - If you have code that was using that layout, this is what you probably need to call. - I expect to delete this code eventually. Also: it's really not tested at all...
          -
          -
          Parameters:
          -
          legacyOrder - The *legacy* axis order desired
          -
          legacySigns - The *legacy* signs desired
          -
          Returns:
          -
          this (for chaining)
          -
          -
          -
        • -
        • -
          -

          getAngularVelocity

          -
          public org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units)
          -
          Gets the angular velocity (in default units)
          -
          -
          Returns:
          -
          The Angular Velocity
          -
          -
          -
        • -
        • -
          -

          getAngularVelocity

          -
          public org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity getAngularVelocity()
          -
          -
        • -
        • -
          -

          getAngularOrientation

          -
          public org.firstinspires.ftc.robotcore.external.navigation.Orientation getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units)
          -
          Gets the Angular orientation of the IMU
          -
          -
          Returns:
          -
          the Orientation of the IMU
          -
          -
          -
        • -
        • -
          -

          getAngularOrientation

          -
          public org.firstinspires.ftc.robotcore.external.navigation.Orientation getAngularOrientation()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + IMU (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class IMU

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.IMU> +
      com.technototes.library.hardware.sensor.IMU
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + IGyro +
      +
      +
      +
      + public class IMU + extends + Sensor<com.qualcomm.robotcore.hardware.IMU> implements + IGyro +
      +
      + Class for the IMU (Inertial Movement Units) that implements the IGyro interface +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static enum 
        + +
        +
        Deprecated.
        +
        +
        +
        +
      • + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity +
        + +
         
        +
        +
        +

        + Fields inherited from class com.technototes.library.hardware.HardwareDevice +

        + devices, + hardwareMap, + name, + names +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Modifier
        +
        Constructor
        +
        Description
        +
         
        +
        + IMU(com.qualcomm.robotcore.hardware.IMU device, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb) +
        +
        +
        Make an imu
        +
        +
        protected
        +
        + IMU(com.qualcomm.robotcore.hardware.IMU device, + com.qualcomm.robotcore.hardware.IMU.Parameters params) +
        +
        +
        + Make an imu Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ + SDK +
        +
        +
         
        +
        + IMU(String deviceName, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb) +
        +
        +
        Make an imu
        +
        +
        protected
        +
        + IMU(String deviceName, + com.qualcomm.robotcore.hardware.IMU.Parameters params) +
        +
        +
        + Make an imu Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ + SDK +
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + IMU +
        +
        + degrees() +
        +
        +
        Set angle format to degrees
        +
        +
        + org.firstinspires.ftc.robotcore.external.navigation.Orientation +
        + +
        +   +
        +
        + org.firstinspires.ftc.robotcore.external.navigation.Orientation +
        +
        + getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units) +
        +
        +
        Gets the Angular orientation of the IMU
        +
        +
        + org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity +
        + +
        +   +
        +
        + org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity +
        +
        + getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units) +
        +
        +
        Gets the angular velocity (in default units)
        +
        +
        + double +
        +
        + gyroHeading() +
        +
        +
        Get gyro heading
        +
        +
        + double +
        +
        + gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit unit) +
        +
        +
        Get the gyro heading in the provided units
        +
        +
        + double +
        + +
        +
        Gets the gyro heading in degrees
        +
        +
        + double +
        + +
        +
        Gets the gyro heading in radians
        +
        +
        + IMU +
        +
        + initialize(com.qualcomm.robotcore.hardware.IMU.Parameters imuParams) +
        +
        +
        Initialize the IMU
        +
        +
        + String +
        +
        + LogLine() +
        +
        +
        + This is used for logging stuff by name and/or device type +
        +
        +
        + IMU +
        +
        + radians() +
        +
        +
        Set angle format to radians
        +
        +
        + IMU +
        +
        + remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, + IMU.AxesSigns signs) +
        +
        +
        + Remaps the axes for the IMU in the order and sign provided. +
        +
        +
        + IMU +
        +
        + remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder legacyOrder, + IMU.AxesSigns legacySigns) +
        +
        +
        Deprecated.
        +
        +
        + void +
        +
        + setHeading(double newHeading) +
        +
        +
        Sets the current heading to be 'new heading'
        +
        +
        +
        +
        +
        +

        + Methods inherited from class com.technototes.library.hardware.HardwareDevice +

        + getName, + getRawDevice, + initMap, logData, + realHardware +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        + Methods inherited from + interface com.technototes.library.hardware.sensor.IGyro +

        + zero +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          angularVelocity

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity angularVelocity +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          IMU

          +
          + protected IMU(com.qualcomm.robotcore.hardware.IMU device, + com.qualcomm.robotcore.hardware.IMU.Parameters params) +
          +
          + Make an imu Use the Logo/Usb Facing direction API's as part of the FTC + 8.1+ SDK +
          +
          +
        • +
        • +
          +

          IMU

          +
          + protected IMU(String deviceName, + com.qualcomm.robotcore.hardware.IMU.Parameters params) +
          +
          + Make an imu Use the Logo/Usb Facing direction API's as part of the FTC + 8.1+ SDK +
          +
          +
        • +
        • +
          +

          IMU

          +
          + public IMU(com.qualcomm.robotcore.hardware.IMU device, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb) +
          +
          Make an imu
          +
          +
          Parameters:
          +
          device - The imu device
          +
          +
          +
        • +
        • +
          +

          IMU

          +
          + public IMU(String deviceName, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.LogoFacingDirection logo, + com.qualcomm.hardware.rev.RevHubOrientationOnRobot.UsbFacingDirection usb) +
          +
          Make an imu
          +
          +
          Parameters:
          +
          deviceName - The device name in hardware map
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.IMU> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          degrees

          +
          + public IMU degrees() +
          +
          Set angle format to degrees
          +
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          radians

          +
          + public IMU radians() +
          +
          Set angle format to radians
          +
          +
          Returns:
          +
          this (for chaining)
          +
          +
          +
        • +
        • +
          +

          initialize

          +
          + public IMU initialize(com.qualcomm.robotcore.hardware.IMU.Parameters imuParams) +
          +
          Initialize the IMU
          +
          +
          Returns:
          +
          the IMU (for chaining)
          +
          +
          +
        • +
        • +
          +

          gyroHeading

          +
          + public double gyroHeading() +
          +
          Get gyro heading
          +
          +
          Specified by:
          +
          + gyroHeading in interface IGyro +
          +
          Returns:
          +
          The gyro heading (in preferred units, from -180/pi to +180/pi
          +
          +
          +
        • +
        • +
          +

          gyroHeading

          +
          + public double gyroHeading(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit unit) +
          +
          Get the gyro heading in the provided units
          +
          +
          Parameters:
          +
          unit - the unit desired
          +
          Returns:
          +
          The heading in 'unit' units from -180/pi to +180/pi
          +
          +
          +
        • +
        • +
          +

          gyroHeadingInDegrees

          +
          + public double gyroHeadingInDegrees() +
          +
          Gets the gyro heading in degrees
          +
          +
          Specified by:
          +
          + gyroHeadingInDegrees in interface IGyro +
          +
          Returns:
          +
          the heading
          +
          +
          +
        • +
        • +
          +

          gyroHeadingInRadians

          +
          + public double gyroHeadingInRadians() +
          +
          Gets the gyro heading in radians
          +
          +
          Specified by:
          +
          + gyroHeadingInRadians in interface IGyro +
          +
          Returns:
          +
          the heading
          +
          +
          +
        • +
        • +
          +

          setHeading

          +
          + public void setHeading(double newHeading) +
          +
          Sets the current heading to be 'new heading'
          +
          +
          Specified by:
          +
          + setHeading in interface IGyro +
          +
          Parameters:
          +
          newHeading - The new heading (in default units)
          +
          +
          +
        • +
        • +
          +

          remapAxesAndSigns

          +
          + public IMU remapAxesAndSigns(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, + IMU.AxesSigns signs) +
          +
          + Remaps the axes for the IMU in the order and sign provided. This is using + the 8.1.1+ IMU axis order: - Z up from the Control Hub - X positive toward + the sensor connector side (I2C, etc...) - Y positive toward the USB + connector end +
          +
          +
          Parameters:
          +
          order - The axis order desired
          +
          signs - The signs desired
          +
          Returns:
          +
          this (for chaining)
          +
          +
          +
        • +
        • +
          +

          remapLegacyAxes

          +
          + @Deprecated public IMU remapLegacyAxes(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder legacyOrder, + IMU.AxesSigns legacySigns) +
          +
          + Deprecated. +
          +
          + Remaps the axes for the BNO055 IMU in the order and sign provided The SDK + 8.1.1 added a new IMU class, which (delightfully) rotated the X and Y axes + around the Z axis by 90 degrees clock-wise (viewed from above) If you have + code that was using that layout, this is what you probably need to call. I + expect to delete this code eventually. Also: it's really not tested at + all... +
          +
          +
          Parameters:
          +
          legacyOrder - The *legacy* axis order desired
          +
          legacySigns - The *legacy* signs desired
          +
          Returns:
          +
          this (for chaining)
          +
          +
          +
        • +
        • +
          +

          getAngularVelocity

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity getAngularVelocity(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units) +
          +
          Gets the angular velocity (in default units)
          +
          +
          Returns:
          +
          The Angular Velocity
          +
          +
          +
        • +
        • +
          +

          getAngularVelocity

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.AngularVelocity getAngularVelocity() +
          +
          +
        • +
        • +
          +

          getAngularOrientation

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.Orientation getAngularOrientation(org.firstinspires.ftc.robotcore.external.navigation.AngleUnit units) +
          +
          Gets the Angular orientation of the IMU
          +
          +
          Returns:
          +
          the Orientation of the IMU
          +
          +
          +
        • +
        • +
          +

          getAngularOrientation

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.Orientation getAngularOrientation() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.html index c54ddcd1..af2cb440 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/Rev2MDistanceSensor.html @@ -1,267 +1,752 @@ - + - - -Rev2MDistanceSensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Rev2MDistanceSensor

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.DistanceSensor> -
      com.technototes.library.hardware.sensor.Rev2MDistanceSensor
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      IDistanceSensor
      -
      -
      -
      @Deprecated -public class Rev2MDistanceSensor -extends Sensor<com.qualcomm.robotcore.hardware.DistanceSensor> -implements IDistanceSensor
      -
      Deprecated.
      -
      Class for the Rev '2m' range sensors - Note for users: The Rev 2m range sensor is actually only useful at about 1.1 - 1.2m :/
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        -

        Fields inherited from class com.technototes.library.hardware.HardwareDevice

        -device, hardwareMap
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        Rev2MDistanceSensor(com.qualcomm.robotcore.hardware.DistanceSensor device)
        -
        -
        Deprecated.
        -
        Create a range sensor
        -
        - -
        -
        Deprecated.
        -
        Create a range sensor
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        double
        -
        getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit)
        -
        -
        Deprecated.
        -
        Get the value with a specified distance Unit
        -
        -
        org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit
        - -
        -
        Deprecated.
        -
        Get the current distance unit
        -
        - -
        onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit)
        -
        -
        Deprecated.
        -
        Set the distance unit
        -
        -
        -
        -
        -
        -

        Methods inherited from class com.technototes.library.hardware.HardwareDevice

        -getDevice
        -
        -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        -
        -

        Methods inherited from interface com.technototes.library.hardware.sensor.IDistanceSensor

        -getDistance
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Rev2MDistanceSensor

          -
          public Rev2MDistanceSensor(com.qualcomm.robotcore.hardware.DistanceSensor device)
          -
          Deprecated.
          -
          Create a range sensor
          -
          -
          Parameters:
          -
          device - The sensor device
          -
          -
          -
        • -
        • -
          -

          Rev2MDistanceSensor

          -
          public Rev2MDistanceSensor(String deviceName)
          -
          Deprecated.
          -
          Create a range sensor
          -
          -
          Parameters:
          -
          deviceName - The device name
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getDistance

          -
          public double getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit)
          -
          Deprecated.
          -
          Get the value with a specified distance Unit
          -
          -
          Specified by:
          -
          getDistance in interface IDistanceSensor
          -
          Parameters:
          -
          distanceUnit - The unit
          -
          Returns:
          -
          The distance
          -
          -
          -
        • -
        • -
          -

          getUnit

          -
          public org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit getUnit()
          -
          Deprecated.
          -
          Get the current distance unit
          -
          -
          Specified by:
          -
          getUnit in interface IDistanceSensor
          -
          Returns:
          -
          The distance unit
          -
          -
          -
        • -
        • -
          -

          onUnit

          -
          public Rev2MDistanceSensor onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit)
          -
          Deprecated.
          -
          Set the distance unit
          -
          -
          Specified by:
          -
          onUnit in interface IDistanceSensor
          -
          Parameters:
          -
          distanceUnit - The unit
          -
          Returns:
          -
          This
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Rev2MDistanceSensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Rev2MDistanceSensor

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.DistanceSensor> +
      + com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + IDistanceSensor +
      +
      +
      +
      + public class Rev2MDistanceSensor + extends + Sensor<com.qualcomm.robotcore.hardware.DistanceSensor> implements + IDistanceSensor +
      +
      + Class for the Rev '2m' range sensors Note for users: The Rev 2m range sensor is + actually only useful at about 1.1 - 1.2m :/ +
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        +

        + Fields inherited from class com.technototes.library.hardware.HardwareDevice +

        + devices, + hardwareMap, + name, + names +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + Rev2MDistanceSensor(com.qualcomm.robotcore.hardware.DistanceSensor device, + String nm) +
        +
        +
        Create a range sensor
        +
        +
        + Rev2MDistanceSensor(String deviceName) +
        +
        +
        Create a range sensor
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + double +
        +
        + getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit) +
        +
        +
        Get the value with a specified distance Unit
        +
        +
        + org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit +
        +
        + getUnit() +
        +
        +
        Get the current distance unit
        +
        +
        + String +
        +
        + LogLine() +
        +
        +
        + This is used for logging stuff by name and/or device type +
        +
        + +
        + onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit) +
        +
        +
        Set the distance unit
        +
        +
        +
        +
        +
        +

        + Methods inherited from class com.technototes.library.hardware.HardwareDevice +

        + getName, + getRawDevice, + initMap, logData, + realHardware +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        + Methods inherited from + interface com.technototes.library.hardware.sensor.IDistanceSensor +

        + getDistance +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          Rev2MDistanceSensor

          +
          + public Rev2MDistanceSensor(com.qualcomm.robotcore.hardware.DistanceSensor device, + String nm) +
          +
          Create a range sensor
          +
          +
          Parameters:
          +
          device - The sensor device
          +
          +
          +
        • +
        • +
          +

          Rev2MDistanceSensor

          +
          + public Rev2MDistanceSensor(String deviceName) +
          +
          Create a range sensor
          +
          +
          Parameters:
          +
          deviceName - The device name
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.DistanceSensor> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          getDistance

          +
          + public double getDistance(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit) +
          +
          Get the value with a specified distance Unit
          +
          +
          Specified by:
          +
          + getDistance in interface IDistanceSensor +
          +
          Parameters:
          +
          distanceUnit - The unit
          +
          Returns:
          +
          The distance
          +
          +
          +
        • +
        • +
          +

          getUnit

          +
          + public org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit getUnit() +
          +
          Get the current distance unit
          +
          +
          Specified by:
          +
          + getUnit in interface IDistanceSensor +
          +
          Returns:
          +
          The distance unit
          +
          +
          +
        • +
        • +
          +

          onUnit

          +
          + public Rev2MDistanceSensor onUnit(org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit distanceUnit) +
          +
          Set the distance unit
          +
          +
          Specified by:
          +
          + onUnit in interface IDistanceSensor +
          +
          Parameters:
          +
          distanceUnit - The unit
          +
          Returns:
          +
          This
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/Sensor.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/Sensor.html index b2eae82f..b506196a 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/Sensor.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/Sensor.html @@ -1,178 +1,466 @@ - + - - -Sensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice>

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<T>
      -
      -
      -
      -
      -
      Type Parameters:
      -
      T - The Sensor hardware device
      -
      -
      -
      Direct Known Subclasses:
      -
      AnalogSensor, ColorDistanceSensor, ColorSensor, DigitalSensor, ExternalEncoder, IMU, MotorEncoder, Rev2MDistanceSensor
      -
      -
      -
      @Deprecated -public abstract class Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice> -extends HardwareDevice<T>
      -
      Deprecated.
      -
      Root class for sensors
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Sensor

          -
          public Sensor(T device)
          -
          Deprecated.
          -
          Create a sensor
          -
          -
          Parameters:
          -
          device - The device
          -
          -
          -
        • -
        • -
          -

          Sensor

          -
          public Sensor(String deviceName)
          -
          Deprecated.
          -
          Create sensor
          -
          -
          Parameters:
          -
          deviceName - The device name in hardware map
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Sensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      com.technototes.library.hardware.sensor.Sensor<T>
      +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The Sensor hardware device
      +
      +
      +
      Direct Known Subclasses:
      +
      + AnalogSensor, + ColorDistanceSensor, + ColorSensor, + DigitalSensor, + ExternalEncoder, + IMU, + MotorEncoder, + Rev2MDistanceSensor +
      +
      +
      +
      + public abstract class Sensor<T extends com.qualcomm.robotcore.hardware.HardwareDevice> + extends + HardwareDevice<T> +
      +
      Root class for sensors
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          + Sensor +

          +
          + public Sensor(T device, + String nm) +
          +
          Create a sensor
          +
          +
          Parameters:
          +
          device - The device
          +
          +
          +
        • +
        • +
          +

          Sensor

          +
          + public Sensor(String deviceName) +
          +
          Create sensor
          +
          +
          Parameters:
          +
          deviceName - The device name in hardware map
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/Encoder.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/Encoder.html index cca69233..1e9cd3a9 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/Encoder.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/Encoder.html @@ -1,149 +1,346 @@ - + - - -Encoder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Encoder

      -
      -
      -
      -
      All Superinterfaces:
      -
      DoubleSupplier, Sensored
      -
      -
      -
      All Known Implementing Classes:
      -
      ExternalEncoder, MotorEncoder
      -
      -
      -
      public interface Encoder -extends Sensored
      -
      Interfaces for encoders to use
      -
      -
      -
        - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default double
        - -
         
        -
        void
        - -
        -
        zero the encoder
        -
        -
        -
        -
        -
        -

        Methods inherited from interface com.technototes.library.hardware.Sensored

        -getAsDouble, getSensorValue
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          zeroEncoder

          -
          void zeroEncoder()
          -
          zero the encoder
          -
          -
        • -
        • -
          -

          getPosition

          -
          default double getPosition()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Encoder (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Encoder

      +
      +
      +
      +
      All Superinterfaces:
      +
      + DoubleSupplier, + Sensored +
      +
      +
      +
      All Known Implementing Classes:
      +
      + ExternalEncoder, + MotorEncoder +
      +
      +
      +
      + public interface Encoder + extends + Sensored +
      +
      Interfaces for encoders to use
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default double +
        +
        + getPosition() +
        +
        +   +
        +
        + void +
        +
        + zeroEncoder() +
        +
        +
        zero the encoder
        +
        +
        +
        +
        +
        +

        + Methods inherited from interface com.technototes.library.hardware.Sensored +

        + getAsDouble, + getSensorValue +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          zeroEncoder

          +
          + void zeroEncoder() +
          +
          zero the encoder
          +
          +
        • +
        • +
          +

          getPosition

          +
          + default double getPosition() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.html index ae0fd3b0..e8c340e1 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/ExternalEncoder.html @@ -1,233 +1,705 @@ - + - - -ExternalEncoder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ExternalEncoder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.AnalogInput> -
      com.technototes.library.hardware.sensor.encoder.ExternalEncoder
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Encoder, Sensored, DoubleSupplier
      -
      -
      -
      public class ExternalEncoder -extends Sensor<com.qualcomm.robotcore.hardware.AnalogInput> -implements Encoder
      -
      A wrapper around an AnalogInput that enables "zeroing" for usefulness
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        -

        Fields inherited from class com.technototes.library.hardware.HardwareDevice

        -device, hardwareMap
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        ExternalEncoder(com.qualcomm.robotcore.hardware.AnalogInput device)
        -
        -
        Create an ExternalEncoder from an arbitrary AnalogInput
        -
        -
        ExternalEncoder(String deviceName)
        -
        -
        Create an ExternalEncoder from an arbitrary AnalogInput device
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        double
        - -
        -
        Get the sensor value (relative to the assigned zero)
        -
        -
        void
        - -
        -
        Set the current device value as "zero"
        -
        -
        -
        -
        -
        -

        Methods inherited from class com.technototes.library.hardware.HardwareDevice

        -getDevice
        -
        -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        -
        -

        Methods inherited from interface com.technototes.library.hardware.sensor.encoder.Encoder

        -getPosition
        -
        -

        Methods inherited from interface com.technototes.library.hardware.Sensored

        -getAsDouble
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ExternalEncoder

          -
          public ExternalEncoder(com.qualcomm.robotcore.hardware.AnalogInput device)
          -
          Create an ExternalEncoder from an arbitrary AnalogInput
          -
          -
          Parameters:
          -
          device - the AnalogInput device
          -
          -
          -
        • -
        • -
          -

          ExternalEncoder

          -
          public ExternalEncoder(String deviceName)
          -
          Create an ExternalEncoder from an arbitrary AnalogInput device
          -
          -
          Parameters:
          -
          deviceName - the name of the AnalogInput device
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          zeroEncoder

          -
          public void zeroEncoder()
          -
          Set the current device value as "zero"
          -
          -
          Specified by:
          -
          zeroEncoder in interface Encoder
          -
          -
          -
        • -
        • -
          -

          getSensorValue

          -
          public double getSensorValue()
          -
          Get the sensor value (relative to the assigned zero)
          -
          -
          Specified by:
          -
          getSensorValue in interface Sensored
          -
          Returns:
          -
          the value of the input
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + ExternalEncoder (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ExternalEncoder

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.AnalogInput> +
      + com.technototes.library.hardware.sensor.encoder.ExternalEncoder +
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Encoder, + Sensored, + DoubleSupplier +
      +
      +
      +
      + public class ExternalEncoder + extends + Sensor<com.qualcomm.robotcore.hardware.AnalogInput> implements + Encoder +
      +
      + A wrapper around an AnalogInput that enables "zeroing" for usefulness +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          ExternalEncoder

          +
          + public ExternalEncoder(com.qualcomm.robotcore.hardware.AnalogInput device, + String nm) +
          +
          + Create an ExternalEncoder from an arbitrary AnalogInput +
          +
          +
          Parameters:
          +
          device - the AnalogInput device
          +
          +
          +
        • +
        • +
          +

          ExternalEncoder

          +
          + public ExternalEncoder(String deviceName) +
          +
          + Create an ExternalEncoder from an arbitrary AnalogInput device +
          +
          +
          Parameters:
          +
          deviceName - the name of the AnalogInput device
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.AnalogInput> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          zeroEncoder

          +
          + public void zeroEncoder() +
          +
          Set the current device value as "zero"
          +
          +
          Specified by:
          +
          + zeroEncoder in interface Encoder +
          +
          +
          +
        • +
        • +
          +

          getSensorValue

          +
          + public double getSensorValue() +
          +
          + Get the sensor value (relative to the assigned zero) +
          +
          +
          Specified by:
          +
          + getSensorValue in interface Sensored +
          +
          Returns:
          +
          the value of the input
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.Direction.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.Direction.html index 573361b9..5b466a45 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.Direction.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.Direction.html @@ -1,230 +1,724 @@ - + - - -MotorEncoder.Direction (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class MotorEncoder.Direction

      -
      -
      java.lang.Object -
      java.lang.Enum<MotorEncoder.Direction> -
      com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<MotorEncoder.Direction>, Constable
      -
      -
      -
      Enclosing class:
      -
      MotorEncoder
      -
      -
      - -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static MotorEncoder.Direction[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static MotorEncoder.Direction valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        • -
          -

          getMultiplier

          -
          public int getMultiplier()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + MotorEncoder.Direction (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Enum Class MotorEncoder.Direction +

      +
      +
      + java.lang.Object +
      + java.lang.Enum<MotorEncoder.Direction> +
      + com.technototes.library.hardware.sensor.encoder.MotorEncoder.Direction +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<MotorEncoder.Direction>, + Constable +
      +
      +
      +
      Enclosing class:
      +
      + MotorEncoder +
      +
      +
      +
      + public static enum MotorEncoder.Direction + extends + Enum<MotorEncoder.Direction> +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static MotorEncoder.Direction[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static MotorEncoder.Direction valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        • +
          +

          getMultiplier

          +
          + public int getMultiplier() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.html index aed70627..fb8d330f 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/MotorEncoder.html @@ -1,339 +1,1041 @@ - + - - -MotorEncoder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class MotorEncoder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<T> -
      com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.DcMotorEx> -
      com.technototes.library.hardware.sensor.encoder.MotorEncoder
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Encoder, Sensored, DoubleSupplier
      -
      -
      -
      public class MotorEncoder -extends Sensor<com.qualcomm.robotcore.hardware.DcMotorEx> -implements Encoder
      -
      Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding - slot's motor direction
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          offset

          -
          public int offset
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          MotorEncoder

          -
          public MotorEncoder(com.qualcomm.robotcore.hardware.DcMotorEx motor, - com.qualcomm.robotcore.util.ElapsedTime clock)
          -
          -
        • -
        • -
          -

          MotorEncoder

          -
          public MotorEncoder(com.qualcomm.robotcore.hardware.DcMotorEx motor)
          -
          -
        • -
        • -
          -

          MotorEncoder

          -
          public MotorEncoder(EncodedMotor<com.qualcomm.robotcore.hardware.DcMotorEx> motor)
          -
          -
        • -
        • -
          -

          MotorEncoder

          -
          public MotorEncoder(String deviceName)
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - + + + MotorEncoder (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class MotorEncoder

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.sensor.Sensor<com.qualcomm.robotcore.hardware.DcMotorEx> +
      + com.technototes.library.hardware.sensor.encoder.MotorEncoder +
      +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Encoder, + Sensored, + DoubleSupplier +
      +
      +
      +
      + public class MotorEncoder + extends + Sensor<com.qualcomm.robotcore.hardware.DcMotorEx> implements + Encoder +
      +
      + Wraps a motor instance to provide corrected velocity counts and allow reversing + independently of the corresponding slot's motor direction +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          offset

          +
          + public int offset +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          MotorEncoder

          +
          + public MotorEncoder(com.qualcomm.robotcore.hardware.DcMotorEx motor, + com.qualcomm.robotcore.util.ElapsedTime clock, + String nm) +
          +
          +
        • +
        • +
          +

          MotorEncoder

          +
          + public MotorEncoder(com.qualcomm.robotcore.hardware.DcMotorEx motor, + String nm) +
          +
          +
        • +
        • +
          +

          MotorEncoder

          +
          + public MotorEncoder(String deviceName) +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getSensorValue

          +
          + public double getSensorValue() +
          +
          + Description copied from interface: Sensored +
          +
          Get the sensor value
          +
          +
          Specified by:
          +
          + getSensorValue in interface Sensored +
          +
          Returns:
          +
          The value
          +
          +
          +
        • +
        • +
          +

          zeroEncoder

          +
          + public void zeroEncoder() +
          +
          + Description copied from interface: Encoder +
          +
          zero the encoder
          +
          +
          Specified by:
          +
          + zeroEncoder in interface Encoder +
          +
          +
          +
        • +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.DcMotorEx> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          getDirection

          + +
          +
        • +
        • +
          +

          setDirection

          +
          + public void setDirection(MotorEncoder.Direction direction) +
          +
          + Allows you to set the direction of the counts and velocity without + modifying the motor's direction state +
          +
          +
          Parameters:
          +
          + direction - either reverse or forward depending on if + encoder counts should be negated +
          +
          +
          +
        • +
        • +
          +

          invert

          +
          + public MotorEncoder invert() +
          +
          +
        • +
        • +
          +

          getCurrentPosition

          +
          + public int getCurrentPosition() +
          +
          +
        • +
        • +
          +

          getRawVelocity

          +
          + public double getRawVelocity() +
          +
          +
        • +
        • +
          +

          getCorrectedVelocity

          +
          + public double getCorrectedVelocity() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-summary.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-summary.html index 8161462d..455fba4e 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-summary.html @@ -1,112 +1,236 @@ - + - - -com.technototes.library.hardware.sensor.encoder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.hardware.sensor.encoder

      -
      -
      -
      package com.technototes.library.hardware.sensor.encoder
      -
      -
        -
      • - -
      • -
      • -
        -
        -
        -
        -
        Class
        -
        Description
        - -
        -
        Interfaces for encoders to use
        -
        - -
        -
        A wrapper around an AnalogInput that enables "zeroing" for usefulness
        -
        - -
        -
        Wraps a motor instance to provide corrected velocity counts and allow reversing independently of the corresponding - slot's motor direction
        -
        - -
         
        -
        -
        -
        -
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.hardware.sensor.encoder (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.hardware.sensor.encoder +

      +
      +
      +
      + package + com.technototes.library.hardware.sensor.encoder +
      +
      +
        +
      • + +
      • +
      • +
        +
        + +
        +
        +
        +
        Class
        +
        Description
        +
        + Encoder +
        +
        +
        Interfaces for encoders to use
        +
        + +
        +
        + A wrapper around an AnalogInput that enables "zeroing" for usefulness +
        +
        + +
        +
        + Wraps a motor instance to provide corrected velocity counts and allow + reversing independently of the corresponding slot's motor direction +
        +
        + +
        +   +
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-tree.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-tree.html index 267cc96d..223f439a 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/encoder/package-tree.html @@ -1,108 +1,235 @@ - + - - -com.technototes.library.hardware.sensor.encoder Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.hardware.sensor.encoder

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object -
          -
        • com.technototes.library.hardware.HardwareDevice<T> -
            -
          • com.technototes.library.hardware.sensor.Sensor<T> -
              -
            • com.technototes.library.hardware.sensor.encoder.ExternalEncoder (implements com.technototes.library.hardware.sensor.encoder.Encoder)
            • -
            • com.technototes.library.hardware.sensor.encoder.MotorEncoder (implements com.technototes.library.hardware.sensor.encoder.Encoder)
            • -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      -

      Interface Hierarchy

      -
        -
      • java.util.function.DoubleSupplier -
          -
        • com.technototes.library.hardware.Sensored -
            -
          • com.technototes.library.hardware.sensor.encoder.Encoder
          • -
          -
        • -
        -
      • -
      -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - + + + + com.technototes.library.hardware.sensor.encoder Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Hierarchy For Package com.technototes.library.hardware.sensor.encoder +

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.technototes.library.hardware.HardwareDevice<T> +
            +
          • + com.technototes.library.hardware.sensor.Sensor<T> +
              +
            • + com.technototes.library.hardware.sensor.encoder.ExternalEncoder + (implements com.technototes.library.hardware.sensor.encoder.Encoder) +
            • +
            • + com.technototes.library.hardware.sensor.encoder.MotorEncoder + (implements com.technototes.library.hardware.sensor.encoder.Encoder) +
            • +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      +

      Interface Hierarchy

      +
        +
      • + java.util.function.DoubleSupplier +
          +
        • + com.technototes.library.hardware.Sensored +
            +
          • + com.technototes.library.hardware.sensor.encoder.Encoder +
          • +
          +
        • +
        +
      • +
      +
      +
      +

      Enum Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/package-summary.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/package-summary.html index 9b83e1e1..8ea9c403 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/package-summary.html @@ -1,139 +1,332 @@ - + - - -com.technototes.library.hardware.sensor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.hardware.sensor

      -
      -
      -
      package com.technototes.library.hardware.sensor
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.hardware.sensor (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.hardware.sensor +

      +
      +
      +
      + package com.technototes.library.hardware.sensor +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/sensor/package-tree.html b/docs/TechnoLib/com/technototes/library/hardware/sensor/package-tree.html index b435da7a..8b120bd2 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/sensor/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/hardware/sensor/package-tree.html @@ -1,107 +1,278 @@ - + - - -com.technototes.library.hardware.sensor Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.hardware.sensor

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -

      Interface Hierarchy

      - -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.hardware.sensor Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.hardware.sensor

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.technototes.library.hardware.HardwareDevice<T> +
            +
          • + com.technototes.library.hardware.sensor.Sensor<T> +
              +
            • + com.technototes.library.hardware.sensor.AnalogSensor +
            • +
            • + com.technototes.library.hardware.sensor.ColorDistanceSensor + (implements com.technototes.library.hardware.sensor.IColorSensor, com.technototes.library.hardware.sensor.IDistanceSensor) +
            • +
            • + com.technototes.library.hardware.sensor.ColorSensor + (implements com.technototes.library.hardware.sensor.IColorSensor) +
            • +
            • + com.technototes.library.hardware.sensor.DigitalSensor +
            • +
            • + com.technototes.library.hardware.sensor.IMU + (implements com.technototes.library.hardware.sensor.IGyro) +
            • +
            • + com.technototes.library.hardware.sensor.Rev2MDistanceSensor + (implements com.technototes.library.hardware.sensor.IDistanceSensor) +
            • +
            +
          • +
          +
        • +
        +
      • +
      +
      +
      +

      Interface Hierarchy

      +
        +
      • + com.technototes.library.hardware.sensor.IColorSensor +
      • +
      • + com.technototes.library.hardware.sensor.IDistanceSensor +
      • +
      • + com.technototes.library.hardware.sensor.IGyro +
      • +
      • + com.technototes.library.hardware.sensor.ILightSensor +
      • +
      +
      +
      +

      Enum Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/MotorAsServo.html b/docs/TechnoLib/com/technototes/library/hardware/servo/MotorAsServo.html new file mode 100644 index 00000000..7ab99555 --- /dev/null +++ b/docs/TechnoLib/com/technototes/library/hardware/servo/MotorAsServo.html @@ -0,0 +1,726 @@ + + + + + MotorAsServo (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class MotorAsServo<T extends com.qualcomm.robotcore.hardware.DcMotor> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<T> +
      + com.technototes.library.hardware.servo.MotorAsServo<T> +
      +
      +
      +
      +
      +
      Type Parameters:
      +
      T - Not Yet Implemented! TODO: Implement this
      +
      +
      +
      All Implemented Interfaces:
      +
      + Sensored, + DoubleSupplier +
      +
      +
      +
      + public class MotorAsServo<T extends com.qualcomm.robotcore.hardware.DcMotor> + extends + HardwareDevice<T> implements + Sensored +
      +
      + This is to use a motor as a servo using the built-in capabilities (instead of doing it + manually) One rather important feature would be to hand control back + invalid input: '&' forth between a normal encoded + motor. The alternative would be to extend EncodedMotor to just "do" this stuff + automatically. Honestly, that probably makes more sense, but requires some thought + about state transitions. +
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + + diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/Servo.html b/docs/TechnoLib/com/technototes/library/hardware/servo/Servo.html index 730efc44..31d21ebb 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/servo/Servo.html +++ b/docs/TechnoLib/com/technototes/library/hardware/servo/Servo.html @@ -1,392 +1,1090 @@ - + - - -Servo (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Servo

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<com.qualcomm.robotcore.hardware.Servo> -
      com.technototes.library.hardware.servo.Servo
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Invertable<Servo>, Sensored, DoubleSupplier
      -
      -
      -
      Direct Known Subclasses:
      -
      ServoGroup
      -
      -
      -
      @Deprecated -public class Servo -extends HardwareDevice<com.qualcomm.robotcore.hardware.Servo> -implements Sensored, Invertable<Servo>
      -
      Deprecated.
      -
      Class for servos - There's some useful functionality in here, but it can be added more easily by making something - that direction extends the robotcore Servo instead. The HardwareDevice base class just adds - a layer of indirection without much value...
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        -

        Fields inherited from class com.technototes.library.hardware.HardwareDevice

        -device, hardwareMap
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        Servo(com.qualcomm.robotcore.hardware.Servo device)
        -
        -
        Deprecated.
        -
        Create servo object
        -
        -
        Servo(String deviceName)
        -
        -
        Deprecated.
        -
        Create servo object
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - - -
        -
        Deprecated.
        -
        boolean
        - -
        -
        Deprecated.
        -
        Get current inversion
        -
        -
        double
        - -
        -
        Deprecated.
        -
        Get servo position
        -
        -
        double
        - -
        -
        Deprecated.
        -
        Get the sensor value
        -
        -
        void
        -
        incrementPosition(double incAmount)
        -
        -
        Deprecated.
        - -
        onRange(double min, - double max)
        -
        -
        Deprecated.
        -
        Set servo range
        -
        - -
        scalePWM(double min, - double max)
        -
        -
        Deprecated.
        - -
        setInverted(boolean invert)
        -
        -
        Deprecated.
        -
        Set the inversion (true -> Is inverted, false -> Not inverted)
        -
        -
        void
        -
        setPosition(double position)
        -
        -
        Deprecated.
        -
        Set servo position
        -
        - -
        startAt(double position)
        -
        -
        Deprecated.
        -
        Set position for the servo and return this
        -
        -
        -
        -
        -
        -

        Methods inherited from class com.technototes.library.hardware.HardwareDevice

        -getDevice
        -
        -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
        -
        -

        Methods inherited from interface com.technototes.library.general.Invertable

        -invert
        -
        -

        Methods inherited from interface com.technototes.library.hardware.Sensored

        -getAsDouble
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Servo

          -
          public Servo(com.qualcomm.robotcore.hardware.Servo device)
          -
          Deprecated.
          -
          Create servo object
          -
          -
          Parameters:
          -
          device - The servo
          -
          -
          -
        • -
        • -
          -

          Servo

          -
          public Servo(String deviceName)
          -
          Deprecated.
          -
          Create servo object
          -
          -
          Parameters:
          -
          deviceName - The device name in hardware map
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          startAt

          -
          public Servo startAt(double position)
          -
          Deprecated.
          -
          Set position for the servo and return this
          -
          -
          Parameters:
          -
          position - The servo position
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          scalePWM

          -
          public Servo scalePWM(double min, - double max)
          -
          Deprecated.
          -
          -
        • -
        • -
          -

          expandedRange

          -
          public Servo expandedRange()
          -
          Deprecated.
          -
          -
        • -
        • -
          -

          getInverted

          -
          public boolean getInverted()
          -
          Deprecated.
          -
          Description copied from interface: Invertable
          -
          Get current inversion
          -
          -
          Specified by:
          -
          getInverted in interface Invertable<Servo>
          -
          Returns:
          -
          Current inversion
          -
          -
          -
        • -
        • -
          -

          setInverted

          -
          public Servo setInverted(boolean invert)
          -
          Deprecated.
          -
          Description copied from interface: Invertable
          -
          Set the inversion (true -> Is inverted, false -> Not inverted)
          -
          -
          Specified by:
          -
          setInverted in interface Invertable<Servo>
          -
          Parameters:
          -
          invert - Inversion value
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          setPosition

          -
          public void setPosition(double position)
          -
          Deprecated.
          -
          Set servo position
          -
          -
          Parameters:
          -
          position - The position to set the servo to
          -
          -
          -
        • -
        • -
          -

          incrementPosition

          -
          public void incrementPosition(double incAmount)
          -
          Deprecated.
          -
          -
        • -
        • -
          -

          getSensorValue

          -
          public double getSensorValue()
          -
          Deprecated.
          -
          Description copied from interface: Sensored
          -
          Get the sensor value
          -
          -
          Specified by:
          -
          getSensorValue in interface Sensored
          -
          Returns:
          -
          The value
          -
          -
          -
        • -
        • -
          -

          getPosition

          -
          public double getPosition()
          -
          Deprecated.
          -
          Get servo position
          -
          -
          Returns:
          -
          The servo position
          -
          -
          -
        • -
        • -
          -

          onRange

          -
          public Servo onRange(double min, - double max)
          -
          Deprecated.
          -
          Set servo range
          -
          -
          Parameters:
          -
          min - The minimum of the range
          -
          max - The maximum of the range
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Servo (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Servo

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.HardwareDevice<com.qualcomm.robotcore.hardware.Servo> +
      com.technototes.library.hardware.servo.Servo
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Invertible<Servo>, + Sensored, + DoubleSupplier +
      +
      +
      +
      + public class Servo + extends + HardwareDevice<com.qualcomm.robotcore.hardware.Servo> implements + Sensored, + Invertible<Servo> +
      +
      + Class for servos There's some useful functionality in here, but it can be added more + easily by making something that direction extends the robotcore Servo instead. The + HardwareDevice base class just adds a layer of indirection without much value... +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          Servo

          +
          + public Servo(com.qualcomm.robotcore.hardware.Servo device, + String nm) +
          +
          Create servo object
          +
          +
          Parameters:
          +
          device - The servo
          +
          +
          +
        • +
        • +
          +

          Servo

          +
          + public Servo(String deviceName) +
          +
          Create servo object
          +
          +
          Parameters:
          +
          deviceName - The device name in hardware map
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogLine

          +
          + public String LogLine() +
          +
          + Description copied from class: HardwareDevice +
          +
          + This is used for logging stuff by name and/or device type +
          +
          +
          Specified by:
          +
          + LogLine in class HardwareDevice<com.qualcomm.robotcore.hardware.Servo> +
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          startAt

          +
          + public Servo startAt(double position) +
          +
          Set position for the servo and return this
          +
          +
          Parameters:
          +
          position - The servo position
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          scalePWM

          +
          + public Servo scalePWM(double min, double max) +
          +
          +
        • +
        • +
          +

          expandedRange

          +
          + public Servo expandedRange() +
          +
          +
        • +
        • +
          +

          getInverted

          +
          + public boolean getInverted() +
          +
          + Description copied from interface: Invertible +
          +
          Get current inversion
          +
          +
          Specified by:
          +
          + getInverted in interface Invertible<Servo> +
          +
          Returns:
          +
          Current inversion
          +
          +
          +
        • +
        • +
          +

          setInverted

          +
          + public Servo setInverted(boolean invert) +
          +
          + Description copied from interface: Invertible +
          +
          + Set the inversion (true -> Is inverted, false -> Not inverted) +
          +
          +
          Specified by:
          +
          + setInverted in interface Invertible<Servo> +
          +
          Parameters:
          +
          invert - Inversion value
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          setPosition

          +
          + public void setPosition(double position) +
          +
          Set servo position
          +
          +
          Parameters:
          +
          position - The position to set the servo to
          +
          +
          +
        • +
        • +
          +

          incrementPosition

          +
          + public void incrementPosition(double incAmount) +
          +
          +
        • +
        • +
          +

          getSensorValue

          +
          + public double getSensorValue() +
          +
          + Description copied from interface: Sensored +
          +
          Get the sensor value
          +
          +
          Specified by:
          +
          + getSensorValue in interface Sensored +
          +
          Returns:
          +
          The value
          +
          +
          +
        • +
        • +
          +

          getPosition

          +
          + public double getPosition() +
          +
          Get servo position
          +
          +
          Returns:
          +
          The servo position
          +
          +
          +
        • +
        • +
          +

          onRange

          +
          + public Servo onRange(double min, double max) +
          +
          Set servo range
          +
          +
          Parameters:
          +
          min - The minimum of the range
          +
          max - The maximum of the range
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/ServoGroup.html b/docs/TechnoLib/com/technototes/library/hardware/servo/ServoGroup.html deleted file mode 100644 index 332c1962..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware/servo/ServoGroup.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - -ServoGroup (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ServoGroup

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.HardwareDevice<com.qualcomm.robotcore.hardware.Servo> -
      com.technototes.library.hardware.servo.Servo -
      com.technototes.library.hardware.servo.ServoGroup
      -
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Invertable<Servo>, HardwareDeviceGroup<Servo>, Sensored, DoubleSupplier
      -
      -
      -
      @Deprecated -public class ServoGroup -extends Servo -implements HardwareDeviceGroup<Servo>
      -
      Deprecated.
      -
      Class for servo group - This is useful, but needs to be moved into something not based on the HardwareDevice stuff
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ServoGroup

          -
          public ServoGroup(Servo... servos)
          -
          Deprecated.
          -
          Create a servo group
          -
          -
          Parameters:
          -
          servos - the servos
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.Constraints.html b/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.Constraints.html index 76c57f4a..818f3096 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.Constraints.html +++ b/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.Constraints.html @@ -1,231 +1,550 @@ - + - - -ServoProfiler.Constraints (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ServoProfiler.Constraints

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.servo.ServoProfiler.Constraints
      -
      -
      -
      -
      Enclosing class:
      -
      ServoProfiler
      -
      -
      -
      public static class ServoProfiler.Constraints -extends Object
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Constraints

          -
          public Constraints(double vel, - double accel, - double prop)
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        - -
        -
      • -
      -
      - -
      -
      -
      - + + + ServoProfiler.Constraints (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class ServoProfiler.Constraints +

      +
      +
      + java.lang.Object +
      + com.technototes.library.hardware.servo.ServoProfiler.Constraints +
      +
      +
      +
      +
      Enclosing class:
      +
      + ServoProfiler +
      +
      +
      +
      + public static class ServoProfiler.Constraints + extends + Object +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        + +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          Constraints

          +
          + public Constraints(double vel, double accel, double prop) +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        + +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.html b/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.html index 51d76ac8..c2d3cdba 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.html +++ b/docs/TechnoLib/com/technototes/library/hardware/servo/ServoProfiler.html @@ -1,294 +1,949 @@ - + - - -ServoProfiler (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ServoProfiler

      -
      -
      java.lang.Object -
      com.technototes.library.hardware.servo.ServoProfiler
      -
      -
      -
      -
      public class ServoProfiler -extends Object
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + ServoProfiler (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class ServoProfiler

      +
      +
      + java.lang.Object +
      com.technototes.library.hardware.servo.ServoProfiler
      +
      +
      +
      +
      + public class ServoProfiler + extends + Object +
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/package-summary.html b/docs/TechnoLib/com/technototes/library/hardware/servo/package-summary.html index 5905ed06..ac3e6c35 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/servo/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/hardware/servo/package-summary.html @@ -1,103 +1,194 @@ - + - - -com.technototes.library.hardware.servo (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.hardware.servo

      -
      -
      -
      package com.technototes.library.hardware.servo
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.hardware.servo (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.hardware.servo +

      +
      +
      +
      + package com.technototes.library.hardware.servo +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware/servo/package-tree.html b/docs/TechnoLib/com/technototes/library/hardware/servo/package-tree.html index f527e5fb..9f05c3cf 100644 --- a/docs/TechnoLib/com/technototes/library/hardware/servo/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/hardware/servo/package-tree.html @@ -1,81 +1,156 @@ - + - - -com.technototes.library.hardware.servo Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.hardware.servo

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.hardware.servo Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.hardware.servo

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/hardware2/AnalogBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/AnalogBuilder.html deleted file mode 100644 index 968f79f3..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/AnalogBuilder.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - -AnalogBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class AnalogBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.AnalogSensor> -
      com.technototes.library.hardware2.AnalogBuilder
      -
      -
      -
      -
      -
      public class AnalogBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.AnalogSensor>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/CRServoBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/CRServoBuilder.html deleted file mode 100644 index 4ddb806d..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/CRServoBuilder.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - -CRServoBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CRServoBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.CRServo> -
      com.technototes.library.hardware2.CRServoBuilder
      -
      -
      -
      -
      -
      public class CRServoBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.CRServo>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/ColorBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/ColorBuilder.html deleted file mode 100644 index f162368f..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/ColorBuilder.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - -ColorBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ColorBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.ColorSensor> -
      com.technototes.library.hardware2.ColorBuilder
      -
      -
      -
      -
      -
      public class ColorBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.ColorSensor>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          ColorBuilder

          -
          public ColorBuilder(String name)
          -
          -
        • -
        • -
          -

          ColorBuilder

          -
          public ColorBuilder(com.qualcomm.robotcore.hardware.ColorSensor device)
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/ColorRangeBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/ColorRangeBuilder.html deleted file mode 100644 index de9ce62f..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/ColorRangeBuilder.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - -ColorRangeBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ColorRangeBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.ColorRangeSensor> -
      com.technototes.library.hardware2.ColorRangeBuilder
      -
      -
      -
      -
      -
      public class ColorRangeBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.ColorRangeSensor>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/DigitalBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/DigitalBuilder.html deleted file mode 100644 index 0c83ce84..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/DigitalBuilder.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - -DigitalBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class DigitalBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.DigitalChannel> -
      com.technototes.library.hardware2.DigitalBuilder
      -
      -
      -
      -
      -
      public class DigitalBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.DigitalChannel>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          DigitalBuilder

          -
          public DigitalBuilder(String name)
          -
          Don't use this in the future
          -
          -
          Parameters:
          -
          name - undoc
          -
          -
          -
        • -
        • -
          -

          DigitalBuilder

          -
          public DigitalBuilder(com.qualcomm.robotcore.hardware.DigitalChannel device)
          -
          Don't use this in the future
          -
          -
          Parameters:
          -
          device - undoc
          -
          -
          -
        • -
        • -
          -

          DigitalBuilder

          -
          public DigitalBuilder(int port)
          -
          Don't use this in the future
          -
          -
          Parameters:
          -
          port - undoc
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          mode

          -
          public DigitalBuilder mode(com.qualcomm.robotcore.hardware.DigitalChannel.Mode mode)
          -
          Don't use this in the future
          -
          -
          Parameters:
          -
          mode - undoc
          -
          Returns:
          -
          undoc
          -
          -
          -
        • -
        • -
          -

          input

          - -
          Don't use this in the future
          -
          -
          Returns:
          -
          undoc
          -
          -
          -
        • -
        • -
          -

          output

          - -
          Don't use this in the future
          -
          -
          Returns:
          -
          undoc
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/DistanceBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/DistanceBuilder.html deleted file mode 100644 index 247d2981..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/DistanceBuilder.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - -DistanceBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class DistanceBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.DistanceSensor> -
      com.technototes.library.hardware2.DistanceBuilder
      -
      -
      -
      -
      -
      public class DistanceBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.DistanceSensor>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/HardwareBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/HardwareBuilder.html deleted file mode 100644 index 5df7045d..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/HardwareBuilder.html +++ /dev/null @@ -1,577 +0,0 @@ - - - - -HardwareBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class HardwareBuilder<T>

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<T>
      -
      -
      -
      -
      Direct Known Subclasses:
      -
      AnalogBuilder, ColorBuilder, ColorRangeBuilder, CRServoBuilder, DigitalBuilder, DistanceBuilder, IMUBuilder, MotorBuilder, ServoBuilder
      -
      -
      -
      public class HardwareBuilder<T> -extends Object
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          product

          -
          protected T product
          -
          Deprecated
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          HardwareBuilder

          -
          public HardwareBuilder(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          -
          -
        • -
        • -
          -

          HardwareBuilder

          -
          public HardwareBuilder(T device)
          -
          Deprecated
          -
          -
          Parameters:
          -
          device - Deprecated
          -
          -
          -
        • -
        • -
          -

          HardwareBuilder

          -
          public HardwareBuilder(int port)
          -
          Deprecated
          -
          -
          Parameters:
          -
          port - Deprecated
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getMap

          -
          public static com.qualcomm.robotcore.hardware.HardwareMap getMap()
          -
          -
        • -
        • -
          -

          initMap

          -
          public static void initMap(com.qualcomm.robotcore.hardware.HardwareMap h)
          -
          Deprecated
          -
          -
          Parameters:
          -
          h - deprecated
          -
          -
          -
        • -
        • -
          -

          create

          -
          public static <T> T create(String s)
          -
          Deprecated
          -
          -
          Type Parameters:
          -
          T - Deprecated
          -
          Parameters:
          -
          s - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          create

          -
          public static <T> T create(int port)
          -
          Deprecated
          -
          -
          Type Parameters:
          -
          T - Deprecated
          -
          Parameters:
          -
          port - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          build

          -
          public <U extends T> U build()
          -
          Deprecated
          -
          -
          Type Parameters:
          -
          U - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          apply

          -
          public HardwareBuilder<T> apply(UnaryOperator<T> operator)
          -
          Deprecated
          -
          -
          Parameters:
          -
          operator - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          analog

          -
          public static AnalogBuilder analog(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          color

          -
          public static ColorBuilder color(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          colorRange

          -
          public static ColorRangeBuilder colorRange(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          crServo

          -
          public static CRServoBuilder crServo(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          digital

          -
          public static DigitalBuilder digital(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          distance

          -
          public static DistanceBuilder distance(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          imu

          -
          public static IMUBuilder imu(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          motor

          -
          public static MotorBuilder motor(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          servo

          -
          public static ServoBuilder servo(String name)
          -
          Deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          analog

          -
          public static AnalogBuilder analog(int port)
          -
          Deprecated
          -
          -
          Parameters:
          -
          port - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          crServo

          -
          public static CRServoBuilder crServo(int port)
          -
          Deprecated
          -
          -
          Parameters:
          -
          port - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          digital

          -
          public static DigitalBuilder digital(int port)
          -
          Deprecated
          -
          -
          Parameters:
          -
          port - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          motor

          -
          public static MotorBuilder motor(int port)
          -
          Deprecated
          -
          -
          Parameters:
          -
          port - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          servo

          -
          public static ServoBuilder servo(int port)
          -
          Deprecated
          -
          -
          Parameters:
          -
          port - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.AxesSigns.html b/docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.AxesSigns.html deleted file mode 100644 index 8cd64def..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.AxesSigns.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - -IMUBuilder.AxesSigns (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class IMUBuilder.AxesSigns

      -
      -
      java.lang.Object -
      java.lang.Enum<IMUBuilder.AxesSigns> -
      com.technototes.library.hardware2.IMUBuilder.AxesSigns
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<IMUBuilder.AxesSigns>, Constable
      -
      -
      -
      Enclosing class:
      -
      IMUBuilder
      -
      -
      -
      public static enum IMUBuilder.AxesSigns -extends Enum<IMUBuilder.AxesSigns>
      -
      This is duplicated in the IMU class
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          bVal

          -
          public final int bVal
          -
          deprecated
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static IMUBuilder.AxesSigns[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static IMUBuilder.AxesSigns valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.html deleted file mode 100644 index 7fd0c87d..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/IMUBuilder.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - -IMUBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class IMUBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.hardware.bosch.BNO055IMU> -
      com.technototes.library.hardware2.IMUBuilder
      -
      -
      -
      -
      -
      public class IMUBuilder -extends HardwareBuilder<com.qualcomm.hardware.bosch.BNO055IMU>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          IMUBuilder

          -
          public IMUBuilder(String name)
          -
          deprecated
          -
          -
          Parameters:
          -
          name - Deprecated
          -
          -
          -
        • -
        • -
          -

          IMUBuilder

          -
          public IMUBuilder(com.qualcomm.hardware.bosch.BNO055IMUImpl device)
          -
          Deprecated
          -
          -
          Parameters:
          -
          device - Deprecated
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          parameter

          -
          public IMUBuilder parameter(Consumer<com.qualcomm.hardware.bosch.BNO055IMU.Parameters> consumer)
          -
          Deprecated
          -
          -
          Parameters:
          -
          consumer - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          degrees

          -
          public IMUBuilder degrees()
          -
          Deprecated
          -
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          radians

          -
          public IMUBuilder radians()
          -
          Deprecated
          -
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          remap

          -
          public IMUBuilder remap(org.firstinspires.ftc.robotcore.external.navigation.AxesOrder order, - IMUBuilder.AxesSigns signs)
          -
          Deprecated
          -
          -
          Parameters:
          -
          order - Deprecated
          -
          signs - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        • -
          -

          build

          -
          public <U extends com.qualcomm.hardware.bosch.BNO055IMU> -U build()
          -
          Deprecated
          -
          -
          Overrides:
          -
          build in class HardwareBuilder<com.qualcomm.hardware.bosch.BNO055IMU>
          -
          Type Parameters:
          -
          U - Deprecated
          -
          Returns:
          -
          Deprecated
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/MotorBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/MotorBuilder.html deleted file mode 100644 index 9f0372ea..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/MotorBuilder.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - -MotorBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class MotorBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.DcMotorEx> -
      com.technototes.library.hardware2.MotorBuilder
      -
      -
      -
      -
      -
      public class MotorBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.DcMotorEx>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/ServoBuilder.html b/docs/TechnoLib/com/technototes/library/hardware2/ServoBuilder.html deleted file mode 100644 index 37c26bee..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/ServoBuilder.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - -ServoBuilder (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ServoBuilder

      -
      -
      java.lang.Object -
      com.technototes.library.hardware2.HardwareBuilder<com.qualcomm.robotcore.hardware.Servo> -
      com.technototes.library.hardware2.ServoBuilder
      -
      -
      -
      -
      -
      public class ServoBuilder -extends HardwareBuilder<com.qualcomm.robotcore.hardware.Servo>
      -
      TODO: Remove this. I don't believe this adds much value. Yeah, HardwareMap.get is weird, but - it's in all the documentation, so just read it, see it in the examples, and you're done.
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/package-summary.html b/docs/TechnoLib/com/technototes/library/hardware2/package-summary.html deleted file mode 100644 index bb3d18d7..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/package-summary.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -com.technototes.library.hardware2 (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.hardware2

      -
      -
      -
      package com.technototes.library.hardware2
      -
      - -
      -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/hardware2/package-tree.html b/docs/TechnoLib/com/technototes/library/hardware2/package-tree.html deleted file mode 100644 index cc98c041..00000000 --- a/docs/TechnoLib/com/technototes/library/hardware2/package-tree.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - -com.technototes.library.hardware2 Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.hardware2

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.Boolean.html b/docs/TechnoLib/com/technototes/library/logger/Log.Boolean.html index 97551769..ff728b3a 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.Boolean.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.Boolean.html @@ -1,211 +1,417 @@ - + - - -Log.Boolean (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface Log.Boolean

      -
      -
      -
      -
      Enclosing class:
      -
      Log
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Optional Element Summary

        -
        Optional Elements
        -
        -
        Modifier and Type
        -
        Optional Element
        -
        Description
        - - -
        -
        Store the string when the annotated method returns false
        -
        -
        int
        - -
        -
        Store index for this annotation (position in telemetry)
        -
        - - -
        -
        Store the name for this annotation to be be beside
        -
        -
        int
        - -
        -
        Store priority for this log entry (to pick the most wanted entry over others with same index)
        -
        - - -
        -
        Store the string when the annotated method returns true
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        -
          -
        • -
          -

          index

          -
          int index
          -
          Store index for this annotation (position in telemetry)
          -
          -
          Returns:
          -
          The index
          -
          -
          -
          Default:
          -
          -1
          -
          -
          -
        • -
        • -
          -

          priority

          - -
          Store priority for this log entry (to pick the most wanted entry over others with same index)
          -
          -
          Returns:
          -
          The priority
          -
          -
          -
          Default:
          -
          -1
          -
          -
          -
        • -
        • -
          -

          trueValue

          - -
          Store the string when the annotated method returns true
          -
          -
          Returns:
          -
          The string
          -
          -
          -
          Default:
          -
          "true"
          -
          -
          -
        • -
        • -
          -

          falseValue

          - -
          Store the string when the annotated method returns false
          -
          -
          Returns:
          -
          The string
          -
          -
          -
          Default:
          -
          "false"
          -
          -
          -
        • -
        • -
          -

          name

          - -
          Store the name for this annotation to be be beside
          -
          -
          Returns:
          -
          The name as a string
          -
          -
          -
          Default:
          -
          ""
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Log.Boolean (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface Log.Boolean +

      +
      +
      +
      +
      Enclosing class:
      +
      + Log +
      +
      +
      +
      + @Retention(RUNTIME) + @Target({FIELD,LOCAL_VARIABLE,METHOD}) public static @interface Log.Boolean +
      +
      +
      +
        + +
      • +
        +

        Optional Element Summary

        +
        Optional Elements
        +
        +
        Modifier and Type
        +
        Optional Element
        +
        Description
        +
        + String +
        + +
        +
        + Store the string when the annotated method returns false +
        +
        +
        int
        +
        + index +
        +
        +
        + Store index for this annotation (position in telemetry) +
        +
        +
        + String +
        +
        + name +
        +
        +
        Store the name for this annotation to be be beside
        +
        +
        int
        +
        + priority +
        +
        +
        + Store priority for this log entry (to pick the most wanted entry over others + with same index) +
        +
        +
        + String +
        +
        + trueValue +
        +
        +
        + Store the string when the annotated method returns true +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        +
          +
        • +
          +

          index

          +
          + int index +
          +
          + Store index for this annotation (position in telemetry) +
          +
          +
          Returns:
          +
          The index
          +
          +
          +
          Default:
          +
          -1
          +
          +
          +
        • +
        • +
          +

          priority

          +
          + int priority +
          +
          + Store priority for this log entry (to pick the most wanted entry over + others with same index) +
          +
          +
          Returns:
          +
          The priority
          +
          +
          +
          Default:
          +
          -1
          +
          +
          +
        • +
        • +
          +

          trueValue

          + +
          + Store the string when the annotated method returns true +
          +
          +
          Returns:
          +
          The string
          +
          +
          +
          Default:
          +
          "true"
          +
          +
          +
        • +
        • +
          +

          falseValue

          + +
          + Store the string when the annotated method returns false +
          +
          +
          Returns:
          +
          The string
          +
          +
          +
          Default:
          +
          "false"
          +
          +
          +
        • +
        • +
          +

          name

          +
          + String name +
          +
          Store the name for this annotation to be be beside
          +
          +
          Returns:
          +
          The name as a string
          +
          +
          +
          Default:
          +
          ""
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html b/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html index 0e81251c..44fd99a0 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.Logs.html @@ -1,121 +1,241 @@ - + - - -Log.Logs (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface Log.Logs

      -
      -
      -
      -
      Enclosing class:
      -
      Log
      -
      -
      -
      @Documented -@Retention(RUNTIME) -@Target({FIELD,METHOD}) -public static @interface Log.Logs
      -
      -
      -
        - -
      • -
        -

        Required Element Summary

        -
        Required Elements
        -
        -
        Modifier and Type
        -
        Required Element
        -
        Description
        -
        Log[]
        - -
         
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        - -
        -
      • -
      -
      - -
      -
      -
      - + + + Log.Logs (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface Log.Logs +

      +
      +
      +
      +
      Enclosing class:
      +
      + Log +
      +
      +
      +
      + @Documented + @Retention(RUNTIME) + @Target({FIELD,METHOD}) public static @interface Log.Logs +
      +
      +
      +
        + +
      • +
        +

        Required Element Summary

        +
        Required Elements
        +
        +
        Modifier and Type
        +
        Required Element
        +
        Description
        +
        + Log[] +
        +
        + value +
        +
         
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        + +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.Number.html b/docs/TechnoLib/com/technototes/library/logger/Log.Number.html index 5ebf0497..474d0541 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.Number.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.Number.html @@ -1,172 +1,320 @@ - + - - -Log.Number (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface Log.Number

      -
      -
      -
      -
      Enclosing class:
      -
      Log
      -
      -
      - -
      Log a number
      -
      -
      -
        - -
      • -
        -

        Optional Element Summary

        -
        Optional Elements
        -
        -
        Modifier and Type
        -
        Optional Element
        -
        Description
        -
        int
        - -
        -
        Store index for this annotation (position in telemetry)
        -
        - - -
        -
        Store the name for this annotation to be be beside
        -
        -
        int
        - -
        -
        Store priority for this log entry (to pick the most wanted entry over others with same index)
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        -
          -
        • -
          -

          index

          -
          int index
          -
          Store index for this annotation (position in telemetry)
          -
          -
          Returns:
          -
          The index
          -
          -
          -
          Default:
          -
          -1
          -
          -
          -
        • -
        • -
          -

          priority

          - -
          Store priority for this log entry (to pick the most wanted entry over others with same index)
          -
          -
          Returns:
          -
          The priority
          -
          -
          -
          Default:
          -
          -1
          -
          -
          -
        • -
        • -
          -

          name

          - -
          Store the name for this annotation to be be beside
          -
          -
          Returns:
          -
          The name as a string
          -
          -
          -
          Default:
          -
          ""
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Log.Number (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface Log.Number +

      +
      +
      +
      +
      Enclosing class:
      +
      + Log +
      +
      +
      +
      + @Retention(RUNTIME) + @Target({FIELD,LOCAL_VARIABLE,METHOD}) public static @interface Log.Number +
      +
      Log a number
      +
      +
      +
        + +
      • +
        +

        Optional Element Summary

        +
        Optional Elements
        +
        +
        Modifier and Type
        +
        Optional Element
        +
        Description
        +
        int
        +
        + index +
        +
        +
        + Store index for this annotation (position in telemetry) +
        +
        +
        + String +
        +
        + name +
        +
        +
        Store the name for this annotation to be be beside
        +
        +
        int
        +
        + priority +
        +
        +
        + Store priority for this log entry (to pick the most wanted entry over others + with same index) +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        +
          +
        • +
          +

          index

          +
          + int index +
          +
          + Store index for this annotation (position in telemetry) +
          +
          +
          Returns:
          +
          The index
          +
          +
          +
          Default:
          +
          -1
          +
          +
          +
        • +
        • +
          +

          priority

          +
          + int priority +
          +
          + Store priority for this log entry (to pick the most wanted entry over + others with same index) +
          +
          +
          Returns:
          +
          The priority
          +
          +
          +
          Default:
          +
          -1
          +
          +
          +
        • +
        • +
          +

          name

          +
          + String name +
          +
          Store the name for this annotation to be be beside
          +
          +
          Returns:
          +
          The name as a string
          +
          +
          +
          Default:
          +
          ""
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/Log.html b/docs/TechnoLib/com/technototes/library/logger/Log.html index 8e7813c3..af654c47 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Log.html +++ b/docs/TechnoLib/com/technototes/library/logger/Log.html @@ -1,213 +1,421 @@ - + - - -Log (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface Log

      -
      -
      -
      - -
      The root annotation for annotation logging, also doubles as a basic string log
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        Nested Classes
        -
        -
        Modifier and Type
        -
        Class
        -
        Description
        -
        static @interface 
        - -
         
        -
        static @interface 
        - -
         
        -
        static @interface 
        - -
        -
        Log a number
        -
        -
        -
        -
      • - -
      • -
        -

        Optional Element Summary

        -
        Optional Elements
        -
        -
        Modifier and Type
        -
        Optional Element
        -
        Description
        - - -
        -
        The format for the logged String
        -
        -
        int
        - -
        -
        Store index for this annotation (position in telemetry)
        -
        - - -
        -
        Store the name for this annotation to be be beside
        -
        -
        int
        - -
        -
        Store priority for this log entry (to pick the most wanted entry over others with same index)
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        -
          -
        • -
          -

          index

          -
          int index
          -
          Store index for this annotation (position in telemetry)
          -
          -
          Returns:
          -
          The index
          -
          -
          -
          Default:
          -
          -1
          -
          -
          -
        • -
        • -
          -

          priority

          - -
          Store priority for this log entry (to pick the most wanted entry over others with same index)
          -
          -
          Returns:
          -
          The priority
          -
          -
          -
          Default:
          -
          -1
          -
          -
          -
        • -
        • -
          -

          name

          - -
          Store the name for this annotation to be be beside
          -
          -
          Returns:
          -
          The name as a string
          -
          -
          -
          Default:
          -
          ""
          -
          -
          -
        • -
        • -
          -

          format

          - -
          The format for the logged String
          -
          -
          Returns:
          -
          The format
          -
          -
          -
          Default:
          -
          "%s"
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Log (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Annotation Interface Log

      +
      +
      +
      + +
      + The root annotation for annotation logging, also doubles as a basic string log +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static @interface 
        + +
         
        +
        static @interface 
        +
        + Log.Logs +
        +
         
        +
        static @interface 
        + +
        +
        Log a number
        +
        +
        +
        +
      • + +
      • +
        +

        Optional Element Summary

        +
        Optional Elements
        +
        +
        Modifier and Type
        +
        Optional Element
        +
        Description
        +
        + String +
        +
        + format +
        +
        +
        The format for the logged String
        +
        +
        int
        +
        + index +
        +
        +
        + Store index for this annotation (position in telemetry) +
        +
        +
        + String +
        +
        + name +
        +
        +
        Store the name for this annotation to be be beside
        +
        +
        int
        +
        + priority +
        +
        +
        + Store priority for this log entry (to pick the most wanted entry over others + with same index) +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        +
          +
        • +
          +

          index

          +
          + int index +
          +
          + Store index for this annotation (position in telemetry) +
          +
          +
          Returns:
          +
          The index
          +
          +
          +
          Default:
          +
          -1
          +
          +
          +
        • +
        • +
          +

          priority

          +
          + int priority +
          +
          + Store priority for this log entry (to pick the most wanted entry over + others with same index) +
          +
          +
          Returns:
          +
          The priority
          +
          +
          +
          Default:
          +
          -1
          +
          +
          +
        • +
        • +
          +

          name

          +
          + String name +
          +
          Store the name for this annotation to be be beside
          +
          +
          Returns:
          +
          The name as a string
          +
          +
          +
          Default:
          +
          ""
          +
          +
          +
        • +
        • +
          +

          format

          +
          + String format +
          +
          The format for the logged String
          +
          +
          Returns:
          +
          The format
          +
          +
          +
          Default:
          +
          "%s"
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html index 2673237f..802960b2 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.AllowList.html @@ -1,128 +1,253 @@ - + - - -LogConfig.AllowList (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface LogConfig.AllowList

      -
      -
      -
      -
      Enclosing class:
      -
      LogConfig
      -
      -
      - -
      Annotation for allowing Opmodes to log this item
      -
      -
      -
        - -
      • -
        -

        Required Element Summary

        -
        Required Elements
        -
        -
        Modifier and Type
        -
        Required Element
        -
        Description
        -
        Class<?>[]
        - -
        -
        The allowed opmodes
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        -
          -
        • -
          -

          value

          -
          Class<?>[] value
          -
          The allowed opmodes
          -
          -
          Returns:
          -
          Opmode Classes
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + LogConfig.AllowList (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface LogConfig.AllowList +

      +
      +
      +
      +
      Enclosing class:
      +
      + LogConfig +
      +
      +
      + +
      Annotation for allowing Opmodes to log this item
      +
      +
      +
        + +
      • +
        +

        Required Element Summary

        +
        Required Elements
        +
        +
        Modifier and Type
        +
        Required Element
        +
        Description
        +
        + Class<?>[] +
        +
        + value +
        +
        +
        The allowed opmodes
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        +
          +
        • +
          +

          value

          +
          + Class<?>[] value +
          +
          The allowed opmodes
          +
          +
          Returns:
          +
          Opmode Classes
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html index 8d81a1a6..2302f48f 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.DenyList.html @@ -1,128 +1,253 @@ - + - - -LogConfig.DenyList (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface LogConfig.DenyList

      -
      -
      -
      -
      Enclosing class:
      -
      LogConfig
      -
      -
      - -
      Annotation for denying Opmodes to log this item
      -
      -
      -
        - -
      • -
        -

        Required Element Summary

        -
        Required Elements
        -
        -
        Modifier and Type
        -
        Required Element
        -
        Description
        -
        Class<?>[]
        - -
        -
        The denied opmodes
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        -
          -
        • -
          -

          value

          -
          Class<?>[] value
          -
          The denied opmodes
          -
          -
          Returns:
          -
          Opmode Classes
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + LogConfig.DenyList (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface LogConfig.DenyList +

      +
      +
      +
      +
      Enclosing class:
      +
      + LogConfig +
      +
      +
      + +
      Annotation for denying Opmodes to log this item
      +
      +
      +
        + +
      • +
        +

        Required Element Summary

        +
        Required Elements
        +
        +
        Modifier and Type
        +
        Required Element
        +
        Description
        +
        + Class<?>[] +
        +
        + value +
        +
        +
        The denied opmodes
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        +
          +
        • +
          +

          value

          +
          + Class<?>[] value +
          +
          The denied opmodes
          +
          +
          Returns:
          +
          Opmode Classes
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Disabled.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.Disabled.html index eda053fa..d8df2818 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Disabled.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.Disabled.html @@ -1,84 +1,182 @@ - + - - -LogConfig.Disabled (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface LogConfig.Disabled

      -
      -
      -
      -
      Enclosing class:
      -
      LogConfig
      -
      -
      - -
      Annotation to completely disable the entry
      -
      - -
      -
      -
      - + + + LogConfig.Disabled (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface LogConfig.Disabled +

      +
      +
      +
      +
      Enclosing class:
      +
      + LogConfig +
      +
      +
      + +
      Annotation to completely disable the entry
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Run.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.Run.html index 7d8b02e1..9201eadc 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.Run.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.Run.html @@ -1,152 +1,270 @@ - + - - -LogConfig.Run (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface LogConfig.Run

      -
      -
      -
      -
      Enclosing class:
      -
      LogConfig
      -
      -
      - -
      Annotation for determining when logged item will be sent to Telemetry
      -
      -
      -
        - -
      • -
        -

        Optional Element Summary

        -
        Optional Elements
        -
        -
        Modifier and Type
        -
        Optional Element
        -
        Description
        -
        boolean
        - -
        -
        Run the log during the init Period
        -
        -
        boolean
        - -
        -
        Run the log during the teleop Period
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Element Details

        -
          -
        • -
          -

          duringRun

          -
          boolean duringRun
          -
          Run the log during the teleop Period
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
          Default:
          -
          true
          -
          -
          -
        • -
        • -
          -

          duringInit

          -
          boolean duringInit
          -
          Run the log during the init Period
          -
          -
          Returns:
          -
          The above condition
          -
          -
          -
          Default:
          -
          false
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + LogConfig.Run (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface LogConfig.Run +

      +
      +
      +
      +
      Enclosing class:
      +
      + LogConfig +
      +
      +
      +
      + @Retention(RUNTIME) + @Target({FIELD,LOCAL_VARIABLE,METHOD}) public static @interface LogConfig.Run +
      +
      + Annotation for determining when logged item will be sent to Telemetry +
      +
      +
      +
        + +
      • +
        +

        Optional Element Summary

        +
        Optional Elements
        +
        +
        Modifier and Type
        +
        Optional Element
        +
        Description
        +
        boolean
        + +
        +
        Run the log during the init Period
        +
        +
        boolean
        +
        + duringRun +
        +
        +
        Run the log during the teleop Period
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Element Details

        +
          +
        • +
          +

          duringRun

          +
          + boolean duringRun +
          +
          Run the log during the teleop Period
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
          Default:
          +
          true
          +
          +
          +
        • +
        • +
          +

          duringInit

          +
          + boolean duringInit +
          +
          Run the log during the init Period
          +
          +
          Returns:
          +
          The above condition
          +
          +
          +
          Default:
          +
          false
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/LogConfig.html b/docs/TechnoLib/com/technototes/library/logger/LogConfig.html index 045bac53..1b4f0efc 100644 --- a/docs/TechnoLib/com/technototes/library/logger/LogConfig.html +++ b/docs/TechnoLib/com/technototes/library/logger/LogConfig.html @@ -1,115 +1,223 @@ - + - - -LogConfig (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface LogConfig

      -
      -
      -
      -
      @Retention(RUNTIME) -public @interface LogConfig
      -
      Annotations for configuring Logs
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        Nested Classes
        -
        -
        Modifier and Type
        -
        Class
        -
        Description
        -
        static @interface 
        - -
        -
        Annotation for allowing Opmodes to log this item
        -
        -
        static @interface 
        - -
        -
        Annotation for denying Opmodes to log this item
        -
        -
        static @interface 
        - -
        -
        Annotation to completely disable the entry
        -
        -
        static @interface 
        - -
        -
        Annotation for determining when logged item will be sent to Telemetry
        -
        -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + LogConfig (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface LogConfig +

      +
      +
      +
      +
      + @Retention(RUNTIME) public @interface LogConfig +
      +
      Annotations for configuring Logs
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static @interface 
        + +
        +
        Annotation for allowing Opmodes to log this item
        +
        +
        static @interface 
        + +
        +
        Annotation for denying Opmodes to log this item
        +
        +
        static @interface 
        + +
        +
        Annotation to completely disable the entry
        +
        +
        static @interface 
        + +
        +
        + Annotation for determining when logged item will be sent to Telemetry +
        +
        +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/Loggable.html b/docs/TechnoLib/com/technototes/library/logger/Loggable.html index b6e01c54..2be4faee 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Loggable.html +++ b/docs/TechnoLib/com/technototes/library/logger/Loggable.html @@ -1,80 +1,141 @@ - + - - -Loggable (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Loggable

      -
      -
      -
      -
      public interface Loggable
      -
      All classes with annotations for logging must extend this all the way up the hierarchy up to the op mode
      -
      - -
      -
      -
      - + + + Loggable (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Loggable

      +
      +
      +
      +
      + public interface Loggable +
      +
      + All classes with annotations for logging must extend this all the way up the hierarchy + up to the op mode +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/Logger.html b/docs/TechnoLib/com/technototes/library/logger/Logger.html index 4eabcd91..7651d718 100644 --- a/docs/TechnoLib/com/technototes/library/logger/Logger.html +++ b/docs/TechnoLib/com/technototes/library/logger/Logger.html @@ -1,252 +1,667 @@ - + - - -Logger (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Logger

      -
      -
      java.lang.Object -
      com.technototes.library.logger.Logger
      -
      -
      -
      -
      public class Logger -extends Object
      -
      The class to manage logging
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        -
        char
        - -
        -
        The divider between the tag and the entry for telemetry (default ':')
        -
        -
        Entry<?>[]
        - -
         
        -
        Entry<?>[]
        - -
         
        -
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        Logger(com.qualcomm.robotcore.eventloop.opmode.OpMode op)
        -
        -
        Instantiate the logger
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        void
        - -
        -
        Update the logged init items in temeletry
        -
        -
        static String
        -
        repeat(String s, - int num)
        -
        -
        Repeat a String
        -
        -
        void
        - -
        -
        Update the logged run items in temeletry
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

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

        Field Details

        -
          -
        • -
          -

          runEntries

          -
          public Entry<?>[] runEntries
          -
          -
        • -
        • -
          -

          initEntries

          -
          public Entry<?>[] initEntries
          -
          -
        • -
        • -
          -

          captionDivider

          -
          public char captionDivider
          -
          The divider between the tag and the entry for telemetry (default ':')
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Logger

          -
          public Logger(com.qualcomm.robotcore.eventloop.opmode.OpMode op)
          -
          Instantiate the logger
          -
          -
          Parameters:
          -
          op - The OpMode class
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          runUpdate

          -
          public void runUpdate()
          -
          Update the logged run items in temeletry
          -
          -
        • -
        • -
          -

          initUpdate

          -
          public void initUpdate()
          -
          Update the logged init items in temeletry
          -
          -
        • -
        • -
          -

          repeat

          -
          public static String repeat(String s, - int num)
          -
          Repeat a String
          -
          -
          Parameters:
          -
          s - The String to repeat
          -
          num - The amount of times to repeat the String
          -
          Returns:
          -
          The String s repeated num times
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Logger (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Logger

      +
      +
      + java.lang.Object +
      com.technototes.library.logger.Logger
      +
      +
      +
      +
      + public class Logger + extends + Object +
      +
      The class to manage logging
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        char
        + +
        +
        + The divider between the tag and the entry for telemetry (default ':') +
        +
        +
        + Entry<?>[] +
        + +
         
        +
        + Entry<?>[] +
        + +
         
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + Logger(com.qualcomm.robotcore.eventloop.opmode.OpMode op) +
        +
        +
        Instantiate the logger
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + void +
        +
        + initUpdate() +
        +
        +
        Update the logged init items in temeletry
        +
        +
        + static void +
        +
        + LogHardware(String names) +
        +
        +   +
        +
        + static + String +
        +
        + repeat(String s, int num) +
        +
        +
        Repeat a String
        +
        +
        + void +
        +
        + runUpdate() +
        +
        +
        Update the logged run items in temeletry
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          runEntries

          +
          + public Entry<?>[] runEntries +
          +
          +
        • +
        • +
          +

          initEntries

          +
          + public Entry<?>[] initEntries +
          +
          +
        • +
        • +
          +

          captionDivider

          +
          + public char captionDivider +
          +
          + The divider between the tag and the entry for telemetry (default ':') +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          Logger

          +
          + public Logger(com.qualcomm.robotcore.eventloop.opmode.OpMode op) +
          +
          Instantiate the logger
          +
          +
          Parameters:
          +
          op - The OpMode class
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          LogHardware

          +
          + public static void LogHardware(String names) +
          +
          +
        • +
        • +
          +

          runUpdate

          +
          + public void runUpdate() +
          +
          Update the logged run items in temeletry
          +
          +
        • +
        • +
          +

          initUpdate

          +
          + public void initUpdate() +
          +
          Update the logged init items in temeletry
          +
          +
        • +
        • +
          +

          repeat

          +
          + public static String repeat(String s, int num) +
          +
          Repeat a String
          +
          +
          Parameters:
          +
          s - The String to repeat
          +
          num - The amount of times to repeat the String
          +
          Returns:
          +
          The String s repeated num times
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html b/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html index cd653280..e220fc83 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/BooleanEntry.html @@ -1,194 +1,543 @@ - + - - -BooleanEntry (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class BooleanEntry

      -
      -
      java.lang.Object -
      com.technototes.library.logger.entry.Entry<Boolean> -
      com.technototes.library.logger.entry.BooleanEntry
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Supplier<Boolean>
      -
      -
      -
      public class BooleanEntry -extends Entry<Boolean>
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + BooleanEntry (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class BooleanEntry

      +
      +
      + java.lang.Object +
      + com.technototes.library.logger.entry.Entry<Boolean> +
      com.technototes.library.logger.entry.BooleanEntry
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Supplier<Boolean> +
      +
      +
      +
      + public class BooleanEntry + extends + Entry<Boolean> +
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html b/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html index bb0f2971..e42ea743 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/Entry.html @@ -1,359 +1,912 @@ - + - - -Entry (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Entry<T>

      -
      -
      java.lang.Object -
      com.technototes.library.logger.entry.Entry<T>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The type of value being stored by the entry
      -
      -
      -
      All Implemented Interfaces:
      -
      Supplier<T>
      -
      -
      -
      Direct Known Subclasses:
      -
      BooleanEntry, NumberEntry, StringEntry
      -
      -
      -
      public abstract class Entry<T> -extends Object -implements Supplier<T>
      -
      The root class for logging entries
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        -
        protected String
        - -
        -
        The name of the Entry
        -
        -
        protected int
        - -
        -
        The priority (in the telemetry list) of the entry
        -
        -
        protected Supplier<T>
        - -
        -
        The function called to get the value to display
        -
        -
        protected int
        - -
        -
        The index (in the list) of the entry
        -
        -
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        Entry(String n, - Supplier<T> s, - int index)
        -
        -
        Create an entry with name, value, index
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        - -
        get()
        -
         
        -
        int
        - -
        -
        Get the index for the entry
        -
        - - -
        -
        Get the name
        -
        -
        int
        - -
        -
        Get Priority for the entry
        -
        - -
        setIndex(int i)
        -
        -
        Set index
        -
        - -
        setPriority(int p)
        -
        -
        Set's the priority for this log line (handy for telemetry overflow)
        -
        - - -
        -
        The String for the logged item
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

        -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          x

          -
          protected int x
          -
          The index (in the list) of the entry
          -
          -
        • -
        • -
          -

          priority

          -
          protected int priority
          -
          The priority (in the telemetry list) of the entry
          -
          -
        • -
        • -
          -

          supplier

          -
          protected Supplier<T> supplier
          -
          The function called to get the value to display
          -
          -
        • -
        • -
          -

          name

          -
          protected String name
          -
          The name of the Entry
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Entry

          -
          public Entry(String n, - Supplier<T> s, - int index)
          -
          Create an entry with name, value, index
          -
          -
          Parameters:
          -
          n - Name of the entry
          -
          s - Value function to display
          -
          index - Index of the entry
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setPriority

          -
          public Entry<T> setPriority(int p)
          -
          Set's the priority for this log line (handy for telemetry overflow)
          -
          -
          Parameters:
          -
          p - The priority
          -
          Returns:
          -
          Self (for chaining)
          -
          -
          -
        • -
        • -
          -

          get

          -
          public T get()
          -
          -
          Specified by:
          -
          get in interface Supplier<T>
          -
          -
          -
        • -
        • -
          -

          toString

          -
          public String toString()
          -
          The String for the logged item
          -
          -
          Overrides:
          -
          toString in class Object
          -
          Returns:
          -
          The String
          -
          -
          -
        • -
        • -
          -

          getName

          -
          public String getName()
          -
          Get the name
          -
          -
          Returns:
          -
          The name
          -
          -
          -
        • -
        • -
          -

          getIndex

          -
          public int getIndex()
          -
          Get the index for the entry
          -
          -
          Returns:
          -
          The index
          -
          -
          -
        • -
        • -
          -

          setIndex

          -
          public Entry setIndex(int i)
          -
          Set index
          -
          -
          Parameters:
          -
          i - New index
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          getPriority

          -
          public int getPriority()
          -
          Get Priority for the entry
          -
          -
          Returns:
          -
          The priority
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Entry (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Entry<T>

      +
      +
      + java.lang.Object +
      com.technototes.library.logger.entry.Entry<T>
      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of value being stored by the entry
      +
      +
      +
      All Implemented Interfaces:
      +
      + Supplier<T> +
      +
      +
      +
      Direct Known Subclasses:
      +
      + BooleanEntry, + NumberEntry, + StringEntry +
      +
      +
      +
      + public abstract class Entry<T> + extends + Object + implements + Supplier<T> +
      +
      The root class for logging entries
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + protected + String +
        +
        + name +
        +
        +
        The name of the Entry
        +
        +
        protected int
        +
        + priority +
        +
        +
        The priority (in the telemetry list) of the entry
        +
        +
        + protected + Supplier<T> +
        +
        + supplier +
        +
        +
        The function called to get the value to display
        +
        +
        protected int
        +
        + x +
        +
        +
        The index (in the list) of the entry
        +
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + Entry(String n, + Supplier<T> s, + int index) +
        +
        +
        Create an entry with name, value, index
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + T +
        +
        + get() +
        +
        +   +
        +
        + int +
        +
        + getIndex() +
        +
        +
        Get the index for the entry
        +
        +
        + String +
        +
        + getName() +
        +
        +
        Get the name
        +
        +
        + int +
        +
        + getPriority() +
        +
        +
        Get Priority for the entry
        +
        +
        + Entry +
        +
        + setIndex(int i) +
        +
        +
        Set index
        +
        +
        + Entry<T> +
        +
        + setPriority(int p) +
        +
        +
        + Set's the priority for this log line (handy for telemetry overflow) +
        +
        +
        + String +
        +
        + toString() +
        +
        +
        The String for the logged item
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          x

          +
          + protected int x +
          +
          The index (in the list) of the entry
          +
          +
        • +
        • +
          +

          priority

          +
          + protected int priority +
          +
          The priority (in the telemetry list) of the entry
          +
          +
        • +
        • +
          +

          supplier

          +
          + protected Supplier<T> supplier +
          +
          The function called to get the value to display
          +
          +
        • +
        • +
          +

          name

          +
          + protected String name +
          +
          The name of the Entry
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          Entry

          +
          + public Entry(String n, + Supplier<T> s, int index) +
          +
          Create an entry with name, value, index
          +
          +
          Parameters:
          +
          n - Name of the entry
          +
          s - Value function to display
          +
          index - Index of the entry
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          setPriority

          +
          + public Entry<T> setPriority(int p) +
          +
          + Set's the priority for this log line (handy for telemetry overflow) +
          +
          +
          Parameters:
          +
          p - The priority
          +
          Returns:
          +
          Self (for chaining)
          +
          +
          +
        • +
        • +
          +

          get

          +
          + public T get() +
          +
          +
          Specified by:
          +
          + get in interface Supplier<T> +
          +
          +
          +
        • +
        • +
          +

          toString

          +
          + public String toString() +
          +
          The String for the logged item
          +
          +
          Overrides:
          +
          + toString in class Object +
          +
          Returns:
          +
          The String
          +
          +
          +
        • +
        • +
          +

          getName

          +
          + public String getName() +
          +
          Get the name
          +
          +
          Returns:
          +
          The name
          +
          +
          +
        • +
        • +
          +

          getIndex

          +
          + public int getIndex() +
          +
          Get the index for the entry
          +
          +
          Returns:
          +
          The index
          +
          +
          +
        • +
        • +
          +

          setIndex

          +
          + public Entry setIndex(int i) +
          +
          Set index
          +
          +
          Parameters:
          +
          i - New index
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          getPriority

          +
          + public int getPriority() +
          +
          Get Priority for the entry
          +
          +
          Returns:
          +
          The priority
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/NumberEntry.html b/docs/TechnoLib/com/technototes/library/logger/entry/NumberEntry.html index 7e6d3921..5c3c0534 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/NumberEntry.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/NumberEntry.html @@ -1,213 +1,566 @@ - + - - -NumberEntry (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class NumberEntry

      -
      -
      java.lang.Object -
      com.technototes.library.logger.entry.Entry<Number> -
      com.technototes.library.logger.entry.NumberEntry
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Supplier<Number>
      -
      -
      -
      public class NumberEntry -extends Entry<Number>
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + NumberEntry (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class NumberEntry

      +
      +
      + java.lang.Object +
      + com.technototes.library.logger.entry.Entry<Number> +
      com.technototes.library.logger.entry.NumberEntry
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Supplier<Number> +
      +
      +
      +
      + public class NumberEntry + extends + Entry<Number> +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Field Details

        + +
        +
      • + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          toString

          +
          + public String toString() +
          +
          + Description copied from class: Entry +
          +
          The String for the logged item
          +
          +
          Overrides:
          +
          + toString in class Entry<Number> +
          +
          Returns:
          +
          The String
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/StringEntry.html b/docs/TechnoLib/com/technototes/library/logger/entry/StringEntry.html index 4f4ef329..d63c9f8e 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/StringEntry.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/StringEntry.html @@ -1,192 +1,531 @@ - + - - -StringEntry (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class StringEntry

      -
      -
      java.lang.Object -
      com.technototes.library.logger.entry.Entry<String> -
      com.technototes.library.logger.entry.StringEntry
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Supplier<String>
      -
      -
      -
      public class StringEntry -extends Entry<String>
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + StringEntry (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class StringEntry

      +
      +
      + java.lang.Object +
      + com.technototes.library.logger.entry.Entry<String> +
      com.technototes.library.logger.entry.StringEntry
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Supplier<String> +
      +
      +
      +
      + public class StringEntry + extends + Entry<String> +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          toString

          +
          + public String toString() +
          +
          + Description copied from class: Entry +
          +
          The String for the logged item
          +
          +
          Overrides:
          +
          + toString in class Entry<String> +
          +
          Returns:
          +
          The String
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/package-summary.html b/docs/TechnoLib/com/technototes/library/logger/entry/package-summary.html index 83abd8a4..0b016f22 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/package-summary.html @@ -1,101 +1,170 @@ - + - - -com.technototes.library.logger.entry (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.logger.entry

      -
      -
      -
      package com.technototes.library.logger.entry
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.logger.entry (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.logger.entry +

      +
      +
      +
      + package com.technototes.library.logger.entry +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/entry/package-tree.html b/docs/TechnoLib/com/technototes/library/logger/entry/package-tree.html index 4607e0aa..011037cd 100644 --- a/docs/TechnoLib/com/technototes/library/logger/entry/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/logger/entry/package-tree.html @@ -1,77 +1,140 @@ - + - - -com.technototes.library.logger.entry Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.logger.entry

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object -
          -
        • com.technototes.library.logger.entry.Entry<T> (implements java.util.function.Supplier<T>) - -
        • -
        -
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.logger.entry Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.logger.entry

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.technototes.library.logger.entry.Entry<T> (implements java.util.function.Supplier<T>) + +
        • +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/package-summary.html b/docs/TechnoLib/com/technototes/library/logger/package-summary.html index 08eb03a6..3f09980e 100644 --- a/docs/TechnoLib/com/technototes/library/logger/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/logger/package-summary.html @@ -1,139 +1,305 @@ - + - - -com.technototes.library.logger (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.logger

      -
      -
      -
      package com.technototes.library.logger
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.logger (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.logger +

      +
      +
      +
      + package com.technototes.library.logger +
      +
      +
        +
      • + +
      • +
      • +
        +
        + +
        +
        +
        +
        Class
        +
        Description
        +
        + Log +
        +
        +
        + The root annotation for annotation logging, also doubles as a basic string + log +
        +
        + +
        +   +
        +
        + Log.Logs +
        +
        +   +
        + +
        +
        Log a number
        +
        +
        + LogConfig +
        +
        +
        Annotations for configuring Logs
        +
        + +
        +
        Annotation for allowing Opmodes to log this item
        +
        + +
        +
        Annotation for denying Opmodes to log this item
        +
        + +
        +
        Annotation to completely disable the entry
        +
        + +
        +
        + Annotation for determining when logged item will be sent to Telemetry +
        +
        +
        + Loggable +
        +
        +
        + All classes with annotations for logging must extend this all the way up + the hierarchy up to the op mode +
        +
        +
        + Logger +
        +
        +
        The class to manage logging
        +
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/logger/package-tree.html b/docs/TechnoLib/com/technototes/library/logger/package-tree.html index ccdbc7f9..031f03ec 100644 --- a/docs/TechnoLib/com/technototes/library/logger/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/logger/package-tree.html @@ -1,91 +1,253 @@ - + - - -com.technototes.library.logger Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.logger

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object -
          -
        • com.technototes.library.logger.Logger
        • -
        -
      • -
      -
      -
      -

      Interface Hierarchy

      -
        -
      • com.technototes.library.logger.Loggable
      • -
      -
      -
      -

      Annotation Interface Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.logger Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.logger

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.technototes.library.logger.Logger +
        • +
        +
      • +
      +
      +
      +

      Interface Hierarchy

      +
        +
      • + com.technototes.library.logger.Loggable +
      • +
      +
      +
      +

      Annotation Interface Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/package-summary.html b/docs/TechnoLib/com/technototes/library/package-summary.html index 3da41258..72fc225b 100644 --- a/docs/TechnoLib/com/technototes/library/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/package-summary.html @@ -1,111 +1,165 @@ - + - - -com.technototes.library (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library

      -
      -
      -
      package com.technototes.library
      -
      - -
      -
      -
      -
      - + + + com.technototes.library (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library +

      +
      +
      +
      + package com.technototes.library +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/package-tree.html b/docs/TechnoLib/com/technototes/library/package-tree.html index 19438c8f..6ed281a4 100644 --- a/docs/TechnoLib/com/technototes/library/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/package-tree.html @@ -1,71 +1,104 @@ - + - - -com.technototes.library Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.OpModeState.html b/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.OpModeState.html index f78ee3c4..cffca781 100644 --- a/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.OpModeState.html +++ b/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.OpModeState.html @@ -1,248 +1,770 @@ - + - - -CommandOpMode.OpModeState (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class CommandOpMode.OpModeState

      -
      -
      java.lang.Object -
      java.lang.Enum<CommandOpMode.OpModeState> -
      com.technototes.library.structure.CommandOpMode.OpModeState
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<CommandOpMode.OpModeState>, Constable
      -
      -
      -
      Enclosing class:
      -
      CommandOpMode
      -
      -
      - -
      Enum for op mode state
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static CommandOpMode.OpModeState[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          - -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        • -
          -

          isState

          -
          public boolean isState(CommandOpMode.OpModeState... states)
          -
          Check if other states are this state
          -
          -
          Parameters:
          -
          states - The other states
          -
          Returns:
          -
          The above condition
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + CommandOpMode.OpModeState (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Enum Class CommandOpMode.OpModeState +

      +
      +
      + java.lang.Object +
      + java.lang.Enum<CommandOpMode.OpModeState> +
      + com.technototes.library.structure.CommandOpMode.OpModeState +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<CommandOpMode.OpModeState>, + Constable +
      +
      +
      +
      Enclosing class:
      +
      + CommandOpMode +
      +
      +
      +
      + public static enum CommandOpMode.OpModeState + extends + Enum<CommandOpMode.OpModeState> +
      +
      Enum for op mode state
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static CommandOpMode.OpModeState[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static CommandOpMode.OpModeState valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        • +
          +

          isState

          +
          + public boolean isState(CommandOpMode.OpModeState... states) +
          +
          Check if other states are this state
          +
          +
          Parameters:
          +
          states - The other states
          +
          Returns:
          +
          The above condition
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.html b/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.html index 876f7141..d6bf13e3 100644 --- a/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.html +++ b/docs/TechnoLib/com/technototes/library/structure/CommandOpMode.html @@ -1,450 +1,1109 @@ - + - - -CommandOpMode (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class CommandOpMode

      -
      -
      java.lang.Object -
      com.qualcomm.robotcore.eventloop.opmode.OpMode -
      com.qualcomm.robotcore.eventloop.opmode.LinearOpMode -
      com.technototes.library.structure.CommandOpMode
      -
      -
      -
      -
      -
      -
      public abstract class CommandOpMode -extends com.qualcomm.robotcore.eventloop.opmode.LinearOpMode
      -
      Class for command based op modes
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        Nested Classes
        -
        -
        Modifier and Type
        -
        Class
        -
        Description
        -
        static enum 
        - -
        -
        Enum for op mode state
        -
        -
        -
        -
      • - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        - - -
        -
        Command gamepad objects
        -
        - - -
        -
        Command gamepad objects
        -
        -
        com.qualcomm.robotcore.hardware.Gamepad
        - -
         
        -
        com.qualcomm.robotcore.hardware.Gamepad
        - -
         
        -
        com.qualcomm.robotcore.hardware.HardwareMap
        - -
         
        -
        static final int
        - -
         
        -
        int
        - -
        -
        Deprecated.
        -
        -
        org.firstinspires.ftc.robotcore.external.Telemetry
        - -
         
        -
        -
        -

        Fields inherited from class com.qualcomm.robotcore.eventloop.opmode.OpMode

        -msStuckDetectInit, msStuckDetectInitLoop, msStuckDetectLoop, msStuckDetectStart, time
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        - -
         
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        boolean
        - -
         
        -
        void
        -
        end()
        -
        -
        Runs once when op mode is ended
        -
        - - -
        -
        Get the op mode's logger
        -
        -
        double
        - -
        -
        Get the opmode runtime
        -
        - - -
        -
        Get op mode state
        -
        -
        void
        - -
        -
        Runs constantly when op mode is initialized, yet not started
        -
        -
        final void
        - -
         
        -
        void
        - -
        -
        Runs constantly when op mode is started
        -
        -
        final void
        - -
         
        -
        void
        - -
         
        -
        void
        - -
        -
        Runs constantly during all periods
        -
        -
        void
        - -
        -
        Runs once when op mode is initialized
        -
        -
        void
        - -
        -
        Runs once when op mode is started
        -
        -
        -
        -
        -
        -

        Methods inherited from class com.qualcomm.robotcore.eventloop.opmode.LinearOpMode

        -idle, init, init_loop, isStarted, isStopRequested, loop, opModeInInit, opModeIsActive, sleep, start, stop, waitForStart
        -
        -

        Methods inherited from class com.qualcomm.robotcore.eventloop.opmode.OpMode

        -getRuntime, internalPostInitLoop, internalPostLoop, internalPreInit, internalUpdateTelemetryNow, resetRuntime, terminateOpModeNow, updateTelemetry
        -
        -

        Methods inherited from class java.lang.Object

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

        Field Details

        -
          -
        • -
          -

          driverGamepad

          - -
          Command gamepad objects
          -
          -
        • -
        • -
          -

          codriverGamepad

          - -
          Command gamepad objects
          -
          -
        • -
        • -
          -

          MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED

          -
          public static final int MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED
          -
          -
          See Also:
          -
          - -
          -
          -
          -
        • -
        • -
          -

          gamepad1

          -
          public volatile com.qualcomm.robotcore.hardware.Gamepad gamepad1
          -
          -
        • -
        • -
          -

          gamepad2

          -
          public volatile com.qualcomm.robotcore.hardware.Gamepad gamepad2
          -
          -
        • -
        • -
          -

          telemetry

          -
          public org.firstinspires.ftc.robotcore.external.Telemetry telemetry
          -
          -
        • -
        • -
          -

          hardwareMap

          -
          public volatile com.qualcomm.robotcore.hardware.HardwareMap hardwareMap
          -
          -
        • -
        • -
          -

          msStuckDetectStop

          -
          @Deprecated -public int msStuckDetectStop
          -
          Deprecated.
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getOpModeState

          - -
          Get op mode state
          -
          -
          Returns:
          -
          Current op mode state
          -
          -
          -
        • -
        • -
          -

          getLogger

          -
          public Logger getLogger()
          -
          Get the op mode's logger
          -
          -
          Returns:
          -
          The logger
          -
          -
          -
        • -
        • -
          -

          getOpModeRuntime

          -
          public double getOpModeRuntime()
          -
          Get the opmode runtime
          -
          -
          Returns:
          -
          Runtime in seconds
          -
          -
          -
        • -
        • -
          -

          runOpMode

          -
          public final void runOpMode()
          -
          -
          Specified by:
          -
          runOpMode in class com.qualcomm.robotcore.eventloop.opmode.LinearOpMode
          -
          -
          -
        • -
        • -
          -

          uponInit

          -
          public void uponInit()
          -
          Runs once when op mode is initialized
          -
          -
        • -
        • -
          -

          initLoop

          -
          public void initLoop()
          -
          Runs constantly when op mode is initialized, yet not started
          -
          -
        • -
        • -
          -

          uponStart

          -
          public void uponStart()
          -
          Runs once when op mode is started
          -
          -
        • -
        • -
          -

          runLoop

          -
          public void runLoop()
          -
          Runs constantly when op mode is started
          -
          -
        • -
        • -
          -

          end

          -
          public void end()
          -
          Runs once when op mode is ended
          -
          -
        • -
        • -
          -

          universalLoop

          -
          public void universalLoop()
          -
          Runs constantly during all periods
          -
          -
        • -
        • -
          -

          terminate

          -
          public void terminate()
          -
          -
        • -
        • -
          -

          additionalInitConditions

          -
          public boolean additionalInitConditions()
          -
          -
        • -
        • -
          -

          requestOpModeStop

          -
          public final void requestOpModeStop()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + CommandOpMode (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class CommandOpMode

      +
      +
      + java.lang.Object +
      + com.qualcomm.robotcore.eventloop.opmode.OpMode +
      + com.qualcomm.robotcore.eventloop.opmode.LinearOpMode +
      com.technototes.library.structure.CommandOpMode
      +
      +
      +
      +
      +
      +
      + public abstract class CommandOpMode + extends com.qualcomm.robotcore.eventloop.opmode.LinearOpMode +
      +
      Class for command based op modes
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static enum 
        + +
        +
        Enum for op mode state
        +
        +
        +
        +
      • + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        + + +
        +
        Command gamepad objects
        +
        + + +
        +
        Command gamepad objects
        +
        +
        + com.qualcomm.robotcore.hardware.Gamepad +
        +
        + gamepad1 +
        +
         
        +
        + com.qualcomm.robotcore.hardware.Gamepad +
        +
        + gamepad2 +
        +
         
        +
        + com.qualcomm.robotcore.hardware.HardwareMap +
        + +
         
        +
        static final int
        + +
         
        +
        int
        + +
        +
        Deprecated.
        +
        +
        + org.firstinspires.ftc.robotcore.external.Telemetry +
        +
        + telemetry +
        +
         
        +
        +
        +

        + Fields inherited from + class com.qualcomm.robotcore.eventloop.opmode.OpMode +

        + msStuckDetectInit, msStuckDetectInitLoop, msStuckDetectLoop, + msStuckDetectStart, time +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        + +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + boolean +
        + +
        +   +
        +
        + void +
        +
        + end() +
        +
        +
        Runs once when op mode is ended
        +
        +
        + Logger +
        +
        + getLogger() +
        +
        +
        Get the op mode's logger
        +
        +
        + double +
        + +
        +
        Get the opmode runtime
        +
        + + +
        +
        Get op mode state
        +
        +
        + void +
        +
        + initLoop() +
        +
        +
        + Runs constantly when op mode is initialized, yet not started +
        +
        +
        + final void +
        + +
        +   +
        +
        + void +
        +
        + runLoop() +
        +
        +
        Runs constantly when op mode is started
        +
        +
        + final void +
        +
        + runOpMode() +
        +
        +   +
        +
        + void +
        +
        + terminate() +
        +
        +   +
        +
        + void +
        + +
        +
        Runs constantly during all periods
        +
        +
        + void +
        +
        + uponInit() +
        +
        +
        Runs once when op mode is initialized
        +
        +
        + void +
        +
        + uponStart() +
        +
        +
        Runs once when op mode is started
        +
        +
        +
        +
        +
        +

        + Methods inherited from + class com.qualcomm.robotcore.eventloop.opmode.LinearOpMode +

        + idle, init, init_loop, isStarted, isStopRequested, loop, opModeInInit, + opModeIsActive, sleep, start, stop, waitForStart +
        +
        +

        + Methods inherited from + class com.qualcomm.robotcore.eventloop.opmode.OpMode +

        + getRuntime, internalPostInitLoop, internalPostLoop, internalPreInit, + internalUpdateTelemetryNow, resetRuntime, terminateOpModeNow, + updateTelemetry +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          driverGamepad

          + +
          Command gamepad objects
          +
          +
        • +
        • +
          +

          codriverGamepad

          + +
          Command gamepad objects
          +
          +
        • +
        • +
          +

          MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED

          +
          + public static final int MS_BEFORE_FORCE_STOP_AFTER_STOP_REQUESTED +
          +
          +
          See Also:
          +
          + +
          +
          +
          +
        • +
        • +
          +

          gamepad1

          +
          + public volatile com.qualcomm.robotcore.hardware.Gamepad gamepad1 +
          +
          +
        • +
        • +
          +

          gamepad2

          +
          + public volatile com.qualcomm.robotcore.hardware.Gamepad gamepad2 +
          +
          +
        • +
        • +
          +

          telemetry

          +
          + public org.firstinspires.ftc.robotcore.external.Telemetry telemetry +
          +
          +
        • +
        • +
          +

          hardwareMap

          +
          + public volatile com.qualcomm.robotcore.hardware.HardwareMap hardwareMap +
          +
          +
        • +
        • +
          +

          msStuckDetectStop

          +
          + @Deprecated public int msStuckDetectStop +
          +
          + Deprecated. +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getOpModeState

          + +
          Get op mode state
          +
          +
          Returns:
          +
          Current op mode state
          +
          +
          +
        • +
        • +
          +

          getLogger

          +
          + public Logger getLogger() +
          +
          Get the op mode's logger
          +
          +
          Returns:
          +
          The logger
          +
          +
          +
        • +
        • +
          +

          getOpModeRuntime

          +
          + public double getOpModeRuntime() +
          +
          Get the opmode runtime
          +
          +
          Returns:
          +
          Runtime in seconds
          +
          +
          +
        • +
        • +
          +

          runOpMode

          +
          + public final void runOpMode() +
          +
          +
          Specified by:
          +
          + runOpMode in class com.qualcomm.robotcore.eventloop.opmode.LinearOpMode +
          +
          +
          +
        • +
        • +
          +

          uponInit

          +
          + public void uponInit() +
          +
          Runs once when op mode is initialized
          +
          +
        • +
        • +
          +

          initLoop

          +
          + public void initLoop() +
          +
          + Runs constantly when op mode is initialized, yet not started +
          +
          +
        • +
        • +
          +

          uponStart

          +
          + public void uponStart() +
          +
          Runs once when op mode is started
          +
          +
        • +
        • +
          +

          runLoop

          +
          + public void runLoop() +
          +
          Runs constantly when op mode is started
          +
          +
        • +
        • +
          +

          end

          +
          + public void end() +
          +
          Runs once when op mode is ended
          +
          +
        • +
        • +
          +

          universalLoop

          +
          + public void universalLoop() +
          +
          Runs constantly during all periods
          +
          +
        • +
        • +
          +

          terminate

          +
          + public void terminate() +
          +
          +
        • +
        • +
          +

          additionalInitConditions

          +
          + public boolean additionalInitConditions() +
          +
          +
        • +
        • +
          +

          requestOpModeStop

          +
          + public final void requestOpModeStop() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/structure/package-summary.html b/docs/TechnoLib/com/technototes/library/structure/package-summary.html index 67738cf7..b9f80d62 100644 --- a/docs/TechnoLib/com/technototes/library/structure/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/structure/package-summary.html @@ -1,105 +1,196 @@ - + - - -com.technototes.library.structure (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.structure

      -
      -
      -
      package com.technototes.library.structure
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.structure (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.structure +

      +
      +
      +
      + package com.technototes.library.structure +
      +
      +
        +
      • + +
      • +
      • +
        +
        + +
        +
        +
        +
        Class
        +
        Description
        + +
        +
        Class for command based op modes
        +
        + +
        +
        Enum for op mode state
        +
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/structure/package-tree.html b/docs/TechnoLib/com/technototes/library/structure/package-tree.html index e61a0ada..0d81ea7f 100644 --- a/docs/TechnoLib/com/technototes/library/structure/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/structure/package-tree.html @@ -1,93 +1,167 @@ - + - - -com.technototes.library.structure Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.structure

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object -
          -
        • com.qualcomm.robotcore.eventloop.opmode.OpMode -
            -
          • com.qualcomm.robotcore.eventloop.opmode.LinearOpMode - -
          • -
          -
        • -
        -
      • -
      -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.structure Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.structure

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      +
        +
      • + java.lang.Object +
          +
        • + com.qualcomm.robotcore.eventloop.opmode.OpMode +
            +
          • + com.qualcomm.robotcore.eventloop.opmode.LinearOpMode + +
          • +
          +
        • +
        +
      • +
      +
      +
      +

      Enum Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/DeviceSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/DeviceSubsystem.html deleted file mode 100644 index ed320b29..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/DeviceSubsystem.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - -DeviceSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class DeviceSubsystem<T extends HardwareDevice<?>>

      -
      -
      java.lang.Object -
      com.technototes.library.subsystem.DeviceSubsystem<T>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The HardwareDevice for this subsystem
      -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      -
      Direct Known Subclasses:
      -
      DrivebaseSubsystem, MotorSubsystem, ServoSubsystem
      -
      -
      -
      public abstract class DeviceSubsystem<T extends HardwareDevice<?>> -extends Object -implements Subsystem
      -
      class for subsystems
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          DeviceSubsystem

          -
          public DeviceSubsystem(T device)
          -
          Create a subsystem
          -
          -
          Parameters:
          -
          device - The main device for the subsystem
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getDevice

          -
          public T getDevice()
          -
          Get the devices for this subsystem
          -
          -
          Returns:
          -
          The devices
          -
          -
          -
        • -
        • -
          -

          periodic

          -
          public void periodic()
          -
          Description copied from interface: Periodic
          -
          The periodic function
          -
          -
          Specified by:
          -
          periodic in interface Periodic
          -
          Specified by:
          -
          periodic in interface Subsystem
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/Subsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/Subsystem.html index d117f1a3..a3ac65e1 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/Subsystem.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/Subsystem.html @@ -1,168 +1,443 @@ - + - - -Subsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface Subsystem

      -
      -
      -
      -
      All Superinterfaces:
      -
      Periodic
      -
      -
      -
      All Known Implementing Classes:
      -
      DeviceSubsystem, DrivebaseSubsystem, EncodedMotorSubsystem, MotorSubsystem, ServoSubsystem, SimpleMecanumDrivebaseSubsystem, TankDrivebaseSubsystem
      -
      -
      -
      public interface Subsystem -extends Periodic
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + Subsystem (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface Subsystem

      +
      +
      +
      +
      All Superinterfaces:
      +
      + Periodic +
      +
      +
      +
      All Known Implementing Classes:
      +
      + DrivebaseSubsystem, + SimpleMecanumDrivebaseSubsystem, + TankDrivebaseSubsystem +
      +
      +
      +
      + public interface Subsystem + extends + Periodic +
      +
      +
      +
        + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default + Command +
        + +
        +   +
        +
        + default void +
        +
        + periodic() +
        +
        +
        The periodic function
        +
        +
        + default void +
        +
        + register() +
        +
        +   +
        +
        + default + Subsystem +
        + +
        +   +
        +
        +
        +
        +
        +
      • +
      +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.html index 577e8ce8..c6a863b0 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/DrivebaseSubsystem.html @@ -1,286 +1,742 @@ - + - - -DrivebaseSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      -
      java.lang.Object -
      com.technototes.library.subsystem.DeviceSubsystem<MotorGroup<T>> -
      com.technototes.library.subsystem.drivebase.DrivebaseSubsystem<T>
      -
      -
      -
      -
      -
      Type Parameters:
      -
      T - The type of motors for the drivebase
      -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      -
      Direct Known Subclasses:
      -
      SimpleMecanumDrivebaseSubsystem, TankDrivebaseSubsystem
      -
      -
      -
      public abstract class DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends DeviceSubsystem<MotorGroup<T>>
      -
      Class for DriveBase subsystems
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          gyroSupplier

          - -
          Override this to get the gyroscope heading. - Or pass it in to the constructor. Which ever works best for your drivebase implementation.
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          DrivebaseSubsystem

          -
          public DrivebaseSubsystem(Motor<T>... motors)
          -
          Create a drivebase subsystem
          -
          -
          Parameters:
          -
          motors - The drive motors
          -
          -
          -
        • -
        • -
          -

          DrivebaseSubsystem

          -
          public DrivebaseSubsystem(DoubleSupplier gyro, - Motor<T>... motors)
          -
          Create a drivebase subsystem
          -
          -
          Parameters:
          -
          gyro - The gyro supplier
          -
          motors - The drive motors
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getScale

          -
          public double getScale(double... powers)
          -
          This will give you a *positive* value to scale the value to such that - the largest value of the list will be |1| (negative or positive). -

          - This is helpful for an X-Drive drivebase, as the algorithm for calucating - motor power will often give a collection of values, all of which are smaller than 1.

          -
          -
          Parameters:
          -
          powers - The list of values you're setting
          -
          Returns:
          -
          The number to divide the values by to set the largest to 1/-1
          -
          -
          -
        • -
        • -
          -

          getGyro

          -
          public double getGyro()
          -
          Get the Gyro angle
          -
          -
          Returns:
          -
          Gyro angle from supplier
          -
          -
          -
        • -
        • -
          -

          getSpeed

          -
          public double getSpeed()
          -
          Override this one, I guess? Not sure how useful it is.
          -
          -
          Returns:
          -
          the speed?
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + DrivebaseSubsystem (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class DrivebaseSubsystem<T extends + com.qualcomm.robotcore.hardware.DcMotorSimple> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.subsystem.drivebase.DrivebaseSubsystem<T> +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of motors for the drivebase
      +
      +
      +
      All Implemented Interfaces:
      +
      + Periodic, + Subsystem +
      +
      +
      +
      Direct Known Subclasses:
      +
      + SimpleMecanumDrivebaseSubsystem, + TankDrivebaseSubsystem +
      +
      +
      +
      + public abstract class DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> + extends + Object + implements + Subsystem +
      +
      Class for DriveBase subsystems
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + protected + DoubleSupplier +
        + +
        +
        Override this to get the gyroscope heading.
        +
        +
        + protected + Motor<T>[] +
        +
        + motors +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + DrivebaseSubsystem(Motor<T>... motors) +
        +
        +
        Create a drivebase subsystem
        +
        +
        + DrivebaseSubsystem(DoubleSupplier gyro, + Motor<T>... motors) +
        +
        +
        Create a drivebase subsystem
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + double +
        +
        + getGyro() +
        +
        +
        Get the Gyro angle
        +
        +
        + double +
        +
        + getScale(double... powers) +
        +
        +
        + This will give you a *positive* value to scale the value to such that + the largest value of the list will be |1| (negative or positive). +
        +
        +
        + double +
        +
        + getSpeed() +
        +
        +
        + Override this one, I guess? Not sure how useful it is. +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        + Methods inherited from interface com.technototes.library.subsystem.Subsystem +

        + getDefaultCommand, + periodic, + register, + setDefaultCommand +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        +
          +
        • +
          +

          motors

          +
          + protected Motor<T + extends com.qualcomm.robotcore.hardware.DcMotorSimple>[] motors +
          +
          +
        • +
        • +
          +

          gyroSupplier

          +
          + protected DoubleSupplier gyroSupplier +
          +
          + Override this to get the gyroscope heading. Or pass it in to the + constructor. Which ever works best for your drivebase implementation. +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          DrivebaseSubsystem

          +
          + public DrivebaseSubsystem(Motor<T>... motors) +
          +
          Create a drivebase subsystem
          +
          +
          Parameters:
          +
          motors - The drive motors
          +
          +
          +
        • +
        • +
          +

          DrivebaseSubsystem

          +
          + public DrivebaseSubsystem(DoubleSupplier gyro, + Motor<T>... motors) +
          +
          Create a drivebase subsystem
          +
          +
          Parameters:
          +
          gyro - The gyro supplier
          +
          motors - The drive motors
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getScale

          +
          + public double getScale(double... powers) +
          +
          + This will give you a *positive* value to scale the value to such that the + largest value of the list will be |1| (negative or positive). +

          + This is helpful for an X-Drive drivebase, as the algorithm for + calucating motor power will often give a collection of values, all of + which are smaller than 1. +

          +
          +
          +
          Parameters:
          +
          powers - The list of values you're setting
          +
          Returns:
          +
          The number to divide the values by to set the largest to 1/-1
          +
          +
          +
        • +
        • +
          +

          getGyro

          +
          + public double getGyro() +
          +
          Get the Gyro angle
          +
          +
          Returns:
          +
          Gyro angle from supplier
          +
          +
          +
        • +
        • +
          +

          getSpeed

          +
          + public double getSpeed() +
          +
          + Override this one, I guess? Not sure how useful it is. +
          +
          +
          Returns:
          +
          the speed?
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.html index d1a04acc..4a6beb9e 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/SimpleMecanumDrivebaseSubsystem.html @@ -1,353 +1,1031 @@ - + - - -SimpleMecanumDrivebaseSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      -
      java.lang.Object -
      com.technototes.library.subsystem.DeviceSubsystem<MotorGroup<T>> -
      com.technototes.library.subsystem.drivebase.DrivebaseSubsystem<T> -
      com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem<T>
      -
      -
      -
      -
      -
      -
      Type Parameters:
      -
      T - The motor type for the subsystem
      -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      -
      public class SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends DrivebaseSubsystem<T>
      -
      Class for mecanum/xdrive drivebases
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          flMotor

          -
          public Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> flMotor
          -
          Drive motors
          -
          -
        • -
        • -
          -

          frMotor

          -
          public Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> frMotor
          -
          Drive motors
          -
          -
        • -
        • -
          -

          rlMotor

          -
          public Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> rlMotor
          -
          Drive motors
          -
          -
        • -
        • -
          -

          rrMotor

          -
          public Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> rrMotor
          -
          Drive motors
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          SimpleMecanumDrivebaseSubsystem

          -
          public SimpleMecanumDrivebaseSubsystem(Motor<T> flMotor, - Motor<T> frMotor, - Motor<T> rlMotor, - Motor<T> rrMotor)
          -
          Create mecanum drivebase
          -
          -
          Parameters:
          -
          flMotor - The front left motor for the drivebase
          -
          frMotor - The front right motor for the drivebase
          -
          rlMotor - The rear left motor for the drivebase
          -
          rrMotor - The rear right motor for the drivebase
          -
          -
          -
        • -
        • -
          -

          SimpleMecanumDrivebaseSubsystem

          -
          public SimpleMecanumDrivebaseSubsystem(DoubleSupplier gyro, - Motor<T> flMotor, - Motor<T> frMotor, - Motor<T> rlMotor, - Motor<T> rrMotor)
          -
          Create mecanum drivebase
          -
          -
          Parameters:
          -
          gyro - The gyro supplier
          -
          flMotor - The front left motor for the drivebase
          -
          frMotor - The front right motor for the drivebase
          -
          rlMotor - The rear left motor for the drivebase
          -
          rrMotor - The rear right motor for the drivebase
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          joystickDrive

          -
          public void joystickDrive(double x, - double y, - double rotation)
          -
          -
        • -
        • -
          -

          joystickDriveWithGyro

          -
          public void joystickDriveWithGyro(double x, - double y, - double rotation, - double gyroAngle)
          -
          -
        • -
        • -
          -

          drive

          -
          public void drive(double speed, - double angle, - double rotation)
          -
          -
        • -
        • -
          -

          stop

          -
          public void stop()
          -
          -
        • -
        • -
          -

          drive

          -
          public void drive(double flSpeed, - double frSpeed, - double rlSpeed, - double rrSpeed)
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + SimpleMecanumDrivebaseSubsystem (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class SimpleMecanumDrivebaseSubsystem<T extends + com.qualcomm.robotcore.hardware.DcMotorSimple> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.subsystem.drivebase.DrivebaseSubsystem<T> +
      + com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem<T> +
      +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The motor type for the subsystem
      +
      +
      +
      All Implemented Interfaces:
      +
      + Periodic, + Subsystem +
      +
      +
      +
      + public class SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> + extends + DrivebaseSubsystem<T> +
      +
      Class for mecanum/xdrive drivebases
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          SimpleMecanumDrivebaseSubsystem

          +
          + public SimpleMecanumDrivebaseSubsystem(Motor<T> flMotor, + Motor<T> frMotor, + Motor<T> rlMotor, + Motor<T> rrMotor) +
          +
          Create mecanum drivebase
          +
          +
          Parameters:
          +
          flMotor - The front left motor for the drivebase
          +
          frMotor - The front right motor for the drivebase
          +
          rlMotor - The rear left motor for the drivebase
          +
          rrMotor - The rear right motor for the drivebase
          +
          +
          +
        • +
        • +
          +

          SimpleMecanumDrivebaseSubsystem

          +
          + public SimpleMecanumDrivebaseSubsystem(DoubleSupplier gyro, + Motor<T> flMotor, + Motor<T> frMotor, + Motor<T> rlMotor, + Motor<T> rrMotor) +
          +
          Create mecanum drivebase
          +
          +
          Parameters:
          +
          gyro - The gyro supplier
          +
          flMotor - The front left motor for the drivebase
          +
          frMotor - The front right motor for the drivebase
          +
          rlMotor - The rear left motor for the drivebase
          +
          rrMotor - The rear right motor for the drivebase
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          flMotor

          +
          + protected Motor<T> flMotor() +
          +
          Drive motors
          +
          +
        • +
        • +
          +

          frMotor

          +
          + protected Motor<T> frMotor() +
          +
          +
        • +
        • +
          +

          rlMotor

          +
          + protected Motor<T> rlMotor() +
          +
          +
        • +
        • +
          +

          rrMotor

          +
          + protected Motor<T> rrMotor() +
          +
          +
        • +
        • +
          +

          joystickDrive

          +
          + public void joystickDrive(double x, double y, double rotation) +
          +
          +
        • +
        • +
          +

          joystickDriveWithGyro

          +
          + public void joystickDriveWithGyro(double x, double y, double rotation, + double gyroAngle) +
          +
          +
        • +
        • +
          +

          drive

          +
          + public void drive(double speed, double angle, double rotation) +
          +
          +
        • +
        • +
          +

          stop

          +
          + public void stop() +
          +
          +
        • +
        • +
          +

          drive

          +
          + public void drive(double flSpeed, double frSpeed, double rlSpeed, + double rrSpeed) +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.html index ac61a622..11939608 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/TankDrivebaseSubsystem.html @@ -1,262 +1,695 @@ - + - - -TankDrivebaseSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple>

      -
      - -
      -
      -
      Type Parameters:
      -
      T - The type of motor for the drivebase
      -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      -
      public class TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> -extends DrivebaseSubsystem<T>
      -
      Class for drivebase subsystems
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          leftSide

          -
          public Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> leftSide
          -
          Drive motors
          -
          -
        • -
        • -
          -

          rightSide

          -
          public Motor<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> rightSide
          -
          Drive motors
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          TankDrivebaseSubsystem

          -
          public TankDrivebaseSubsystem(Motor<T> leftMotor, - Motor<T> rightMotor)
          -
          Create tank drivebase
          -
          -
          Parameters:
          -
          leftMotor - The motor/motorgroup for the left side of the drivebase
          -
          rightMotor - The motor/motorgroup for the right side of the drivebase
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          arcadeDrive

          -
          public void arcadeDrive(double y, - double x)
          -
          -
        • -
        • -
          -

          stop

          -
          public void stop()
          -
          -
        • -
        • -
          -

          drive

          -
          public void drive(double l, - double r)
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + TankDrivebaseSubsystem (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Class TankDrivebaseSubsystem<T extends + com.qualcomm.robotcore.hardware.DcMotorSimple> +

      +
      +
      + java.lang.Object +
      + com.technototes.library.subsystem.drivebase.DrivebaseSubsystem<T> +
      + com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem<T> +
      +
      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of motor for the drivebase
      +
      +
      +
      All Implemented Interfaces:
      +
      + Periodic, + Subsystem +
      +
      +
      +
      + public class TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> + extends + DrivebaseSubsystem<T> +
      +
      Class for drivebase subsystems
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          TankDrivebaseSubsystem

          +
          + public TankDrivebaseSubsystem(Motor<T> leftMotor, + Motor<T> rightMotor) +
          +
          Create tank drivebase
          +
          +
          Parameters:
          +
          + leftMotor - The motor/motorgroup for the left side of the + drivebase +
          +
          + rightMotor - The motor/motorgroup for the right side of the + drivebase +
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          leftSide

          +
          + protected Motor<T> leftSide() +
          +
          Drive motors
          +
          +
        • +
        • +
          +

          rightSide

          +
          + protected Motor<T> rightSide() +
          +
          +
        • +
        • +
          +

          arcadeDrive

          +
          + public void arcadeDrive(double y, double x) +
          +
          +
        • +
        • +
          +

          stop

          +
          + public void stop() +
          +
          +
        • +
        • +
          +

          drive

          +
          + public void drive(double l, double r) +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-summary.html b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-summary.html index e41ec843..aa871400 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-summary.html @@ -1,107 +1,165 @@ - + - - -com.technototes.library.subsystem.drivebase (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.subsystem.drivebase

      -
      -
      -
      package com.technototes.library.subsystem.drivebase
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.subsystem.drivebase (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.subsystem.drivebase +

      +
      +
      +
      + package com.technototes.library.subsystem.drivebase +
      +
      +
        +
      • + +
      • +
      • +
        +
        Classes
        +
        +
        Class
        +
        Description
        +
        + DrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
        +
        +
        Class for DriveBase subsystems
        +
        +
        + SimpleMecanumDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
        +
        +
        Class for mecanum/xdrive drivebases
        +
        +
        + TankDrivebaseSubsystem<T extends com.qualcomm.robotcore.hardware.DcMotorSimple> +
        +
        +
        Class for drivebase subsystems
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-tree.html b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-tree.html index fe39ed87..6ee827b6 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/drivebase/package-tree.html @@ -1,80 +1,131 @@ - + - - -com.technototes.library.subsystem.drivebase Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.subsystem.drivebase

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.subsystem.drivebase Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.subsystem.drivebase

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.html deleted file mode 100644 index ec34160b..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/motor/EncodedMotorSubsystem.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - -EncodedMotorSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class EncodedMotorSubsystem

      -
      - -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      - -
      Class for encoded motor subsystems
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Field Details

        -
          -
        • -
          -

          maxSpeed

          -
          public double maxSpeed
          -
          Max speed
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setMaxSpeed

          -
          public EncodedMotorSubsystem setMaxSpeed(double speed)
          -
          Set the max speed for the subsystem
          -
          -
          Parameters:
          -
          speed - New max speed
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          setPosition

          -
          public boolean setPosition(double ticks)
          -
          Set position for subsystem with existing max speed
          -
          -
          Parameters:
          -
          ticks - Motor ticks for position
          -
          Returns:
          -
          If this is at specified position
          -
          -
          -
        • -
        • -
          -

          setPosition

          -
          public boolean setPosition(double ticks, - double speed)
          -
          Set position for subsystem
          -
          -
          Parameters:
          -
          ticks - Motor ticks for position
          -
          speed - The max speed to run to the position
          -
          Returns:
          -
          If this is at specified position
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/motor/MotorSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/motor/MotorSubsystem.html deleted file mode 100644 index bc8bef03..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/motor/MotorSubsystem.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - -MotorSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class MotorSubsystem<T extends Motor<?>>

      -
      -
      java.lang.Object -
      com.technototes.library.subsystem.DeviceSubsystem<T> -
      com.technototes.library.subsystem.motor.MotorSubsystem<T>
      -
      -
      -
      -
      -
      Type Parameters:
      -
      T - The motor type
      -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      -
      Direct Known Subclasses:
      -
      EncodedMotorSubsystem
      -
      -
      -
      public class MotorSubsystem<T extends Motor<?>> -extends DeviceSubsystem<T>
      -
      Class for motor subsystems
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          MotorSubsystem

          -
          public MotorSubsystem(T motor)
          -
          Create motor subsystem
          -
          -
          Parameters:
          -
          motor - The motor
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getSpeed

          -
          public double getSpeed()
          -
          Get the speed of the motors in the subsystem
          -
          -
          Returns:
          -
          The speed
          -
          -
          -
        • -
        • -
          -

          setSpeed

          -
          public void setSpeed(double speed)
          -
          Set the speed of the primary motors in subsystem
          -
          -
          Parameters:
          -
          speed - The speed
          -
          -
          -
        • -
        • -
          -

          stop

          -
          public void stop()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/motor/package-summary.html b/docs/TechnoLib/com/technototes/library/subsystem/motor/package-summary.html deleted file mode 100644 index d0158f06..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/motor/package-summary.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - -com.technototes.library.subsystem.motor (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.subsystem.motor

      -
      -
      -
      package com.technototes.library.subsystem.motor
      -
      - -
      -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/motor/package-tree.html b/docs/TechnoLib/com/technototes/library/subsystem/motor/package-tree.html deleted file mode 100644 index 58378a08..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/motor/package-tree.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - -com.technototes.library.subsystem.motor Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.subsystem.motor

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/package-summary.html b/docs/TechnoLib/com/technototes/library/subsystem/package-summary.html index 65cdf05d..b3ec2546 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/package-summary.html @@ -1,109 +1,148 @@ - + - - -com.technototes.library.subsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.subsystem

      -
      -
      -
      package com.technototes.library.subsystem
      -
      - -
      -
      -
      -
      - + + + com.technototes.library.subsystem (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.subsystem +

      +
      +
      +
      + package com.technototes.library.subsystem +
      +
      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/package-tree.html b/docs/TechnoLib/com/technototes/library/subsystem/package-tree.html index eb61b82f..42cd0ca6 100644 --- a/docs/TechnoLib/com/technototes/library/subsystem/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/subsystem/package-tree.html @@ -1,81 +1,109 @@ - + - - -com.technototes.library.subsystem Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.subsystem

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -

      Interface Hierarchy

      -
        -
      • com.technototes.library.general.Periodic -
          -
        • com.technototes.library.subsystem.Subsystem
        • -
        -
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.subsystem Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.subsystem

      + Package Hierarchies: + +
      +
      +

      Interface Hierarchy

      +
        +
      • + com.technototes.library.general.Periodic +
          +
        • + com.technototes.library.subsystem.Subsystem +
        • +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/subsystem/servo/ServoSubsystem.html b/docs/TechnoLib/com/technototes/library/subsystem/servo/ServoSubsystem.html deleted file mode 100644 index dd9507ec..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/servo/ServoSubsystem.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - -ServoSubsystem (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class ServoSubsystem

      -
      -
      java.lang.Object -
      com.technototes.library.subsystem.DeviceSubsystem<Servo> -
      com.technototes.library.subsystem.servo.ServoSubsystem
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Periodic, Subsystem
      -
      -
      -
      public class ServoSubsystem -extends DeviceSubsystem<Servo>
      -
      Class for servo subsystems
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setPosition

          -
          public void setPosition(double position)
          -
          Set servo subsystem position
          -
          -
          Parameters:
          -
          position - The position
          -
          -
          -
        • -
        • -
          -

          getPosition

          -
          public double getPosition()
          -
          Get subsystem servo position
          -
          -
          Returns:
          -
          The position
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/servo/package-summary.html b/docs/TechnoLib/com/technototes/library/subsystem/servo/package-summary.html deleted file mode 100644 index 6f5333b4..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/servo/package-summary.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -com.technototes.library.subsystem.servo (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.subsystem.servo

      -
      -
      -
      package com.technototes.library.subsystem.servo
      -
      - -
      -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/subsystem/servo/package-tree.html b/docs/TechnoLib/com/technototes/library/subsystem/servo/package-tree.html deleted file mode 100644 index ed9f8ec6..00000000 --- a/docs/TechnoLib/com/technototes/library/subsystem/servo/package-tree.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - -com.technototes.library.subsystem.servo Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.subsystem.servo

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -
      -
      - - diff --git a/docs/TechnoLib/com/technototes/library/util/Alliance.Blue.html b/docs/TechnoLib/com/technototes/library/util/Alliance.Blue.html index e4b1d876..c90da6ce 100644 --- a/docs/TechnoLib/com/technototes/library/util/Alliance.Blue.html +++ b/docs/TechnoLib/com/technototes/library/util/Alliance.Blue.html @@ -1,84 +1,171 @@ - + - - -Alliance.Blue (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface Alliance.Blue

      -
      -
      -
      -
      Enclosing class:
      -
      Alliance
      -
      -
      -
      @Retention(RUNTIME) -@Target(TYPE) -public static @interface Alliance.Blue
      -
      Not sure what this is for. Something for annotation processing? No idea :/
      -
      - -
      -
      -
      - + + + Alliance.Blue (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface Alliance.Blue +

      +
      +
      +
      +
      Enclosing class:
      +
      + Alliance +
      +
      +
      +
      + @Retention(RUNTIME) + @Target(TYPE) public static @interface Alliance.Blue +
      +
      + Not sure what this is for. Something for annotation processing? No idea :/ +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Alliance.Red.html b/docs/TechnoLib/com/technototes/library/util/Alliance.Red.html index a8ec97f2..67ad9d7a 100644 --- a/docs/TechnoLib/com/technototes/library/util/Alliance.Red.html +++ b/docs/TechnoLib/com/technototes/library/util/Alliance.Red.html @@ -1,84 +1,171 @@ - + - - -Alliance.Red (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Annotation Interface Alliance.Red

      -
      -
      -
      -
      Enclosing class:
      -
      Alliance
      -
      -
      -
      @Retention(RUNTIME) -@Target(TYPE) -public static @interface Alliance.Red
      -
      Not sure what this is for. Something for annotation processing? No idea :/
      -
      - -
      -
      -
      - + + + Alliance.Red (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Annotation Interface Alliance.Red +

      +
      +
      +
      +
      Enclosing class:
      +
      + Alliance +
      +
      +
      +
      + @Retention(RUNTIME) + @Target(TYPE) public static @interface Alliance.Red +
      +
      + Not sure what this is for. Something for annotation processing? No idea :/ +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Alliance.Selector.html b/docs/TechnoLib/com/technototes/library/util/Alliance.Selector.html index d274f15d..34a8049c 100644 --- a/docs/TechnoLib/com/technototes/library/util/Alliance.Selector.html +++ b/docs/TechnoLib/com/technototes/library/util/Alliance.Selector.html @@ -1,238 +1,586 @@ - + - - -Alliance.Selector (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Alliance.Selector<T>

      -
      -
      java.lang.Object -
      com.technototes.library.util.Alliance.Selector<T>
      -
      -
      -
      -
      Type Parameters:
      -
      T - The type of object to select
      -
      -
      -
      Enclosing class:
      -
      Alliance
      -
      -
      -
      public static class Alliance.Selector<T> -extends Object
      -
      This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate. This lets you pick between two types based on the Alliance
      -
      -
      -
        - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Modifier
        -
        Constructor
        -
        Description
        -
        protected
        -
        Selector(T red, - T blue)
        -
        -
        Create a Selelector for red/blue
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        static <T> Alliance.Selector<T>
        -
        of(T red, - T blue)
        -
        -
        Selector factory method
        -
        - - -
        -
        Select the red or blue item based on the Alliance
        -
        -
        static <T> T
        -
        selectOf(Alliance alliance, - T red, - T blue)
        -
        -
        Based on Alliance, choose red or blue
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

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

        Constructor Details

        -
          -
        • -
          -

          Selector

          -
          protected Selector(T red, - T blue)
          -
          Create a Selelector for red/blue
          -
          -
          Parameters:
          -
          red - For Red selection
          -
          blue - For Blue selection
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          select

          -
          public T select(Alliance a)
          -
          Select the red or blue item based on the Alliance
          -
          -
          Parameters:
          -
          a - The alliance
          -
          Returns:
          -
          The object selected
          -
          -
          -
        • -
        • -
          -

          of

          -
          public static <T> Alliance.Selector<T> of(T red, - T blue)
          -
          Selector factory method
          -
          -
          Type Parameters:
          -
          T - The type of red & blue
          -
          Parameters:
          -
          red - The object to select if red
          -
          blue - The object to select if blue
          -
          Returns:
          -
          The Selector
          -
          -
          -
        • -
        • -
          -

          selectOf

          -
          public static <T> T selectOf(Alliance alliance, - T red, - T blue)
          -
          Based on Alliance, choose red or blue
          -
          -
          Type Parameters:
          -
          T - The type of the red & blue things
          -
          Parameters:
          -
          alliance - The alliance
          -
          red - The thing to choose for red
          -
          blue - The thing to choose for blue
          -
          Returns:
          -
          The thing (red or blue) selected
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Alliance.Selector (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Alliance.Selector<T>

      +
      +
      + java.lang.Object +
      com.technototes.library.util.Alliance.Selector<T>
      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of object to select
      +
      +
      +
      Enclosing class:
      +
      + Alliance +
      +
      +
      +
      + public static class Alliance.Selector<T> + extends + Object +
      +
      + This feels over-engineered, but it's probably for some obnoxious Java thing, + unfortunate. This lets you pick between two types based on the Alliance +
      +
      +
      +
        + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Modifier
        +
        Constructor
        +
        Description
        +
        protected
        +
        + Selector(T red, + T blue) +
        +
        +
        Create a Selelector for red/blue
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static <T> Alliance.Selector<T> +
        +
        + of(T red, + T blue) +
        +
        +
        Selector factory method
        +
        +
        + T +
        +
        + select(Alliance a) +
        +
        +
        Select the red or blue item based on the Alliance
        +
        +
        + static <T> T +
        +
        + selectOf(Alliance alliance, T red, T blue) +
        +
        +
        Based on Alliance, choose red or blue
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Constructor Details

        +
          +
        • +
          +

          Selector

          +
          + protected Selector(T red, + T blue) +
          +
          Create a Selelector for red/blue
          +
          +
          Parameters:
          +
          red - For Red selection
          +
          blue - For Blue selection
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          select

          +
          + public T select(Alliance a) +
          +
          Select the red or blue item based on the Alliance
          +
          +
          Parameters:
          +
          a - The alliance
          +
          Returns:
          +
          The object selected
          +
          +
          +
        • +
        • +
          +

          of

          +
          + public static <T> Alliance.Selector<T> of(T red, T blue) +
          +
          Selector factory method
          +
          +
          Type Parameters:
          +
          T - The type of red & blue
          +
          Parameters:
          +
          red - The object to select if red
          +
          blue - The object to select if blue
          +
          Returns:
          +
          The Selector
          +
          +
          +
        • +
        • +
          +

          + selectOf +

          +
          + public static <T> T selectOf(Alliance alliance, T red, T blue) +
          +
          Based on Alliance, choose red or blue
          +
          +
          Type Parameters:
          +
          T - The type of the red & blue things
          +
          Parameters:
          +
          alliance - The alliance
          +
          red - The thing to choose for red
          +
          blue - The thing to choose for blue
          +
          Returns:
          +
          The thing (red or blue) selected
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Alliance.html b/docs/TechnoLib/com/technototes/library/util/Alliance.html index 80f1a4e3..2251e7a3 100644 --- a/docs/TechnoLib/com/technototes/library/util/Alliance.html +++ b/docs/TechnoLib/com/technototes/library/util/Alliance.html @@ -1,314 +1,915 @@ - + - - -Alliance (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class Alliance

      -
      -
      java.lang.Object -
      java.lang.Enum<Alliance> -
      com.technototes.library.util.Alliance
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<Alliance>, Constable
      -
      -
      -
      public enum Alliance -extends Enum<Alliance>
      -
      An enumeration to specify which alliance the bot is on (Red, Blue, or None)
      -
      -
      -
        - -
      • -
        -

        Nested Class Summary

        -
        Nested Classes
        -
        -
        Modifier and Type
        -
        Class
        -
        Description
        -
        static @interface 
        - -
        -
        Not sure what this is for.
        -
        -
        static @interface 
        - -
        -
        Not sure what this is for.
        -
        -
        static class 
        - -
        -
        This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate.
        -
        -
        -
        -

        Nested classes/interfaces inherited from class java.lang.Enum

        -Enum.EnumDesc<E extends Enum<E>>
        -
        -
      • - -
      • -
        -

        Enum Constant Summary

        -
        Enum Constants
        -
        -
        Enum Constant
        -
        Description
        - -
        -
        BLUE alliance selector
        -
        - -
        -
        NO ALLIANCE SELECTED
        -
        - -
        -
        RED alliance selector
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        static Alliance
        -
        get(Class<? extends com.qualcomm.robotcore.eventloop.opmode.OpMode> c)
        -
        -
        Get the alliance set for the OpMode passed in, if it's set in the annotation
        -
        - - -
        -
        Get the alliance color (Red, Blue, or Black)
        -
        -
        <T> T
        -
        selectOf(T a, - T b)
        -
        -
        Select either 'a' or 'b' depending on alliance
        -
        -
        static Alliance
        - -
        -
        Returns the enum constant of this class with the specified name.
        -
        -
        static Alliance[]
        - -
        -
        Returns an array containing the constants of this enum class, in -the order they are declared.
        -
        -
        -
        -
        - -
        -

        Methods inherited from class java.lang.Object

        -getClass, notify, notifyAll, wait, wait, wait
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        -
          -
        • -
          -

          RED

          -
          public static final Alliance RED
          -
          RED alliance selector
          -
          -
        • -
        • -
          -

          BLUE

          -
          public static final Alliance BLUE
          -
          BLUE alliance selector
          -
          -
        • -
        • -
          -

          NONE

          -
          public static final Alliance NONE
          -
          NO ALLIANCE SELECTED
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static Alliance[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static Alliance valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        • -
          -

          getColor

          -
          public Color getColor()
          -
          Get the alliance color (Red, Blue, or Black)
          -
          -
          Returns:
          -
          The *color* for the alliance
          -
          -
          -
        • -
        • -
          -

          selectOf

          -
          public <T> T selectOf(T a, - T b)
          -
          Select either 'a' or 'b' depending on alliance
          -
          -
          Type Parameters:
          -
          T - The type of a & b
          -
          Parameters:
          -
          a - The item to select if we're red
          -
          b - The item to select if we're blue
          -
          Returns:
          -
          a for Red, b for Blue
          -
          -
          -
        • -
        • -
          -

          get

          -
          public static Alliance get(Class<? extends com.qualcomm.robotcore.eventloop.opmode.OpMode> c)
          -
          Get the alliance set for the OpMode passed in, if it's set in the annotation
          -
          -
          Parameters:
          -
          c - The OpMode
          -
          Returns:
          -
          The alliance of the opmode
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Alliance (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Enum Class Alliance

      +
      +
      + java.lang.Object +
      + java.lang.Enum<Alliance> +
      com.technototes.library.util.Alliance
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<Alliance>, + Constable +
      +
      +
      +
      + public enum Alliance + extends + Enum<Alliance> +
      +
      + An enumeration to specify which alliance the bot is on (Red, Blue, or None) +
      +
      +
      +
        + +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static @interface 
        + +
        +
        Not sure what this is for.
        +
        +
        static @interface 
        + +
        +
        Not sure what this is for.
        +
        +
        static class 
        + +
        +
        + This feels over-engineered, but it's probably for some obnoxious Java thing, + unfortunate. +
        +
        +
        +
        +

        + Nested classes/interfaces inherited from class java.lang.Enum +

        + Enum.EnumDesc<E + extends + Enum<E>> +
        +
        +
      • + +
      • +
        +

        Enum Constant Summary

        +
        Enum Constants
        +
        +
        Enum Constant
        +
        Description
        +
        + BLUE +
        +
        +
        BLUE alliance selector
        +
        +
        + NONE +
        +
        +
        NO ALLIANCE SELECTED
        +
        +
        + RED +
        +
        +
        RED alliance selector
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static + Alliance +
        +
        + get(Class<? extends + com.qualcomm.robotcore.eventloop.opmode.OpMode> c) +
        +
        +
        + Get the alliance set for the OpMode passed in, if it's set in the + annotation +
        +
        +
        + Color +
        +
        + getColor() +
        +
        +
        Get the alliance color (Red, Blue, or Black)
        +
        +
        + <T> T +
        +
        + selectOf(T a, T b) +
        +
        +
        Select either 'a' or 'b' depending on alliance
        +
        +
        + static + Alliance +
        +
        + valueOf(String name) +
        +
        +
        + Returns the enum constant of this class with the specified name. +
        +
        +
        + static + Alliance[] +
        +
        + values() +
        +
        +
        + Returns an array containing the constants of this enum class, in the + order they are declared. +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Enum +

        + clone, + compareTo, + describeConstable, + equals, + finalize, + getDeclaringClass, + hashCode, + name, + ordinal, + toString, + valueOf +
        +
        +

        + Methods inherited from class java.lang.Object +

        + getClass, + notify, + notifyAll, + wait, + wait, + wait +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        +
          +
        • +
          +

          RED

          +
          + public static final Alliance RED +
          +
          RED alliance selector
          +
          +
        • +
        • +
          +

          BLUE

          +
          + public static final Alliance BLUE +
          +
          BLUE alliance selector
          +
          +
        • +
        • +
          +

          NONE

          +
          + public static final Alliance NONE +
          +
          NO ALLIANCE SELECTED
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static Alliance[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static Alliance valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        • +
          +

          getColor

          +
          + public Color getColor() +
          +
          Get the alliance color (Red, Blue, or Black)
          +
          +
          Returns:
          +
          The *color* for the alliance
          +
          +
          +
        • +
        • +
          +

          selectOf

          +
          + public <T> T selectOf(T a, T b) +
          +
          Select either 'a' or 'b' depending on alliance
          +
          +
          Type Parameters:
          +
          T - The type of a & b
          +
          Parameters:
          +
          a - The item to select if we're red
          +
          b - The item to select if we're blue
          +
          Returns:
          +
          a for Red, b for Blue
          +
          +
          +
        • +
        • +
          +

          get

          +
          + public static Alliance get(Class<? extends + com.qualcomm.robotcore.eventloop.opmode.OpMode> c) +
          +
          + Get the alliance set for the OpMode passed in, if it's set in the + annotation +
          +
          +
          Parameters:
          +
          c - The OpMode
          +
          Returns:
          +
          The alliance of the opmode
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Characters.html b/docs/TechnoLib/com/technototes/library/util/Characters.html index 7df85fe6..ffd662f6 100644 --- a/docs/TechnoLib/com/technototes/library/util/Characters.html +++ b/docs/TechnoLib/com/technototes/library/util/Characters.html @@ -1,232 +1,548 @@ - + - - -Characters (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Characters

      -
      -
      java.lang.Object -
      com.technototes.library.util.Characters
      -
      -
      -
      -
      public class Characters -extends Object
      -
      -
      - -
      -
      - -
      - -
      -
      -
      - + + + Characters (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Characters

      +
      +
      + java.lang.Object +
      com.technototes.library.util.Characters
      +
      +
      +
      +
      + public class Characters + extends + Object +
      +
      +
      + +
      +
      + +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Color.html b/docs/TechnoLib/com/technototes/library/util/Color.html index fde65bc0..3f2080e3 100644 --- a/docs/TechnoLib/com/technototes/library/util/Color.html +++ b/docs/TechnoLib/com/technototes/library/util/Color.html @@ -1,377 +1,1146 @@ - + - - -Color (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class Color

      -
      -
      java.lang.Object -
      java.lang.Enum<Color> -
      com.technototes.library.util.Color
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<Color>, Constable
      -
      -
      -
      public enum Color -extends Enum<Color>
      -
      Enum for Colors and some formatting
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          -
          public static Color[] values()
          -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          -
          public static Color valueOf(String name)
          -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        • -
          -

          getHexValue

          -
          public String getHexValue()
          -
          Get the hex value
          -
          -
          Returns:
          -
          The hex for the color
          -
          -
          -
        • -
        • -
          -

          format

          -
          public String format(Object object)
          -
          Format the supplied object with the HTML to become this color
          -
          -
          Parameters:
          -
          object - The object
          -
          Returns:
          -
          The formatted String
          -
          -
          -
        • -
        • -
          -

          format

          -
          public String format(String format, - Object... objects)
          -
          Format the supplied object with the HTML and a format String to become this color
          -
          -
          Parameters:
          -
          objects - The objects
          -
          format - The format for the supplied String
          -
          Returns:
          -
          The formatted String
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Color (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Enum Class Color

      +
      +
      + java.lang.Object +
      + java.lang.Enum<Color> +
      com.technototes.library.util.Color
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<Color>, + Constable +
      +
      +
      +
      + public enum Color + extends + Enum<Color> +
      +
      Enum for Colors and some formatting
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        +
          +
        • +
          +

          RED

          +
          + public static final Color RED +
          +
          +
        • +
        • +
          +

          ORANGE

          +
          + public static final Color ORANGE +
          +
          +
        • +
        • +
          +

          YELLOW

          +
          + public static final Color YELLOW +
          +
          +
        • +
        • +
          +

          LIME

          +
          + public static final Color LIME +
          +
          +
        • +
        • +
          +

          GREEN

          +
          + public static final Color GREEN +
          +
          +
        • +
        • +
          +

          CYAN

          +
          + public static final Color CYAN +
          +
          +
        • +
        • +
          +

          BLUE

          +
          + public static final Color BLUE +
          +
          +
        • +
        • +
          +

          PURPLE

          +
          + public static final Color PURPLE +
          +
          +
        • +
        • +
          +

          MAGENTA

          +
          + public static final Color MAGENTA +
          +
          +
        • +
        • +
          +

          PINK

          +
          + public static final Color PINK +
          +
          +
        • +
        • +
          +

          BLACK

          +
          + public static final Color BLACK +
          +
          +
        • +
        • +
          +

          WHITE

          +
          + public static final Color WHITE +
          +
          +
        • +
        • +
          +

          LIGHT_GRAY

          +
          + public static final Color LIGHT_GRAY +
          +
          +
        • +
        • +
          +

          DARK_GRAY

          +
          + public static final Color DARK_GRAY +
          +
          +
        • +
        • +
          +

          NO_COLOR

          +
          + public static final Color NO_COLOR +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static Color[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static Color valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        • +
          +

          getHexValue

          +
          + public String getHexValue() +
          +
          Get the hex value
          +
          +
          Returns:
          +
          The hex for the color
          +
          +
          +
        • +
        • +
          +

          format

          +
          + public String format(Object object) +
          +
          + Format the supplied object with the HTML to become this color +
          +
          +
          Parameters:
          +
          object - The object
          +
          Returns:
          +
          The formatted String
          +
          +
          +
        • +
        • +
          +

          format

          +
          + public String format(String format, + Object... objects) +
          +
          + Format the supplied object with the HTML and a format String to become + this color +
          +
          +
          Parameters:
          +
          objects - The objects
          +
          format - The format for the supplied String
          +
          Returns:
          +
          The formatted String
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Differential.DifferentialPriority.html b/docs/TechnoLib/com/technototes/library/util/Differential.DifferentialPriority.html index 3715bd50..0be43021 100644 --- a/docs/TechnoLib/com/technototes/library/util/Differential.DifferentialPriority.html +++ b/docs/TechnoLib/com/technototes/library/util/Differential.DifferentialPriority.html @@ -1,285 +1,826 @@ - + - - -Differential.DifferentialPriority (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Enum Class Differential.DifferentialPriority

      -
      -
      java.lang.Object -
      java.lang.Enum<Differential.DifferentialPriority> -
      com.technototes.library.util.Differential.DifferentialPriority
      -
      -
      -
      -
      -
      All Implemented Interfaces:
      -
      Serializable, Comparable<Differential.DifferentialPriority>, Constable
      -
      -
      -
      Enclosing class:
      -
      Differential
      -
      -
      - -
      Enum for the priority of the differential. This means that it will prioritize one of the - outputs over the other if the value for one of the outputs exceeds the limits.
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Enum Constant Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          values

          - -
          Returns an array containing the constants of this enum class, in -the order they are declared.
          -
          -
          Returns:
          -
          an array containing the constants of this enum class, in the order they are declared
          -
          -
          -
        • -
        • -
          -

          valueOf

          - -
          Returns the enum constant of this class with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this class. (Extraneous whitespace characters are -not permitted.)
          -
          -
          Parameters:
          -
          name - the name of the enum constant to be returned.
          -
          Returns:
          -
          the enum constant with the specified name
          -
          Throws:
          -
          IllegalArgumentException - if this enum class has no constant with the specified name
          -
          NullPointerException - if the argument is null
          -
          -
          -
        • -
        • -
          -

          calculateA

          -
          public double calculateA(double avg, - double dif, - double min, - double max)
          -
          Calculates the value for the differential output generated by averaging
          -
          -
          Parameters:
          -
          avg - the average output for the diff
          -
          dif - the deviation output for the diff
          -
          min - the minimum value for the inputs
          -
          max - the maximum value for the inputs
          -
          Returns:
          -
          the value to set the input to
          -
          -
          -
        • -
        • -
          -

          calculateS

          -
          public double calculateS(double avg, - double dif, - double min, - double max)
          -
          Calculates the value for the differential output generated by subtracting
          -
          -
          Parameters:
          -
          avg - the average output for the diff
          -
          dif - the deviation output for the diff
          -
          min - the minimum value for the inputs
          -
          max - the maximum value for the inputs
          -
          Returns:
          -
          the value to set the input to
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Differential.DifferentialPriority (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      + Enum Class Differential.DifferentialPriority +

      +
      +
      + java.lang.Object +
      + java.lang.Enum<Differential.DifferentialPriority> +
      + com.technototes.library.util.Differential.DifferentialPriority +
      +
      +
      +
      +
      +
      All Implemented Interfaces:
      +
      + Serializable, + Comparable<Differential.DifferentialPriority>, + Constable +
      +
      +
      +
      Enclosing class:
      +
      + Differential +
      +
      +
      + +
      + Enum for the priority of the differential. This means that it will prioritize one of + the outputs over the other if the value for one of the outputs exceeds the limits. +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Enum Constant Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          values

          +
          + public static Differential.DifferentialPriority[] values() +
          +
          + Returns an array containing the constants of this enum class, in the order + they are declared. +
          +
          +
          Returns:
          +
          + an array containing the constants of this enum class, in the order they + are declared +
          +
          +
          +
        • +
        • +
          +

          valueOf

          +
          + public static Differential.DifferentialPriority valueOf(String name) +
          +
          + Returns the enum constant of this class with the specified name. The + string must match exactly an identifier used to declare an enum + constant in this class. (Extraneous whitespace characters are not + permitted.) +
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          + IllegalArgumentException + - if this enum class has no constant with the specified name +
          +
          + NullPointerException + - if the argument is null +
          +
          +
          +
        • +
        • +
          +

          calculateA

          +
          + public double calculateA(double avg, double dif, double min, + double max) +
          +
          + Calculates the value for the differential output generated by averaging +
          +
          +
          Parameters:
          +
          avg - the average output for the diff
          +
          dif - the deviation output for the diff
          +
          min - the minimum value for the inputs
          +
          max - the maximum value for the inputs
          +
          Returns:
          +
          the value to set the input to
          +
          +
          +
        • +
        • +
          +

          calculateS

          +
          + public double calculateS(double avg, double dif, double min, + double max) +
          +
          + Calculates the value for the differential output generated by subtracting +
          +
          +
          Parameters:
          +
          avg - the average output for the diff
          +
          dif - the deviation output for the diff
          +
          min - the minimum value for the inputs
          +
          max - the maximum value for the inputs
          +
          Returns:
          +
          the value to set the input to
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Differential.html b/docs/TechnoLib/com/technototes/library/util/Differential.html index c95c2f86..84c60c75 100644 --- a/docs/TechnoLib/com/technototes/library/util/Differential.html +++ b/docs/TechnoLib/com/technototes/library/util/Differential.html @@ -1,349 +1,918 @@ - + - - -Differential (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Differential

      -
      -
      java.lang.Object -
      com.technototes.library.util.Differential
      -
      -
      -
      -
      public class Differential -extends Object
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          setAverageOutput

          -
          public Differential setAverageOutput(double value)
          -
          Set the average of the differential. - This corresponds to whatever setting the two inputs - to the same direction will do
          -
          -
          Parameters:
          -
          value - the value to set
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          setDeviationOutput

          -
          public Differential setDeviationOutput(double value)
          -
          Set the deviation of the differential. - This corresponds to whatever setting the two nputs - to the opposite direction will do
          -
          -
          Parameters:
          -
          value - the value to set
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          setOutputs

          -
          public Differential setOutputs(double aValue, - double dValue)
          -
          Set both outputs for the differential
          -
          -
          Parameters:
          -
          aValue - the average output
          -
          dValue - the deviation output
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          getAverage

          -
          public double getAverage()
          -
          Gets the current average of the two differential inputs, - equating to one of the outputs
          -
          -
          Returns:
          -
          the current average
          -
          -
          -
        • -
        • -
          -

          getDeviation

          -
          public double getDeviation()
          -
          Gets the current deviation between the two differential inputs and the average, - equating to one of the outputs
          -
          -
          Returns:
          -
          the current average
          -
          -
          -
        • -
        • -
          -

          getDifferentialPriority

          - -
          Gets the priority for the difference output.
          -
          -
          Returns:
          -
          The current Differential.DifferentialPriority
          -
          -
          -
        • -
        • -
          -

          setPriority

          - -
          Sets the priority for the differential.
          -
          -
          Parameters:
          -
          priority - the new Differential.DifferentialPriority
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          setLimits

          -
          public Differential setLimits(double min, - double max)
          -
          Set the limits for the differential
          -
          -
          Parameters:
          -
          min - the new minimum for the input
          -
          max - the new maximum for the input
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Differential (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Differential

      +
      +
      + java.lang.Object +
      com.technototes.library.util.Differential
      +
      +
      +
      +
      + public class Differential + extends + Object +
      +
      +
      + +
      +
      +
        + +
      • +
        +

        Constructor Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          setAverageOutput

          +
          + public Differential setAverageOutput(double value) +
          +
          + Set the average of the differential. This corresponds to whatever setting + the two inputs to the same direction will do +
          +
          +
          Parameters:
          +
          value - the value to set
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          setDeviationOutput

          +
          + public Differential setDeviationOutput(double value) +
          +
          + Set the deviation of the differential. This corresponds to whatever + setting the two nputs to the opposite direction will do +
          +
          +
          Parameters:
          +
          value - the value to set
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          setOutputs

          +
          + public Differential setOutputs(double aValue, double dValue) +
          +
          Set both outputs for the differential
          +
          +
          Parameters:
          +
          aValue - the average output
          +
          dValue - the deviation output
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          getAverage

          +
          + public double getAverage() +
          +
          + Gets the current average of the two differential inputs, equating to one + of the outputs +
          +
          +
          Returns:
          +
          the current average
          +
          +
          +
        • +
        • +
          +

          getDeviation

          +
          + public double getDeviation() +
          +
          + Gets the current deviation between the two differential inputs and the + average, equating to one of the outputs +
          +
          +
          Returns:
          +
          the current average
          +
          +
          +
        • +
        • +
          +

          getDifferentialPriority

          + +
          Gets the priority for the difference output.
          +
          +
          Returns:
          +
          + The current + Differential.DifferentialPriority +
          +
          +
          +
        • +
        • +
          +

          setPriority

          + +
          Sets the priority for the differential.
          +
          +
          Parameters:
          +
          + priority - the new + Differential.DifferentialPriority +
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          setLimits

          +
          + public Differential setLimits(double min, double max) +
          +
          Set the limits for the differential
          +
          +
          Parameters:
          +
          min - the new minimum for the input
          +
          max - the new maximum for the input
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Integral.html b/docs/TechnoLib/com/technototes/library/util/Integral.html index 5f2e8d93..c655637f 100644 --- a/docs/TechnoLib/com/technototes/library/util/Integral.html +++ b/docs/TechnoLib/com/technototes/library/util/Integral.html @@ -1,236 +1,542 @@ - + - - -Integral (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Integral

      -
      -
      java.lang.Object -
      com.technototes.library.util.Integral
      -
      -
      -
      -
      public class Integral -extends Object
      -
      A simple Observation-based integral calculator over time
      -
      -
      -
        - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        - -
        -
        Initialize it with a value of 0
        -
        -
        Integral(double c)
        -
        -
        Initialize it with the value c
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        double
        - -
        -
        Get the current accumulation
        -
        - -
        set(double c)
        -
        -
        Set the value to C
        -
        -
        double
        -
        update(double change)
        -
        -
        Update the accumulated value for the number of seconds since last update
        -
        - - -
        -
        Set the value to zero
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

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

        Constructor Details

        -
          -
        • -
          -

          Integral

          -
          public Integral(double c)
          -
          Initialize it with the value c
          -
          -
          Parameters:
          -
          c - Initial value
          -
          -
          -
        • -
        • -
          -

          Integral

          -
          public Integral()
          -
          Initialize it with a value of 0
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          set

          -
          public Integral set(double c)
          -
          Set the value to C
          -
          -
          Parameters:
          -
          c - the value
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          zero

          -
          public Integral zero()
          -
          Set the value to zero
          -
          -
          Returns:
          -
          this
          -
          -
          -
        • -
        • -
          -

          update

          -
          public double update(double change)
          -
          Update the accumulated value for the number of seconds since last update
          -
          -
          Parameters:
          -
          change - the value that was observed since last integration
          -
          Returns:
          -
          the current accumulations
          -
          -
          -
        • -
        • -
          -

          getValue

          -
          public double getValue()
          -
          Get the current accumulation
          -
          -
          Returns:
          -
          the current accumulation
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Integral (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Integral

      +
      +
      + java.lang.Object +
      com.technototes.library.util.Integral
      +
      +
      +
      +
      + public class Integral + extends + Object +
      +
      A simple Observation-based integral calculator over time
      +
      +
      +
        + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + Integral() +
        +
        +
        Initialize it with a value of 0
        +
        +
        + Integral(double c) +
        +
        +
        Initialize it with the value c
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + double +
        +
        + getValue() +
        +
        +
        Get the current accumulation
        +
        +
        + Integral +
        +
        + set(double c) +
        +
        +
        Set the value to C
        +
        +
        + double +
        +
        + update(double change) +
        +
        +
        + Update the accumulated value for the number of seconds since last update +
        +
        +
        + Integral +
        +
        + zero() +
        +
        +
        Set the value to zero
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Constructor Details

        +
          +
        • +
          +

          Integral

          +
          + public Integral(double c) +
          +
          Initialize it with the value c
          +
          +
          Parameters:
          +
          c - Initial value
          +
          +
          +
        • +
        • +
          +

          Integral

          +
          + public Integral() +
          +
          Initialize it with a value of 0
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          set

          +
          + public Integral set(double c) +
          +
          Set the value to C
          +
          +
          Parameters:
          +
          c - the value
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          zero

          +
          + public Integral zero() +
          +
          Set the value to zero
          +
          +
          Returns:
          +
          this
          +
          +
          +
        • +
        • +
          +

          update

          +
          + public double update(double change) +
          +
          + Update the accumulated value for the number of seconds since last update +
          +
          +
          Parameters:
          +
          + change - the value that was observed since last integration +
          +
          Returns:
          +
          the current accumulations
          +
          +
          +
        • +
        • +
          +

          getValue

          +
          + public double getValue() +
          +
          Get the current accumulation
          +
          +
          Returns:
          +
          the current accumulation
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/MapUtils.html b/docs/TechnoLib/com/technototes/library/util/MapUtils.html index 42449460..af03cf7c 100644 --- a/docs/TechnoLib/com/technototes/library/util/MapUtils.html +++ b/docs/TechnoLib/com/technototes/library/util/MapUtils.html @@ -1,161 +1,400 @@ - + - - -MapUtils (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class MapUtils

      -
      -
      java.lang.Object -
      com.technototes.library.util.MapUtils
      -
      -
      -
      -
      public class MapUtils -extends Object
      -
      -
      - -
      -
      -
        - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          MapUtils

          -
          public MapUtils()
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          of

          -
          @SafeVarargs -public static <T, -U> Map<T,U> of(android.util.Pair<T,U>... entries)
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + MapUtils (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class MapUtils

      +
      +
      + java.lang.Object +
      com.technototes.library.util.MapUtils
      +
      +
      +
      +
      + public class MapUtils + extends + Object +
      +
      +
      +
        + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + MapUtils() +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static <T, U> Map<T,U> +
        +
        + of(android.util.Pair<T,U>... entries) +
        +
        +   +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Constructor Details

        +
          +
        • +
          +

          MapUtils

          +
          + public MapUtils() +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          of

          +
          + @SafeVarargs public static <T, U> Map<T,U> of(android.util.Pair<T,U>... entries) +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/MathUtils.html b/docs/TechnoLib/com/technototes/library/util/MathUtils.html index 64596554..11ceb4f8 100644 --- a/docs/TechnoLib/com/technototes/library/util/MathUtils.html +++ b/docs/TechnoLib/com/technototes/library/util/MathUtils.html @@ -1,355 +1,806 @@ - + - - -MathUtils (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class MathUtils

      -
      -
      java.lang.Object -
      com.technototes.library.util.MathUtils
      -
      -
      -
      -
      public class MathUtils -extends Object
      -
      Class with various math functions
      -
      -
      -
        - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        - -
         
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        static double
        -
        closestTo(double d, - double... values)
        -
        -
        Returns the value from a list which is closed to the first value.
        -
        -
        static int
        -
        closestTo(double d, - int... values)
        -
        -
        Returns the value from a list which is closed to the first value.
        -
        -
        static double
        -
        constrain(double min, - double num, - double max)
        -
        -
        Deprecated. 
        -
        -
        static int
        -
        constrain(int min, - int num, - int max)
        -
        -
        Deprecated. 
        -
        -
        static double
        -
        getMax(double... args)
        -
        -
        Get the max of supplied doubles
        -
        -
        static int
        -
        getMax(int... args)
        -
        -
        Get the max of supplied ints
        -
        -
        static boolean
        -
        isPrime(int number)
        -
        -
        Calculate if the supplied number is prime
        -
        -
        static double
        -
        map(double x, - double in_min, - double in_max, - double out_min, - double out_max)
        -
        -
        Scale a value originally between in_min and in_max to be the same ratio when mapped to - out_min and out_max.
        -
        -
        static double
        -
        pythag(double... vals)
        -
        -
        Calculate pythagorean theorem of any number of sides
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

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

        Constructor Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getMax

          -
          public static double getMax(double... args)
          -
          Get the max of supplied doubles
          -
          -
          Parameters:
          -
          args - The doubles
          -
          Returns:
          -
          The max
          -
          -
          -
        • -
        • -
          -

          getMax

          -
          public static int getMax(int... args)
          -
          Get the max of supplied ints
          -
          -
          Parameters:
          -
          args - The ints
          -
          Returns:
          -
          The max
          -
          -
          -
        • -
        • -
          -

          pythag

          -
          public static double pythag(double... vals)
          -
          Calculate pythagorean theorem of any number of sides
          -
          -
          Parameters:
          -
          vals - The sides
          -
          Returns:
          -
          The hypotenuse
          -
          -
          -
        • -
        • -
          -

          constrain

          -
          public static int constrain(int min, - int num, - int max)
          -
          Deprecated.
          -
          Constrain the supplied int - Please use com.qualcomm.robotcore.util.Range.clip
          -
          -
          Parameters:
          -
          min - The minimum of the constraint
          -
          num - The number to constrain
          -
          max - The maximum of the constraint
          -
          Returns:
          -
          The constrained number
          -
          -
          -
        • -
        • -
          -

          constrain

          -
          public static double constrain(double min, - double num, - double max)
          -
          Deprecated.
          -
          Constrain the supplied double - Please use com.qualcomm.robotcore.util.Range.clip
          -
          -
          Parameters:
          -
          min - The minimum of the constraint
          -
          num - The number to constrain
          -
          max - The maximum of the constraint
          -
          Returns:
          -
          The constrained number
          -
          -
          -
        • -
        • -
          -

          isPrime

          -
          public static boolean isPrime(int number)
          -
          Calculate if the supplied number is prime
          -
          -
          Parameters:
          -
          number - The number to check
          -
          Returns:
          -
          If number is prime
          -
          -
          -
        • -
        • -
          -

          map

          -
          public static double map(double x, - double in_min, - double in_max, - double out_min, - double out_max)
          -
          Scale a value originally between in_min and in_max to be the same ratio when mapped to - out_min and out_max. For example: - * map(0.1, -0.2, 0.2, -1.0, 1.0) will return 0.5 - * map(.5, 0, 1, -1, 1) will return 0
          -
          -
          Parameters:
          -
          x -
          -
          in_min -
          -
          in_max -
          -
          out_min -
          -
          out_max -
          -
          Returns:
          -
          -
          -
        • -
        • -
          -

          closestTo

          -
          public static double closestTo(double d, - double... values)
          -
          Returns the value from a list which is closed to the first value. - This is useful for trying to identify an angle you'd like a drivebase to 'snap to'. - If you can accomplish this through a simple mathematical expression, do that instead. - It will probably be faster.
          -
          -
          Parameters:
          -
          d - The current value
          -
          values - The list of 'snapped' values we want to
          -
          Returns:
          -
          the element from 'values' that is closest to 'd'
          -
          -
          -
        • -
        • -
          -

          closestTo

          -
          public static int closestTo(double d, - int... values)
          -
          Returns the value from a list which is closed to the first value. - This is useful for trying to identify an angle you'd like a drivebase to 'snap to'. - If you can accomplish this through a simple mathematical expression, do that instead. - It will probably be faster.
          -
          -
          Parameters:
          -
          d - The current value
          -
          values - The list of 'snapped' values we want to
          -
          Returns:
          -
          the element from 'values' that is closest to 'd'
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + MathUtils (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class MathUtils

      +
      +
      + java.lang.Object +
      com.technototes.library.util.MathUtils
      +
      +
      +
      +
      + public class MathUtils + extends + Object +
      +
      Class with various math functions
      +
      +
      +
        + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + MathUtils() +
        +
         
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + static double +
        +
        + closestTo(double d, double... values) +
        +
        +
        + Returns the value from a list which is closed to the first value. +
        +
        +
        + static int +
        +
        + closestTo(double d, int... values) +
        +
        +
        + Returns the value from a list which is closed to the first value. +
        +
        +
        + static double +
        +
        + constrain(double min, double num, double max) +
        +
        +
        + Deprecated.  +
        +
        +
        + static int +
        +
        + constrain(int min, int num, int max) +
        +
        +
        + Deprecated.  +
        +
        +
        + static double +
        +
        + getMax(double... args) +
        +
        +
        Get the max of supplied doubles
        +
        +
        + static int +
        +
        + getMax(int... args) +
        +
        +
        Get the max of supplied ints
        +
        +
        + static boolean +
        +
        + isPrime(int number) +
        +
        +
        Calculate if the supplied number is prime
        +
        +
        + static double +
        +
        + map(double x, double in_min, double in_max, + double out_min, double out_max) +
        +
        +
        + Scale a value originally between in_min and in_max to be the same ratio + when mapped to out_min and out_max. +
        +
        +
        + static double +
        +
        + pythag(double... vals) +
        +
        +
        + Calculate pythagorean theorem of any number of sides +
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Constructor Details

        +
          +
        • +
          +

          MathUtils

          +
          + public MathUtils() +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          getMax

          +
          + public static double getMax(double... args) +
          +
          Get the max of supplied doubles
          +
          +
          Parameters:
          +
          args - The doubles
          +
          Returns:
          +
          The max
          +
          +
          +
        • +
        • +
          +

          getMax

          +
          + public static int getMax(int... args) +
          +
          Get the max of supplied ints
          +
          +
          Parameters:
          +
          args - The ints
          +
          Returns:
          +
          The max
          +
          +
          +
        • +
        • +
          +

          pythag

          +
          + public static double pythag(double... vals) +
          +
          + Calculate pythagorean theorem of any number of sides +
          +
          +
          Parameters:
          +
          vals - The sides
          +
          Returns:
          +
          The hypotenuse
          +
          +
          +
        • +
        • +
          +

          constrain

          +
          + @Deprecated public static int constrain(int min, int num, int max) +
          +
          + Deprecated. +
          +
          + Constrain the supplied int Please use + com.qualcomm.robotcore.util.Range.clip +
          +
          +
          Parameters:
          +
          min - The minimum of the constraint
          +
          num - The number to constrain
          +
          max - The maximum of the constraint
          +
          Returns:
          +
          The constrained number
          +
          +
          +
        • +
        • +
          +

          constrain

          +
          + @Deprecated public static double constrain(double min, double num, double max) +
          +
          + Deprecated. +
          +
          + Constrain the supplied double Please use + com.qualcomm.robotcore.util.Range.clip +
          +
          +
          Parameters:
          +
          min - The minimum of the constraint
          +
          num - The number to constrain
          +
          max - The maximum of the constraint
          +
          Returns:
          +
          The constrained number
          +
          +
          +
        • +
        • +
          +

          isPrime

          +
          + public static boolean isPrime(int number) +
          +
          Calculate if the supplied number is prime
          +
          +
          Parameters:
          +
          number - The number to check
          +
          Returns:
          +
          If number is prime
          +
          +
          +
        • +
        • +
          +

          map

          +
          + public static double map(double x, double in_min, double in_max, + double out_min, double out_max) +
          +
          + Scale a value originally between in_min and in_max to be the same ratio + when mapped to out_min and out_max. For example: * map(0.1, -0.2, 0.2, + -1.0, 1.0) will return 0.5 * map(.5, 0, 1, -1, 1) will return 0 +
          +
          +
          Parameters:
          +
          x -
          +
          in_min -
          +
          in_max -
          +
          out_min -
          +
          out_max -
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          closestTo

          +
          + public static double closestTo(double d, double... values) +
          +
          + Returns the value from a list which is closed to the first value. This is + useful for trying to identify an angle you'd like a drivebase to 'snap + to'. If you can accomplish this through a simple mathematical expression, + do that instead. It will probably be faster. +
          +
          +
          Parameters:
          +
          d - The current value
          +
          values - The list of 'snapped' values we want to
          +
          Returns:
          +
          the element from 'values' that is closest to 'd'
          +
          +
          +
        • +
        • +
          +

          closestTo

          +
          + public static int closestTo(double d, int... values) +
          +
          + Returns the value from a list which is closed to the first value. This is + useful for trying to identify an angle you'd like a drivebase to 'snap + to'. If you can accomplish this through a simple mathematical expression, + do that instead. It will probably be faster. +
          +
          +
          Parameters:
          +
          d - The current value
          +
          values - The list of 'snapped' values we want to
          +
          Returns:
          +
          the element from 'values' that is closest to 'd'
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/Range.html b/docs/TechnoLib/com/technototes/library/util/Range.html index c3a278dc..70af2ba1 100644 --- a/docs/TechnoLib/com/technototes/library/util/Range.html +++ b/docs/TechnoLib/com/technototes/library/util/Range.html @@ -1,254 +1,580 @@ - + - - -Range (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Class Range

      -
      -
      java.lang.Object -
      com.technototes.library.util.Range
      -
      -
      -
      -
      public class Range -extends Object
      -
      Helper class for tracking a range
      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        -
        double
        - -
        -
        The maximum value of the range
        -
        -
        double
        - -
        -
        The minimum value of the range
        -
        -
        -
        -
      • - -
      • -
        -

        Constructor Summary

        -
        Constructors
        -
        -
        Constructor
        -
        Description
        -
        Range(double mi, - double ma)
        -
        -
        Create a range with the given minimum and maximum
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        boolean
        -
        inRange(double val)
        -
        -
        Check if the value is in the range
        -
        -
        double
        - -
        -
        Get the 'middle' of the range
        -
        -
        void
        -
        scale(double scalar)
        -
        -
        Scale the range by a given value
        -
        -
        -
        -
        -
        -

        Methods inherited from class java.lang.Object

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

        Field Details

        -
          -
        • -
          -

          min

          -
          public double min
          -
          The minimum value of the range
          -
          -
        • -
        • -
          -

          max

          -
          public double max
          -
          The maximum value of the range
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Range

          -
          public Range(double mi, - double ma)
          -
          Create a range with the given minimum and maximum
          -
          -
          Parameters:
          -
          mi - Min value
          -
          ma - Max value
          -
          -
          -
        • -
        -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          inRange

          -
          public boolean inRange(double val)
          -
          Check if the value is in the range
          -
          -
          Parameters:
          -
          val - The value to check
          -
          Returns:
          -
          True if in (inclusive) range, false otherwise
          -
          -
          -
        • -
        • -
          -

          scale

          -
          public void scale(double scalar)
          -
          Scale the range by a given value
          -
          -
          Parameters:
          -
          scalar - The amount to scale the range by
          -
          -
          -
        • -
        • -
          -

          middle

          -
          public double middle()
          -
          Get the 'middle' of the range
          -
          -
          Returns:
          -
          the average of min & max
          -
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + Range (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Class Range

      +
      +
      + java.lang.Object +
      com.technototes.library.util.Range
      +
      +
      +
      +
      + @Deprecated public class Range + extends + Object +
      +
      Deprecated.
      +
      + Helper class for tracking a range Adds minimal value over + com.qualcomm.robotcore.util.Range, which is the reason for deprecation +
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        double
        +
        + max +
        +
        +
        Deprecated.
        +
        The maximum value of the range
        +
        +
        double
        +
        + min +
        +
        +
        Deprecated.
        +
        The minimum value of the range
        +
        +
        +
        +
      • + +
      • +
        +

        Constructor Summary

        +
        Constructors
        +
        +
        Constructor
        +
        Description
        +
        + Range(double mi, double ma) +
        +
        +
        Deprecated.
        +
        Create a range with the given minimum and maximum
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + boolean +
        +
        + inRange(double val) +
        +
        +
        Deprecated.
        +
        Check if the value is in the range
        +
        +
        + double +
        +
        + middle() +
        +
        +
        Deprecated.
        +
        Get the 'middle' of the range
        +
        +
        + void +
        +
        + scale(double scalar) +
        +
        +
        Deprecated.
        +
        Scale the range by a given value
        +
        +
        +
        +
        +
        +

        + Methods inherited from class java.lang.Object +

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

        Field Details

        +
          +
        • +
          +

          min

          +
          + public double min +
          +
          + Deprecated. +
          +
          The minimum value of the range
          +
          +
        • +
        • +
          +

          max

          +
          + public double max +
          +
          + Deprecated. +
          +
          The maximum value of the range
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          Range

          +
          + public Range(double mi, double ma) +
          +
          + Deprecated. +
          +
          Create a range with the given minimum and maximum
          +
          +
          Parameters:
          +
          mi - Min value
          +
          ma - Max value
          +
          +
          +
        • +
        +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          inRange

          +
          + public boolean inRange(double val) +
          +
          + Deprecated. +
          +
          Check if the value is in the range
          +
          +
          Parameters:
          +
          val - The value to check
          +
          Returns:
          +
          True if in (inclusive) range, false otherwise
          +
          +
          +
        • +
        • +
          +

          scale

          +
          + public void scale(double scalar) +
          +
          + Deprecated. +
          +
          Scale the range by a given value
          +
          +
          Parameters:
          +
          scalar - The amount to scale the range by
          +
          +
          +
        • +
        • +
          +

          middle

          +
          + public double middle() +
          +
          + Deprecated. +
          +
          Get the 'middle' of the range
          +
          +
          Returns:
          +
          the average of min & max
          +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/SmartConsumer.html b/docs/TechnoLib/com/technototes/library/util/SmartConsumer.html index 011f429f..3262eb16 100644 --- a/docs/TechnoLib/com/technototes/library/util/SmartConsumer.html +++ b/docs/TechnoLib/com/technototes/library/util/SmartConsumer.html @@ -1,208 +1,514 @@ - + - - -SmartConsumer (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      - -
      - -

      Interface SmartConsumer<T>

      -
      -
      -
      -
      Type Parameters:
      -
      T - The type of the value to be accepted/consumed
      -
      -
      -
      Functional Interface:
      -
      This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
      -
      -
      -
      @FunctionalInterface -public interface SmartConsumer<T>
      -
      This is a functional interface, when 'accept' is invoked, will only invoke the 'consume' method - when a different value is provided. It basically removed duplicates. -

      - TODO: This seems like the HashMap is completely unnecessary. Maybe I'm not following the java - TODO: object model, but I don't see how map ever has more than a single value in it...

      -
      -
      -
        - -
      • -
        -

        Field Summary

        -
        Fields
        -
        -
        Modifier and Type
        -
        Field
        -
        Description
        -
        static final Map<SmartConsumer<?>,Object>
        - -
        -
        The map of values that have been consumed.
        -
        -
        -
        -
      • - -
      • -
        -

        Method Summary

        -
        -
        -
        -
        -
        Modifier and Type
        -
        Method
        -
        Description
        -
        default SmartConsumer<T>
        -
        accept(T t)
        -
        -
        The public interface for a SmartConsumer: accept should be invoked, not consume :)
        -
        -
        void
        - -
        -
        The 'consume' function
        -
        -
        default T
        - -
         
        -
        static void
        - -
         
        -
        -
        -
        -
        -
      • -
      -
      -
      -
        - -
      • -
        -

        Field Details

        - -
        -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          consume

          -
          void consume(T t)
          -
          The 'consume' function
          -
          -
        • -
        • -
          -

          accept

          -
          default SmartConsumer<T> accept(T t)
          -
          The public interface for a SmartConsumer: accept should be invoked, not consume :)
          -
          -
          Parameters:
          -
          t - The value being consumed/accepted
          -
          Returns:
          -
          -
          -
        • -
        • -
          -

          getLast

          -
          default T getLast()
          -
          -
        • -
        • -
          -

          reset

          -
          static void reset()
          -
          -
        • -
        -
        -
      • -
      -
      - -
      -
      -
      - + + + SmartConsumer (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      + +
      + +

      Interface SmartConsumer<T>

      +
      +
      +
      +
      Type Parameters:
      +
      T - The type of the value to be accepted/consumed
      +
      +
      +
      Functional Interface:
      +
      + This is a functional interface and can therefore be used as the assignment target + for a lambda expression or method reference. +
      +
      +
      +
      + @FunctionalInterface public interface SmartConsumer<T> +
      +
      + This is a functional interface, when 'accept' is invoked, will only invoke the + 'consume' method when a different value is provided. It basically removed duplicates. +

      + TODO: This seems like the HashMap is completely unnecessary. Maybe I'm not following + the java TODO: object model, but I don't see how map ever has more than a single + value in it... +

      +
      +
      +
      +
        + +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        + static final + Map<SmartConsumer<?>,Object> +
        +
        + map +
        +
        +
        The map of values that have been consumed.
        +
        +
        +
        +
      • + +
      • +
        +

        Method Summary

        +
        +
        + +
        +
        +
        +
        Modifier and Type
        +
        Method
        +
        Description
        +
        + default + SmartConsumer<T> +
        +
        + accept(T t) +
        +
        +
        + The public interface for a SmartConsumer: accept should be invoked, not + consume :) +
        +
        +
        + void +
        +
        + consume(T t) +
        +
        +
        The 'consume' function
        +
        +
        + default + T +
        +
        + getLast() +
        +
        +   +
        +
        + static void +
        +
        + reset() +
        +
        +   +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
        + +
      • +
        +

        Field Details

        + +
        +
      • + +
      • +
        +

        Method Details

        +
          +
        • +
          +

          consume

          +
          + void consume(T t) +
          +
          The 'consume' function
          +
          +
        • +
        • +
          +

          accept

          +
          + default SmartConsumer<T> accept(T t) +
          +
          + The public interface for a SmartConsumer: accept should be invoked, not + consume :) +
          +
          +
          Parameters:
          +
          t - The value being consumed/accepted
          +
          Returns:
          +
          +
          +
        • +
        • +
          +

          getLast

          +
          + default T getLast() +
          +
          +
        • +
        • +
          +

          reset

          +
          + static void reset() +
          +
          +
        • +
        +
        +
      • +
      +
      + +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/package-summary.html b/docs/TechnoLib/com/technototes/library/util/package-summary.html index 4ee291b3..2ea6e4e8 100644 --- a/docs/TechnoLib/com/technototes/library/util/package-summary.html +++ b/docs/TechnoLib/com/technototes/library/util/package-summary.html @@ -1,145 +1,321 @@ - + - - -com.technototes.library.util (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Package com.technototes.library.util

      -
      -
      -
      package com.technototes.library.util
      -
      -
        -
      • - -
      • -
      • -
        -
        -
        -
        -
        Class
        -
        Description
        - -
        -
        An enumeration to specify which alliance the bot is on (Red, Blue, or None)
        -
        - -
        -
        Not sure what this is for.
        -
        - -
        -
        Not sure what this is for.
        -
        - -
        -
        This feels over-engineered, but it's probably for some obnoxious Java thing, - unfortunate.
        -
        - -
         
        - -
        -
        Enum for Colors and some formatting
        -
        - -
         
        - -
        -
        Enum for the priority of the differential.
        -
        - -
        -
        A simple Observation-based integral calculator over time
        -
        - -
         
        - -
        -
        Class with various math functions
        -
        - -
        -
        Helper class for tracking a range
        -
        - -
        -
        This is a functional interface, when 'accept' is invoked, will only invoke the 'consume' method - when a different value is provided.
        -
        -
        -
        -
        -
      • -
      -
      -
      -
      -
      - + + + com.technototes.library.util (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      + Package com.technototes.library.util +

      +
      +
      +
      + package com.technototes.library.util +
      +
      +
        +
      • + +
      • +
      • +
        +
        + +
        +
        +
        +
        Class
        +
        Description
        +
        + Alliance +
        +
        +
        + An enumeration to specify which alliance the bot is on (Red, Blue, or + None) +
        +
        + +
        +
        Not sure what this is for.
        +
        + +
        +
        Not sure what this is for.
        +
        + +
        +
        + This feels over-engineered, but it's probably for some obnoxious Java + thing, unfortunate. +
        +
        + +
        +   +
        +
        + Color +
        +
        +
        Enum for Colors and some formatting
        +
        + +
        +   +
        + +
        +
        Enum for the priority of the differential.
        +
        +
        + Integral +
        +
        +
        + A simple Observation-based integral calculator over time +
        +
        +
        + MapUtils +
        +
        +   +
        +
        + MathUtils +
        +
        +
        Class with various math functions
        +
        +
        + Range +
        +
        + Deprecated. +
        +
        + SmartConsumer<T> +
        +
        +
        + This is a functional interface, when 'accept' is invoked, will only invoke + the 'consume' method when a different value is provided. +
        +
        +
        +
        +
        +
      • +
      +
      +
      +
      +
      + diff --git a/docs/TechnoLib/com/technototes/library/util/package-tree.html b/docs/TechnoLib/com/technototes/library/util/package-tree.html index 14f993ad..497d647a 100644 --- a/docs/TechnoLib/com/technototes/library/util/package-tree.html +++ b/docs/TechnoLib/com/technototes/library/util/package-tree.html @@ -1,106 +1,267 @@ - + - - -com.technototes.library.util Class Hierarchy (RobotLibrary API) - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      Hierarchy For Package com.technototes.library.util

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      -
      -

      Interface Hierarchy

      - -
      -
      -

      Annotation Interface Hierarchy

      - -
      -
      -

      Enum Class Hierarchy

      - -
      -
      -
      -
      - + + + com.technototes.library.util Class Hierarchy (RobotLibrary API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Hierarchy For Package com.technototes.library.util

      + Package Hierarchies: + +
      +
      +

      Class Hierarchy

      + +
      +
      +

      Interface Hierarchy

      + +
      +
      +

      Annotation Interface Hierarchy

      + +
      +
      +

      Enum Class Hierarchy

      + +
      +
      +
      +
      + diff --git a/docs/TechnoLib/constant-values.html b/docs/TechnoLib/constant-values.html index 5af54f17..7f70c488 100644 --- a/docs/TechnoLib/constant-values.html +++ b/docs/TechnoLib/constant-values.html @@ -1,7 +1,7 @@ - + Constant Field Values (RobotLibrary API) @@ -11,7 +11,7 @@ - + @@ -27,6 +27,15 @@

      public static final Stringcom.technototes.*
      public static final Stringcom.technototes.*
      public static final Stringcom.technototes.*
      public static final String + + + + + + + diff --git a/docs/TechnoLib/deprecated-list.html b/docs/TechnoLib/deprecated-list.html index fc5f118b..6301549b 100644 --- a/docs/TechnoLib/deprecated-list.html +++ b/docs/TechnoLib/deprecated-list.html @@ -1,7 +1,7 @@ - + Deprecated List (RobotLibrary API) @@ -11,7 +11,7 @@ - + @@ -27,6 +27,15 @@
    • Interfaces
    • Classes
    • Enum Classes
    • -
    • Exceptions
    • -
    • Errors
    • +
    • Exception Classes
    • Annotation Interfaces
    diff --git a/docs/TechnoLib/index-all.html b/docs/TechnoLib/index-all.html index 0771b53e..3a4ddecd 100644 --- a/docs/TechnoLib/index-all.html +++ b/docs/TechnoLib/index-all.html @@ -1,7 +1,7 @@ - + Index (RobotLibrary API) @@ -11,7 +11,7 @@ - + @@ -27,6 +27,15 @@
  • -
    - create(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    C
    This is a helper to create a new command from an existing command, but with - additional subsystem requirements + additional subsystem requirements.
    create(String)create(BiConsumer<T, U>, Supplier<T>, Supplier<U>, + Subsystem...) - - Static method in class com.technototes.library.hardware2.HardwareBuilderCommand
    -
    -
    Deprecated
    -
    +
     
    crServo(int)create(BiConsumer<T, U>, Supplier<T>, U, Subsystem...) - - Static method in class com.technototes.library.hardware2.HardwareBuilderCommand
    -
    -
    Deprecated
    -
    +
     
    crServo(String)create(BiConsumer<T, U>, T, Supplier<U>, Subsystem...) - - Static method in class com.technototes.library.hardware2.HardwareBuilderCommand
    -
    -
    Deprecated
    -
    +
     
    CRServoBuildercreate(BiConsumer<T, U>, T, U, Subsystem...) - - Class in - com.technototes.library.hardware2Command
    -
    -
    TODO: Remove this.
    -
    +
     
    CRServoBuilder(int)create(Consumer<T>, Supplier<T>, Subsystem...) - - Constructor for class com.technototes.library.hardware2.CRServoBuilderCommand
     
    CRServoBuilder(CRServo)create(Consumer<T>, T, Subsystem...) - - Constructor for class com.technototes.library.hardware2.CRServoBuilderCommand
     
    CRServo + - Class in + com.technototes.library.hardware.motor +
    +
    +
    This is for "continuous rotation" servos.
    +
    +
    + CRServoBuilder(String)CRServo(CRServo, String) - - Constructor for class com.technototes.library.hardware2.CRServoBuilderCRServo
    -
     
    +
    +
    Create a motor
    +
    +
    + CRServo(String) + - Constructor for class com.technototes.library.hardware.motor.CRServo +
    +
    +
    Create a motor
    +
    CYAND
    degrees() - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - devicedevices - - Variable in class com.technototes.library.hardware.HardwareDevice
    -
    -
    Deprecated.
    -   -
    -
    - device - - Variable in class com.technototes.library.subsystem.DeviceSubsystem -
     
    -
    - DeviceSubsystem<T - extends - HardwareDevice<?>> - Class in - com.technototes.library.subsystem -
    -
    -
    class for subsystems
    -
    -
    - DeviceSubsystem(T) - - Constructor for class com.technototes.library.subsystem.DeviceSubsystem -
    -
    -
    Create a subsystem
    -
    D
    Enum for the priority of the differential.
    -
    - digital(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - digital(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - DigitalBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - DigitalBuilder(int) - - Constructor for class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - DigitalBuilder(DigitalChannel) - - Constructor for class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    -
    - DigitalBuilder(String) - - Constructor for class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    D
    DigitalSensor(DigitalChannel)DigitalSensor(DigitalChannel, String) - Constructor for class com.technototes.library.hardware.sensor.D
    direction(DcMotorSimple.Direction) - - Method in class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - direction(DcMotorSimple.Direction)dir - - Method in class com.technototes.library.hardware2.MotorBuilderCRServo
     
    direction(Servo.Direction)dir - - Method in class com.technototes.library.hardware2.ServoBuilderMotor
     
    @@ -2586,101 +2137,19 @@

    D

     
    disable() - Method in interface com.technototes.library.general.EnablableCanBeEnabled
    Disable the object
    -
    - disable() - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - disable() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - distance(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - DistanceBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - DistanceBuilder(DistanceSensor) - - Constructor for class com.technototes.library.hardware2.DistanceBuilder -
    -
     
    -
    - DistanceBuilder(String) - - Constructor for class com.technototes.library.hardware2.DistanceBuilder -
    -
     
    E
    Enablable<T - extends - Enablable<T>> - Interface in - com.technototes.library.general -
    -
    -
    Interface for anything that can be enabled/disabled
    -
    -
    - enable()enable() - Method in class com.technototes.library.control.E
     
    enable() - Method in interface com.technototes.library.general.EnablableCanBeEnabled
    Enable the object
    -
    - enable() - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    -
    - enable() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    E
    EncodedMotor(T)EncodedMotor(T, Encoder, String) - Constructor for class com.technototes.library.hardware.motor.E >
    -
    Make encoded motor, with the default encoder configured
    +
    Make encoded motor
    EncodedMotor(T, Encoder)EncodedMotor(T, String) - Constructor for class com.technototes.library.hardware.motor.E >
    -
    Make encoded motor
    -
    -
    - EncodedMotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.hardware.motor -
    -
    -
    Class for encoded motor groups
    -
    -
    - EncodedMotorGroup(EncodedMotor<T>, Motor<T>...) - - Constructor for class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
    -
    Create an encoded motor groupM
    -
    -
    - EncodedMotorSubsystem - - Class in - com.technototes.library.subsystem.motor -
    -
    -
    Class for encoded motor subsystems
    -
    -
    - EncodedMotorSubsystem(EncodedMotor<?>) - - Constructor for class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Create encoded motor subsystem
    +
    Make encoded motor, with the default encoder configured
    E
    execute() - Method in class com.technototes.library.command.CommandBaseCommandGroup
    -
    -
    Deprecated.
    -
    Execute the command
    -
    +
     
    execute() - Method in class com.technototes.library.command.CommandGroupConditionalCommand
     
    execute() - Method in class com.technototes.library.command.ConditionalCommandMethodCommand
     
    @@ -3378,19 +2726,6 @@

    E

    The command is running normally
    -
    - expandedPWM() - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    E >Servo
    -
    -
    Deprecated.
    -   -
    +
     
    E
    ExternalEncoder(AnalogInput)ExternalEncoder(AnalogInput, String) - Constructor for class com.technototes.library.hardware.sensor.encoder.E

    F

    +
    + FailedDevice + - Class in + com.technototes.library.hardware +
    +
     
    +
    + FailedDevice(String) + - Constructor for class com.technototes.library.hardware.FailedDevice +
    +
     
    F
    flMotorflMotor() - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystemF Format the supplied object with the HTML and a format String to become this color
    -
    - forward() - - Method in class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - forward() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - forward() - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    F
     
    frMotorfrMotor() - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    +
     

    G

    -
    - gain(float) - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    G >
     
    +
    + get() + - Method in class com.technototes.library.hardware.motor.CRServo +
    +
    +
    + Gets the *speed* of the motor when it's used as a DoubleSupplier +
    +
    G Get the alliance set for the OpMode passed in, if it's set in the annotation
    -
    - getAllDeviceList() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -   -
    -
    - getAllDevices() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    Get all devices in group
    -
    -
    - getAllDevices() - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - getAllDevices() - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - getAllDevices() - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    G >Sensored
    -
    -
    Deprecated.
    -   -
    +
     
    +
    + getAsDouble() + - Method in class com.technototes.library.hardware.servo.MotorAsServo +
    +
     
    G >
     
    +
    + getConnectionInfo() + - Method in class com.technototes.library.hardware.FailedDevice +
    +
     
    G class="member-name-link" >getCurrent(Subsystem) - - Method in class com.technototes.library.command.CommandSchedulerG
     
    getCurrentSong() - - Method in class com.technototes.library.hardware.SpeakergetDefault(Subsystem) -
    -
    -
    Deprecated.
    -   -
    -
    - getDefault(Subsystem) - - Method in class com.technototes.library.command.CommandSchedulerG
    getDevice()getDeviceName() - Method in class com.technototes.library.hardware.HardwareDevice -
    -
    -
    Deprecated.
    -
    Get encapsulated device
    -
    -
    - getDevice() - - Method in class com.technototes.library.subsystem.DeviceSubsystemDummyDevice
    -
    -
    Get the devices for this subsystem
    -
    +
     
    getDeviceName() - Method in class com.technototes.library.hardware.DummyDeviceFailedDevice
     
    @@ -4508,6 +3744,36 @@

    G

    Gets the priority for the difference output.
    +
    + getDirection() + - Method in class com.technototes.library.hardware.motor.CRServo +
    +
    +
    Returns the DcMotorSimple.Direction the motor is traveling
    +
    +
    + getDirection() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Returns the DcMotorSimple.Direction the motor is traveling
    +
    G >
    -
    Deprecated.
    Get the value with a specified distance Unit
    @@ -4621,80 +3886,6 @@

    G

    Get the encoder object
    -
    - getFollowerist() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -   -
    -
    - getFollowers() - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    Get the followers for the lead device
    -
    -
    - getFollowers() - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - getFollowers() - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - getFollowers() - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    G
    Get the index for the entry
    -
    - getInstance() - - Static method in class com.technototes.library.command.CommandScheduler -
    -
    -
    Get (or create) the singleton CommandScheduler object
    -
    G
     
    getInverted() - Method in interface com.technototes.library.general.InvertableInvertible
    Get current inversion
    -
    - getInverted() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Returns whether the motor is inverted.
    -
    G >Servo
    -
    -
    Deprecated.
    -   -
    +
     
    G
     
    getMap()getManufacturer() - - Static method in class com.technototes.library.hardware2.HardwareBuilderFailedDevice
     
    @@ -5047,6 +4205,19 @@

    G

    >
     
    +
    + getName() + - Method in class com.technototes.library.hardware.HardwareDevice +
    +
     
    G class="member-name-link" >getOpModeRuntime() - - Method in class com.technototes.library.command.CommandSchedulerG >
    -
    Deprecated.
    Get servo position
    getPosition()getPower() + - Method in class com.technototes.library.hardware.motor.CRServo +
    +
    +
    Gets the power value for the motor
    +
    +
    + getPower() - - Method in class com.technototes.library.subsystem.servo.ServoSubsystemMotor
    -
    Get subsystem servo position
    +
    Gets the power value for the motor
    G >
     
    +
    + getRawDevice() + - Method in class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Get encapsulated device
    +
    +
    + getRawMotor(Class<U>) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
     
    G >
    -
    Deprecated.
    Get the sensor value
    +
    + getSensorValue() + - Method in class com.technototes.library.hardware.servo.MotorAsServo +
    +
     
    G >Servo
    -
    -
    Deprecated.
    -   -
    +
     
    G >
     
    -
    - getSpeed() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Gets the power set for the motor
    -
    G >
    -
    Gets the power value for the motor
    +
    + Deprecated. +
    use getPower() instead
    +
    G
    Override this one, I guess? Not sure how useful it is.
    -
    - getSpeed() - - Method in class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
    -
    Get the speed of the motors in the subsystem
    -
    G >
    -
    Deprecated.
    Get the current distance unit
    @@ -5613,6 +4807,19 @@

    G

    >
     
    +
    + getVersion() + - Method in class com.technototes.library.hardware.FailedDevice +
    +
     
    G
    getVolume() - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - getXAxis()getXAxis() - Method in class com.technototes.library.control.G

    H

    -
    - HardwareBuilder<T> - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - HardwareBuilder(int) - - Constructor for class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - HardwareBuilder(String) - - Constructor for class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - HardwareBuilder(T) - - Constructor for class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    H >
    -
    Deprecated.
    +
    + Class for hardware devices This just adds an extra layer of indirection that doesn't + feel like it's worth the hassle. +
    H >
    -
    Deprecated.
    Make a hardware device with the string to get from hardwaremap
    HardwareDevice(T)HardwareDevice(T, String) - Constructor for class com.technototes.library.hardware.H >
    -
    Deprecated.
    Make a hardware device
    -
    - HardwareDeviceGroup<T - extends - HardwareDevice> - Interface in - com.technototes.library.hardware -
    -
    -
    Deprecated.
    -
    H >
    -
    Deprecated.
    Hardware map object for stuff
    @@ -6150,19 +5254,6 @@

    I

    >
     
    -
    - idle(DcMotor.ZeroPowerBehavior) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    I >
     
    -
    - imu(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    I >
    -
    Make an imu
    +
    + Make an imu Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ SDK +
    I >
    -
    Make an imu
    +
    + Make an imu Use the Logo/Usb Facing direction API's as part of the FTC 8.1+ SDK +
    I >
    -
    The direction of the axes signs when remapping the axes
    -
    -
    - IMUBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - IMUBuilder(BNO055IMUImpl) - - Constructor for class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - IMUBuilder(String) - - Constructor for class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    deprecated
    -
    -
    - IMUBuilder.AxesSigns - - Enum Class in - com.technototes.library.hardware2 -
    -
    -
    This is duplicated in the IMU class
    +
    Deprecated.
    I >Servo
    -
    -
    Deprecated.
    -   -
    +
     
    I
    initMap(HardwareMap) - - Static method in class com.technototes.library.hardware2.HardwareBuilderHardwareDevice
    -
    -
    Deprecated
    -
    +
     
    I
    Update the logged init items in temeletry
    -
    - input() - - Method in class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -
    I >
    +
    Deprecated.
    Check if the value is in the range
    @@ -6661,49 +5662,19 @@

    I

    invert() - Method in interface com.technototes.library.general.InvertableInvertible
    Toggle inversion
    -
    - invert() - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Invert the motor (toggle inversion)
    -
    -
    - invert() - - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Invert the motor (toggle inversion)
    -
    I
     
    InvertableInvertible<T extends InvertableInvertible<T>> - Interface in I
    isDisabled() - Method in interface com.technototes.library.general.EnablableCanBeEnabled
     
    @@ -6857,14 +5828,14 @@

    I

     
    isEnabled() - Method in interface com.technototes.library.general.EnablableCanBeEnabled
     
    @@ -6883,22 +5854,6 @@

    I

    Return if the command is finished
    -
    - isFinished() - - Method in class com.technototes.library.command.CommandBase -
    -
    -
    Deprecated.
    -
    Is this command finished
    -
    L >
     
    -
    - led(boolean) - - Method in class com.technototes.library.hardware2.ColorRangeBuilder -
    -
     
    L
    leftSideleftSide() - - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystemL Annotation for determining when logged item will be sent to Telemetry +
    + logData(String) + - Method in class com.technototes.library.hardware.HardwareDevice +
    +
    +
    Get the logging expression
    +
    L
    Instantiate the logger
    -
    -

    M

    -
    - MAGENTALogHardware(String) - - Enum constant in enum class com.technototes.library.util.ColorLogger
     
    -
    - map - - Static variable in interface com.technototes.library.util.SmartConsumer -
    -
    -
    The map of values that have been consumed.
    -
    map(double, double, double, double, double)LogLine() - - Static method in class com.technototes.library.util.MathUtilsHardwareDevice
    -
    - Scale a value originally between in_min and in_max to be the same ratio when mapped - to out_min and out_max. -
    +
    This is used for logging stuff by name and/or device type
    MapUtilsLogLine() - - Class in - com.technototes.library.utilCRServo
     
    LogLine() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.AnalogSensor +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.ColorDistanceSensor +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.ColorSensor +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.DigitalSensor +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.encoder.ExternalEncoder +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.encoder.MotorEncoder +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.IMU +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.sensor.Rev2MDistanceSensor +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.servo.MotorAsServo +
    +
     
    +
    + LogLine() + - Method in class com.technototes.library.hardware.servo.Servo +
    +
     
    +
    +

    M

    +
    +
    + MAGENTA + - Enum constant in enum class com.technototes.library.util.Color +
    +
     
    +
    + map + - Static variable in interface com.technototes.library.util.SmartConsumer +
    +
    +
    The map of values that have been consumed.
    +
    +
    + map(double, double, double, double, double) + - Static method in class com.technototes.library.util.MathUtils +
    +
    +
    + Scale a value originally between in_min and in_max to be the same ratio when mapped + to out_min and out_max. +
    +
    +
    + MapUtils + - Class in + com.technototes.library.util +
    +
     
    +
    + MapUtils() @@ -7887,6 +7028,7 @@

    M

    >
    +
    Deprecated.
    The maximum value of the range
    @@ -7904,113 +7046,169 @@

    M

     
    maxSpeedmaxVelocity + - Variable in class com.technototes.library.hardware.servo.ServoProfiler.Constraints - - Variable in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem +
     
    +
    + MethodCommand + - Class in + com.technototes.library.command
    -
    Max speed
    +
    + This is an alternative to using the Command.create(...) interface, as it's a little + more obvious to new/non-Java-informed coders as to what's happening, while the + Command.create function may require understanding that subsystem::method is a + 'Command' because it's Runnable and Java will promote it to a Command from a + Runnable. +
    maxVelocityMethodCommand(Runnable, Subsystem...) - - Variable in class com.technototes.library.hardware.servo.ServoProfiler.ConstraintsMethodCommand
    -
     
    +
    +
    This is an alternative to the Command.create(...) interface
    +
    - middle()MethodCommand(BiConsumer<T, U>, Supplier<T>, Supplier<U>, + Subsystem...) - - Method in class com.technototes.library.util.RangeMethodCommand
    -
    Get the 'middle' of the range
    +
    This is an alternative to the Command.create(...) interface
    - min - - Variable in class com.technototes.library.util.RangeMethodCommand(BiConsumer<T, U>, Supplier<T>, U, Subsystem...) + - Constructor for class com.technototes.library.command.MethodCommand
    -
    The minimum value of the range
    +
    This is an alternative to the Command.create(...) interface
    mode(DcMotor.RunMode)MethodCommand(BiConsumer<T, U>, T, Supplier<U>, Subsystem...) - - Method in class com.technototes.library.hardware2.MotorBuilderMethodCommand
    -
     
    +
    +
    This is an alternative to the Command.create(...) interface
    +
    mode(DigitalChannel.Mode)MethodCommand(BiConsumer<T, U>, T, U, Subsystem...) - - Method in class com.technototes.library.hardware2.DigitalBuilderMethodCommand
    -
    Don't use this in the future
    +
    This is an alternative to the Command.create(...) interface
    motor(int)MethodCommand(Consumer<T>, Supplier<T>, Subsystem...) - - Static method in class com.technototes.library.hardware2.HardwareBuilderMethodCommand
    -
    Deprecated
    +
    This is an alternative to the Command.create(...) interface
    motor(String)MethodCommand(Consumer<T>, T, Subsystem...) + - Constructor for class com.technototes.library.command.MethodCommand +
    +
    +
    This is an alternative to the Command.create(...) interface
    +
    +
    + middle() + - Method in class com.technototes.library.util.Range - - Static method in class com.technototes.library.hardware2.HardwareBuilder +
    +
    Deprecated.
    +
    Get the 'middle' of the range
    +
    +
    + min + - Variable in class com.technototes.library.util.Range
    -
    Deprecated
    +
    Deprecated.
    +
    The minimum value of the range
    M
    Motor(T)Motor(T, String) - Constructor for class com.technototes.library.hardware.motor.M
    MotorBuilderMotorAsServo<T - - Class in - com.technototes.library.hardware2com.technototes.library.hardware.servo
    -
    TODO: Remove this.
    +
    + This is to use a motor as a servo using the built-in capabilities (instead of doing + it manually) One rather important feature would be to hand control back + invalid input: '&' forth between a normal + encoded motor. +
    MotorBuilder(int) - - Constructor for class com.technototes.library.hardware2.MotorBuilderMotorAsServo(String) -
    -
     
    -
    - MotorBuilder(DcMotorEx) - - Constructor for class com.technototes.library.hardware2.MotorBuilderMotorAsServo
     
    MotorBuilder(String)MotorAsServo(T, String) - - Constructor for class com.technototes.library.hardware2.MotorBuilderMotorAsServo
     
    @@ -8135,9 +7329,9 @@

    M

    MotorEncoder(DcMotorEx)MotorEncoder(DcMotorEx, ElapsedTime, String) - Constructor for class com.technototes.library.hardware.sensor.encoder.M
     
    MotorEncoder(DcMotorEx, ElapsedTime) - - Constructor for class com.technototes.library.hardware.sensor.encoder.MotorEncoder -
    -
     
    -
    - MotorEncoder(EncodedMotor<DcMotorEx>)MotorEncoder(DcMotorEx, String) - Constructor for class com.technototes.library.hardware.sensor.encoder.M
     
    MotorGroup<T - extends com.qualcomm.robotcore.hardware.DcMotorSimple> - Class in - com.technototes.library.hardware.motor -
    -
    -
    Class for a group of motors
    -
    -
    - MotorGroup(Motor<T>...) - - Constructor for class com.technototes.library.hardware.motor.MotorGroupmotors -
    -
    -
    Make a motor group
    -
    -
    - MotorSubsystem<T - extends - Motor<?>> - Class in - com.technototes.library.subsystem.motor -
    -
    -
    Class for motor subsystems
    -
    -
    - MotorSubsystem(T) - - Constructor for class com.technototes.library.subsystem.motor.MotorSubsystemDrivebaseSubsystem
    -
    -
    Create motor subsystem
    -
    +
     
    M

    N

    +
    + name + - Variable in class com.technototes.library.hardware.FailedDevice +
    +
     
    +
    + name + - Variable in class com.technototes.library.hardware.HardwareDevice +
    +
    +
    + The name of the hardware used for logging + invalid input: '&' hardware creation +
    +
    N
    Store the name for this annotation to be be beside
    +
    + names + - Static variable in class com.technototes.library.hardware.HardwareDevice +
    +
     
    N >
    +
    Deprecated.
    Negative, Negative, Negative
    -
    - NNN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    N >
    +
    Deprecated.
    Negative, Negative, Positive
    -
    - NNP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    NO_COLORN >
    +
    Deprecated.
    Negative, Positive, Negative
    -
    - NPN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    N >
    +
    Deprecated.
    Negative, Positive, Positive
    -
    - NPP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    O >
    -
    Deprecated.
    Set servo range
    @@ -8683,7 +7791,6 @@

    O

    >
    -
    Deprecated.
    Set the distance unit
    @@ -8697,21 +7804,6 @@

    O

    >
     
    -
    - output() - - Method in class com.technototes.library.hardware2.DigitalBuilder -
    -
    -
    Don't use this in the future
    -

    P

    @@ -8811,21 +7903,6 @@

    P

    Make parallel race group
    -
    - parameter(Consumer<BNO055IMU.Parameters>) - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    P
    The periodic function
    -
    - periodic() - - Method in class com.technototes.library.subsystem.DeviceSubsystem -
    -
     
    P >
    +
    Deprecated.
    Positive, Negative, Negative
    -
    - PNN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    P >
    +
    Deprecated.
    Positive, Negative, Positive
    PNPpositionThreshold - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSignsEncodedMotor
    -
    deprecated
    +
    Deadzone for going to positions with encoder
    position(double)power - - Method in class com.technototes.library.hardware2.MotorBuilderCRServo
     
    positionThresholdpower - Variable in class com.technototes.library.hardware.motor.EncodedMotorMotor
    -
    -
    Deadzone for going to positions with encoder
    -
    +
     
    P >
    +
    Deprecated.
    Positive, Positive, Negative
    -
    - PPN - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    P >
    +
    Deprecated.
    Positive, Positive, Positive
    -
    - PPP - - Enum constant in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    -
    deprecated
    -
    P same index) -
    - product - - Variable in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - propagate(double) - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    Propagate actions across the followers
    -
    -
    - propogate(double) - - Method in interface com.technototes.library.hardware.HardwareDeviceGroup -
    -
    -
    Deprecated.
    -
    -
    - propogate(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - propogate(double) - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - propogate(double) - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    P >
     
    -
    - pwmRange(double, double) - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    R
    Set angle format to radians
    -
    - radians() - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    -
    - range(double, double) - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    R >
    -
    Helper class for tracking a range
    +
    Deprecated.
    R >
    +
    Deprecated.
    Create a range with the given minimum and maximum
    raw()realHardware() - - Method in class com.technototes.library.hardware2.MotorBuilderHardwareDevice
     
    @@ -9660,7 +8553,7 @@

    R

    class="member-name-link" >register(Periodic) - - Method in class com.technototes.library.command.CommandSchedulerR Register a periodic function to be run once each schedule loop -
    - remap(AxesOrder, IMUBuilder.AxesSigns) - - Method in class com.technototes.library.hardware2.IMUBuilder -
    -
    -
    Deprecated
    -
    R >
    -
    - Remaps the axes for the BNO055 IMU in the order and sign provided The SDK 8.1.1 - added a new IMU class, which (delightfully) rotated the X and Y axes around the Z - axis by 90 degrees clock-wise (viewed from above) If you have code that was using - that layout, this is what you probably need to call. -
    +
    Deprecated.
    R >
     
    +
    + resetDeviceConfigurationForOpMode() + - Method in class com.technototes.library.hardware.FailedDevice +
    +
     
    R >
    -
    Alex had a comment "be careful with this" and he's not wrong.
    +
    Reset the scheduler...
    R >
    -
    Deprecated.
    +
    + Class for the Rev '2m' range sensors Note for users: The Rev 2m range sensor is + actually only useful at about 1.1 - 1.2m :/ +
    Rev2MDistanceSensor(DistanceSensor)Rev2MDistanceSensor(DistanceSensor, String) - Constructor for class com.technototes.library.hardware.sensor.R >
    -
    Deprecated.
    Create a range sensor
    @@ -9864,48 +8752,8 @@

    R

    >
    -
    Deprecated.
    Create a range sensor
    -
    - reverse() - - Method in class com.technototes.library.hardware2.CRServoBuilder -
    -
     
    -
    - reverse() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    -
    - reverse() - - Method in class com.technototes.library.hardware2.ServoBuilder -
    -
     
    R
    rightSiderightSide() - - Variable in class com.technototes.library.subsystem.drivebase.TankDrivebaseSubsystem
    -
    -
    Drive motors
    -
    +
     
    R
    rlMotorrlMotor() - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    +
     
    R
     
    rrMotorrrMotor() - - Variable in class com.technototes.library.subsystem.drivebase.SimpleMecanumDrivebaseSubsystem
    -
    -
    Drive motors
    -
    +
     
    R class="member-name-link" >run() - - Method in class com.technototes.library.command.CommandSchedulerS >
    +
    Deprecated.
    Scale the range by a given value
    @@ -10389,10 +9232,7 @@

    S

    >Servo
    -
    -
    Deprecated.
    -   -
    +
     
    S class="member-name-link" >schedule(Command) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >schedule(Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleAfterOther(Command, Command) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleAfterOther(Command, Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleDefault(Command, Subsystem) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleForState(Command, CommandOpMode.OpModeState...) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleForState(Command, BooleanSupplier, CommandOpMode.OpModeState...) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleInit(Command) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleInit(Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleJoystick(Command) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleJoystick(Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleOnce(Command) - - Method in class com.technototes.library.command.CommandScheduler
    -
    Schedule a command to run
    +
    Schedule a command to run (just use "schedule")
    S class="member-name-link" >scheduleOnceForState(Command, CommandOpMode.OpModeState) - - Method in class com.technototes.library.command.CommandScheduler
    -
    Schedule a command to run during a particular OpModeState
    +
    + Schedule a command to run during a particular OpModeState You can just use + scheduleForState instead... +
    S class="member-name-link" >scheduleWithOther(Command, Command) - - Method in class com.technototes.library.command.CommandSchedulerS class="member-name-link" >scheduleWithOther(Command, Command, BooleanSupplier) - - Method in class com.technototes.library.command.CommandSchedulerS >
    -
    Deprecated.
    +
    Root class for sensors
    S >
    -
    Deprecated.
    Create sensor
    Sensor(T)Sensor(T, String) - Constructor for class com.technototes.library.hardware.sensor.S >
    -
    Deprecated.
    Create a sensor
    @@ -11035,7 +9876,7 @@

    S

    >
    -
    Deprecated.
    +
    Class for hardware devices with a sensor value
    S
    Make sequential command group.
    -
    - servo(int) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    -
    - servo(String) - - Static method in class com.technototes.library.hardware2.HardwareBuilder -
    -
    -
    Deprecated
    -
    S >
    -
    Deprecated.
    +
    + Class for servos There's some useful functionality in here, but it can be added more + easily by making something that direction extends the robotcore Servo instead. +
    Servo(Servo)Servo(Servo, String) - Constructor for class com.technototes.library.hardware.servo.S >
    -
    Deprecated.
    Create servo object
    @@ -11141,94 +9954,8 @@

    S

    >
    -
    Deprecated.
    Create servo object
    -
    - ServoBuilder - - Class in - com.technototes.library.hardware2 -
    -
    -
    TODO: Remove this.
    -
    -
    - ServoBuilder(int) - - Constructor for class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - ServoBuilder(Servo) - - Constructor for class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - ServoBuilder(String) - - Constructor for class com.technototes.library.hardware2.ServoBuilder -
    -
     
    -
    - ServoGroup - - Class in - com.technototes.library.hardware.servo -
    -
    -
    Deprecated.
    -
    -
    - ServoGroup(Servo...) - - Constructor for class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -
    Create a servo group
    -
    S
     
    ServoSubsystemset(double) - - Class in - com.technototes.library.subsystem.servoIntegral
    -
    Class for servo subsystems
    +
    Set the value to C
    ServoSubsystem(Servo)setAverageOutput(double) - - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystemDifferential
    -
    Create servo subsystem
    +
    Set the average of the differential.
    ServoSubsystem(Servo...)setBackward() - - Constructor for class com.technototes.library.subsystem.servo.ServoSubsystemCRServo
    -
     
    +
    +
    Set the motor to go *backward*
    +
    set(double)setBackward() - - Method in class com.technototes.library.util.IntegralEncodedMotor
    -
    Set the value to C
    +
    Set the motor to go *backward*
    setAverageOutput(double)setBackward() - - Method in class com.technototes.library.util.DifferentialMotor
    -
    Set the average of the differential.
    +
    Set the motor to go *backward*
    S
    Set the deviation of the differential.
    +
    + setDirection(DcMotorSimple.Direction) + - Method in class com.technototes.library.hardware.motor.CRServo +
    +
    +
    Set the motor to go in a particular direction
    +
    +
    + setDirection(DcMotorSimple.Direction) + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Set the motor to go in a particular direction
    +
    +
    + setDirection(DcMotorSimple.Direction) + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Set the motor to go in a particular direction
    +
    S >ButtonBase
    -
     
    +
    +
    Enable or disable the button
    +
    S
     
    setEnabled(boolean) - Method in interface com.technototes.library.general.EnablableCanBeEnabled
    @@ -11499,6 +10275,51 @@

    S

    Explicitly set the encoder for the motor
    +
    + setForward() + - Method in class com.technototes.library.hardware.motor.CRServo +
    +
    +
    Set the motor to go *forward*
    +
    +
    + setForward() + - Method in class com.technototes.library.hardware.motor.EncodedMotor +
    +
    +
    Set the motor to go *forward*
    +
    +
    + setForward() + - Method in class com.technototes.library.hardware.motor.Motor +
    +
    +
    Set the motor to go *forward*
    +
    S >ButtonBase
    -
     
    +
    +
    + Inverts the button, such that "isPressed" and "isReleased" are opposite, along with + everything that entails +
    +
    S
     
    setInverted(boolean) - Method in interface com.technototes.library.general.InvertableInvertible
    @@ -11602,49 +10428,33 @@

    S

    setInverted(boolean) - - Method in class com.technototes.library.hardware.motor.EncodedMotorServo
    -
    -
    Set the Inverted state for the motor.
    -
    +
     
    setInverted(boolean)setLimits(double, double) - Method in class com.technototes.library.hardware.motor.Motor -
    -
    -
    Set the Inverted state for the motor.
    -
    -
    - setInverted(boolean) - - Method in class com.technototes.library.hardware.servo.ServoCRServo
    -
    Deprecated.
    -   +
    + Sets the min & max values for the motor power (still clipped to -1/1) +
    S
    Set the limits for the differential
    -
    - setMaxSpeed(double) - - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Set the max speed for the subsystem
    -
    setOpMode(CommandOpMode) - - Method in class com.technototes.library.command.CommandSchedulerS
    setPIDFCoeffecients(double, double, double, double)setPIDFCoefficients(double, double, double, double) - Method in class com.technototes.library.hardware.motor.S
    setPIDFCoeffecients(PIDFCoefficients)setPIDFCoefficients(DcMotor.RunMode, PIDFCoefficients) - Method in class com.technototes.library.hardware.motor.S
    setPosition(double)setPIDFCoefficients(PIDFCoefficients) - Method in class com.technototes.library.hardware.motor.S >
    -
    Set the position of the motor
    +
    Configure the PIDF constants for the motor
    setPosition(double) - - Method in class com.technototes.library.hardware.servo.ServoEncodedMotor
    -
    Deprecated.
    -
    Set servo position
    +
    Set the position of the motor
    setPosition(double) - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    -
    - setPosition(double) - - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystem -
    -
    -
    Set position for subsystem with existing max speed
    -
    -
    - setPosition(double) - - Method in class com.technototes.library.subsystem.servo.ServoSubsystemServo
    -
    Set servo subsystem position
    +
    Set servo position
    S
    setPosition(double, double)setPower(double) - Method in class com.technototes.library.hardware.motor.EncodedMotorGroupCRServo
    -
     
    +
    +
    Set the (range-clipped) power of the motor
    +
    setPosition(double, double)setPower(double) - - Method in class com.technototes.library.subsystem.motor.EncodedMotorSubsystemMotor
    -
    Set position for subsystem
    +
    Set the (range-clipped) power of the motor
    S >
     
    -
    - setSpeed(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotor -
    -
    -
    Sets the (clipped) speed for the motor
    -
    S >
    -
    Set speed of motor
    -
    -
    - setSpeed(double) - - Method in class com.technototes.library.hardware.motor.MotorGroup -
    -
     
    -
    - setSpeed(double) - - Method in class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
    -
    Set the speed of the primary motors in subsystem
    +
    + Deprecated. +
    Please use setPower instead
    +
    S
    Set velocity of motor in tps
    -
    - setVelocity(double) - - Method in class com.technototes.library.hardware.motor.EncodedMotorGroup -
    -
     
    -
    - setVolume(float) - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    S >
     
    -
    - Speaker - - Class in - com.technototes.library.hardware -
    -
    -
    Deprecated.
    -
    -
    - Speaker(float, String...) - - Constructor for class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - Speaker(String...) - - Constructor for class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    -
    - start(String) - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    S >
    -
    Deprecated.
    Set position for the servo and return this
    -
    - startAt(double) - - Method in class com.technototes.library.hardware.servo.ServoGroup -
    -
    -
    Deprecated.
    -   -
    S
    The objects for the stick button
    -
    - stop() - - Method in class com.technototes.library.hardware.Speaker -
    -
    -
    Deprecated.
    -   -
    S >
     
    -
    - stop() - - Method in class com.technototes.library.subsystem.motor.MotorSubsystem -
    -
     
    T
    Zero the encoder
    -
    - tare() - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    T class="member-name-link" >terminateOpMode() - - Method in class com.technototes.library.command.CommandSchedulerT
    For scheduling a pair of "opposite" commands for toggling when something is or is - not being toggled + not being toggled For non-command (method ref) usage, just use + button.whenToggled(toggled).whenInverseToggled(notToggled)
    toggleEnabled() - Method in interface com.technototes.library.general.EnablableCanBeEnabled
    Toggle whether this object is enabled or not
    -
    - tolerance(int) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     
    U

    V

    +
    + val + - Variable in class com.technototes.library.hardware.sensor.ColorSensor +
    +
     
    V >
    -
    - Returns the enum constant of this class with the specified name. -
    -
    -
    - valueOf(String) - - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    +
    Deprecated.
    Returns the enum constant of this class with the specified name.
    @@ -13204,24 +11763,7 @@

    V

    >
    -
    - Returns an array containing the constants of this enum class, in the order they are - declared. -
    -
    -
    - values() - - Static method in enum class com.technototes.library.hardware2.IMUBuilder.AxesSigns -
    -
    +
    Deprecated.
    Returns an array containing the constants of this enum class, in the order they are declared. @@ -13295,19 +11837,6 @@

    V

    declared.
    -
    - velocity(PIDFCoefficients) - - Method in class com.technototes.library.hardware2.MotorBuilder -
    -
     

    W

    @@ -13576,7 +12105,7 @@

    W

    - Schdule the command to be run when the input is released, but only once! + Schedule the command to be run when the input is released, but only once!
    @@ -13893,6 +12422,19 @@

    Z

    Set the value to zero
    +
    + zeroBehavior + - Variable in class com.technototes.library.hardware.motor.Motor +
    +
     
    - + Overview (RobotLibrary API) @@ -11,7 +11,7 @@ - + @@ -27,6 +27,15 @@
  • -
  • - com.technototes.library.hardware2, -
  • com.technototes.library.loggerHierarchy For All Packages >com.technototes.library.subsystem.drivebase,
  • -
  • - com.technototes.library.subsystem.motor, -
  • -
  • - com.technototes.library.subsystem.servo, -
  • com.technototes.library.utilClass Hierarchy
  • +
  • + com.technototes.library.hardware.FailedDevice + (implements com.qualcomm.robotcore.hardware.HardwareDevice) +
  • com.technototes.library.control.Class Hierarchy title="class in com.technototes.library.control" >GamepadBase<T,U> (implements com.technototes.library.general.EnablableCanBeEnabled<T>, com.technototes.library.general.Class Hierarchy >Stick)
  • -
  • - com.technototes.library.hardware2.HardwareBuilder<T> - -
  • com.technototes.library.hardware.Class Hierarchy >HardwareDevice<T>
  • +
  • + com.technototes.library.hardware.servo.MotorAsServo<T> (implements com.technototes.library.hardware.Sensored) +
  • com.technototes.library.hardware.sensor.Class Hierarchy >Servo (implements com.technototes.library.general.InvertableInvertible<T>, com.technototes.library.hardware.Sensored) -
  • @@ -856,6 +709,19 @@

    Class Hierarchy

    >MathUtils +
  • + com.technototes.library.command.MethodCommand + (implements com.technototes.library.command.Command) +
  • com.qualcomm.robotcore.eventloop.opmode.OpMode
  • -
  • - com.technototes.library.general.Enablable<T> -
      -
    • - com.technototes.library.control.Stick - (also extends com.technototes.library.general.Periodic) -
    • -
    -
  • -
  • - com.technototes.library.hardware.HardwareDeviceGroup<T> -
  • com.technototes.library.hardware.sensor.Interface Hierarchy
  • com.technototes.library.general.InvertableInvertible<T>
  • @@ -1083,9 +933,9 @@

    Interface Hierarchy

    >Stick (also extends com.technototes.library.general.EnablableCanBeEnabled<T>)
  • @@ -1100,7 +950,7 @@

    Interface Hierarchy

  • java.lang.RunnableInterface Hierarchy >Command (also extends java.util.function.SupplierInterface Hierarchy
  • java.util.function.SupplierInterface Hierarchy >Command (also extends java.lang.RunnableAnnotation Interface Hierarchy >Alliance.Blue (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >Alliance.Red (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >Log (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >Log.Boolean (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >Log.Logs (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >Log.Number (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >LogConfig (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >LogConfig.AllowList (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >LogConfig.DenyList (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >LogConfig.Disabled (implements java.lang.annotation.AnnotationAnnotation Interface Hierarchy >LogConfig.Run (implements java.lang.annotation.AnnotationEnum Class Hierarchy
    • java.lang.ObjectEnum Class Hierarchy
      • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.SerializableEnum Class Hierarchy >IMU.AxesSigns
      • -
      • - com.technototes.library.hardware2.IMUBuilder.AxesSigns -
      • com.technototes.library.hardware.sensor.encoder.nc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12TF&T^vI^j=w#x$i?I+((tf;UXnmgbH|3oY>pC!)f}(GR!16S-u+#{ ze6YEqRkW=8vGl=5qArKM<9}TC-}iEvB{zdaTcX5$wyRTK&ALRXUCGx5b?-VBQkUm|IuXOmYJrBRJgj{Vx zMbNnqUkncy+qa2-mWYc>swkcIuvGK#>(0d)B7)5f`@$Ei28nH~0h*~=;u=wsl30>z zm0Xkxq!^403@vmGjdTsnLJUl-Obo4zO|=aStPBhe<(7X!(U6;;l9^VCTf=69^L{`L N44$rjF6*2UngDu&PXPb` literal 0 HcmV?d00001 diff --git a/docs/TechnoLib/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/docs/TechnoLib/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..a90afb8bf8028404d206114965669b023dcb85ea GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!TrvH)L6@80)r*_cdCvDr%)6ghVL16=s@mbz7H!uRdGeDa z?kzLg)16i!f8fKx84s0>4hES%`s&m5HI1v5B^Uft7(lid2moiiX_$l+3hB+!{pPkNg5^ OVDNPHb6Mw<&;$T*0!_~V literal 0 HcmV?d00001 diff --git a/docs/TechnoLib/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/docs/TechnoLib/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..dbe091f6dc036fc1dc11b005738e951e27a43f7a GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&fCnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12VciT^vI^j=w#>k(V)1qW$CZ|6)SVV-&*#dav<$DMuV&n0Dbpw@aE%W-S*bfB&J`pw9sa4-R?IGW?p~6`>jMSP&M+u3 zY@9al)zrvpHlQu4C9V-ADTyViR>?)FK#IZ0z|cb1&`8(7EX2UX%EZvh*hJgFz{Ot{4q9c^pg%OaK6Yqo^RG1puHty#h|2KYM!0=6Ogw z8K9N2ybORL_{i$}QxC&U!O-)`D*V04jXJ#n04P`#Wh8ZcmyUA%?QMqxhsEu>DC;^~ z{8O8G!7ta)D{l)9O_iD5-A{FwUpb*$IVfjou`0AAQAiyPXs{~wzE|2cZ&-acSF5PE zECGBcRRVEnRHOae;6NyU=IDOFj1wfusG0S<3Q6l>z)~KZvoIliF0!*y?O)1|ko7+n z>+zd%4dS;8>iMJUMwP(40V}{-=QZ#}vlkKtjgT?gI8R3`s`{eg^A0iB|9C;N3jtvV z-Ng~;#kXO^6$qh)N`faRB-+@-bRYixX&v+7cZ47thp08jNs?kcf|lu#~em zp9vU17gB)u1qJ$;?70533PMsKum#Eq1WJ#2?+bZ7pACeTd>j>;rVp1okB*+jU>j7I z%j60+UbCER>?m`t-k_0UMwtLk6PNMY=f5dhQ8l$!D_vWBr7CGPcDXr`NYC0uXipIi(5RZ4R25t$~o-$U3fdSZ+t8-MmF==ihWU zps_B2WTuZJSqfEd1jJTJmIrBIIwGFP-`8)$-Iqppx}nZ^1vgyQ|l#q!hDI^2df&H%uZ~e0(cO7rqdczX@s)(9Eo-vb-MZ9T{=?X2emAalsxjR} zDp-RS7ef2fYsNm|W!_~xs+U7sTjX>);xAM$zqqaVh4|Euxo{YB$Ue0yH`R1%LS$R3 z_E+lO@6`C-O(hNK66x`)5glEd?{N3v6k%2iXu|DB7JlD_tIlHzQyL8|YqSl}2YGDC zVO=PpVE0uei+57#cSm-&mw%S6mdRjiXxq5W{LsvhSJ)azPC6$j8(XY|f^_Z&*1)W@ zy3m>x-39!zm0@c~zOZVs=NV_}R#gjtmK1&jPTBe7AFZ@zbRGz_6UwWLFcH!wR&|Kh zZORU;Y=?b=mQgrwQ7Jg5s`cWOAy<{^y4=~BY|8kNP41J6stuM$_oKMaSoT+r{gE=%vLbm}y-G-s!n*{3q^tC?7saRyDEHx#C%bDVlF- zT{dLhAcKm7_JHGWuM**1_IMVdiq^ z7D85%apck0)*q}ipK9LUem#)m&v^B|Widn`=US)y=oK{$PHqJfvPxXB01zn#HFdLP zQ&f?0$}kSU6DYm1#Q#-wfTbj=yH!1g2x|0WP2z>tuyO>41bFp+m<`<8K(}e{bVRRc z;_)`s&>3Igl%b}j4U`xH6cyED;w`@e*RvZRe2WjElbi=jJ?KR2PO|E4(J3bsCK3K3 zO01O90g8f8lG@TKjOF|Rq%J+HV&UYOoY19`zLkp~FG{YsK8Ir~X$|7*;yB&_zla!o zjYA=|t$atYh-F)y4Yz_vl#Mfhr7?c5+w!f^NDNI!Z?A?TFj8jfkyqH$zWRai4c9qe^hVZXz8Ua{_Qt*H|88x@P1f|(u2`*pny^DSvt z0cPlYpbVeN$&S_0igz=*jS?B}QmUqqvPHqKaAx2G>fO4YRa{E>XB6Xs(Qzm?KF6{) zH*UG(7f?FngNv=%+Zmde2NyXUJG!M`!A5Mki?MT(W9PZmXv@ zmep!=;N_2(YH&j9mbmVOT4-HZILhZTNTy1NuR|!sWu45-D4y_D0QqJt{zs;jlrvoW zMFI`6#{NR91Oga_$sPvQT2>*W zRIBmn5wo&P6T=9La7LKS#PfEKzLL;iMp+{1Q`z*5zFAs*0Ls&H`$&3{Kj4$V_i@Y3 zQ5#cDOZZXP4LiO`exN`(4@q9eQ8uV|2&zu8c<`IAi}X>xjQ2rZjo9+7c~B?p(#|;v zer1U!kvAG8TJgQf$Vb%&$$*?mTT^8q!mb=&j!S9)P#ih$wSndg2IQ$5(%D4r5YvN6 zSlmi#A+9~6hT+SJhfNn)&@?dH$60LL#zBHZW2#jikLi?i+d6FT_TdaEj!3q>= zs3B{;qsuhOi~=T+n7bcnD>mKC9SPia&sf-S6=bWBZ&k_0DVVff(=-5WLMn9=GM7-h zI0uf;xB8kYZb^lJ0n~JvuvK$V>}r19I>e+O66f|wPr+;wZh})Gw^&qqYZA}x4c57y`^h7)C>5Z1%3*cW z)cL6g#o{A8TI2pxi@_j)Q_eBD)Y1zWnK6FCJ*Vusx`G!m)?EOSA0act>OlBcw2kno znt+5a_hNxdJ!=)?x{qU|#3A*G_rm|KnYzPYV{szQS;o+Vc_nTJny7jnL?4}g| zq}9Rn^^$O}pD>4Wzz073HN<|S{OaO`3SdI%H!gr$kE|3cZg#S#ZmtN6jU!-W@kLCX2^KjZN_cvo3qAj2yCB?L16iZiG(a`(MHoh@NuA?dUdwAZsu^p~Uhti2ZH!rb9pRfx3K8kW z_?}^DSUvk!SkI1_Ny((_yDi!;g+*N#ElFI*hGVTo^~6evaow^^-a3wu+^vYErC)MU zEPyLe@#)2))oWu=PU`!)g^X7j-n;da0;cWGPIx}|{5}0&Gqw&mh_FTI_8yp+ZyIs# zi~~~V0>b733>{kC2`xluGp9ko+Syq=cLVEdK6dYbAnqPQpJ0yP1^$LT-{4Y$I*shl-3{@hbXlEaQ{OVJr6@vM$U7%VXui z69mW&G~@=wLkd6GC5LthA@FO8P^{E$HP}ph8}5s#;Fxy2?&9$ADS==?cc9DBgZ^BP z_DJ*8;w>hq(8u#n@8pPzhy{cF{4*+k-5}N1fZ&QXpqw@-WKbl7G-h<-fqQ5cUWgtZ ziPTTk*ivA(LV;7lZd*s>eSsM}+`^Lx#d$*#KPXr1pVrK0_^RM)uk}!!5L8>TO42Ru)kIb>l@A`(fi(etM0m#G<>kwwV~O zw(xaW6da4~#^(Y}PMxbp(iU(Th3CZf}3l^;h0r| z=MBo3m?-`p-VaQZT{78zLHSWNm32oJxoy&ks72t34^d!Gj8=dH+swRGn`d&6|j&n&PXLhwd zY?@dYT9b2uRt2;Fk>XXgPObcg`WLnv)u0L7*LN9TQ!dI4(B!mp9~}26atgA|Vl-1g zG1Mt)k?;6P4~*b9-+9z*fz4Xirg8k=gdS5xM_x#bV2|fmb8UMyiN$jH6WDG-k&!?G z7St9U#R|{RkKRcgSQnjdIK`zJd)?yFvD(DPh5-hpASH|!dA=)}N`Sxzdd7x9cr;&x z0?>+V`+=QN8F#cdo=5>iLeFsFc?ywL+hR9-dzt%0?%k)DK`Q zQ)!Pt6Auj>-6d23k2rTJpgSt=6SoV46u@%xuQKC8?cPl+>*s=DEZVpN7$>q1boY5* zW0O0~;UO$-=GT`m&GNYD-B<_TuV1~NR7&M0g7vw8=6o*KiL1c-3(y&pYSCOg_bjc`cG%->f>UT`;z zd<`+z@DhiS8g3Ej`NeU079;}kV+@JEqw=S1M4S)vpZ>f#e9Sb7)?;J*jPQ$o%jcL( z9$^>WxCE2zM$4Kh%Eo-KYvU}3BuuOxw#eC!({l2D6&`xunIoF$i2=Gg0oOH^x|Al; ziE$^IzopsMH;7d|WB#*{?LS*KYZR`8vFpVXe0x7M7(cI?fu)Yy9Qf zJg5w2#h`;t_ksT~YSk0fp6bXA&oHh|`M_xKx|irpxo|F)x82hH58PF|R4t27)9cKqaDz~7a@Ub32?mq5-4r4x9%Iem7Lr&xv>xdzdT4a%LsTjG12W?qN^+ z@!iZ3G`0DLzjcvM4RBD?gd5nN<_J(I18CxC>BNi_)y31reLH!#llOMD_Bg16eH%Z+ zI@5tf6YFG76bE+OR-tMscC-@k{FJTg^1cx>`h^6`{VI4q?#JA4s=KcG>oiD^L_xi+ zB9fNx(}VD&&!0Vp)p;!Sq@biL&x|Y2nRO@szL>_T7f_d^t2f=H1rP6$*dNk9oAK?! zN8kT+^=Y)gvMi3OX~M4qet%`%xvxqm{V^J4{^~Hs3Q6-Ozj$q&l*nDAhHS?*SuBJT z>1JWh2gQ14CnBI6K5U@JQIZuh#0MSj4qreM_!q_$+5dMzf-WI`F#D0l6JQxO0w~nN zN+2rI*O$V^wBuB(e=TPm5fA@tIVG9)#Aa$#3gm`FIbATR^{iB-qf&ubqlbcZ1yjl| zD-G(`AB!|X{kCx~J&%J(tINbfI_uV-SBuuHe1`iI;+Fc-{}H>dI0Y8;hq-TLYGv#= zhtQaY6vT2bzz+NAc&43SvdjlIGFF&@ybK!Fw*HDu_i7fBlm1z0*!SY)u7<9ZY$O+TBqN|FN9Is93lc2hfxq9nTU-D+<)*)73G?0Tbyq-0-Cy$ptt z(t0Hr5qmTCUdNWnmw-k*AjEr&Our;Q8=j1&G=lNvQt&r`N(Za9h0Hi?xKemGQofjwQ6 zEfOUxr~hNrrOY=DeNV)MHAz2xVyBip17X`9g*GZTExdiraYcBBk4MP1N-uBUATzwL z(z076^l1D(WzqG?hXB;P+t~YZT{6!yRk<1RRh#?lrI~d^{5EioHD^r!QsGeT9$#Nb z=cJt4L(J8!Yu(LMHCXyUUA*XMAeb%To(5CqTah||6kx@DMr!X_#1p!dW0fQv&nulS zOv9Nvw>;;%zuZ&z>2W@Ns^9w*v8;KpQHLsLeN%B9pufo^@$Abp1*uxTLE-IYWFj2A zo?eRJCYJFH-lL(A0b6A2icAbemDxEoRkbBCSVS_#pQZc^@503DOu6mquJ*#i`7CSU zMLUE>+8QgcPYL34g1*$KkR6=qQRmqHEk5A1LG#i4S-PJ+D|g(Jh=NHlAfcI&rk`Bg_ySed@e8Hq&)UIEwY_S;&-MbLul^u<^-*}B?;p5!e6 z5#0kXU8Yj~oxOH^gOg$mH;Nk3ap)|~){hGPm0MolJMP^O6W{JFcGSzvT?l;Xk)@<@x=`k3Q*F8qv z;&cbNL}{uYIMz@oRd|#JJSZ&(jm~LzN~q&j#$eMOEX1PL&m{W^W+%XLYMki&Z$kJW z3%K>=u5Y0?M}#F))ibW!sD-!weE{?W7W#FTzQ-*BBc@RDU+x!dFQ4_as9bt?>+JL;8sTYo&@eAiY~+@<*P0<1~jO0P2;5hMtQ<13y0#*{n`AT zj!xOv50?u8TDy6x1^-ynNWte0LY)Htw>Vyb?a?C|D6~gIOy>lWpLKmbHtoGfBOUdN zNTcrHea*|K-6wfOB>G~L9QHlr^�_j6WK+Gj+xJRxVvl#lh7y-4uY);t)n47k4ot z9YsU`HVk7fg4;r{;)FHk7ZHyZJ+W|$aKwj=g&_$VCVFn5%XzSA`|z}+4ItZ|`hB}R z>h-6Be`d>nmv8;kQHJg!HMr^cCGG=T5;3HhZ_JRq0_4a3TsY7Pz{V+}z>;!R^U4*c zJ>wRI59B-)92Vi?b&EWvH(`<(G5A?W)z>EuDMG@VENAb7aHa`I#tKw{0uUc3(#J8& z*_S%A_ZxCIY385{%qN-b1K)TWmCjUA4nWKx_ZnKLSvEf0($&_0@DS~ zN8JOXJXXcaFm^OCYrz(R7N5DQkXKGnnt}yzfw^8s%=A?7hxza;ylJ;XQ&XtC`pM%b z6$5Ff0{(ALcSlTKvIbr@mR`0Z)*iM`2EfO|E5OMk$jQsE!^mat*drqV literal 0 HcmV?d00001 diff --git a/docs/TechnoLib/script-dir/images/ui-icons_2e83ff_256x240.png b/docs/TechnoLib/script-dir/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5f49756ca64bd20a1048bd7a3a584457d4bf00 GIT binary patch literal 4549 zcmeHK2U8PFw@yL`geFZ|P@*V;w1D&)N-z*QNarO;QRz)l2oR(yU5bE$@JbZ~M4A){ zMUW<7Xc|gHkY1#>kc)mZ-`x8j?lU`k&hG3pXZP8eGv_=pHoVEqz{dap0GM^r+NJ;i z@XQ5l($k#H6S{hbXB#ZW`sOH!2L%N^&k_wk58Uw#*BX~{9Oe{(!2H)ZKd9X_X#oyfU5m#1Q82_f^tw6O11(<7c zWrG0%qDlJqcA8#ZrRU7cn@;N9VJUYHk^lTY3j(~2xv33^rM-YYTR?r#*8XSqkBCLbg&Z9G zp-dC_BuoqAkc7;MJ$9jCDbZN_FFIp=mvYI8l)OlkJ2GcKGFRh03>eyeeRF`W3VO-< zC@;;5k3f&*z5C#XoxT-q8o(%^R8K&f=k{8C{Y0uqmWi%PaU6jYo(5);yFd`Pn(!El z9h1vEhwlH1Q*|5X!lGvH`BD!7(^?OdAd$XP8=x~O{-Q}sy<2@T8`8IN;o*)L;K1*C zz~`x^5S%i=-8fHXQ{cyPiZj`|pV*e}T1g-QFmGBzZJ}z9t&~LL?-9yqp3x_EMw?h% zR0P^RfsG7yxX`l^uHgxl8V3PJTxM-b@>%bt-xEPCC)WNC4L*~?BL_6;e`XLVLVOkZ zaY1crUf;C9r#r|ebAHIp$KdM#$G60s#+4?*)mH)^4Rrn^&ZPOyOvZQO09veRcnbCX zWQc5fEAPmQd7=aqrZPBYAy;!Ph{cmfC@z-hpTuotqr$Mt? zY7woww1bOdZZNt7uHxGKm9$w8ozW}U!S8~V?{0A^bi{^$t00v7M zy;S7sm>vMCBz+=8TH~>zJ3!E9INJ1E6=!x^{;q9Biu$){2DGEIbB=oh!`QMCEx$ds$)Rc&7P*}`pd3{PqA}tIjp&y&{w{YrsPqhxaO4qerTDpM`WTlW5 zu*{F5ID98N%XU%ltVphxZ4Tra!)bpNih&)&Xx+d#q1{G`5icBuvTfv^7X{W}JXD*B z5!u=L*x{^0TXODlF@ziPt+=ars9OiJOv1hU4sSKFa z=)|j@+%OFH1Oa3f>ffz{O6~wHhDJrN4=)Y|I6DD)9CPw@Ytx6M2-O;{GQTQG&gg?A zr_VPJ&6+f^hXn|7pvwa+o;bXAc{n)lTn{~TF;3#>=AS1_iaGZheU=*xbHD8CUNUCj z^3&DKA#op+3tPQa@eK1RUg%D!n%5J4ICni7xELQIvd$Qz&+%!EZ!S{js)F!S5x>3O zLCB>-TbYHXS1?}__Xfm{r>(wAU3INPvHaWIIYbsxO^Oe0h0xglZWFakn6z+$6`V(< zSimFunLw;GdHMnWx=-GqPeuvo)l|sHaFJ~`DxMN)4Y7U!J8D=^MqeQn$`lS|1%mdN zK^morEND%3ee@_Yb<>IVIW2*6NZ^*QDg@w`H$3}uYsbleFidycDox+uzraGexRKEV z)Wd(JYU$(enZkGJ3{9REQOJppi6EBrWrXU;Ho*EGRUG&RC-ceTd@*C1J$c=Jk~Ty0 zAJE}+ZgP611Nw}-*K%$Od}R)=^6W|sl);faH`l2OA>=zFmy@8vVK$&%4OTWEhnx^< zs6V-c51bUMvJ@`4zcieGu?{L+ z6(ZMYhQND%M5s7uB)($Pv`1e&xPRDwWGD>e&;;;sA;yn_>F>rJH-M!+=wbl1_|+h6ttu(NB3r*FCdU;|1QOB?AGaVz-O zFMj-^FpfDR$apG zp!5Ji|53`FLrz-d>YnYEv6T0wDN8?-+$@_Nk-6nai){TtA=w&Qa=^woXbB~azV{PSFnB7zJF-k|zJbp8E$W1!v#tcX8%TiKFo-n7uCut-v(fLn$6ypSnrZ z$*S34s_(`S1jtESyVuI|{3uW2BhK-{jQp05>-^UGi}#K$%3bE8bM>i8<~MKu=Z4e! zh0A#tX_IOB39o+SdnJzu7<`KoCri$9{I*mr4A2uJr&$q1-r=Lzfussme7r{sQYl;m0a`a^hI)69ux681k(h4* zN9|Ywb^i7xF=uPVr*az7RYlVWPxhKmOE)Fgo>mlB<7pYaz6VsBW7J04%DxENck4rx zgM6#>hT78o;>S1Jt8MqV+4Jng1ERmSoX9dGIW`CC2VaF9CwL8-Bi|83mD2!Dee`Lm zCU-luuD>aLYJU7ZD?3R8tYYSVzoEVM_7n=hEcv1FN{h`Dk*ik1Q)z?ie^&}a1;86B!(s%}s%T_y4o&Ilh~d4DHn(86bo>p-*Ct4!-v)W$h1{J?4IrLKT@^?`26FF*@(2A4^@6og<7ngtWmIBVp>g{gwCG=1WX4srm*>E(6gC>!E~o-<{=AHg;~h zr)4{j`glAMBt_n{+%n8))~tNAyYCizc)D8wlZ8(Mn(svkWSi{A*vq>kCT}fIzl|Cn zy>PR|9cIRx;PBE5*-4+O?~_|$F<}5ur(2S|FAw=N&4pNnTk#=xhxAK3L=6a{X{DRocw%r8utUc^U?}*_ zr(y*T#U}{tCh=GT-ig;Dn~K`ilK*9stV#@EBAC9TOf4ugkA;~Nt2ej0?du%%-=F_m zz_LA$2jOO2Xk0r}zAZwZs7;VwA4S}3#)0t0SXSerLIo`;%;<|0ji~+vl}hOk9i+zx zUuZGWeo-DskUoPx=uJ)C!2Ep5@-PzwsF1^fj6kXJV!gU9L;{+5Gue#|!$uOssQo@K zR+uvJS*YTwuIPpVsz4PRkj93f17`97b|eBhl?7-Z9~n0f6EDor>foo2fPb$h4?A7> zT%r7x%5bpcUlV8+ByvZ7G1za^zhKiWJonD$xaS#k!hAE4p;QgaM*&tH)GI*HnxRE` zKM&1Lk7kAdR0w0M^qbP-LBil+NXKi;ihqCio{6=#|O(C$v0m`Z##4NXD+__-g z(_-U=I?+`IvcD6z77?Nw;fys4D9CFwg)Aldh6fQ?7N5`ui7^y6CC!+Es(Gr9qTHPK z-0ma)tFN+?V$ZP1e1t=yi(Zs8_S&zkh{hmaoulswfZ1Dqa1RNYC-25^Rm!I<>GW3k zjUOHLY78yVOfQ4@4mA&>xohn_3&n{JwbI7c3dEV^o%%0Fv=51+iH6T4?jF;IPPfqw zokxnwN5uxo9?XI&Sz@-f12P;WQ%GNbFK1CCdDhs}sVDCdBr~;?W)WZ)U0iw42JJnB z7i*tnrsnBMBpw^Ay}gobnSM$V#D;&2_@aql^X86vylX4gc?Y;m(y8v2NuB;;wJQoV^z3UpIO6adgOK|rh`I83cQ92vN z*nDrN5bxLa^N8pN&PPh7e;t?O#;^ACf0T)hr9bD^{p0K0aKs6fP=#ZL0@Q)?jH1G4 zmGhC&x$cBzQD~bW$K$+5{ylRuGYJ=lL0%_3KE(evW+WZI`zqmN3H0Yi?*N0(R64#J z>}+>eAmE{uko29IXjycIN3NS#IqY;9$u>caW?(bvKw+_ zgG{F`FVBpFDwJwR~R;O-V!9D+Lphp>2% zCAeJPdrp0I&;9O?nVzZYuAY9Td#2`@Ff|ofJRC|K004j|F9+2C0DzA}z%e%ZV=t5G zEb%Bnri!vqfK1uzM9#CcN_%;z#n=8gA#PS3;tcI;~uofXisxsK~{&;VR#1 z!o>>A2X%jk6mmfdq0-jyMN=cu0=VG)#_Jf_>&KuMX8ti@lH{h`>lhL}=z0k4IB519 z2z+_ZC;46kNd^v6LH`zyWz zc=pCDRd~N_<2su2s8&{(HU!aVC@&H;3-}=D4 zmn4&Xqtz|N;fr4ZX*`x)O>~I#fDAFWbF}%9b@c^V1-YMxSf6U)DQRkB+43Xqb9MFy zjo;f7Zl(+0@U{ZOZ-5LtI^A(gphls-(I>bAO%b)X0%Rr}JgWGZvD+JlsTxN^% zxJBLbH-$q!0L=#%jxX5Vq_FKJ<2w!*===-Y@qzQ*_ z&ov@B+(5Xb?{lf2ViA!OfgI3o#$9BtFq%%7KSq&MDxi7pySJYoi*Mo(W6r!DLSMQT z5R^D?yx*g7)k}}4ziwHEoWI5K%3hPst6voipJkIw?!%9N$K$TWC4VuQM9)7yVq;a$ z=Z;n#4~)-1561t|Pxey=Qu^0P2#JYboJR5co5Ktl*iAC2?$BN>JINDo_+7dptH4MZ z=#a=xrMtj%`CVN()`GKp3RFADpy$xF7~O&&p0-yeG=xW8uhj9Af`YV6uf@~_v;;D#h=*T)D!O`_6(IwY zIw^B!$W|O05eRI*b>Pe%GGlOW`<(mkpbS$G@7HEko`s{=g~2c4kqO2D{R_c$HXzr|(vU9~bVZ9Zw90;2AsK2ig}XTGY6fY#HgGpEaxY zO`D_Z@O8%f#^@5G;myQ5fA(JXK{rgcieDr!{s`~{nU%CRe=1;4og^%^Ts{A8>Sq8@ z7MLFuiJ9lh@TXEbSXQb0;l#nbg^u{Ky;vCuCLR537HT%5FxM^fs5pS1gq3J(Tf!*6 zAc~!aiCB8(;cEmBeX<`V&xqvsk92&%dsXd*G@M$W7!TVsoD%c%!p~lGHEz(ckd{tR z##JAyc1)YR0b@JW|HWX=EIHNMaui<>jUPal5F|-#l#?ar-oHSbCyZG*EuqOC?V5Iz zROd8mBy{ukJ_DuzLTBsPdF^WZ7NW}CWcww?Uwp))_brh+D#JdL%%G}bh zEbmg}yJc_xX1_|6iSomOV4IgTV&UNVe-P4B!*v}&@hLXe=h7%`bcW^Eta_BE?bf*&82)UKj^6nE@ zA$RoKncM;1&!nmY^=yjr6=wgBr%e9BXAxKh^0A1=&iQhn5mfUB$_1N5DJ-DZ4!pLCChW*MHin>-!AX+Twe_SsV%)n#? z9m<01Z}*b;{SU$Rd-`axfZ;y8#-Dau@wD~tukEo#I1b5JhkDp%r;hf2&TH29Y`$=G zCT=}&CU#_(G5)E0y~*>piG@IHnT&WP>Bef5eoMnuRP?tb7aFH_AYy@I!S34oD{g9j zt&5vt`pheqh=GvgZDzlqDuidT)11qC;R35@PC4Z4(p=SICoeHq+3uEqgbmq)}q|_NRzcOHv0J`WLpt+1=j?0A{<5%OLxd!f~^V zfofe-Y;s4+yganmBlRs9L-MCkb@HkcIGzakx6p52sHx;MA}LA_@xo(MP} zDc);OVH(SgwrVlgqy!Vb7cIqe8X$!ECB5e#-)15warssOnkR%x%-o>1T_T=}^z83m z>?c?Vcl|}zH)Gve#!UTymO66c$B^I*%B*@2y23hf5=?aCeBzz7EJe|b9Sex0(wO>7 zRb>P4peOZ<5iwK?l!Imu++&w7Syj6VQ7HaGhAd%tr!?^1W9BpDb9K6w6&K*5X?Mg{ zJ-9!QlR>z>DK+)226mPe<+h_rzFAHI!mzVV#GU?Fzw~_RoaIT4yg6y4BAsT`&lzDE zN8&hg3mPdVnZE*z(B&{cUCbdEZcwCc!M07oJQWk{gQd-> zr9dqLy@o0}77srWq=#f}hD*4;Wr{`XhNy3(QRG7u=})1~*VvvJg7)}?r}&$RlQwv$ zXdGV%bswf)=onk3jFfL;P++Q%v8Zx@HLpgdXD??Rgfd0J7%TheMo&G8Ri zY%xQ58GYjiumJ@R#%;;*4f6=Jqyt;B^WLz4)&y*MwAuEm);Ad)VfKQ8Sr0CY@t@~> zUQjgZ#QB*y&{~9gc(!{BsVt<##<@4;&)IsJD6YtQmo_p%?&3O=8)wZazJdioWa<4X zlrD5`HRzYUVx9XSHNrRMeJbsZXE$L%`CjK>#AvI+17q)*ws2o~m+2h|RXRpuvZ;D* zQY%WR`fzBy@JjoZU*XW8`Fqv?ZRVOCeS4``J028Q{72zS6OggtuOq;?NrF=gLU{T1 z2Ey5bAX2R!_@I`V<&n7vuSD$!&t^oE$C16?6i^2+oXgJEQ^GRtyq7y|3J zjS5W(iH2Od&+O~1mD#qt_V(U2`D~yWIe}Wmh)Pz z`3B*tPj%Q1@@njj!dC^nL67Y3HjBux!~dkMt88TTtEyZ&gy!?kq=hW3X+P_Vrv0a= zk$G`d4jR#UC3q&uVr_NfxeAI|1?9Qb7nKH>x*7HzWEl1J7=Vy~_xZtg^d+=;~q6HX~P<3!HF61g_w>7y^ge1>z>0>CJBlwhy*m zu^e%|FDE`Pg>^K2tw_~`;#;lt;kHE=dWx%}d@{Ep`+}fUYEkRY@7R4z^Gi3a z%p3!^U0{T-%L?kl_g;>HbVbT_)6tT-&YtzE=5CeyU1!c&e8r`X(rWY(&&Hn$;!z<3 z@ZD^M|7w69ux8!!$a=u3Jm9vMnxk@c@;-#Vi;?20XYrZU4{Zg*wkL!!)33(XXlz1R zYdSCxbAF4VGcc|P>jR^>ye$Fvd;}`W;VnrnsgUp09az2h?}6$Hh^S}<)Tc=<&3>*uCLEyR_hY_tr{or zrLSkS#T^|h1|_TSdo$fLueegLlN{0i)^=e2EtbySBh*?saAY}fWW_pZPj89qIdGQG zuxq;}FZf}T8*ZUnyil7Q8o@Dmf8dp6l_IDkJXm0=&ivCe1tvmX*|Y9)KZx>*u)cj!gV3~eOWE0KE$Vd(C$NowTz3Z#GR58MoW7U>(7WibQR7zU zr(M+U)R3#cCD?IbC3MmtR7?nlyi9(d)Z8dBwm5Yv#gE zH~5Y@zD>tVcGN_vSwLt5=jvf;p2JDnXQDL55iWH_(o7-&$C@w1ezEAGF`loMo{^9s z+qL-4cT!g|bS7(^aDM{#4CP=QsdpQhA-B3WQ@8x}1Z~5_L6>yv41-IOKT3S%nn6e5 zjJw+eepy<9mtX+LaCH|?5I*+c*Y9Mnr%8@i5vn4Hu@i=9XtWGol{AM#ixz~m!Q15N zdc*o)e1I~VccQpl$M!|<;DHX$F%un;kJwM!;3X{(+24sQz;UoP+D;pG5OrK;NSpRJ zAoo7h4z`5^2%$YZK@il;j!YY-k-Zk}e^u&AqL*9qyz-Oxo3!(5hwER%GJ1>eeJHnI(0ne%RzAyI5mDgG%|(-4~b=*CY8r|1uLy`6pa z`a`AqLvAMzmPMnOi;v!%;Z#k2RPeMo!UaOYtBz2^Z@;8%ZuCM|L0q-P*6`3fqiw^L zL3`*T0~C5-#Fy`zV$lw~_4mI6WLZS@zu$b)@(M16E0J%hHBZ=3P0gJyo*6+fXZ0|) zB~_}943 z?Lc#&-_51qs+HcN0==Y{;S2E*(c#J}TF1dOq>+oBq7^BO)gtN36`@RskHQ1S3iYcE zdr^>R{%$WSvX(kRE8=0x3WtG3iW!hA)a`Qss{lN*6S62fAT80qpF>~U0K*^ef>uYa zroXwa>=4bE(Me{aSAcQ#S=$1-=uQTg;;=5KvvH5q>2fiJX)f+RsBB9uXVi%6<=o_J z;Fb|nE-|%J+QxjX*FPtOMZ0yTw$HWu++eB$65&pLY_$8rd6A`F5DZM&a@ox>EyZF; zI35+4PUyZ(Fq1PdiWWylndF0L`Bi&mEFQ4%ig#h6sXl- zY}`wuiiW&n92*N#!?nXU?R|&(llg1N@n!AqFF{IZ&>!ujl|0-wU5gGY2E08{lSjF4 zt|sNhwGNVmJc`EVWEc7S%r0=*uWj19qAzg@1=s-H)o&Wz<Lli7-+}2Ha{kq=!XZ~pZc&+Q=0Cr|?#_d2wy>XJyrz^0!NJym zO7^0TjMo8~-}C35db!jXTrFn2nwOg2p{IJ)TMKtnrmOTK9*AKe0{j(&<)*eqt8N!v zpq|U58&sl=USB36p%G@>`5=>n9`TBDZ+p}y$w2uADdGxvcz^~D|-g+X6KZ?b`a6w%sL2=P|o1#BP})wq9P6^I;EBnI=7-f6T*2aKAh(r zXjh?;*}}bE?&sMes#m4`20olUS!0kmkhy2DS0V9I zOVfN+i{L@-)F3v$JA2t)D}TAUs6WZNKJ{$kx`%Omgx%I7Je24zhTUZh(V%L!aHijs zeCcMA`}iNqfj%Fu?+*QOj<}bl1LV*Ss@{fNU5=lL+RyR}X`nw|5$c(I=~X%=VUF8A zjt6XyO6Eiq%OTZ+GJkTSuKVD2LWrlV!?~tMbg?upc?2iFnnE_oJ8?xt5w%`pFE$TSofbGY9Nn%^00N{i~> z!<-d}5xbK}N##I0*iFO8_PIgdMSVO=^HewXRYhMjzGFhagblsyGGu2-wW7GZZ{ zQoU1S*zc%l7-^UdxP0GxT<1fpCrTSsH9D$z?_|R6 z_Vg7Qh~N<#KqCEj{{Z9*u}7$G?~LK>=6PI~v3uf)l@UJV^0t@wG+ak)aZ`yOwUxZ0 ziHYw>>qDBv?tyTN>lry=XZ*IuTz=$P-6wpGW>1{a66PVs?H#@p6~=_6dhZ zQ_C6oC7I*oSKm7UI^y|S@_%pNF_jc0z9XL9|03`HyXxpE1D3c|=~P-|F$QK4)n|(p zysic<{o^^p=+kD)6#_wCVnRh3{vm;FfO(3hp^DhdCadwzK8XzOBXkoPy^at}Pap*v zBU(QN-y|aejaOi@kWw<2H}EDHC;A&JKG2L*Bi1ZUvuMuO9`swC=#*((@P6()>?sWt zSXDf0QV4qoH^Tn-f32+A7sI%V8~ZP)1~6@8g`2`)UUIaRX&f=wzC8&T0D+%B;88ZL z&{X@v#(SwT20&G$4|rq^D~AiK(oG-XF=1UsB7s4^AE5^`5hh(e;#fOR%+1EhfO@H| z^%1^X;6oC2lZX7+_QP$!5C2yH7CdlD4a*frVc;CDYPb|XeSReoPs*JS;SMlZ9?j#N z08l}h{pNsNINt0bkR@G~?a{{%xO{8T{LwZ*OrlaiqT}-+i-P#Wt~zlIz^>o7J46EY zIKG)9Tbm%h6~Cx4ESc-WZhQQJVs@2z?`m%1Y5_5Gws;f(UNDa!Cs>G+hwmK^7{bc~ z5fI@3gCSrr6)-H~KMd?0&220_|EB?11i~u_5#axq0cs?h@X_G;KOQt4EnVGBoGk#7 j=8mQoFXZh_tSmGvOw2u<1}#J%l>qWGD$oikWB>mG5~xOM literal 0 HcmV?d00001 diff --git a/docs/TechnoLib/script-dir/images/ui-icons_888888_256x240.png b/docs/TechnoLib/script-dir/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5e33f27235d1b5cf0259f63f3894a6be33c679 GIT binary patch literal 6999 zcmZvBWmsH6vi9I^!4hPU5L^Zs2n2T@2=4Cg4nwd3lHdeFfC<5aTkx4cu%N-+2@Dnp z?w8&DzUSG!cYmByefref{ZyTr&!bfS=cPE{A_)M{_^Qau=myRos0#;zfZ>Q;mcGYRie@({fXRC!lf?(~P}uA5O=^WkN6w$E?Bk(QZ@d56yF zvzCin``<%De?$=3f{5%D%>3Rj1G6Iggn@+A<^UREK7ar#ZuV1uR{tmF0D1KqJXc{A z%xfM%w}%vYbcT&PdfJXWqe{@F-Trf1G!PdObSLjZ_+aq%)c>XFRvZg-spg=oj_&;fOm^QKjzig4q;#%o~svm01A0n%NG{&+6qNHCHpjv5-Fjdm&ppQW@gOQc^ZHpV-IqO+^k-I=s7UxRF z-R`7Yak0kmg&9$h1hga2of%GS5j?9PZP3G8 zY0qVzY1dmU>_646Aaqp@=~(-1S>H3%0EF{C8r?%6R{leTHmW}L4@byn3zD(w<~E9O z=Fn0y) zY}2L1AsRK!Z$gx%=12t}dqV5_&hRH<7OR=c;+t`wxrz(}MSDEjxp{*oahH%kyf6V` zAo0S<{8~I3yH)g{!uPj5<8J|IT@-Tc^VzIyi?Tzb@L}&FlF5%e%5=Qa7^9eVC$*`A z82?nDIx;)K2d}6&TMusbX4q*~w<0H@sgZGE!VEh_&x+dXmDx|3XGE*TVtenrF_d@& zOU1DjvGy|ES4oRGhn5;zFm!vDs_}%x318u~U0qSGUuPr#>uUIi_kw&J*SY-yYi=+Y zSWKOfJiwcNofx>;_vN4L2ROpKgvHuiY9Bx)xB^t%?MF zP?PQuootUA?J1D>+&m*iHdeItn?^Q2;v3DFgbnkz4*vq({R&KBB3%!cV5_LAc2V8- z%u0X{E5>%S@Xqv9^EGx&wLfk}FC%4`U@@CmaTcu!eHJ*GV~aaFP>(5pa6C#n46Fa{ zL)oQX4`ZT>4YUe>7xww~^l$y45w{tA^R6X5E9FWBI~%}{6KQ_uk5|hIXc^T%=0M0<<#BJ0RRd_O;3 zsb-D8O$U4S5BOLl_;#4cj;)2Hw;;O_e`}b{FVzp-3IL54{lXt|va~$t(hFS=qc!L) z-3e~P6-a%iT5Ri_Lr?B+gKG~s+?*f;UVI_B^JO>bs$O@!q-4u7(Ml7m|0^KP0oU)W zKGt(FB7jKjw2q%eJLKSlr6|R_MXbz$Lo%+mpGFNp){u);^4_8Q@dp# z(C`~#{#iw$hiaH|e>D#7J1QrG#1@WlsC!qB+e+0yo@4d=SpTXkr--hWpbISfyP>Mc zYi2kQBa1khy84P)({Me9RIes%E`2#p2KKd*kKN1Q%(M|Y>o1(dB7l}m6tl%M{_Fc- zlLA37rfpNZGi_--$j?kmH>Ao0CMGF~4OIuoyBJeGYckr{@11Tf=O-0{8O!w>=)vwA ztf$Cr5BLRwW%tqR@{BrIoS1n(hReKhl7J@GP8|Zf-XdoS7Rn{}qED97tGi<4k7H9*9qX~33TOxusi*f(HP z&viDOR1te?v8OHDy4Pj1M2(q+$ELZQcTaHtGdXfknhJ2j-5AvL%4v$HRh0~PBL4N+ za)Hyn-KMJqXLDdZLy3~% zQze#I%SMB6QK>s`t`$If5J3%(O9R7zZ9!7WBrhq&sWhXw*%Vp!4Eey}bMe=Y??HU! zb)us6SBE=Ax*ulxk;mrf0T*OMQ8$rfO}qtCpd_?icx1?f8OWKKSv<}E=@$orqgn0$ zf1W(L`+WxsKnJDXJt;lDGWz|}V={IGOp1qeHTB{e($_>WB^Is3CQpnzN7ku-vgWz# zEPgAYrzU=WLN!xAEIf0P`5LphqD6{EC&@YQbIF2r7miQFZ?-~Hd`Wt}`#V!iV{U@T zdV{*T(|fvYAr*(4T`JMaY;~#>68=#ibONi$`qx`kTV0TP^EbTPS{ZF$+S%_Ud)3DO zM466a+aQJA%vb%~h)VOdU8#yO3NRcJo-%(8GI=&pb|Rn3hh9^j9b=-8+s`SuQ&T#C zG`x0elQvoRIyHRm%}r*NmJCMWxu~l#gL1zt92X?FvBzCq(!TY=%}T(M`2fk%*IK;L zBXT~eU|)AqjR&~?Fz|X7o3)jQBygoIaU$uRnV2WVA*`hie6NFj{fSYR$tSf6-H=*d zdg}V*#wU?b6zPJx_?i*)^2ZdWsa5|LJ@!W|k<1z1=y^2{->z_u{ii?p@!+*1 z{h8i=ictpi5|yFmiDrcW;%N!e{dA-3vMkJ6wh__#hsHxo;NDM7S9sqrR*Ea%B8bay z%X~oeF6AiMIIttj{)0rXEtx0%X!)!~g*1q(y!4>GqHs<~ni<`37IN#`5Y=we;sV48 z0^j>rz6pk@HOv9#P1osT_@$Rqji)f6X1^9>Z_zAx7ZYa@{Y<|wF-ZqzZ;N3*tvyWUlgZae9C@OZ_LDT2H`F?q&u z!k&TYj{q-6?lkD3=IGZNqwuV3sEQZglk180ch%^iZfE(@dqorO^(^oR2@#VUjpZ92 z*us5g!F35st14zVf55PT_N3~({Bvd_NP8L)=`w+^BdtEgl=jgASgv%&x1HhxA5DJI zz6c)lWhxJ6F7wU9r|m)ug)F^-AVN@O;4qgQPN2i#$La#d(AxaQE-p)9WvV}$aZXJ# zz)-VGidtmqQHL?Egt@AMsbz!!2?#$6J>2Z_?vp(u*f1Jy86l;U1fr|I&^Aw>lTt-r z<)_$xVFFdc`nS+{OiM!u^4E2?nETPkyl1m2;|2$E+_PRAPnKYr_#g8`WNKaK4F7^` z?Ubvq{W1>s1^7Y{HItAy&8^_JgrpO%s=DZp4tZCbahEi+1%pC0#fCYEu7hL3$tZ50 zXuFu6Yp-chB5r{mj(GFKp_Ly^d~x}|agLYR8*{vMq*5frzoTSB4MIX`VXWcT5J(p$ zvb|v$4c?8v;T!4IdUfGv>>H^7+@>gzX^B|paL3B~Eke}ziUGpPQ}dIn03g4gRNJh8wrgjZppN344yAl%PT>?dXQfM#P!sRwL z;KMIu(ce?sUkiv?!Vy1m=vGTp^K>83Yjo?d$#<=t-KkL}_==YbTSL3tgWR6)-Ro8r zg>cv=%3Rb9yeFBfD78$8J*?6gjy>9c`q1R8Qn(CxX}XM8Mj^JBOyR>=?rRKQXO9*gvJyjfbJrs0U~2168KVOU;jdTE zc^Mh^)?{DY*$cO1{5f&&9Bm`e-;2K6o#q?)^0k*DB`UkBhVcdDfrep|D->3J#MJp+ zXY1nE?S}HFz60zQiVNOD@25Sa*0SK_@r3 zC(tKK+*fXb0BXgdWEt29pxJlcGHzY zJkOun3<4jbr>1T_TTE+(G2fT~#EBMFE0%pmldkXeM2*ccV3jW|Q1%;GkEKr2f0jK$5CC(%my!&suy}Ege*D+mwSTsfwKm{=38iPdckt95#-u`Gvf%NB z;Jh9Y$q!*z#v9yQDy~nPEHhs8Qkw?&{9op;3~$xMQ7^lQ+Vhi5nq!hLeB_uq=fV`i z!E)geaw+Zv{3e01>Ja?YPHdnFy?gNc=tt*_9!=`7Pxa?6vDx7m z-0>Iz7kq>(phWuFYjg~71xPKq{iPwgaFzo`h735{1u|PL&;op4?W}XU z*Zy62q5Zpw>NWW%j9#6bduP-Wx-U7vc>pnX^^HJeuMF)nYzFL z%R|OuztH2Mvi-7KmK*i^jJvfjk^KvfFB=8yB`>Tf2m;=skPWJI`bo3orf~30518bt<-Gc+ep2#?If-gL z;_V5G4bEA`J=zvwI~Q@$Og=!W8uwTmkeO|h{T!d3G}TRwN4S(@6%mj>r>tEd-;I6xK}CyHNR z`W}vjd36p~^P67IHm7n0WplM~-h0G4d(^lQdh*;f$GS9QH}m7A_@SjdB<{Q@lSpks z#9Z>MGSepD!)70Z0=($IJ>f|tC992?O1@XfyaXPp;h$rKrsx6fGn7zu0DK-m%11pb zGs9l*hMI>!-euGLyZpfz$09N2tK7I|b;S-_#kFUjE5M#v)sglMJH-hP9PYzL!(X=C z&l?pTPZ)^!L+CzJldxTEnRX$U#7DonI=OJLC|?k4#%1GNfv4AB1Wnw!xI3XLtci;D z>-ZQ7cE%tm1TrT|p*;#G65?!pEWW|rV?DJVanShnI9f(F!n8!3pJz=ASgeotHM#nQlcCth-Uv8eYLIFq|3 z$8;wJtnCMzOA2y}?03AoxqP{&<<^LHq+AC=(zuu(*k+;i3vxtnzWwUcSRvqT@9p9U z6B$%<@gcw_XUet5{BmU@iP+3ij=x_$z4QHD)k`HvNGXwccALGY(cnw0iuw^T!X3kM zCPp%7p}~l8b7j81O$PF3Yj&4)EbM@*agLVppE|pzn$sS(tEqN45aMSbu8N?*|P}v74M2!K~C@*$2i}SB=KKK-lw5%5K-;( zx7f;>L=##Ydm&d@RA~naR#0%3 z%Jt(5o)V(kBwAXNS$kQ*X>zg{Hz$*p)jQ~CPvPAOXWSlU?UV&`;kEB#yUYYnQYm~( zM{Wz^qIPF1>EY9Qm zs(bJSW9*o|Vh+{F4kmXlq<#GjIhTPKk38K-n5^lF$9s-<)ehAI3h7s(%ZAM}PxI~BVn6$b^R>=qIM4`F$ zHJIDKBpfOts&!OC?+vc@YFza+(}>X6gGd#)^)Y1hg_B@0JN)W{o&aj8uTC07^&Ms0 z+%4m=-h-4rU;#PK3cr=COqN7gJd2o&8|~IR-aaTjI5t4v;163AT%imiB9*B`OHKYd z7NM%=d}-LtFW0pp5c*3wNhme>^b+O=nYY9$&%s0Sj+J~*BL>Kh_`#Nl)sIOAZg z@t&kUUg#t5=ox78pG2wvT1_sF)`xJ~q{34riYgi$4F=znBeG~miClofeMJwEaUBJtDa?9tQBUX0F$_zoU8SmzfCfb$uMED{p)utjDJe)DYI z|CEyh*7Tn9ST3$vSa2?msDZYHy%xc@6F?0j`BW54t!2@(cVeLa`6Iqa(Vt=&R~pre z+kdK%&@j?q&W~Vtepw;nuBC_|N39bWl{VjCMLK`6Dg076ctt`Gz>vl+96WWc@{?M> zSc-4f6T=QQ^XGcPBDe*8N z6p)h91fy@X^D`W}r!QrGa69d*j; z0IVCMHC8T5WH;YpbB8+~JA^kzJs&&r?!uzKV&i7BhyG;ZzAYoGHQ!UkNW2O?$))({W;@58;aMHIOGn@%AJsy8Vz3^2q^tH9}wG*@PwtEx+0T9114@iWE zUr?7HBqqQw1{UQ4fy6){TD17Y{{Xmo*gDw<{W}08DkdN-1{V4k;A9w1`UrUTj~R44 r?0o~QyzKxowjS1Yj4Ezc4tB5YtZak42JFNil>jOVn(|e$mT&$CkHH7} literal 0 HcmV?d00001 diff --git a/docs/TechnoLib/script-dir/images/ui-icons_cd0a0a_256x240.png b/docs/TechnoLib/script-dir/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7e8ebc180a2d2a74739059799407b8b7b57a9092 GIT binary patch literal 4549 zcmeHK2U8PFw@yL`geFb85=9ZD1*F$df}vOGyaXvKy$K2df>fnT5l|3bse%xZCPhLK zq(s2bG?a)Sy-1T5a?x+*n|uGmeP(CR*`0mn>^?hl=A6f-#y6Q6_!s~H0J9!S#~c6v zp1FW6dYZF&QcwTzY=gzr&=N^tVEF&>Uj<|d!K-Hi*#?;#TL5@jZ-D7d+aKjhUB2ay za7XiT$P6-HQsvS@8Ne>u30;%65Ra9O$98#q8tPF*3bZzTz*N?kB)u+wBUmd+0T!5D z*<^r#Xj1>ZovB|~<30Q0ri+GeWcuAh#6Q2zf&gzD+|&Ui&|W~DEuelV+rTsX$43El z`#jYFfOD>TI+~UbzO6elx{w;!AbqIU%Q;US-y3k0y&ZS`{PXJ9%GKuT? zA=YB~_}-7h}grk~UMM~1{IJu5z36&nH&VPs=tlLlQ$TWf}@j0@_1Mr{7PN}kZ@ zU@9N%V%HL9eSE z*BdLzdW%d9Pf1SA5`lAsx?6C@pGL*pIra&^83Gx%WYG^8aT%R?OG4Ou=0P3R5)KZ5 z2&PGFszDp$u%zsXBYLrEImJ}xFS--_mkY=#l)@OKCnEoMOo8S*eqcoB^(_J&4tmM< zs4&xp4^NNgy&HVP!O(^_6JQclp)V-Ib9=q9aWcaz*Gx~fED_HM%LFsYU%*S)OnQwc zjLYYoLk)hxsCi6qp^!9HRp8G%b|f68yfB?n<^DBz9!E*WgJ2gV*g5_E7alHp*g2_wbc8Pw7*-B9ToxV53c2rO-Vs4Px{7M!NqIXUcMSHv1cqfD&&RnMQs) z8771gCX+j09M{&*+~vB&SSU^b{}8I6?+$$T9I*OL*{LYxAHX;*iW?dX43jc> zp~TZQLjbC#e#FPvV$ou|K+q=`%KR&iGq0m)&%Qcc{(18s?cH)B<=dn&oKq#&CVm$KVlo#Io;OGBX$ckfqw0sl%9n2giktQ~NFXr`I; z@h650el?%I!6y~!d;+G2vdswoOkzni?&A=OT9T`SipWyQFEyIunl_G*e?HE^ zx7hkb*WF(Q-{^pB`|k8FH76TXH6UL4I}2h>bLnbqDDskSJx^zYBqL{y$Sn($8Qire zMAVY2aEEb~T~WwSd>Zm#SF3TtfRem42m@SaPkNC3#AX)UgT%TW=5u7S=dxp|3h~tk+8yZee}?!M9HI@f1WTU?%HqiNq#8O^RmBZ`M8nW z4|fZvl;5BN{Lb=BYDGdiZ)y8 zAJE}UL0VRg6Y7k--*#>qd}SW1`t(XXl);%iKi{ne!56tAR#KrNk#?YdO;$EPr~Ghg zL?F4G51g8yyaYA|gz0Frg48>AICegIAO6!sUwFPVn!UV}NVFIh?iYutyf9vPz5yy( z6DHSbg~R&3N2@w%ro3d+aztG`xPRDrWGn*Y&;syq!6%Nw=lpy*v1>S; zz{fdE9!dF+My~C&wlU5dQQi|liohaCEU{7=clSmk*wsDU+doSXunDD0ppEf~z7_WK zr+{Ip?==2A3sWeggPH~cD#9z$y`Scm$bJE%)>E|H9P>`Q=3WWq&5Gckv?(2+idix- z=}@U*Mw5z1u`6g?w5skq?WtvLzqBse`dg0I`$C5Hc0=;s zkPHED_%Qv>At$X$ZQoAYc=|i@^yMF^9@eeSh=MAFRi5FHuyr-LC*Z!C9W%qiV99!$ z+O4V2zvRN1wsMwg1WGvGv~LqgOA2pQZi~E#pY5Lj`j`sW1jcRidq&GPu(oq7&iz*W zKqyJ$uZ1uC=#zeW>zJF-nx-gt-}Ak+qN{)H+eFKjl(8fvzoS10rN}hbM=2ZHn7&EW z&8^#HYV0+@3zAc}_pVhH22dU+MW5s4HwjodZU|T(EZaZ2D1Vuc&fO1}CSck5&kdJ% zi5gTPGKuKSk8XiGTl>tjIdMWO%>rJ^?&*|Ie1H+ zQLN{pqOrow2FVb%V>X_jBIhzH6s6~oS_oYp;iE>C%Z8w|lf!Ev?jfhYkP?FOAJ=__ zr3Ndn*>IP;iK|Ccxw##$W6H7snuYuHC7o)bP}ir&X4B|!Zd3cDm`a244dW*}1CN%5 zXbw16r3xZMsYF85zpYIaVr} z?@&!YCHZY9Dhmzcwq`}f17^3P{$})GtY|@wRkgs2TGgSwUV|As8%gAY&4}SLTG6V7 zW4_tEA;9}Q!A@(ZaEcrzDlf2bSL%{R)ka6gH9z06;tUEGAxQhi>~Q}sg1^506i46bzM;PHOzX~mY*`jhIiS}ZN2&$pmjO9S=Mj>^wMj=hEu zl~8}2{%}WDK+?okXRZA{H+!LjL{Qw9wi7vK1jiPkap+~_ak9^lCE_h!OeGWGGC-f1 zVRpAm`}*sOCzi+Ga`RF(!KxOX_nSKFZ%-ou%u?^0ue8}s6S?Xo-QGlc{EYuH{+mQ} z>M!OEuy)pxcgz<<{Cz|GC0u}FhbpDfLsov{TnAe9J`HN1 za$1aaKcULuO}iD`>6xOm$wW+_K_~{}#cJyGb!F&r_u_WE*8>}sUhJ6ueSj+chaBTO z_5$EOo-Ic;$S9Ktg;7Yrv0}eqi8w*$7sq2td!fj=Cb#w8?(xBoqj;W#K&Bk`$}tA3 z9AGH_)V?G6ZC=jUdQlN6RDFWODgd0RQQ;0q(jfFwegfKM0~6S+>;@7olQV~&k49?f4c6ReTPQa($S^cob|b_kZ$#iX{C8Kz*x0%0 zo>cBW9N_VWlazSRa?1##MXSou-fxeD!_&QLemU3-p!Hs?V4m6Uct-_K_|&bHnK!W$ zV;63=dGgzIvcKFCOuQk~(75AeyWPI#G+g@N6{x%iJmUeHX;4Zap?8EBjG*?Rg>>ai z2KP;zLI>J)rrvOVNW5NFP3LK%e~$B;2#8-H>%?dKvqQey7_%N$0BA{1=_#M`>JpGj zx^=X=@Ue4rw&8wAx+E@QbDpFk)D;j9<|OP%PJua#2WVcDDKfA63c=(IOQ-ItOLyLj z#xi9OEcg{vTTL1PH0YM4?khk(&TzrkU^aY+ypr5 z{jp4uL+LRby+u5hgmq)J$>w4X_2hrqq;M%gOnCFRl<7qk=J7~NV(r#;uVaI=;k)yH z3s|;iNg&Le8;yH+`qw4sWA#bWtE1?ftr!s26wPW{TB4{eZ7}vcT{CttS+z#yeHZD` z!Dm{7xPVwM1jvxV5cImPfv~WUzB0lD0V?KmAfl1#yl9`E3o(FJ-W+yQ`0C&D)y6G7Fqei&raMZE$9ts7fa z4f4?J_L;XiwLe#tFZPq{Hi=d2HL_a#J6156HfF@TAh; z*?Y}c7mP70lKYjiy#yEAjAE=?L_%I!DCR2DHw8zdS^Oe`Q{pKe%3AToxCN@8lKi~y z{NBUBt1t6X6V9;2e1t)uN}rcE_dBkxip3*do}=#z;&-%u?-?GxK;Dbzs!>Q^*6ptj zm^eD>*BoA?nOOnx9cmrMao0O|mq-wu>SauA6^XMeyN#cZXde*AQjDKU-aV#`nCYM! zK93Mnh)oEUJD3C2u*7fg1Z6u(rIWt=TFIqI@vO6HP*2{$Nfzqqt)jply2Pr`P1<{K zAJze>9Iexn7%VzWXJ<9dI_s1qgpT?U{aFjU?#mtfXwP1}`wno0q-!-Ch4te$o&7NO zv0K{_tOX8j$%GwNi1XUiA4V4r(b+)i-C0MYc`g)V`!_Vllu=)fmSLWy3MWmjV{~>( z2}Qmx;l8gN7vOQhu1Ct|e;v2u<}Z#5f0Ri`pg-r)`~A!ONc0I6kHauS0UE#sMlq4I z%K6CTTyOG<7_>u(<5A(mz`ps}+2ji&AfFQ+KjMEIGm>t=ebp$kBvqJzq Mq_Ix57W&cu0AIB!=l}o! literal 0 HcmV?d00001 diff --git a/docs/TechnoLib/script-dir/jquery-3.5.1.min.js b/docs/TechnoLib/script-dir/jquery-3.5.1.min.js new file mode 100644 index 00000000..d067288a --- /dev/null +++ b/docs/TechnoLib/script-dir/jquery-3.5.1.min.js @@ -0,0 +1,5046 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!(function (e, t) { + 'use strict'; + 'object' == typeof module && 'object' == typeof module.exports + ? (module.exports = e.document + ? t(e, !0) + : function (e) { + if (!e.document) throw new Error('jQuery requires a window with a document'); + return t(e); + }) + : t(e); +})('undefined' != typeof window ? window : this, function (C, e) { + 'use strict'; + var t = [], + r = Object.getPrototypeOf, + s = t.slice, + g = t.flat + ? function (e) { + return t.flat.call(e); + } + : function (e) { + return t.concat.apply([], e); + }, + u = t.push, + i = t.indexOf, + n = {}, + o = n.toString, + v = n.hasOwnProperty, + a = v.toString, + l = a.call(Object), + y = {}, + m = function (e) { + return 'function' == typeof e && 'number' != typeof e.nodeType; + }, + x = function (e) { + return null != e && e === e.window; + }, + E = C.document, + c = { type: !0, src: !0, nonce: !0, noModule: !0 }; + function b(e, t, n) { + var r, + i, + o = (n = n || E).createElement('script'); + if (((o.text = e), t)) + for (r in c) (i = t[r] || (t.getAttribute && t.getAttribute(r))) && o.setAttribute(r, i); + n.head.appendChild(o).parentNode.removeChild(o); + } + function w(e) { + return null == e + ? e + '' + : 'object' == typeof e || 'function' == typeof e + ? n[o.call(e)] || 'object' + : typeof e; + } + var f = '3.5.1', + S = function (e, t) { + return new S.fn.init(e, t); + }; + function p(e) { + var t = !!e && 'length' in e && e.length, + n = w(e); + return ( + !m(e) && !x(e) && ('array' === n || 0 === t || ('number' == typeof t && 0 < t && t - 1 in e)) + ); + } + (S.fn = S.prototype = + { + jquery: f, + constructor: S, + length: 0, + toArray: function () { + return s.call(this); + }, + get: function (e) { + return null == e ? s.call(this) : e < 0 ? this[e + this.length] : this[e]; + }, + pushStack: function (e) { + var t = S.merge(this.constructor(), e); + return (t.prevObject = this), t; + }, + each: function (e) { + return S.each(this, e); + }, + map: function (n) { + return this.pushStack( + S.map(this, function (e, t) { + return n.call(e, t, e); + }), + ); + }, + slice: function () { + return this.pushStack(s.apply(this, arguments)); + }, + first: function () { + return this.eq(0); + }, + last: function () { + return this.eq(-1); + }, + even: function () { + return this.pushStack( + S.grep(this, function (e, t) { + return (t + 1) % 2; + }), + ); + }, + odd: function () { + return this.pushStack( + S.grep(this, function (e, t) { + return t % 2; + }), + ); + }, + eq: function (e) { + var t = this.length, + n = +e + (e < 0 ? t : 0); + return this.pushStack(0 <= n && n < t ? [this[n]] : []); + }, + end: function () { + return this.prevObject || this.constructor(); + }, + push: u, + sort: t.sort, + splice: t.splice, + }), + (S.extend = S.fn.extend = + function () { + var e, + t, + n, + r, + i, + o, + a = arguments[0] || {}, + s = 1, + u = arguments.length, + l = !1; + for ( + 'boolean' == typeof a && ((l = a), (a = arguments[s] || {}), s++), + 'object' == typeof a || m(a) || (a = {}), + s === u && ((a = this), s--); + s < u; + s++ + ) + if (null != (e = arguments[s])) + for (t in e) + (r = e[t]), + '__proto__' !== t && + a !== r && + (l && r && (S.isPlainObject(r) || (i = Array.isArray(r))) + ? ((n = a[t]), + (o = i && !Array.isArray(n) ? [] : i || S.isPlainObject(n) ? n : {}), + (i = !1), + (a[t] = S.extend(l, o, r))) + : void 0 !== r && (a[t] = r)); + return a; + }), + S.extend({ + expando: 'jQuery' + (f + Math.random()).replace(/\D/g, ''), + isReady: !0, + error: function (e) { + throw new Error(e); + }, + noop: function () {}, + isPlainObject: function (e) { + var t, n; + return ( + !(!e || '[object Object]' !== o.call(e)) && + (!(t = r(e)) || + ('function' == typeof (n = v.call(t, 'constructor') && t.constructor) && + a.call(n) === l)) + ); + }, + isEmptyObject: function (e) { + var t; + for (t in e) return !1; + return !0; + }, + globalEval: function (e, t, n) { + b(e, { nonce: t && t.nonce }, n); + }, + each: function (e, t) { + var n, + r = 0; + if (p(e)) { + for (n = e.length; r < n; r++) if (!1 === t.call(e[r], r, e[r])) break; + } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; + return e; + }, + makeArray: function (e, t) { + var n = t || []; + return ( + null != e && (p(Object(e)) ? S.merge(n, 'string' == typeof e ? [e] : e) : u.call(n, e)), n + ); + }, + inArray: function (e, t, n) { + return null == t ? -1 : i.call(t, e, n); + }, + merge: function (e, t) { + for (var n = +t.length, r = 0, i = e.length; r < n; r++) e[i++] = t[r]; + return (e.length = i), e; + }, + grep: function (e, t, n) { + for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) !== a && r.push(e[i]); + return r; + }, + map: function (e, t, n) { + var r, + i, + o = 0, + a = []; + if (p(e)) for (r = e.length; o < r; o++) null != (i = t(e[o], o, n)) && a.push(i); + else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); + return g(a); + }, + guid: 1, + support: y, + }), + 'function' == typeof Symbol && (S.fn[Symbol.iterator] = t[Symbol.iterator]), + S.each( + 'Boolean Number String Function Array Date RegExp Object Error Symbol'.split(' '), + function (e, t) { + n['[object ' + t + ']'] = t.toLowerCase(); + }, + ); + var d = (function (n) { + var e, + d, + b, + o, + i, + h, + f, + g, + w, + u, + l, + T, + C, + a, + E, + v, + s, + c, + y, + S = 'sizzle' + 1 * new Date(), + p = n.document, + k = 0, + r = 0, + m = ue(), + x = ue(), + A = ue(), + N = ue(), + D = function (e, t) { + return e === t && (l = !0), 0; + }, + j = {}.hasOwnProperty, + t = [], + q = t.pop, + L = t.push, + H = t.push, + O = t.slice, + P = function (e, t) { + for (var n = 0, r = e.length; n < r; n++) if (e[n] === t) return n; + return -1; + }, + R = + 'checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped', + M = '[\\x20\\t\\r\\n\\f]', + I = '(?:\\\\[\\da-fA-F]{1,6}' + M + '?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+', + W = + '\\[' + + M + + '*(' + + I + + ')(?:' + + M + + '*([*^$|!~]?=)' + + M + + '*(?:\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)"|(' + + I + + '))|)' + + M + + '*\\]', + F = + ':(' + + I + + ')(?:\\(((\'((?:\\\\.|[^\\\\\'])*)\'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|' + + W + + ')*)|.*)\\)|)', + B = new RegExp(M + '+', 'g'), + $ = new RegExp('^' + M + '+|((?:^|[^\\\\])(?:\\\\.)*)' + M + '+$', 'g'), + _ = new RegExp('^' + M + '*,' + M + '*'), + z = new RegExp('^' + M + '*([>+~]|' + M + ')' + M + '*'), + U = new RegExp(M + '|>'), + X = new RegExp(F), + V = new RegExp('^' + I + '$'), + G = { + ID: new RegExp('^#(' + I + ')'), + CLASS: new RegExp('^\\.(' + I + ')'), + TAG: new RegExp('^(' + I + '|[*])'), + ATTR: new RegExp('^' + W), + PSEUDO: new RegExp('^' + F), + CHILD: new RegExp( + '^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(' + + M + + '*(even|odd|(([+-]|)(\\d*)n|)' + + M + + '*(?:([+-]|)' + + M + + '*(\\d+)|))' + + M + + '*\\)|)', + 'i', + ), + bool: new RegExp('^(?:' + R + ')$', 'i'), + needsContext: new RegExp( + '^' + + M + + '*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(' + + M + + '*((?:-\\d)?\\d*)' + + M + + '*\\)|)(?=[^-]|$)', + 'i', + ), + }, + Y = /HTML$/i, + Q = /^(?:input|select|textarea|button)$/i, + J = /^h\d$/i, + K = /^[^{]+\{\s*\[native \w/, + Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + ee = /[+~]/, + te = new RegExp('\\\\[\\da-fA-F]{1,6}' + M + '?|\\\\([^\\r\\n\\f])', 'g'), + ne = function (e, t) { + var n = '0x' + e.slice(1) - 65536; + return ( + t || + (n < 0 + ? String.fromCharCode(n + 65536) + : String.fromCharCode((n >> 10) | 55296, (1023 & n) | 56320)) + ); + }, + re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ie = function (e, t) { + return t + ? '\0' === e + ? '\ufffd' + : e.slice(0, -1) + '\\' + e.charCodeAt(e.length - 1).toString(16) + ' ' + : '\\' + e; + }, + oe = function () { + T(); + }, + ae = be( + function (e) { + return !0 === e.disabled && 'fieldset' === e.nodeName.toLowerCase(); + }, + { dir: 'parentNode', next: 'legend' }, + ); + try { + H.apply((t = O.call(p.childNodes)), p.childNodes), t[p.childNodes.length].nodeType; + } catch (e) { + H = { + apply: t.length + ? function (e, t) { + L.apply(e, O.call(t)); + } + : function (e, t) { + var n = e.length, + r = 0; + while ((e[n++] = t[r++])); + e.length = n - 1; + }, + }; + } + function se(t, e, n, r) { + var i, + o, + a, + s, + u, + l, + c, + f = e && e.ownerDocument, + p = e ? e.nodeType : 9; + if (((n = n || []), 'string' != typeof t || !t || (1 !== p && 9 !== p && 11 !== p))) return n; + if (!r && (T(e), (e = e || C), E)) { + if (11 !== p && (u = Z.exec(t))) + if ((i = u[1])) { + if (9 === p) { + if (!(a = e.getElementById(i))) return n; + if (a.id === i) return n.push(a), n; + } else if (f && (a = f.getElementById(i)) && y(e, a) && a.id === i) return n.push(a), n; + } else { + if (u[2]) return H.apply(n, e.getElementsByTagName(t)), n; + if ((i = u[3]) && d.getElementsByClassName && e.getElementsByClassName) + return H.apply(n, e.getElementsByClassName(i)), n; + } + if ( + d.qsa && + !N[t + ' '] && + (!v || !v.test(t)) && + (1 !== p || 'object' !== e.nodeName.toLowerCase()) + ) { + if (((c = t), (f = e), 1 === p && (U.test(t) || z.test(t)))) { + ((f = (ee.test(t) && ye(e.parentNode)) || e) === e && d.scope) || + ((s = e.getAttribute('id')) + ? (s = s.replace(re, ie)) + : e.setAttribute('id', (s = S))), + (o = (l = h(t)).length); + while (o--) l[o] = (s ? '#' + s : ':scope') + ' ' + xe(l[o]); + c = l.join(','); + } + try { + return H.apply(n, f.querySelectorAll(c)), n; + } catch (e) { + N(t, !0); + } finally { + s === S && e.removeAttribute('id'); + } + } + } + return g(t.replace($, '$1'), e, n, r); + } + function ue() { + var r = []; + return function e(t, n) { + return r.push(t + ' ') > b.cacheLength && delete e[r.shift()], (e[t + ' '] = n); + }; + } + function le(e) { + return (e[S] = !0), e; + } + function ce(e) { + var t = C.createElement('fieldset'); + try { + return !!e(t); + } catch (e) { + return !1; + } finally { + t.parentNode && t.parentNode.removeChild(t), (t = null); + } + } + function fe(e, t) { + var n = e.split('|'), + r = n.length; + while (r--) b.attrHandle[n[r]] = t; + } + function pe(e, t) { + var n = t && e, + r = n && 1 === e.nodeType && 1 === t.nodeType && e.sourceIndex - t.sourceIndex; + if (r) return r; + if (n) while ((n = n.nextSibling)) if (n === t) return -1; + return e ? 1 : -1; + } + function de(t) { + return function (e) { + return 'input' === e.nodeName.toLowerCase() && e.type === t; + }; + } + function he(n) { + return function (e) { + var t = e.nodeName.toLowerCase(); + return ('input' === t || 'button' === t) && e.type === n; + }; + } + function ge(t) { + return function (e) { + return 'form' in e + ? e.parentNode && !1 === e.disabled + ? 'label' in e + ? 'label' in e.parentNode + ? e.parentNode.disabled === t + : e.disabled === t + : e.isDisabled === t || (e.isDisabled !== !t && ae(e) === t) + : e.disabled === t + : 'label' in e && e.disabled === t; + }; + } + function ve(a) { + return le(function (o) { + return ( + (o = +o), + le(function (e, t) { + var n, + r = a([], e.length, o), + i = r.length; + while (i--) e[(n = r[i])] && (e[n] = !(t[n] = e[n])); + }) + ); + }); + } + function ye(e) { + return e && 'undefined' != typeof e.getElementsByTagName && e; + } + for (e in ((d = se.support = {}), + (i = se.isXML = + function (e) { + var t = e.namespaceURI, + n = (e.ownerDocument || e).documentElement; + return !Y.test(t || (n && n.nodeName) || 'HTML'); + }), + (T = se.setDocument = + function (e) { + var t, + n, + r = e ? e.ownerDocument || e : p; + return ( + r != C && + 9 === r.nodeType && + r.documentElement && + ((a = (C = r).documentElement), + (E = !i(C)), + p != C && + (n = C.defaultView) && + n.top !== n && + (n.addEventListener + ? n.addEventListener('unload', oe, !1) + : n.attachEvent && n.attachEvent('onunload', oe)), + (d.scope = ce(function (e) { + return ( + a.appendChild(e).appendChild(C.createElement('div')), + 'undefined' != typeof e.querySelectorAll && + !e.querySelectorAll(':scope fieldset div').length + ); + })), + (d.attributes = ce(function (e) { + return (e.className = 'i'), !e.getAttribute('className'); + })), + (d.getElementsByTagName = ce(function (e) { + return e.appendChild(C.createComment('')), !e.getElementsByTagName('*').length; + })), + (d.getElementsByClassName = K.test(C.getElementsByClassName)), + (d.getById = ce(function (e) { + return ( + (a.appendChild(e).id = S), !C.getElementsByName || !C.getElementsByName(S).length + ); + })), + d.getById + ? ((b.filter.ID = function (e) { + var t = e.replace(te, ne); + return function (e) { + return e.getAttribute('id') === t; + }; + }), + (b.find.ID = function (e, t) { + if ('undefined' != typeof t.getElementById && E) { + var n = t.getElementById(e); + return n ? [n] : []; + } + })) + : ((b.filter.ID = function (e) { + var n = e.replace(te, ne); + return function (e) { + var t = 'undefined' != typeof e.getAttributeNode && e.getAttributeNode('id'); + return t && t.value === n; + }; + }), + (b.find.ID = function (e, t) { + if ('undefined' != typeof t.getElementById && E) { + var n, + r, + i, + o = t.getElementById(e); + if (o) { + if ((n = o.getAttributeNode('id')) && n.value === e) return [o]; + (i = t.getElementsByName(e)), (r = 0); + while ((o = i[r++])) + if ((n = o.getAttributeNode('id')) && n.value === e) return [o]; + } + return []; + } + })), + (b.find.TAG = d.getElementsByTagName + ? function (e, t) { + return 'undefined' != typeof t.getElementsByTagName + ? t.getElementsByTagName(e) + : d.qsa + ? t.querySelectorAll(e) + : void 0; + } + : function (e, t) { + var n, + r = [], + i = 0, + o = t.getElementsByTagName(e); + if ('*' === e) { + while ((n = o[i++])) 1 === n.nodeType && r.push(n); + return r; + } + return o; + }), + (b.find.CLASS = + d.getElementsByClassName && + function (e, t) { + if ('undefined' != typeof t.getElementsByClassName && E) + return t.getElementsByClassName(e); + }), + (s = []), + (v = []), + (d.qsa = K.test(C.querySelectorAll)) && + (ce(function (e) { + var t; + (a.appendChild(e).innerHTML = + ""), + e.querySelectorAll("[msallowcapture^='']").length && + v.push('[*^$]=' + M + '*(?:\'\'|"")'), + e.querySelectorAll('[selected]').length || + v.push('\\[' + M + '*(?:value|' + R + ')'), + e.querySelectorAll('[id~=' + S + '-]').length || v.push('~='), + (t = C.createElement('input')).setAttribute('name', ''), + e.appendChild(t), + e.querySelectorAll("[name='']").length || + v.push('\\[' + M + '*name' + M + '*=' + M + '*(?:\'\'|"")'), + e.querySelectorAll(':checked').length || v.push(':checked'), + e.querySelectorAll('a#' + S + '+*').length || v.push('.#.+[+~]'), + e.querySelectorAll('\\\f'), + v.push('[\\r\\n\\f]'); + }), + ce(function (e) { + e.innerHTML = + ""; + var t = C.createElement('input'); + t.setAttribute('type', 'hidden'), + e.appendChild(t).setAttribute('name', 'D'), + e.querySelectorAll('[name=d]').length && v.push('name' + M + '*[*^$|!~]?='), + 2 !== e.querySelectorAll(':enabled').length && v.push(':enabled', ':disabled'), + (a.appendChild(e).disabled = !0), + 2 !== e.querySelectorAll(':disabled').length && v.push(':enabled', ':disabled'), + e.querySelectorAll('*,:x'), + v.push(',.*:'); + })), + (d.matchesSelector = K.test( + (c = + a.matches || + a.webkitMatchesSelector || + a.mozMatchesSelector || + a.oMatchesSelector || + a.msMatchesSelector), + )) && + ce(function (e) { + (d.disconnectedMatch = c.call(e, '*')), c.call(e, "[s!='']:x"), s.push('!=', F); + }), + (v = v.length && new RegExp(v.join('|'))), + (s = s.length && new RegExp(s.join('|'))), + (t = K.test(a.compareDocumentPosition)), + (y = + t || K.test(a.contains) + ? function (e, t) { + var n = 9 === e.nodeType ? e.documentElement : e, + r = t && t.parentNode; + return ( + e === r || + !( + !r || + 1 !== r.nodeType || + !(n.contains + ? n.contains(r) + : e.compareDocumentPosition && 16 & e.compareDocumentPosition(r)) + ) + ); + } + : function (e, t) { + if (t) while ((t = t.parentNode)) if (t === e) return !0; + return !1; + }), + (D = t + ? function (e, t) { + if (e === t) return (l = !0), 0; + var n = !e.compareDocumentPosition - !t.compareDocumentPosition; + return ( + n || + (1 & + (n = + (e.ownerDocument || e) == (t.ownerDocument || t) + ? e.compareDocumentPosition(t) + : 1) || + (!d.sortDetached && t.compareDocumentPosition(e) === n) + ? e == C || (e.ownerDocument == p && y(p, e)) + ? -1 + : t == C || (t.ownerDocument == p && y(p, t)) + ? 1 + : u + ? P(u, e) - P(u, t) + : 0 + : 4 & n + ? -1 + : 1) + ); + } + : function (e, t) { + if (e === t) return (l = !0), 0; + var n, + r = 0, + i = e.parentNode, + o = t.parentNode, + a = [e], + s = [t]; + if (!i || !o) + return e == C ? -1 : t == C ? 1 : i ? -1 : o ? 1 : u ? P(u, e) - P(u, t) : 0; + if (i === o) return pe(e, t); + n = e; + while ((n = n.parentNode)) a.unshift(n); + n = t; + while ((n = n.parentNode)) s.unshift(n); + while (a[r] === s[r]) r++; + return r ? pe(a[r], s[r]) : a[r] == p ? -1 : s[r] == p ? 1 : 0; + })), + C + ); + }), + (se.matches = function (e, t) { + return se(e, null, null, t); + }), + (se.matchesSelector = function (e, t) { + if ((T(e), d.matchesSelector && E && !N[t + ' '] && (!s || !s.test(t)) && (!v || !v.test(t)))) + try { + var n = c.call(e, t); + if (n || d.disconnectedMatch || (e.document && 11 !== e.document.nodeType)) return n; + } catch (e) { + N(t, !0); + } + return 0 < se(t, C, null, [e]).length; + }), + (se.contains = function (e, t) { + return (e.ownerDocument || e) != C && T(e), y(e, t); + }), + (se.attr = function (e, t) { + (e.ownerDocument || e) != C && T(e); + var n = b.attrHandle[t.toLowerCase()], + r = n && j.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !E) : void 0; + return void 0 !== r + ? r + : d.attributes || !E + ? e.getAttribute(t) + : (r = e.getAttributeNode(t)) && r.specified + ? r.value + : null; + }), + (se.escape = function (e) { + return (e + '').replace(re, ie); + }), + (se.error = function (e) { + throw new Error('Syntax error, unrecognized expression: ' + e); + }), + (se.uniqueSort = function (e) { + var t, + n = [], + r = 0, + i = 0; + if (((l = !d.detectDuplicates), (u = !d.sortStable && e.slice(0)), e.sort(D), l)) { + while ((t = e[i++])) t === e[i] && (r = n.push(i)); + while (r--) e.splice(n[r], 1); + } + return (u = null), e; + }), + (o = se.getText = + function (e) { + var t, + n = '', + r = 0, + i = e.nodeType; + if (i) { + if (1 === i || 9 === i || 11 === i) { + if ('string' == typeof e.textContent) return e.textContent; + for (e = e.firstChild; e; e = e.nextSibling) n += o(e); + } else if (3 === i || 4 === i) return e.nodeValue; + } else while ((t = e[r++])) n += o(t); + return n; + }), + ((b = se.selectors = + { + cacheLength: 50, + createPseudo: le, + match: G, + attrHandle: {}, + find: {}, + relative: { + '>': { dir: 'parentNode', first: !0 }, + ' ': { dir: 'parentNode' }, + '+': { dir: 'previousSibling', first: !0 }, + '~': { dir: 'previousSibling' }, + }, + preFilter: { + ATTR: function (e) { + return ( + (e[1] = e[1].replace(te, ne)), + (e[3] = (e[3] || e[4] || e[5] || '').replace(te, ne)), + '~=' === e[2] && (e[3] = ' ' + e[3] + ' '), + e.slice(0, 4) + ); + }, + CHILD: function (e) { + return ( + (e[1] = e[1].toLowerCase()), + 'nth' === e[1].slice(0, 3) + ? (e[3] || se.error(e[0]), + (e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ('even' === e[3] || 'odd' === e[3]))), + (e[5] = +(e[7] + e[8] || 'odd' === e[3]))) + : e[3] && se.error(e[0]), + e + ); + }, + PSEUDO: function (e) { + var t, + n = !e[6] && e[2]; + return G.CHILD.test(e[0]) + ? null + : (e[3] + ? (e[2] = e[4] || e[5] || '') + : n && + X.test(n) && + (t = h(n, !0)) && + (t = n.indexOf(')', n.length - t) - n.length) && + ((e[0] = e[0].slice(0, t)), (e[2] = n.slice(0, t))), + e.slice(0, 3)); + }, + }, + filter: { + TAG: function (e) { + var t = e.replace(te, ne).toLowerCase(); + return '*' === e + ? function () { + return !0; + } + : function (e) { + return e.nodeName && e.nodeName.toLowerCase() === t; + }; + }, + CLASS: function (e) { + var t = m[e + ' ']; + return ( + t || + ((t = new RegExp('(^|' + M + ')' + e + '(' + M + '|$)')) && + m(e, function (e) { + return t.test( + ('string' == typeof e.className && e.className) || + ('undefined' != typeof e.getAttribute && e.getAttribute('class')) || + '', + ); + })) + ); + }, + ATTR: function (n, r, i) { + return function (e) { + var t = se.attr(e, n); + return null == t + ? '!=' === r + : !r || + ((t += ''), + '=' === r + ? t === i + : '!=' === r + ? t !== i + : '^=' === r + ? i && 0 === t.indexOf(i) + : '*=' === r + ? i && -1 < t.indexOf(i) + : '$=' === r + ? i && t.slice(-i.length) === i + : '~=' === r + ? -1 < (' ' + t.replace(B, ' ') + ' ').indexOf(i) + : '|=' === r && (t === i || t.slice(0, i.length + 1) === i + '-')); + }; + }, + CHILD: function (h, e, t, g, v) { + var y = 'nth' !== h.slice(0, 3), + m = 'last' !== h.slice(-4), + x = 'of-type' === e; + return 1 === g && 0 === v + ? function (e) { + return !!e.parentNode; + } + : function (e, t, n) { + var r, + i, + o, + a, + s, + u, + l = y !== m ? 'nextSibling' : 'previousSibling', + c = e.parentNode, + f = x && e.nodeName.toLowerCase(), + p = !n && !x, + d = !1; + if (c) { + if (y) { + while (l) { + a = e; + while ((a = a[l])) + if (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) return !1; + u = l = 'only' === h && !u && 'nextSibling'; + } + return !0; + } + if (((u = [m ? c.firstChild : c.lastChild]), m && p)) { + (d = + (s = + (r = + (i = + (o = (a = c)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[ + h + ] || [])[0] === k && r[1]) && r[2]), + (a = s && c.childNodes[s]); + while ((a = (++s && a && a[l]) || (d = s = 0) || u.pop())) + if (1 === a.nodeType && ++d && a === e) { + i[h] = [k, s, d]; + break; + } + } else if ( + (p && + (d = s = + (r = + (i = + (o = (a = e)[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[ + h + ] || [])[0] === k && r[1]), + !1 === d) + ) + while ((a = (++s && a && a[l]) || (d = s = 0) || u.pop())) + if ( + (x ? a.nodeName.toLowerCase() === f : 1 === a.nodeType) && + ++d && + (p && + ((i = (o = a[S] || (a[S] = {}))[a.uniqueID] || (o[a.uniqueID] = {}))[ + h + ] = [k, d]), + a === e) + ) + break; + return (d -= v) === g || (d % g == 0 && 0 <= d / g); + } + }; + }, + PSEUDO: function (e, o) { + var t, + a = + b.pseudos[e] || + b.setFilters[e.toLowerCase()] || + se.error('unsupported pseudo: ' + e); + return a[S] + ? a(o) + : 1 < a.length + ? ((t = [e, e, '', o]), + b.setFilters.hasOwnProperty(e.toLowerCase()) + ? le(function (e, t) { + var n, + r = a(e, o), + i = r.length; + while (i--) e[(n = P(e, r[i]))] = !(t[n] = r[i]); + }) + : function (e) { + return a(e, 0, t); + }) + : a; + }, + }, + pseudos: { + not: le(function (e) { + var r = [], + i = [], + s = f(e.replace($, '$1')); + return s[S] + ? le(function (e, t, n, r) { + var i, + o = s(e, null, r, []), + a = e.length; + while (a--) (i = o[a]) && (e[a] = !(t[a] = i)); + }) + : function (e, t, n) { + return (r[0] = e), s(r, null, n, i), (r[0] = null), !i.pop(); + }; + }), + has: le(function (t) { + return function (e) { + return 0 < se(t, e).length; + }; + }), + contains: le(function (t) { + return ( + (t = t.replace(te, ne)), + function (e) { + return -1 < (e.textContent || o(e)).indexOf(t); + } + ); + }), + lang: le(function (n) { + return ( + V.test(n || '') || se.error('unsupported lang: ' + n), + (n = n.replace(te, ne).toLowerCase()), + function (e) { + var t; + do { + if ((t = E ? e.lang : e.getAttribute('xml:lang') || e.getAttribute('lang'))) + return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + '-'); + } while ((e = e.parentNode) && 1 === e.nodeType); + return !1; + } + ); + }), + target: function (e) { + var t = n.location && n.location.hash; + return t && t.slice(1) === e.id; + }, + root: function (e) { + return e === a; + }, + focus: function (e) { + return ( + e === C.activeElement && + (!C.hasFocus || C.hasFocus()) && + !!(e.type || e.href || ~e.tabIndex) + ); + }, + enabled: ge(!1), + disabled: ge(!0), + checked: function (e) { + var t = e.nodeName.toLowerCase(); + return ('input' === t && !!e.checked) || ('option' === t && !!e.selected); + }, + selected: function (e) { + return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected; + }, + empty: function (e) { + for (e = e.firstChild; e; e = e.nextSibling) if (e.nodeType < 6) return !1; + return !0; + }, + parent: function (e) { + return !b.pseudos.empty(e); + }, + header: function (e) { + return J.test(e.nodeName); + }, + input: function (e) { + return Q.test(e.nodeName); + }, + button: function (e) { + var t = e.nodeName.toLowerCase(); + return ('input' === t && 'button' === e.type) || 'button' === t; + }, + text: function (e) { + var t; + return ( + 'input' === e.nodeName.toLowerCase() && + 'text' === e.type && + (null == (t = e.getAttribute('type')) || 'text' === t.toLowerCase()) + ); + }, + first: ve(function () { + return [0]; + }), + last: ve(function (e, t) { + return [t - 1]; + }), + eq: ve(function (e, t, n) { + return [n < 0 ? n + t : n]; + }), + even: ve(function (e, t) { + for (var n = 0; n < t; n += 2) e.push(n); + return e; + }), + odd: ve(function (e, t) { + for (var n = 1; n < t; n += 2) e.push(n); + return e; + }), + lt: ve(function (e, t, n) { + for (var r = n < 0 ? n + t : t < n ? t : n; 0 <= --r; ) e.push(r); + return e; + }), + gt: ve(function (e, t, n) { + for (var r = n < 0 ? n + t : n; ++r < t; ) e.push(r); + return e; + }), + }, + }).pseudos.nth = b.pseudos.eq), + { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 })) + b.pseudos[e] = de(e); + for (e in { submit: !0, reset: !0 }) b.pseudos[e] = he(e); + function me() {} + function xe(e) { + for (var t = 0, n = e.length, r = ''; t < n; t++) r += e[t].value; + return r; + } + function be(s, e, t) { + var u = e.dir, + l = e.next, + c = l || u, + f = t && 'parentNode' === c, + p = r++; + return e.first + ? function (e, t, n) { + while ((e = e[u])) if (1 === e.nodeType || f) return s(e, t, n); + return !1; + } + : function (e, t, n) { + var r, + i, + o, + a = [k, p]; + if (n) { + while ((e = e[u])) if ((1 === e.nodeType || f) && s(e, t, n)) return !0; + } else + while ((e = e[u])) + if (1 === e.nodeType || f) + if ( + ((i = (o = e[S] || (e[S] = {}))[e.uniqueID] || (o[e.uniqueID] = {})), + l && l === e.nodeName.toLowerCase()) + ) + e = e[u] || e; + else { + if ((r = i[c]) && r[0] === k && r[1] === p) return (a[2] = r[2]); + if (((i[c] = a)[2] = s(e, t, n))) return !0; + } + return !1; + }; + } + function we(i) { + return 1 < i.length + ? function (e, t, n) { + var r = i.length; + while (r--) if (!i[r](e, t, n)) return !1; + return !0; + } + : i[0]; + } + function Te(e, t, n, r, i) { + for (var o, a = [], s = 0, u = e.length, l = null != t; s < u; s++) + (o = e[s]) && ((n && !n(o, r, i)) || (a.push(o), l && t.push(s))); + return a; + } + function Ce(d, h, g, v, y, e) { + return ( + v && !v[S] && (v = Ce(v)), + y && !y[S] && (y = Ce(y, e)), + le(function (e, t, n, r) { + var i, + o, + a, + s = [], + u = [], + l = t.length, + c = + e || + (function (e, t, n) { + for (var r = 0, i = t.length; r < i; r++) se(e, t[r], n); + return n; + })(h || '*', n.nodeType ? [n] : n, []), + f = !d || (!e && h) ? c : Te(c, s, d, n, r), + p = g ? (y || (e ? d : l || v) ? [] : t) : f; + if ((g && g(f, p, n, r), v)) { + (i = Te(p, u)), v(i, [], n, r), (o = i.length); + while (o--) (a = i[o]) && (p[u[o]] = !(f[u[o]] = a)); + } + if (e) { + if (y || d) { + if (y) { + (i = []), (o = p.length); + while (o--) (a = p[o]) && i.push((f[o] = a)); + y(null, (p = []), i, r); + } + o = p.length; + while (o--) (a = p[o]) && -1 < (i = y ? P(e, a) : s[o]) && (e[i] = !(t[i] = a)); + } + } else + (p = Te(p === t ? p.splice(l, p.length) : p)), y ? y(null, t, p, r) : H.apply(t, p); + }) + ); + } + function Ee(e) { + for ( + var i, + t, + n, + r = e.length, + o = b.relative[e[0].type], + a = o || b.relative[' '], + s = o ? 1 : 0, + u = be( + function (e) { + return e === i; + }, + a, + !0, + ), + l = be( + function (e) { + return -1 < P(i, e); + }, + a, + !0, + ), + c = [ + function (e, t, n) { + var r = (!o && (n || t !== w)) || ((i = t).nodeType ? u(e, t, n) : l(e, t, n)); + return (i = null), r; + }, + ]; + s < r; + s++ + ) + if ((t = b.relative[e[s].type])) c = [be(we(c), t)]; + else { + if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) { + for (n = ++s; n < r; n++) if (b.relative[e[n].type]) break; + return Ce( + 1 < s && we(c), + 1 < s && + xe(e.slice(0, s - 1).concat({ value: ' ' === e[s - 2].type ? '*' : '' })).replace( + $, + '$1', + ), + t, + s < n && Ee(e.slice(s, n)), + n < r && Ee((e = e.slice(n))), + n < r && xe(e), + ); + } + c.push(t); + } + return we(c); + } + return ( + (me.prototype = b.filters = b.pseudos), + (b.setFilters = new me()), + (h = se.tokenize = + function (e, t) { + var n, + r, + i, + o, + a, + s, + u, + l = x[e + ' ']; + if (l) return t ? 0 : l.slice(0); + (a = e), (s = []), (u = b.preFilter); + while (a) { + for (o in ((n && !(r = _.exec(a))) || + (r && (a = a.slice(r[0].length) || a), s.push((i = []))), + (n = !1), + (r = z.exec(a)) && + ((n = r.shift()), + i.push({ value: n, type: r[0].replace($, ' ') }), + (a = a.slice(n.length))), + b.filter)) + !(r = G[o].exec(a)) || + (u[o] && !(r = u[o](r))) || + ((n = r.shift()), + i.push({ value: n, type: o, matches: r }), + (a = a.slice(n.length))); + if (!n) break; + } + return t ? a.length : a ? se.error(e) : x(e, s).slice(0); + }), + (f = se.compile = + function (e, t) { + var n, + v, + y, + m, + x, + r, + i = [], + o = [], + a = A[e + ' ']; + if (!a) { + t || (t = h(e)), (n = t.length); + while (n--) (a = Ee(t[n]))[S] ? i.push(a) : o.push(a); + (a = A( + e, + ((v = o), + (m = 0 < (y = i).length), + (x = 0 < v.length), + (r = function (e, t, n, r, i) { + var o, + a, + s, + u = 0, + l = '0', + c = e && [], + f = [], + p = w, + d = e || (x && b.find.TAG('*', i)), + h = (k += null == p ? 1 : Math.random() || 0.1), + g = d.length; + for (i && (w = t == C || t || i); l !== g && null != (o = d[l]); l++) { + if (x && o) { + (a = 0), t || o.ownerDocument == C || (T(o), (n = !E)); + while ((s = v[a++])) + if (s(o, t || C, n)) { + r.push(o); + break; + } + i && (k = h); + } + m && ((o = !s && o) && u--, e && c.push(o)); + } + if (((u += l), m && l !== u)) { + a = 0; + while ((s = y[a++])) s(c, f, t, n); + if (e) { + if (0 < u) while (l--) c[l] || f[l] || (f[l] = q.call(r)); + f = Te(f); + } + H.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && se.uniqueSort(r); + } + return i && ((k = h), (w = p)), c; + }), + m ? le(r) : r), + )).selector = e; + } + return a; + }), + (g = se.select = + function (e, t, n, r) { + var i, + o, + a, + s, + u, + l = 'function' == typeof e && e, + c = !r && h((e = l.selector || e)); + if (((n = n || []), 1 === c.length)) { + if ( + 2 < (o = c[0] = c[0].slice(0)).length && + 'ID' === (a = o[0]).type && + 9 === t.nodeType && + E && + b.relative[o[1].type] + ) { + if (!(t = (b.find.ID(a.matches[0].replace(te, ne), t) || [])[0])) return n; + l && (t = t.parentNode), (e = e.slice(o.shift().value.length)); + } + i = G.needsContext.test(e) ? 0 : o.length; + while (i--) { + if (((a = o[i]), b.relative[(s = a.type)])) break; + if ( + (u = b.find[s]) && + (r = u(a.matches[0].replace(te, ne), (ee.test(o[0].type) && ye(t.parentNode)) || t)) + ) { + if ((o.splice(i, 1), !(e = r.length && xe(o)))) return H.apply(n, r), n; + break; + } + } + } + return (l || f(e, c))(r, t, !E, n, !t || (ee.test(e) && ye(t.parentNode)) || t), n; + }), + (d.sortStable = S.split('').sort(D).join('') === S), + (d.detectDuplicates = !!l), + T(), + (d.sortDetached = ce(function (e) { + return 1 & e.compareDocumentPosition(C.createElement('fieldset')); + })), + ce(function (e) { + return (e.innerHTML = ""), '#' === e.firstChild.getAttribute('href'); + }) || + fe('type|href|height|width', function (e, t, n) { + if (!n) return e.getAttribute(t, 'type' === t.toLowerCase() ? 1 : 2); + }), + (d.attributes && + ce(function (e) { + return ( + (e.innerHTML = ''), + e.firstChild.setAttribute('value', ''), + '' === e.firstChild.getAttribute('value') + ); + })) || + fe('value', function (e, t, n) { + if (!n && 'input' === e.nodeName.toLowerCase()) return e.defaultValue; + }), + ce(function (e) { + return null == e.getAttribute('disabled'); + }) || + fe(R, function (e, t, n) { + var r; + if (!n) + return !0 === e[t] + ? t.toLowerCase() + : (r = e.getAttributeNode(t)) && r.specified + ? r.value + : null; + }), + se + ); + })(C); + (S.find = d), + (S.expr = d.selectors), + (S.expr[':'] = S.expr.pseudos), + (S.uniqueSort = S.unique = d.uniqueSort), + (S.text = d.getText), + (S.isXMLDoc = d.isXML), + (S.contains = d.contains), + (S.escapeSelector = d.escape); + var h = function (e, t, n) { + var r = [], + i = void 0 !== n; + while ((e = e[t]) && 9 !== e.nodeType) + if (1 === e.nodeType) { + if (i && S(e).is(n)) break; + r.push(e); + } + return r; + }, + T = function (e, t) { + for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e); + return n; + }, + k = S.expr.match.needsContext; + function A(e, t) { + return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase(); + } + var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; + function D(e, n, r) { + return m(n) + ? S.grep(e, function (e, t) { + return !!n.call(e, t, e) !== r; + }) + : n.nodeType + ? S.grep(e, function (e) { + return (e === n) !== r; + }) + : 'string' != typeof n + ? S.grep(e, function (e) { + return -1 < i.call(n, e) !== r; + }) + : S.filter(n, e, r); + } + (S.filter = function (e, t, n) { + var r = t[0]; + return ( + n && (e = ':not(' + e + ')'), + 1 === t.length && 1 === r.nodeType + ? S.find.matchesSelector(r, e) + ? [r] + : [] + : S.find.matches( + e, + S.grep(t, function (e) { + return 1 === e.nodeType; + }), + ) + ); + }), + S.fn.extend({ + find: function (e) { + var t, + n, + r = this.length, + i = this; + if ('string' != typeof e) + return this.pushStack( + S(e).filter(function () { + for (t = 0; t < r; t++) if (S.contains(i[t], this)) return !0; + }), + ); + for (n = this.pushStack([]), t = 0; t < r; t++) S.find(e, i[t], n); + return 1 < r ? S.uniqueSort(n) : n; + }, + filter: function (e) { + return this.pushStack(D(this, e || [], !1)); + }, + not: function (e) { + return this.pushStack(D(this, e || [], !0)); + }, + is: function (e) { + return !!D(this, 'string' == typeof e && k.test(e) ? S(e) : e || [], !1).length; + }, + }); + var j, + q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/; + ((S.fn.init = function (e, t, n) { + var r, i; + if (!e) return this; + if (((n = n || j), 'string' == typeof e)) { + if ( + !(r = + '<' === e[0] && '>' === e[e.length - 1] && 3 <= e.length ? [null, e, null] : q.exec(e)) || + (!r[1] && t) + ) + return !t || t.jquery ? (t || n).find(e) : this.constructor(t).find(e); + if (r[1]) { + if ( + ((t = t instanceof S ? t[0] : t), + S.merge(this, S.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : E, !0)), + N.test(r[1]) && S.isPlainObject(t)) + ) + for (r in t) m(this[r]) ? this[r](t[r]) : this.attr(r, t[r]); + return this; + } + return (i = E.getElementById(r[2])) && ((this[0] = i), (this.length = 1)), this; + } + return e.nodeType + ? ((this[0] = e), (this.length = 1), this) + : m(e) + ? void 0 !== n.ready + ? n.ready(e) + : e(S) + : S.makeArray(e, this); + }).prototype = S.fn), + (j = S(E)); + var L = /^(?:parents|prev(?:Until|All))/, + H = { children: !0, contents: !0, next: !0, prev: !0 }; + function O(e, t) { + while ((e = e[t]) && 1 !== e.nodeType); + return e; + } + S.fn.extend({ + has: function (e) { + var t = S(e, this), + n = t.length; + return this.filter(function () { + for (var e = 0; e < n; e++) if (S.contains(this, t[e])) return !0; + }); + }, + closest: function (e, t) { + var n, + r = 0, + i = this.length, + o = [], + a = 'string' != typeof e && S(e); + if (!k.test(e)) + for (; r < i; r++) + for (n = this[r]; n && n !== t; n = n.parentNode) + if ( + n.nodeType < 11 && + (a ? -1 < a.index(n) : 1 === n.nodeType && S.find.matchesSelector(n, e)) + ) { + o.push(n); + break; + } + return this.pushStack(1 < o.length ? S.uniqueSort(o) : o); + }, + index: function (e) { + return e + ? 'string' == typeof e + ? i.call(S(e), this[0]) + : i.call(this, e.jquery ? e[0] : e) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function (e, t) { + return this.pushStack(S.uniqueSort(S.merge(this.get(), S(e, t)))); + }, + addBack: function (e) { + return this.add(null == e ? this.prevObject : this.prevObject.filter(e)); + }, + }), + S.each( + { + parent: function (e) { + var t = e.parentNode; + return t && 11 !== t.nodeType ? t : null; + }, + parents: function (e) { + return h(e, 'parentNode'); + }, + parentsUntil: function (e, t, n) { + return h(e, 'parentNode', n); + }, + next: function (e) { + return O(e, 'nextSibling'); + }, + prev: function (e) { + return O(e, 'previousSibling'); + }, + nextAll: function (e) { + return h(e, 'nextSibling'); + }, + prevAll: function (e) { + return h(e, 'previousSibling'); + }, + nextUntil: function (e, t, n) { + return h(e, 'nextSibling', n); + }, + prevUntil: function (e, t, n) { + return h(e, 'previousSibling', n); + }, + siblings: function (e) { + return T((e.parentNode || {}).firstChild, e); + }, + children: function (e) { + return T(e.firstChild); + }, + contents: function (e) { + return null != e.contentDocument && r(e.contentDocument) + ? e.contentDocument + : (A(e, 'template') && (e = e.content || e), S.merge([], e.childNodes)); + }, + }, + function (r, i) { + S.fn[r] = function (e, t) { + var n = S.map(this, i, e); + return ( + 'Until' !== r.slice(-5) && (t = e), + t && 'string' == typeof t && (n = S.filter(t, n)), + 1 < this.length && (H[r] || S.uniqueSort(n), L.test(r) && n.reverse()), + this.pushStack(n) + ); + }; + }, + ); + var P = /[^\x20\t\r\n\f]+/g; + function R(e) { + return e; + } + function M(e) { + throw e; + } + function I(e, t, n, r) { + var i; + try { + e && m((i = e.promise)) + ? i.call(e).done(t).fail(n) + : e && m((i = e.then)) + ? i.call(e, t, n) + : t.apply(void 0, [e].slice(r)); + } catch (e) { + n.apply(void 0, [e]); + } + } + (S.Callbacks = function (r) { + var e, n; + r = + 'string' == typeof r + ? ((e = r), + (n = {}), + S.each(e.match(P) || [], function (e, t) { + n[t] = !0; + }), + n) + : S.extend({}, r); + var i, + t, + o, + a, + s = [], + u = [], + l = -1, + c = function () { + for (a = a || r.once, o = i = !0; u.length; l = -1) { + t = u.shift(); + while (++l < s.length) + !1 === s[l].apply(t[0], t[1]) && r.stopOnFalse && ((l = s.length), (t = !1)); + } + r.memory || (t = !1), (i = !1), a && (s = t ? [] : ''); + }, + f = { + add: function () { + return ( + s && + (t && !i && ((l = s.length - 1), u.push(t)), + (function n(e) { + S.each(e, function (e, t) { + m(t) + ? (r.unique && f.has(t)) || s.push(t) + : t && t.length && 'string' !== w(t) && n(t); + }); + })(arguments), + t && !i && c()), + this + ); + }, + remove: function () { + return ( + S.each(arguments, function (e, t) { + var n; + while (-1 < (n = S.inArray(t, s, n))) s.splice(n, 1), n <= l && l--; + }), + this + ); + }, + has: function (e) { + return e ? -1 < S.inArray(e, s) : 0 < s.length; + }, + empty: function () { + return s && (s = []), this; + }, + disable: function () { + return (a = u = []), (s = t = ''), this; + }, + disabled: function () { + return !s; + }, + lock: function () { + return (a = u = []), t || i || (s = t = ''), this; + }, + locked: function () { + return !!a; + }, + fireWith: function (e, t) { + return a || ((t = [e, (t = t || []).slice ? t.slice() : t]), u.push(t), i || c()), this; + }, + fire: function () { + return f.fireWith(this, arguments), this; + }, + fired: function () { + return !!o; + }, + }; + return f; + }), + S.extend({ + Deferred: function (e) { + var o = [ + ['notify', 'progress', S.Callbacks('memory'), S.Callbacks('memory'), 2], + [ + 'resolve', + 'done', + S.Callbacks('once memory'), + S.Callbacks('once memory'), + 0, + 'resolved', + ], + [ + 'reject', + 'fail', + S.Callbacks('once memory'), + S.Callbacks('once memory'), + 1, + 'rejected', + ], + ], + i = 'pending', + a = { + state: function () { + return i; + }, + always: function () { + return s.done(arguments).fail(arguments), this; + }, + catch: function (e) { + return a.then(null, e); + }, + pipe: function () { + var i = arguments; + return S.Deferred(function (r) { + S.each(o, function (e, t) { + var n = m(i[t[4]]) && i[t[4]]; + s[t[1]](function () { + var e = n && n.apply(this, arguments); + e && m(e.promise) + ? e.promise().progress(r.notify).done(r.resolve).fail(r.reject) + : r[t[0] + 'With'](this, n ? [e] : arguments); + }); + }), + (i = null); + }).promise(); + }, + then: function (t, n, r) { + var u = 0; + function l(i, o, a, s) { + return function () { + var n = this, + r = arguments, + e = function () { + var e, t; + if (!(i < u)) { + if ((e = a.apply(n, r)) === o.promise()) + throw new TypeError('Thenable self-resolution'); + (t = e && ('object' == typeof e || 'function' == typeof e) && e.then), + m(t) + ? s + ? t.call(e, l(u, o, R, s), l(u, o, M, s)) + : (u++, + t.call(e, l(u, o, R, s), l(u, o, M, s), l(u, o, R, o.notifyWith))) + : (a !== R && ((n = void 0), (r = [e])), (s || o.resolveWith)(n, r)); + } + }, + t = s + ? e + : function () { + try { + e(); + } catch (e) { + S.Deferred.exceptionHook && S.Deferred.exceptionHook(e, t.stackTrace), + u <= i + 1 && + (a !== M && ((n = void 0), (r = [e])), o.rejectWith(n, r)); + } + }; + i + ? t() + : (S.Deferred.getStackHook && (t.stackTrace = S.Deferred.getStackHook()), + C.setTimeout(t)); + }; + } + return S.Deferred(function (e) { + o[0][3].add(l(0, e, m(r) ? r : R, e.notifyWith)), + o[1][3].add(l(0, e, m(t) ? t : R)), + o[2][3].add(l(0, e, m(n) ? n : M)); + }).promise(); + }, + promise: function (e) { + return null != e ? S.extend(e, a) : a; + }, + }, + s = {}; + return ( + S.each(o, function (e, t) { + var n = t[2], + r = t[5]; + (a[t[1]] = n.add), + r && + n.add( + function () { + i = r; + }, + o[3 - e][2].disable, + o[3 - e][3].disable, + o[0][2].lock, + o[0][3].lock, + ), + n.add(t[3].fire), + (s[t[0]] = function () { + return s[t[0] + 'With'](this === s ? void 0 : this, arguments), this; + }), + (s[t[0] + 'With'] = n.fireWith); + }), + a.promise(s), + e && e.call(s, s), + s + ); + }, + when: function (e) { + var n = arguments.length, + t = n, + r = Array(t), + i = s.call(arguments), + o = S.Deferred(), + a = function (t) { + return function (e) { + (r[t] = this), + (i[t] = 1 < arguments.length ? s.call(arguments) : e), + --n || o.resolveWith(r, i); + }; + }; + if ( + n <= 1 && + (I(e, o.done(a(t)).resolve, o.reject, !n), + 'pending' === o.state() || m(i[t] && i[t].then)) + ) + return o.then(); + while (t--) I(i[t], a(t), o.reject); + return o.promise(); + }, + }); + var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + (S.Deferred.exceptionHook = function (e, t) { + C.console && + C.console.warn && + e && + W.test(e.name) && + C.console.warn('jQuery.Deferred exception: ' + e.message, e.stack, t); + }), + (S.readyException = function (e) { + C.setTimeout(function () { + throw e; + }); + }); + var F = S.Deferred(); + function B() { + E.removeEventListener('DOMContentLoaded', B), C.removeEventListener('load', B), S.ready(); + } + (S.fn.ready = function (e) { + return ( + F.then(e)['catch'](function (e) { + S.readyException(e); + }), + this + ); + }), + S.extend({ + isReady: !1, + readyWait: 1, + ready: function (e) { + (!0 === e ? --S.readyWait : S.isReady) || + ((S.isReady = !0) !== e && 0 < --S.readyWait) || + F.resolveWith(E, [S]); + }, + }), + (S.ready.then = F.then), + 'complete' === E.readyState || ('loading' !== E.readyState && !E.documentElement.doScroll) + ? C.setTimeout(S.ready) + : (E.addEventListener('DOMContentLoaded', B), C.addEventListener('load', B)); + var $ = function (e, t, n, r, i, o, a) { + var s = 0, + u = e.length, + l = null == n; + if ('object' === w(n)) for (s in ((i = !0), n)) $(e, t, s, n[s], !0, o, a); + else if ( + void 0 !== r && + ((i = !0), + m(r) || (a = !0), + l && + (a + ? (t.call(e, r), (t = null)) + : ((l = t), + (t = function (e, t, n) { + return l.call(S(e), n); + }))), + t) + ) + for (; s < u; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n))); + return i ? e : l ? t.call(e) : u ? t(e[0], n) : o; + }, + _ = /^-ms-/, + z = /-([a-z])/g; + function U(e, t) { + return t.toUpperCase(); + } + function X(e) { + return e.replace(_, 'ms-').replace(z, U); + } + var V = function (e) { + return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType; + }; + function G() { + this.expando = S.expando + G.uid++; + } + (G.uid = 1), + (G.prototype = { + cache: function (e) { + var t = e[this.expando]; + return ( + t || + ((t = {}), + V(e) && + (e.nodeType + ? (e[this.expando] = t) + : Object.defineProperty(e, this.expando, { value: t, configurable: !0 }))), + t + ); + }, + set: function (e, t, n) { + var r, + i = this.cache(e); + if ('string' == typeof t) i[X(t)] = n; + else for (r in t) i[X(r)] = t[r]; + return i; + }, + get: function (e, t) { + return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][X(t)]; + }, + access: function (e, t, n) { + return void 0 === t || (t && 'string' == typeof t && void 0 === n) + ? this.get(e, t) + : (this.set(e, t, n), void 0 !== n ? n : t); + }, + remove: function (e, t) { + var n, + r = e[this.expando]; + if (void 0 !== r) { + if (void 0 !== t) { + n = (t = Array.isArray(t) ? t.map(X) : (t = X(t)) in r ? [t] : t.match(P) || []).length; + while (n--) delete r[t[n]]; + } + (void 0 === t || S.isEmptyObject(r)) && + (e.nodeType ? (e[this.expando] = void 0) : delete e[this.expando]); + } + }, + hasData: function (e) { + var t = e[this.expando]; + return void 0 !== t && !S.isEmptyObject(t); + }, + }); + var Y = new G(), + Q = new G(), + J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + K = /[A-Z]/g; + function Z(e, t, n) { + var r, i; + if (void 0 === n && 1 === e.nodeType) + if ( + ((r = 'data-' + t.replace(K, '-$&').toLowerCase()), + 'string' == typeof (n = e.getAttribute(r))) + ) { + try { + n = + 'true' === (i = n) || + ('false' !== i && + ('null' === i ? null : i === +i + '' ? +i : J.test(i) ? JSON.parse(i) : i)); + } catch (e) {} + Q.set(e, t, n); + } else n = void 0; + return n; + } + S.extend({ + hasData: function (e) { + return Q.hasData(e) || Y.hasData(e); + }, + data: function (e, t, n) { + return Q.access(e, t, n); + }, + removeData: function (e, t) { + Q.remove(e, t); + }, + _data: function (e, t, n) { + return Y.access(e, t, n); + }, + _removeData: function (e, t) { + Y.remove(e, t); + }, + }), + S.fn.extend({ + data: function (n, e) { + var t, + r, + i, + o = this[0], + a = o && o.attributes; + if (void 0 === n) { + if (this.length && ((i = Q.get(o)), 1 === o.nodeType && !Y.get(o, 'hasDataAttrs'))) { + t = a.length; + while (t--) + a[t] && + 0 === (r = a[t].name).indexOf('data-') && + ((r = X(r.slice(5))), Z(o, r, i[r])); + Y.set(o, 'hasDataAttrs', !0); + } + return i; + } + return 'object' == typeof n + ? this.each(function () { + Q.set(this, n); + }) + : $( + this, + function (e) { + var t; + if (o && void 0 === e) + return void 0 !== (t = Q.get(o, n)) ? t : void 0 !== (t = Z(o, n)) ? t : void 0; + this.each(function () { + Q.set(this, n, e); + }); + }, + null, + e, + 1 < arguments.length, + null, + !0, + ); + }, + removeData: function (e) { + return this.each(function () { + Q.remove(this, e); + }); + }, + }), + S.extend({ + queue: function (e, t, n) { + var r; + if (e) + return ( + (t = (t || 'fx') + 'queue'), + (r = Y.get(e, t)), + n && (!r || Array.isArray(n) ? (r = Y.access(e, t, S.makeArray(n))) : r.push(n)), + r || [] + ); + }, + dequeue: function (e, t) { + t = t || 'fx'; + var n = S.queue(e, t), + r = n.length, + i = n.shift(), + o = S._queueHooks(e, t); + 'inprogress' === i && ((i = n.shift()), r--), + i && + ('fx' === t && n.unshift('inprogress'), + delete o.stop, + i.call( + e, + function () { + S.dequeue(e, t); + }, + o, + )), + !r && o && o.empty.fire(); + }, + _queueHooks: function (e, t) { + var n = t + 'queueHooks'; + return ( + Y.get(e, n) || + Y.access(e, n, { + empty: S.Callbacks('once memory').add(function () { + Y.remove(e, [t + 'queue', n]); + }), + }) + ); + }, + }), + S.fn.extend({ + queue: function (t, n) { + var e = 2; + return ( + 'string' != typeof t && ((n = t), (t = 'fx'), e--), + arguments.length < e + ? S.queue(this[0], t) + : void 0 === n + ? this + : this.each(function () { + var e = S.queue(this, t, n); + S._queueHooks(this, t), 'fx' === t && 'inprogress' !== e[0] && S.dequeue(this, t); + }) + ); + }, + dequeue: function (e) { + return this.each(function () { + S.dequeue(this, e); + }); + }, + clearQueue: function (e) { + return this.queue(e || 'fx', []); + }, + promise: function (e, t) { + var n, + r = 1, + i = S.Deferred(), + o = this, + a = this.length, + s = function () { + --r || i.resolveWith(o, [o]); + }; + 'string' != typeof e && ((t = e), (e = void 0)), (e = e || 'fx'); + while (a--) (n = Y.get(o[a], e + 'queueHooks')) && n.empty && (r++, n.empty.add(s)); + return s(), i.promise(t); + }, + }); + var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + te = new RegExp('^(?:([+-])=|)(' + ee + ')([a-z%]*)$', 'i'), + ne = ['Top', 'Right', 'Bottom', 'Left'], + re = E.documentElement, + ie = function (e) { + return S.contains(e.ownerDocument, e); + }, + oe = { composed: !0 }; + re.getRootNode && + (ie = function (e) { + return S.contains(e.ownerDocument, e) || e.getRootNode(oe) === e.ownerDocument; + }); + var ae = function (e, t) { + return ( + 'none' === (e = t || e).style.display || + ('' === e.style.display && ie(e) && 'none' === S.css(e, 'display')) + ); + }; + function se(e, t, n, r) { + var i, + o, + a = 20, + s = r + ? function () { + return r.cur(); + } + : function () { + return S.css(e, t, ''); + }, + u = s(), + l = (n && n[3]) || (S.cssNumber[t] ? '' : 'px'), + c = e.nodeType && (S.cssNumber[t] || ('px' !== l && +u)) && te.exec(S.css(e, t)); + if (c && c[3] !== l) { + (u /= 2), (l = l || c[3]), (c = +u || 1); + while (a--) + S.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || 0.5)) <= 0 && (a = 0), (c /= o); + (c *= 2), S.style(e, t, c + l), (n = n || []); + } + return ( + n && + ((c = +c || +u || 0), + (i = n[1] ? c + (n[1] + 1) * n[2] : +n[2]), + r && ((r.unit = l), (r.start = c), (r.end = i))), + i + ); + } + var ue = {}; + function le(e, t) { + for (var n, r, i, o, a, s, u, l = [], c = 0, f = e.length; c < f; c++) + (r = e[c]).style && + ((n = r.style.display), + t + ? ('none' === n && ((l[c] = Y.get(r, 'display') || null), l[c] || (r.style.display = '')), + '' === r.style.display && + ae(r) && + (l[c] = + ((u = a = o = void 0), + (a = (i = r).ownerDocument), + (s = i.nodeName), + (u = ue[s]) || + ((o = a.body.appendChild(a.createElement(s))), + (u = S.css(o, 'display')), + o.parentNode.removeChild(o), + 'none' === u && (u = 'block'), + (ue[s] = u))))) + : 'none' !== n && ((l[c] = 'none'), Y.set(r, 'display', n))); + for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]); + return e; + } + S.fn.extend({ + show: function () { + return le(this, !0); + }, + hide: function () { + return le(this); + }, + toggle: function (e) { + return 'boolean' == typeof e + ? e + ? this.show() + : this.hide() + : this.each(function () { + ae(this) ? S(this).show() : S(this).hide(); + }); + }, + }); + var ce, + fe, + pe = /^(?:checkbox|radio)$/i, + de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i, + he = /^$|^module$|\/(?:java|ecma)script/i; + (ce = E.createDocumentFragment().appendChild(E.createElement('div'))), + (fe = E.createElement('input')).setAttribute('type', 'radio'), + fe.setAttribute('checked', 'checked'), + fe.setAttribute('name', 't'), + ce.appendChild(fe), + (y.checkClone = ce.cloneNode(!0).cloneNode(!0).lastChild.checked), + (ce.innerHTML = ''), + (y.noCloneChecked = !!ce.cloneNode(!0).lastChild.defaultValue), + (ce.innerHTML = ''), + (y.option = !!ce.lastChild); + var ge = { + thead: [1, '', '
        '], + col: [2, '', '
        '], + tr: [2, '', '
        '], + td: [3, '', '
        '], + _default: [0, '', ''], + }; + function ve(e, t) { + var n; + return ( + (n = + 'undefined' != typeof e.getElementsByTagName + ? e.getElementsByTagName(t || '*') + : 'undefined' != typeof e.querySelectorAll + ? e.querySelectorAll(t || '*') + : []), + void 0 === t || (t && A(e, t)) ? S.merge([e], n) : n + ); + } + function ye(e, t) { + for (var n = 0, r = e.length; n < r; n++) + Y.set(e[n], 'globalEval', !t || Y.get(t[n], 'globalEval')); + } + (ge.tbody = ge.tfoot = ge.colgroup = ge.caption = ge.thead), + (ge.th = ge.td), + y.option || (ge.optgroup = ge.option = [1, "']); + var me = /<|&#?\w+;/; + function xe(e, t, n, r, i) { + for ( + var o, a, s, u, l, c, f = t.createDocumentFragment(), p = [], d = 0, h = e.length; + d < h; + d++ + ) + if ((o = e[d]) || 0 === o) + if ('object' === w(o)) S.merge(p, o.nodeType ? [o] : o); + else if (me.test(o)) { + (a = a || f.appendChild(t.createElement('div'))), + (s = (de.exec(o) || ['', ''])[1].toLowerCase()), + (u = ge[s] || ge._default), + (a.innerHTML = u[1] + S.htmlPrefilter(o) + u[2]), + (c = u[0]); + while (c--) a = a.lastChild; + S.merge(p, a.childNodes), ((a = f.firstChild).textContent = ''); + } else p.push(t.createTextNode(o)); + (f.textContent = ''), (d = 0); + while ((o = p[d++])) + if (r && -1 < S.inArray(o, r)) i && i.push(o); + else if (((l = ie(o)), (a = ve(f.appendChild(o), 'script')), l && ye(a), n)) { + c = 0; + while ((o = a[c++])) he.test(o.type || '') && n.push(o); + } + return f; + } + var be = /^key/, + we = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + Te = /^([^.]*)(?:\.(.+)|)/; + function Ce() { + return !0; + } + function Ee() { + return !1; + } + function Se(e, t) { + return ( + (e === + (function () { + try { + return E.activeElement; + } catch (e) {} + })()) == + ('focus' === t) + ); + } + function ke(e, t, n, r, i, o) { + var a, s; + if ('object' == typeof t) { + for (s in ('string' != typeof n && ((r = r || n), (n = void 0)), t)) ke(e, s, n, r, t[s], o); + return e; + } + if ( + (null == r && null == i + ? ((i = n), (r = n = void 0)) + : null == i && + ('string' == typeof n ? ((i = r), (r = void 0)) : ((i = r), (r = n), (n = void 0))), + !1 === i) + ) + i = Ee; + else if (!i) return e; + return ( + 1 === o && + ((a = i), + ((i = function (e) { + return S().off(e), a.apply(this, arguments); + }).guid = a.guid || (a.guid = S.guid++))), + e.each(function () { + S.event.add(this, t, i, r, n); + }) + ); + } + function Ae(e, i, o) { + o + ? (Y.set(e, i, !1), + S.event.add(e, i, { + namespace: !1, + handler: function (e) { + var t, + n, + r = Y.get(this, i); + if (1 & e.isTrigger && this[i]) { + if (r.length) (S.event.special[i] || {}).delegateType && e.stopPropagation(); + else if ( + ((r = s.call(arguments)), + Y.set(this, i, r), + (t = o(this, i)), + this[i](), + r !== (n = Y.get(this, i)) || t ? Y.set(this, i, !1) : (n = {}), + r !== n) + ) + return e.stopImmediatePropagation(), e.preventDefault(), n.value; + } else + r.length && + (Y.set(this, i, { + value: S.event.trigger(S.extend(r[0], S.Event.prototype), r.slice(1), this), + }), + e.stopImmediatePropagation()); + }, + })) + : void 0 === Y.get(e, i) && S.event.add(e, i, Ce); + } + (S.event = { + global: {}, + add: function (t, e, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + v = Y.get(t); + if (V(t)) { + n.handler && ((n = (o = n).handler), (i = o.selector)), + i && S.find.matchesSelector(re, i), + n.guid || (n.guid = S.guid++), + (u = v.events) || (u = v.events = Object.create(null)), + (a = v.handle) || + (a = v.handle = + function (e) { + return 'undefined' != typeof S && S.event.triggered !== e.type + ? S.event.dispatch.apply(t, arguments) + : void 0; + }), + (l = (e = (e || '').match(P) || ['']).length); + while (l--) + (d = g = (s = Te.exec(e[l]) || [])[1]), + (h = (s[2] || '').split('.').sort()), + d && + ((f = S.event.special[d] || {}), + (d = (i ? f.delegateType : f.bindType) || d), + (f = S.event.special[d] || {}), + (c = S.extend( + { + type: d, + origType: g, + data: r, + handler: n, + guid: n.guid, + selector: i, + needsContext: i && S.expr.match.needsContext.test(i), + namespace: h.join('.'), + }, + o, + )), + (p = u[d]) || + (((p = u[d] = []).delegateCount = 0), + (f.setup && !1 !== f.setup.call(t, r, h, a)) || + (t.addEventListener && t.addEventListener(d, a))), + f.add && (f.add.call(t, c), c.handler.guid || (c.handler.guid = n.guid)), + i ? p.splice(p.delegateCount++, 0, c) : p.push(c), + (S.event.global[d] = !0)); + } + }, + remove: function (e, t, n, r, i) { + var o, + a, + s, + u, + l, + c, + f, + p, + d, + h, + g, + v = Y.hasData(e) && Y.get(e); + if (v && (u = v.events)) { + l = (t = (t || '').match(P) || ['']).length; + while (l--) + if (((d = g = (s = Te.exec(t[l]) || [])[1]), (h = (s[2] || '').split('.').sort()), d)) { + (f = S.event.special[d] || {}), + (p = u[(d = (r ? f.delegateType : f.bindType) || d)] || []), + (s = s[2] && new RegExp('(^|\\.)' + h.join('\\.(?:.*\\.|)') + '(\\.|$)')), + (a = o = p.length); + while (o--) + (c = p[o]), + (!i && g !== c.origType) || + (n && n.guid !== c.guid) || + (s && !s.test(c.namespace)) || + (r && r !== c.selector && ('**' !== r || !c.selector)) || + (p.splice(o, 1), + c.selector && p.delegateCount--, + f.remove && f.remove.call(e, c)); + a && + !p.length && + ((f.teardown && !1 !== f.teardown.call(e, h, v.handle)) || + S.removeEvent(e, d, v.handle), + delete u[d]); + } else for (d in u) S.event.remove(e, d + t[l], n, r, !0); + S.isEmptyObject(u) && Y.remove(e, 'handle events'); + } + }, + dispatch: function (e) { + var t, + n, + r, + i, + o, + a, + s = new Array(arguments.length), + u = S.event.fix(e), + l = (Y.get(this, 'events') || Object.create(null))[u.type] || [], + c = S.event.special[u.type] || {}; + for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t]; + if (((u.delegateTarget = this), !c.preDispatch || !1 !== c.preDispatch.call(this, u))) { + (a = S.event.handlers.call(this, u, l)), (t = 0); + while ((i = a[t++]) && !u.isPropagationStopped()) { + (u.currentTarget = i.elem), (n = 0); + while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) + (u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace)) || + ((u.handleObj = o), + (u.data = o.data), + void 0 !== + (r = ((S.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && + !1 === (u.result = r) && + (u.preventDefault(), u.stopPropagation())); + } + return c.postDispatch && c.postDispatch.call(this, u), u.result; + } + }, + handlers: function (e, t) { + var n, + r, + i, + o, + a, + s = [], + u = t.delegateCount, + l = e.target; + if (u && l.nodeType && !('click' === e.type && 1 <= e.button)) + for (; l !== this; l = l.parentNode || this) + if (1 === l.nodeType && ('click' !== e.type || !0 !== l.disabled)) { + for (o = [], a = {}, n = 0; n < u; n++) + void 0 === a[(i = (r = t[n]).selector + ' ')] && + (a[i] = r.needsContext + ? -1 < S(i, this).index(l) + : S.find(i, this, null, [l]).length), + a[i] && o.push(r); + o.length && s.push({ elem: l, handlers: o }); + } + return (l = this), u < t.length && s.push({ elem: l, handlers: t.slice(u) }), s; + }, + addProp: function (t, e) { + Object.defineProperty(S.Event.prototype, t, { + enumerable: !0, + configurable: !0, + get: m(e) + ? function () { + if (this.originalEvent) return e(this.originalEvent); + } + : function () { + if (this.originalEvent) return this.originalEvent[t]; + }, + set: function (e) { + Object.defineProperty(this, t, { + enumerable: !0, + configurable: !0, + writable: !0, + value: e, + }); + }, + }); + }, + fix: function (e) { + return e[S.expando] ? e : new S.Event(e); + }, + special: { + load: { noBubble: !0 }, + click: { + setup: function (e) { + var t = this || e; + return pe.test(t.type) && t.click && A(t, 'input') && Ae(t, 'click', Ce), !1; + }, + trigger: function (e) { + var t = this || e; + return pe.test(t.type) && t.click && A(t, 'input') && Ae(t, 'click'), !0; + }, + _default: function (e) { + var t = e.target; + return (pe.test(t.type) && t.click && A(t, 'input') && Y.get(t, 'click')) || A(t, 'a'); + }, + }, + beforeunload: { + postDispatch: function (e) { + void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result); + }, + }, + }, + }), + (S.removeEvent = function (e, t, n) { + e.removeEventListener && e.removeEventListener(t, n); + }), + (S.Event = function (e, t) { + if (!(this instanceof S.Event)) return new S.Event(e, t); + e && e.type + ? ((this.originalEvent = e), + (this.type = e.type), + (this.isDefaultPrevented = + e.defaultPrevented || (void 0 === e.defaultPrevented && !1 === e.returnValue) + ? Ce + : Ee), + (this.target = e.target && 3 === e.target.nodeType ? e.target.parentNode : e.target), + (this.currentTarget = e.currentTarget), + (this.relatedTarget = e.relatedTarget)) + : (this.type = e), + t && S.extend(this, t), + (this.timeStamp = (e && e.timeStamp) || Date.now()), + (this[S.expando] = !0); + }), + (S.Event.prototype = { + constructor: S.Event, + isDefaultPrevented: Ee, + isPropagationStopped: Ee, + isImmediatePropagationStopped: Ee, + isSimulated: !1, + preventDefault: function () { + var e = this.originalEvent; + (this.isDefaultPrevented = Ce), e && !this.isSimulated && e.preventDefault(); + }, + stopPropagation: function () { + var e = this.originalEvent; + (this.isPropagationStopped = Ce), e && !this.isSimulated && e.stopPropagation(); + }, + stopImmediatePropagation: function () { + var e = this.originalEvent; + (this.isImmediatePropagationStopped = Ce), + e && !this.isSimulated && e.stopImmediatePropagation(), + this.stopPropagation(); + }, + }), + S.each( + { + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + char: !0, + code: !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: function (e) { + var t = e.button; + return null == e.which && be.test(e.type) + ? null != e.charCode + ? e.charCode + : e.keyCode + : !e.which && void 0 !== t && we.test(e.type) + ? 1 & t + ? 1 + : 2 & t + ? 3 + : 4 & t + ? 2 + : 0 + : e.which; + }, + }, + S.event.addProp, + ), + S.each({ focus: 'focusin', blur: 'focusout' }, function (e, t) { + S.event.special[e] = { + setup: function () { + return Ae(this, e, Se), !1; + }, + trigger: function () { + return Ae(this, e), !0; + }, + delegateType: t, + }; + }), + S.each( + { + mouseenter: 'mouseover', + mouseleave: 'mouseout', + pointerenter: 'pointerover', + pointerleave: 'pointerout', + }, + function (e, i) { + S.event.special[e] = { + delegateType: i, + bindType: i, + handle: function (e) { + var t, + n = e.relatedTarget, + r = e.handleObj; + return ( + (n && (n === this || S.contains(this, n))) || + ((e.type = r.origType), (t = r.handler.apply(this, arguments)), (e.type = i)), + t + ); + }, + }; + }, + ), + S.fn.extend({ + on: function (e, t, n, r) { + return ke(this, e, t, n, r); + }, + one: function (e, t, n, r) { + return ke(this, e, t, n, r, 1); + }, + off: function (e, t, n) { + var r, i; + if (e && e.preventDefault && e.handleObj) + return ( + (r = e.handleObj), + S(e.delegateTarget).off( + r.namespace ? r.origType + '.' + r.namespace : r.origType, + r.selector, + r.handler, + ), + this + ); + if ('object' == typeof e) { + for (i in e) this.off(i, t, e[i]); + return this; + } + return ( + (!1 !== t && 'function' != typeof t) || ((n = t), (t = void 0)), + !1 === n && (n = Ee), + this.each(function () { + S.event.remove(this, e, n, t); + }) + ); + }, + }); + var Ne = /\s*$/g; + function qe(e, t) { + return ( + (A(e, 'table') && + A(11 !== t.nodeType ? t : t.firstChild, 'tr') && + S(e).children('tbody')[0]) || + e + ); + } + function Le(e) { + return (e.type = (null !== e.getAttribute('type')) + '/' + e.type), e; + } + function He(e) { + return ( + 'true/' === (e.type || '').slice(0, 5) + ? (e.type = e.type.slice(5)) + : e.removeAttribute('type'), + e + ); + } + function Oe(e, t) { + var n, r, i, o, a, s; + if (1 === t.nodeType) { + if (Y.hasData(e) && (s = Y.get(e).events)) + for (i in (Y.remove(t, 'handle events'), s)) + for (n = 0, r = s[i].length; n < r; n++) S.event.add(t, i, s[i][n]); + Q.hasData(e) && ((o = Q.access(e)), (a = S.extend({}, o)), Q.set(t, a)); + } + } + function Pe(n, r, i, o) { + r = g(r); + var e, + t, + a, + s, + u, + l, + c = 0, + f = n.length, + p = f - 1, + d = r[0], + h = m(d); + if (h || (1 < f && 'string' == typeof d && !y.checkClone && De.test(d))) + return n.each(function (e) { + var t = n.eq(e); + h && (r[0] = d.call(this, e, t.html())), Pe(t, r, i, o); + }); + if ( + f && + ((t = (e = xe(r, n[0].ownerDocument, !1, n, o)).firstChild), + 1 === e.childNodes.length && (e = t), + t || o) + ) { + for (s = (a = S.map(ve(e, 'script'), Le)).length; c < f; c++) + (u = e), + c !== p && ((u = S.clone(u, !0, !0)), s && S.merge(a, ve(u, 'script'))), + i.call(n[c], u, c); + if (s) + for (l = a[a.length - 1].ownerDocument, S.map(a, He), c = 0; c < s; c++) + (u = a[c]), + he.test(u.type || '') && + !Y.access(u, 'globalEval') && + S.contains(l, u) && + (u.src && 'module' !== (u.type || '').toLowerCase() + ? S._evalUrl && + !u.noModule && + S._evalUrl(u.src, { nonce: u.nonce || u.getAttribute('nonce') }, l) + : b(u.textContent.replace(je, ''), u, l)); + } + return n; + } + function Re(e, t, n) { + for (var r, i = t ? S.filter(t, e) : e, o = 0; null != (r = i[o]); o++) + n || 1 !== r.nodeType || S.cleanData(ve(r)), + r.parentNode && (n && ie(r) && ye(ve(r, 'script')), r.parentNode.removeChild(r)); + return e; + } + S.extend({ + htmlPrefilter: function (e) { + return e; + }, + clone: function (e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c = e.cloneNode(!0), + f = ie(e); + if (!(y.noCloneChecked || (1 !== e.nodeType && 11 !== e.nodeType) || S.isXMLDoc(e))) + for (a = ve(c), r = 0, i = (o = ve(e)).length; r < i; r++) + (s = o[r]), + (u = a[r]), + void 0, + 'input' === (l = u.nodeName.toLowerCase()) && pe.test(s.type) + ? (u.checked = s.checked) + : ('input' !== l && 'textarea' !== l) || (u.defaultValue = s.defaultValue); + if (t) + if (n) for (o = o || ve(e), a = a || ve(c), r = 0, i = o.length; r < i; r++) Oe(o[r], a[r]); + else Oe(e, c); + return 0 < (a = ve(c, 'script')).length && ye(a, !f && ve(e, 'script')), c; + }, + cleanData: function (e) { + for (var t, n, r, i = S.event.special, o = 0; void 0 !== (n = e[o]); o++) + if (V(n)) { + if ((t = n[Y.expando])) { + if (t.events) + for (r in t.events) i[r] ? S.event.remove(n, r) : S.removeEvent(n, r, t.handle); + n[Y.expando] = void 0; + } + n[Q.expando] && (n[Q.expando] = void 0); + } + }, + }), + S.fn.extend({ + detach: function (e) { + return Re(this, e, !0); + }, + remove: function (e) { + return Re(this, e); + }, + text: function (e) { + return $( + this, + function (e) { + return void 0 === e + ? S.text(this) + : this.empty().each(function () { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + (this.textContent = e); + }); + }, + null, + e, + arguments.length, + ); + }, + append: function () { + return Pe(this, arguments, function (e) { + (1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType) || + qe(this, e).appendChild(e); + }); + }, + prepend: function () { + return Pe(this, arguments, function (e) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var t = qe(this, e); + t.insertBefore(e, t.firstChild); + } + }); + }, + before: function () { + return Pe(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this); + }); + }, + after: function () { + return Pe(this, arguments, function (e) { + this.parentNode && this.parentNode.insertBefore(e, this.nextSibling); + }); + }, + empty: function () { + for (var e, t = 0; null != (e = this[t]); t++) + 1 === e.nodeType && (S.cleanData(ve(e, !1)), (e.textContent = '')); + return this; + }, + clone: function (e, t) { + return ( + (e = null != e && e), + (t = null == t ? e : t), + this.map(function () { + return S.clone(this, e, t); + }) + ); + }, + html: function (e) { + return $( + this, + function (e) { + var t = this[0] || {}, + n = 0, + r = this.length; + if (void 0 === e && 1 === t.nodeType) return t.innerHTML; + if ( + 'string' == typeof e && + !Ne.test(e) && + !ge[(de.exec(e) || ['', ''])[1].toLowerCase()] + ) { + e = S.htmlPrefilter(e); + try { + for (; n < r; n++) + 1 === (t = this[n] || {}).nodeType && (S.cleanData(ve(t, !1)), (t.innerHTML = e)); + t = 0; + } catch (e) {} + } + t && this.empty().append(e); + }, + null, + e, + arguments.length, + ); + }, + replaceWith: function () { + var n = []; + return Pe( + this, + arguments, + function (e) { + var t = this.parentNode; + S.inArray(this, n) < 0 && (S.cleanData(ve(this)), t && t.replaceChild(e, this)); + }, + n, + ); + }, + }), + S.each( + { + appendTo: 'append', + prependTo: 'prepend', + insertBefore: 'before', + insertAfter: 'after', + replaceAll: 'replaceWith', + }, + function (e, a) { + S.fn[e] = function (e) { + for (var t, n = [], r = S(e), i = r.length - 1, o = 0; o <= i; o++) + (t = o === i ? this : this.clone(!0)), S(r[o])[a](t), u.apply(n, t.get()); + return this.pushStack(n); + }; + }, + ); + var Me = new RegExp('^(' + ee + ')(?!px)[a-z%]+$', 'i'), + Ie = function (e) { + var t = e.ownerDocument.defaultView; + return (t && t.opener) || (t = C), t.getComputedStyle(e); + }, + We = function (e, t, n) { + var r, + i, + o = {}; + for (i in t) (o[i] = e.style[i]), (e.style[i] = t[i]); + for (i in ((r = n.call(e)), t)) e.style[i] = o[i]; + return r; + }, + Fe = new RegExp(ne.join('|'), 'i'); + function Be(e, t, n) { + var r, + i, + o, + a, + s = e.style; + return ( + (n = n || Ie(e)) && + ('' !== (a = n.getPropertyValue(t) || n[t]) || ie(e) || (a = S.style(e, t)), + !y.pixelBoxStyles() && + Me.test(a) && + Fe.test(t) && + ((r = s.width), + (i = s.minWidth), + (o = s.maxWidth), + (s.minWidth = s.maxWidth = s.width = a), + (a = n.width), + (s.width = r), + (s.minWidth = i), + (s.maxWidth = o))), + void 0 !== a ? a + '' : a + ); + } + function $e(e, t) { + return { + get: function () { + if (!e()) return (this.get = t).apply(this, arguments); + delete this.get; + }, + }; + } + !(function () { + function e() { + if (l) { + (u.style.cssText = + 'position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0'), + (l.style.cssText = + 'position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%'), + re.appendChild(u).appendChild(l); + var e = C.getComputedStyle(l); + (n = '1%' !== e.top), + (s = 12 === t(e.marginLeft)), + (l.style.right = '60%'), + (o = 36 === t(e.right)), + (r = 36 === t(e.width)), + (l.style.position = 'absolute'), + (i = 12 === t(l.offsetWidth / 3)), + re.removeChild(u), + (l = null); + } + } + function t(e) { + return Math.round(parseFloat(e)); + } + var n, + r, + i, + o, + a, + s, + u = E.createElement('div'), + l = E.createElement('div'); + l.style && + ((l.style.backgroundClip = 'content-box'), + (l.cloneNode(!0).style.backgroundClip = ''), + (y.clearCloneStyle = 'content-box' === l.style.backgroundClip), + S.extend(y, { + boxSizingReliable: function () { + return e(), r; + }, + pixelBoxStyles: function () { + return e(), o; + }, + pixelPosition: function () { + return e(), n; + }, + reliableMarginLeft: function () { + return e(), s; + }, + scrollboxSize: function () { + return e(), i; + }, + reliableTrDimensions: function () { + var e, t, n, r; + return ( + null == a && + ((e = E.createElement('table')), + (t = E.createElement('tr')), + (n = E.createElement('div')), + (e.style.cssText = 'position:absolute;left:-11111px'), + (t.style.height = '1px'), + (n.style.height = '9px'), + re.appendChild(e).appendChild(t).appendChild(n), + (r = C.getComputedStyle(t)), + (a = 3 < parseInt(r.height)), + re.removeChild(e)), + a + ); + }, + })); + })(); + var _e = ['Webkit', 'Moz', 'ms'], + ze = E.createElement('div').style, + Ue = {}; + function Xe(e) { + var t = S.cssProps[e] || Ue[e]; + return ( + t || + (e in ze + ? e + : (Ue[e] = + (function (e) { + var t = e[0].toUpperCase() + e.slice(1), + n = _e.length; + while (n--) if ((e = _e[n] + t) in ze) return e; + })(e) || e)) + ); + } + var Ve = /^(none|table(?!-c[ea]).+)/, + Ge = /^--/, + Ye = { position: 'absolute', visibility: 'hidden', display: 'block' }, + Qe = { letterSpacing: '0', fontWeight: '400' }; + function Je(e, t, n) { + var r = te.exec(t); + return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || 'px') : t; + } + function Ke(e, t, n, r, i, o) { + var a = 'width' === t ? 1 : 0, + s = 0, + u = 0; + if (n === (r ? 'border' : 'content')) return 0; + for (; a < 4; a += 2) + 'margin' === n && (u += S.css(e, n + ne[a], !0, i)), + r + ? ('content' === n && (u -= S.css(e, 'padding' + ne[a], !0, i)), + 'margin' !== n && (u -= S.css(e, 'border' + ne[a] + 'Width', !0, i))) + : ((u += S.css(e, 'padding' + ne[a], !0, i)), + 'padding' !== n + ? (u += S.css(e, 'border' + ne[a] + 'Width', !0, i)) + : (s += S.css(e, 'border' + ne[a] + 'Width', !0, i))); + return ( + !r && + 0 <= o && + (u += + Math.max(0, Math.ceil(e['offset' + t[0].toUpperCase() + t.slice(1)] - o - u - s - 0.5)) || + 0), + u + ); + } + function Ze(e, t, n) { + var r = Ie(e), + i = (!y.boxSizingReliable() || n) && 'border-box' === S.css(e, 'boxSizing', !1, r), + o = i, + a = Be(e, t, r), + s = 'offset' + t[0].toUpperCase() + t.slice(1); + if (Me.test(a)) { + if (!n) return a; + a = 'auto'; + } + return ( + ((!y.boxSizingReliable() && i) || + (!y.reliableTrDimensions() && A(e, 'tr')) || + 'auto' === a || + (!parseFloat(a) && 'inline' === S.css(e, 'display', !1, r))) && + e.getClientRects().length && + ((i = 'border-box' === S.css(e, 'boxSizing', !1, r)), (o = s in e) && (a = e[s])), + (a = parseFloat(a) || 0) + Ke(e, t, n || (i ? 'border' : 'content'), o, r, a) + 'px' + ); + } + function et(e, t, n, r, i) { + return new et.prototype.init(e, t, n, r, i); + } + S.extend({ + cssHooks: { + opacity: { + get: function (e, t) { + if (t) { + var n = Be(e, 'opacity'); + return '' === n ? '1' : n; + } + }, + }, + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + gridArea: !0, + gridColumn: !0, + gridColumnEnd: !0, + gridColumnStart: !0, + gridRow: !0, + gridRowEnd: !0, + gridRowStart: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0, + }, + cssProps: {}, + style: function (e, t, n, r) { + if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) { + var i, + o, + a, + s = X(t), + u = Ge.test(t), + l = e.style; + if ((u || (t = Xe(s)), (a = S.cssHooks[t] || S.cssHooks[s]), void 0 === n)) + return a && 'get' in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t]; + 'string' === (o = typeof n) && + (i = te.exec(n)) && + i[1] && + ((n = se(e, t, i)), (o = 'number')), + null != n && + n == n && + ('number' !== o || u || (n += (i && i[3]) || (S.cssNumber[s] ? '' : 'px')), + y.clearCloneStyle || '' !== n || 0 !== t.indexOf('background') || (l[t] = 'inherit'), + (a && 'set' in a && void 0 === (n = a.set(e, n, r))) || + (u ? l.setProperty(t, n) : (l[t] = n))); + } + }, + css: function (e, t, n, r) { + var i, + o, + a, + s = X(t); + return ( + Ge.test(t) || (t = Xe(s)), + (a = S.cssHooks[t] || S.cssHooks[s]) && 'get' in a && (i = a.get(e, !0, n)), + void 0 === i && (i = Be(e, t, r)), + 'normal' === i && t in Qe && (i = Qe[t]), + '' === n || n ? ((o = parseFloat(i)), !0 === n || isFinite(o) ? o || 0 : i) : i + ); + }, + }), + S.each(['height', 'width'], function (e, u) { + S.cssHooks[u] = { + get: function (e, t, n) { + if (t) + return !Ve.test(S.css(e, 'display')) || + (e.getClientRects().length && e.getBoundingClientRect().width) + ? Ze(e, u, n) + : We(e, Ye, function () { + return Ze(e, u, n); + }); + }, + set: function (e, t, n) { + var r, + i = Ie(e), + o = !y.scrollboxSize() && 'absolute' === i.position, + a = (o || n) && 'border-box' === S.css(e, 'boxSizing', !1, i), + s = n ? Ke(e, u, n, a, i) : 0; + return ( + a && + o && + (s -= Math.ceil( + e['offset' + u[0].toUpperCase() + u.slice(1)] - + parseFloat(i[u]) - + Ke(e, u, 'border', !1, i) - + 0.5, + )), + s && + (r = te.exec(t)) && + 'px' !== (r[3] || 'px') && + ((e.style[u] = t), (t = S.css(e, u))), + Je(0, t, s) + ); + }, + }; + }), + (S.cssHooks.marginLeft = $e(y.reliableMarginLeft, function (e, t) { + if (t) + return ( + (parseFloat(Be(e, 'marginLeft')) || + e.getBoundingClientRect().left - + We(e, { marginLeft: 0 }, function () { + return e.getBoundingClientRect().left; + })) + 'px' + ); + })), + S.each({ margin: '', padding: '', border: 'Width' }, function (i, o) { + (S.cssHooks[i + o] = { + expand: function (e) { + for (var t = 0, n = {}, r = 'string' == typeof e ? e.split(' ') : [e]; t < 4; t++) + n[i + ne[t] + o] = r[t] || r[t - 2] || r[0]; + return n; + }, + }), + 'margin' !== i && (S.cssHooks[i + o].set = Je); + }), + S.fn.extend({ + css: function (e, t) { + return $( + this, + function (e, t, n) { + var r, + i, + o = {}, + a = 0; + if (Array.isArray(t)) { + for (r = Ie(e), i = t.length; a < i; a++) o[t[a]] = S.css(e, t[a], !1, r); + return o; + } + return void 0 !== n ? S.style(e, t, n) : S.css(e, t); + }, + e, + t, + 1 < arguments.length, + ); + }, + }), + (((S.Tween = et).prototype = { + constructor: et, + init: function (e, t, n, r, i, o) { + (this.elem = e), + (this.prop = n), + (this.easing = i || S.easing._default), + (this.options = t), + (this.start = this.now = this.cur()), + (this.end = r), + (this.unit = o || (S.cssNumber[n] ? '' : 'px')); + }, + cur: function () { + var e = et.propHooks[this.prop]; + return e && e.get ? e.get(this) : et.propHooks._default.get(this); + }, + run: function (e) { + var t, + n = et.propHooks[this.prop]; + return ( + this.options.duration + ? (this.pos = t = + S.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration)) + : (this.pos = t = e), + (this.now = (this.end - this.start) * t + this.start), + this.options.step && this.options.step.call(this.elem, this.now, this), + n && n.set ? n.set(this) : et.propHooks._default.set(this), + this + ); + }, + }).init.prototype = et.prototype), + ((et.propHooks = { + _default: { + get: function (e) { + var t; + return 1 !== e.elem.nodeType || (null != e.elem[e.prop] && null == e.elem.style[e.prop]) + ? e.elem[e.prop] + : (t = S.css(e.elem, e.prop, '')) && 'auto' !== t + ? t + : 0; + }, + set: function (e) { + S.fx.step[e.prop] + ? S.fx.step[e.prop](e) + : 1 !== e.elem.nodeType || (!S.cssHooks[e.prop] && null == e.elem.style[Xe(e.prop)]) + ? (e.elem[e.prop] = e.now) + : S.style(e.elem, e.prop, e.now + e.unit); + }, + }, + }).scrollTop = et.propHooks.scrollLeft = + { + set: function (e) { + e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now); + }, + }), + (S.easing = { + linear: function (e) { + return e; + }, + swing: function (e) { + return 0.5 - Math.cos(e * Math.PI) / 2; + }, + _default: 'swing', + }), + (S.fx = et.prototype.init), + (S.fx.step = {}); + var tt, + nt, + rt, + it, + ot = /^(?:toggle|show|hide)$/, + at = /queueHooks$/; + function st() { + nt && + (!1 === E.hidden && C.requestAnimationFrame + ? C.requestAnimationFrame(st) + : C.setTimeout(st, S.fx.interval), + S.fx.tick()); + } + function ut() { + return ( + C.setTimeout(function () { + tt = void 0; + }), + (tt = Date.now()) + ); + } + function lt(e, t) { + var n, + r = 0, + i = { height: e }; + for (t = t ? 1 : 0; r < 4; r += 2 - t) i['margin' + (n = ne[r])] = i['padding' + n] = e; + return t && (i.opacity = i.width = e), i; + } + function ct(e, t, n) { + for ( + var r, i = (ft.tweeners[t] || []).concat(ft.tweeners['*']), o = 0, a = i.length; + o < a; + o++ + ) + if ((r = i[o].call(n, t, e))) return r; + } + function ft(o, e, t) { + var n, + a, + r = 0, + i = ft.prefilters.length, + s = S.Deferred().always(function () { + delete u.elem; + }), + u = function () { + if (a) return !1; + for ( + var e = tt || ut(), + t = Math.max(0, l.startTime + l.duration - e), + n = 1 - (t / l.duration || 0), + r = 0, + i = l.tweens.length; + r < i; + r++ + ) + l.tweens[r].run(n); + return ( + s.notifyWith(o, [l, n, t]), + n < 1 && i ? t : (i || s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l]), !1) + ); + }, + l = s.promise({ + elem: o, + props: S.extend({}, e), + opts: S.extend(!0, { specialEasing: {}, easing: S.easing._default }, t), + originalProperties: e, + originalOptions: t, + startTime: tt || ut(), + duration: t.duration, + tweens: [], + createTween: function (e, t) { + var n = S.Tween(o, l.opts, e, t, l.opts.specialEasing[e] || l.opts.easing); + return l.tweens.push(n), n; + }, + stop: function (e) { + var t = 0, + n = e ? l.tweens.length : 0; + if (a) return this; + for (a = !0; t < n; t++) l.tweens[t].run(1); + return ( + e ? (s.notifyWith(o, [l, 1, 0]), s.resolveWith(o, [l, e])) : s.rejectWith(o, [l, e]), + this + ); + }, + }), + c = l.props; + for ( + !(function (e, t) { + var n, r, i, o, a; + for (n in e) + if ( + ((i = t[(r = X(n))]), + (o = e[n]), + Array.isArray(o) && ((i = o[1]), (o = e[n] = o[0])), + n !== r && ((e[r] = o), delete e[n]), + (a = S.cssHooks[r]) && ('expand' in a)) + ) + for (n in ((o = a.expand(o)), delete e[r], o)) (n in e) || ((e[n] = o[n]), (t[n] = i)); + else t[r] = i; + })(c, l.opts.specialEasing); + r < i; + r++ + ) + if ((n = ft.prefilters[r].call(l, o, c, l.opts))) + return m(n.stop) && (S._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n; + return ( + S.map(c, ct, l), + m(l.opts.start) && l.opts.start.call(o, l), + l + .progress(l.opts.progress) + .done(l.opts.done, l.opts.complete) + .fail(l.opts.fail) + .always(l.opts.always), + S.fx.timer(S.extend(u, { elem: o, anim: l, queue: l.opts.queue })), + l + ); + } + (S.Animation = S.extend(ft, { + tweeners: { + '*': [ + function (e, t) { + var n = this.createTween(e, t); + return se(n.elem, e, te.exec(t), n), n; + }, + ], + }, + tweener: function (e, t) { + m(e) ? ((t = e), (e = ['*'])) : (e = e.match(P)); + for (var n, r = 0, i = e.length; r < i; r++) + (n = e[r]), (ft.tweeners[n] = ft.tweeners[n] || []), ft.tweeners[n].unshift(t); + }, + prefilters: [ + function (e, t, n) { + var r, + i, + o, + a, + s, + u, + l, + c, + f = 'width' in t || 'height' in t, + p = this, + d = {}, + h = e.style, + g = e.nodeType && ae(e), + v = Y.get(e, 'fxshow'); + for (r in (n.queue || + (null == (a = S._queueHooks(e, 'fx')).unqueued && + ((a.unqueued = 0), + (s = a.empty.fire), + (a.empty.fire = function () { + a.unqueued || s(); + })), + a.unqueued++, + p.always(function () { + p.always(function () { + a.unqueued--, S.queue(e, 'fx').length || a.empty.fire(); + }); + })), + t)) + if (((i = t[r]), ot.test(i))) { + if ((delete t[r], (o = o || 'toggle' === i), i === (g ? 'hide' : 'show'))) { + if ('show' !== i || !v || void 0 === v[r]) continue; + g = !0; + } + d[r] = (v && v[r]) || S.style(e, r); + } + if ((u = !S.isEmptyObject(t)) || !S.isEmptyObject(d)) + for (r in (f && + 1 === e.nodeType && + ((n.overflow = [h.overflow, h.overflowX, h.overflowY]), + null == (l = v && v.display) && (l = Y.get(e, 'display')), + 'none' === (c = S.css(e, 'display')) && + (l + ? (c = l) + : (le([e], !0), (l = e.style.display || l), (c = S.css(e, 'display')), le([e]))), + ('inline' === c || ('inline-block' === c && null != l)) && + 'none' === S.css(e, 'float') && + (u || + (p.done(function () { + h.display = l; + }), + null == l && ((c = h.display), (l = 'none' === c ? '' : c))), + (h.display = 'inline-block'))), + n.overflow && + ((h.overflow = 'hidden'), + p.always(function () { + (h.overflow = n.overflow[0]), + (h.overflowX = n.overflow[1]), + (h.overflowY = n.overflow[2]); + })), + (u = !1), + d)) + u || + (v ? 'hidden' in v && (g = v.hidden) : (v = Y.access(e, 'fxshow', { display: l })), + o && (v.hidden = !g), + g && le([e], !0), + p.done(function () { + for (r in (g || le([e]), Y.remove(e, 'fxshow'), d)) S.style(e, r, d[r]); + })), + (u = ct(g ? v[r] : 0, r, p)), + r in v || ((v[r] = u.start), g && ((u.end = u.start), (u.start = 0))); + }, + ], + prefilter: function (e, t) { + t ? ft.prefilters.unshift(e) : ft.prefilters.push(e); + }, + })), + (S.speed = function (e, t, n) { + var r = + e && 'object' == typeof e + ? S.extend({}, e) + : { + complete: n || (!n && t) || (m(e) && e), + duration: e, + easing: (n && t) || (t && !m(t) && t), + }; + return ( + S.fx.off + ? (r.duration = 0) + : 'number' != typeof r.duration && + (r.duration in S.fx.speeds + ? (r.duration = S.fx.speeds[r.duration]) + : (r.duration = S.fx.speeds._default)), + (null != r.queue && !0 !== r.queue) || (r.queue = 'fx'), + (r.old = r.complete), + (r.complete = function () { + m(r.old) && r.old.call(this), r.queue && S.dequeue(this, r.queue); + }), + r + ); + }), + S.fn.extend({ + fadeTo: function (e, t, n, r) { + return this.filter(ae).css('opacity', 0).show().end().animate({ opacity: t }, e, n, r); + }, + animate: function (t, e, n, r) { + var i = S.isEmptyObject(t), + o = S.speed(e, n, r), + a = function () { + var e = ft(this, S.extend({}, t), o); + (i || Y.get(this, 'finish')) && e.stop(!0); + }; + return (a.finish = a), i || !1 === o.queue ? this.each(a) : this.queue(o.queue, a); + }, + stop: function (i, e, o) { + var a = function (e) { + var t = e.stop; + delete e.stop, t(o); + }; + return ( + 'string' != typeof i && ((o = e), (e = i), (i = void 0)), + e && this.queue(i || 'fx', []), + this.each(function () { + var e = !0, + t = null != i && i + 'queueHooks', + n = S.timers, + r = Y.get(this); + if (t) r[t] && r[t].stop && a(r[t]); + else for (t in r) r[t] && r[t].stop && at.test(t) && a(r[t]); + for (t = n.length; t--; ) + n[t].elem !== this || + (null != i && n[t].queue !== i) || + (n[t].anim.stop(o), (e = !1), n.splice(t, 1)); + (!e && o) || S.dequeue(this, i); + }) + ); + }, + finish: function (a) { + return ( + !1 !== a && (a = a || 'fx'), + this.each(function () { + var e, + t = Y.get(this), + n = t[a + 'queue'], + r = t[a + 'queueHooks'], + i = S.timers, + o = n ? n.length : 0; + for ( + t.finish = !0, + S.queue(this, a, []), + r && r.stop && r.stop.call(this, !0), + e = i.length; + e--; + + ) + i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1)); + for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this); + delete t.finish; + }) + ); + }, + }), + S.each(['toggle', 'show', 'hide'], function (e, r) { + var i = S.fn[r]; + S.fn[r] = function (e, t, n) { + return null == e || 'boolean' == typeof e + ? i.apply(this, arguments) + : this.animate(lt(r, !0), e, t, n); + }; + }), + S.each( + { + slideDown: lt('show'), + slideUp: lt('hide'), + slideToggle: lt('toggle'), + fadeIn: { opacity: 'show' }, + fadeOut: { opacity: 'hide' }, + fadeToggle: { opacity: 'toggle' }, + }, + function (e, r) { + S.fn[e] = function (e, t, n) { + return this.animate(r, e, t, n); + }; + }, + ), + (S.timers = []), + (S.fx.tick = function () { + var e, + t = 0, + n = S.timers; + for (tt = Date.now(); t < n.length; t++) (e = n[t])() || n[t] !== e || n.splice(t--, 1); + n.length || S.fx.stop(), (tt = void 0); + }), + (S.fx.timer = function (e) { + S.timers.push(e), S.fx.start(); + }), + (S.fx.interval = 13), + (S.fx.start = function () { + nt || ((nt = !0), st()); + }), + (S.fx.stop = function () { + nt = null; + }), + (S.fx.speeds = { slow: 600, fast: 200, _default: 400 }), + (S.fn.delay = function (r, e) { + return ( + (r = (S.fx && S.fx.speeds[r]) || r), + (e = e || 'fx'), + this.queue(e, function (e, t) { + var n = C.setTimeout(e, r); + t.stop = function () { + C.clearTimeout(n); + }; + }) + ); + }), + (rt = E.createElement('input')), + (it = E.createElement('select').appendChild(E.createElement('option'))), + (rt.type = 'checkbox'), + (y.checkOn = '' !== rt.value), + (y.optSelected = it.selected), + ((rt = E.createElement('input')).value = 't'), + (rt.type = 'radio'), + (y.radioValue = 't' === rt.value); + var pt, + dt = S.expr.attrHandle; + S.fn.extend({ + attr: function (e, t) { + return $(this, S.attr, e, t, 1 < arguments.length); + }, + removeAttr: function (e) { + return this.each(function () { + S.removeAttr(this, e); + }); + }, + }), + S.extend({ + attr: function (e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return 'undefined' == typeof e.getAttribute + ? S.prop(e, t, n) + : ((1 === o && S.isXMLDoc(e)) || + (i = S.attrHooks[t.toLowerCase()] || (S.expr.match.bool.test(t) ? pt : void 0)), + void 0 !== n + ? null === n + ? void S.removeAttr(e, t) + : i && 'set' in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e.setAttribute(t, n + ''), n) + : i && 'get' in i && null !== (r = i.get(e, t)) + ? r + : null == (r = S.find.attr(e, t)) + ? void 0 + : r); + }, + attrHooks: { + type: { + set: function (e, t) { + if (!y.radioValue && 'radio' === t && A(e, 'input')) { + var n = e.value; + return e.setAttribute('type', t), n && (e.value = n), t; + } + }, + }, + }, + removeAttr: function (e, t) { + var n, + r = 0, + i = t && t.match(P); + if (i && 1 === e.nodeType) while ((n = i[r++])) e.removeAttribute(n); + }, + }), + (pt = { + set: function (e, t, n) { + return !1 === t ? S.removeAttr(e, n) : e.setAttribute(n, n), n; + }, + }), + S.each(S.expr.match.bool.source.match(/\w+/g), function (e, t) { + var a = dt[t] || S.find.attr; + dt[t] = function (e, t, n) { + var r, + i, + o = t.toLowerCase(); + return n || ((i = dt[o]), (dt[o] = r), (r = null != a(e, t, n) ? o : null), (dt[o] = i)), r; + }; + }); + var ht = /^(?:input|select|textarea|button)$/i, + gt = /^(?:a|area)$/i; + function vt(e) { + return (e.match(P) || []).join(' '); + } + function yt(e) { + return (e.getAttribute && e.getAttribute('class')) || ''; + } + function mt(e) { + return Array.isArray(e) ? e : ('string' == typeof e && e.match(P)) || []; + } + S.fn.extend({ + prop: function (e, t) { + return $(this, S.prop, e, t, 1 < arguments.length); + }, + removeProp: function (e) { + return this.each(function () { + delete this[S.propFix[e] || e]; + }); + }, + }), + S.extend({ + prop: function (e, t, n) { + var r, + i, + o = e.nodeType; + if (3 !== o && 8 !== o && 2 !== o) + return ( + (1 === o && S.isXMLDoc(e)) || ((t = S.propFix[t] || t), (i = S.propHooks[t])), + void 0 !== n + ? i && 'set' in i && void 0 !== (r = i.set(e, n, t)) + ? r + : (e[t] = n) + : i && 'get' in i && null !== (r = i.get(e, t)) + ? r + : e[t] + ); + }, + propHooks: { + tabIndex: { + get: function (e) { + var t = S.find.attr(e, 'tabindex'); + return t + ? parseInt(t, 10) + : ht.test(e.nodeName) || (gt.test(e.nodeName) && e.href) + ? 0 + : -1; + }, + }, + }, + propFix: { for: 'htmlFor', class: 'className' }, + }), + y.optSelected || + (S.propHooks.selected = { + get: function (e) { + var t = e.parentNode; + return t && t.parentNode && t.parentNode.selectedIndex, null; + }, + set: function (e) { + var t = e.parentNode; + t && (t.selectedIndex, t.parentNode && t.parentNode.selectedIndex); + }, + }), + S.each( + [ + 'tabIndex', + 'readOnly', + 'maxLength', + 'cellSpacing', + 'cellPadding', + 'rowSpan', + 'colSpan', + 'useMap', + 'frameBorder', + 'contentEditable', + ], + function () { + S.propFix[this.toLowerCase()] = this; + }, + ), + S.fn.extend({ + addClass: function (t) { + var e, + n, + r, + i, + o, + a, + s, + u = 0; + if (m(t)) + return this.each(function (e) { + S(this).addClass(t.call(this, e, yt(this))); + }); + if ((e = mt(t)).length) + while ((n = this[u++])) + if (((i = yt(n)), (r = 1 === n.nodeType && ' ' + vt(i) + ' '))) { + a = 0; + while ((o = e[a++])) r.indexOf(' ' + o + ' ') < 0 && (r += o + ' '); + i !== (s = vt(r)) && n.setAttribute('class', s); + } + return this; + }, + removeClass: function (t) { + var e, + n, + r, + i, + o, + a, + s, + u = 0; + if (m(t)) + return this.each(function (e) { + S(this).removeClass(t.call(this, e, yt(this))); + }); + if (!arguments.length) return this.attr('class', ''); + if ((e = mt(t)).length) + while ((n = this[u++])) + if (((i = yt(n)), (r = 1 === n.nodeType && ' ' + vt(i) + ' '))) { + a = 0; + while ((o = e[a++])) + while (-1 < r.indexOf(' ' + o + ' ')) r = r.replace(' ' + o + ' ', ' '); + i !== (s = vt(r)) && n.setAttribute('class', s); + } + return this; + }, + toggleClass: function (i, t) { + var o = typeof i, + a = 'string' === o || Array.isArray(i); + return 'boolean' == typeof t && a + ? t + ? this.addClass(i) + : this.removeClass(i) + : m(i) + ? this.each(function (e) { + S(this).toggleClass(i.call(this, e, yt(this), t), t); + }) + : this.each(function () { + var e, t, n, r; + if (a) { + (t = 0), (n = S(this)), (r = mt(i)); + while ((e = r[t++])) n.hasClass(e) ? n.removeClass(e) : n.addClass(e); + } else + (void 0 !== i && 'boolean' !== o) || + ((e = yt(this)) && Y.set(this, '__className__', e), + this.setAttribute && + this.setAttribute( + 'class', + e || !1 === i ? '' : Y.get(this, '__className__') || '', + )); + }); + }, + hasClass: function (e) { + var t, + n, + r = 0; + t = ' ' + e + ' '; + while ((n = this[r++])) + if (1 === n.nodeType && -1 < (' ' + vt(yt(n)) + ' ').indexOf(t)) return !0; + return !1; + }, + }); + var xt = /\r/g; + S.fn.extend({ + val: function (n) { + var r, + e, + i, + t = this[0]; + return arguments.length + ? ((i = m(n)), + this.each(function (e) { + var t; + 1 === this.nodeType && + (null == (t = i ? n.call(this, e, S(this).val()) : n) + ? (t = '') + : 'number' == typeof t + ? (t += '') + : Array.isArray(t) && + (t = S.map(t, function (e) { + return null == e ? '' : e + ''; + })), + ((r = S.valHooks[this.type] || S.valHooks[this.nodeName.toLowerCase()]) && + 'set' in r && + void 0 !== r.set(this, t, 'value')) || + (this.value = t)); + })) + : t + ? (r = S.valHooks[t.type] || S.valHooks[t.nodeName.toLowerCase()]) && + 'get' in r && + void 0 !== (e = r.get(t, 'value')) + ? e + : 'string' == typeof (e = t.value) + ? e.replace(xt, '') + : null == e + ? '' + : e + : void 0; + }, + }), + S.extend({ + valHooks: { + option: { + get: function (e) { + var t = S.find.attr(e, 'value'); + return null != t ? t : vt(S.text(e)); + }, + }, + select: { + get: function (e) { + var t, + n, + r, + i = e.options, + o = e.selectedIndex, + a = 'select-one' === e.type, + s = a ? null : [], + u = a ? o + 1 : i.length; + for (r = o < 0 ? u : a ? o : 0; r < u; r++) + if ( + ((n = i[r]).selected || r === o) && + !n.disabled && + (!n.parentNode.disabled || !A(n.parentNode, 'optgroup')) + ) { + if (((t = S(n).val()), a)) return t; + s.push(t); + } + return s; + }, + set: function (e, t) { + var n, + r, + i = e.options, + o = S.makeArray(t), + a = i.length; + while (a--) + ((r = i[a]).selected = -1 < S.inArray(S.valHooks.option.get(r), o)) && (n = !0); + return n || (e.selectedIndex = -1), o; + }, + }, + }, + }), + S.each(['radio', 'checkbox'], function () { + (S.valHooks[this] = { + set: function (e, t) { + if (Array.isArray(t)) return (e.checked = -1 < S.inArray(S(e).val(), t)); + }, + }), + y.checkOn || + (S.valHooks[this].get = function (e) { + return null === e.getAttribute('value') ? 'on' : e.value; + }); + }), + (y.focusin = 'onfocusin' in C); + var bt = /^(?:focusinfocus|focusoutblur)$/, + wt = function (e) { + e.stopPropagation(); + }; + S.extend(S.event, { + trigger: function (e, t, n, r) { + var i, + o, + a, + s, + u, + l, + c, + f, + p = [n || E], + d = v.call(e, 'type') ? e.type : e, + h = v.call(e, 'namespace') ? e.namespace.split('.') : []; + if ( + ((o = f = a = n = n || E), + 3 !== n.nodeType && + 8 !== n.nodeType && + !bt.test(d + S.event.triggered) && + (-1 < d.indexOf('.') && ((d = (h = d.split('.')).shift()), h.sort()), + (u = d.indexOf(':') < 0 && 'on' + d), + ((e = e[S.expando] ? e : new S.Event(d, 'object' == typeof e && e)).isTrigger = r + ? 2 + : 3), + (e.namespace = h.join('.')), + (e.rnamespace = e.namespace + ? new RegExp('(^|\\.)' + h.join('\\.(?:.*\\.|)') + '(\\.|$)') + : null), + (e.result = void 0), + e.target || (e.target = n), + (t = null == t ? [e] : S.makeArray(t, [e])), + (c = S.event.special[d] || {}), + r || !c.trigger || !1 !== c.trigger.apply(n, t))) + ) { + if (!r && !c.noBubble && !x(n)) { + for (s = c.delegateType || d, bt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) + p.push(o), (a = o); + a === (n.ownerDocument || E) && p.push(a.defaultView || a.parentWindow || C); + } + i = 0; + while ((o = p[i++]) && !e.isPropagationStopped()) + (f = o), + (e.type = 1 < i ? s : c.bindType || d), + (l = (Y.get(o, 'events') || Object.create(null))[e.type] && Y.get(o, 'handle')) && + l.apply(o, t), + (l = u && o[u]) && + l.apply && + V(o) && + ((e.result = l.apply(o, t)), !1 === e.result && e.preventDefault()); + return ( + (e.type = d), + r || + e.isDefaultPrevented() || + (c._default && !1 !== c._default.apply(p.pop(), t)) || + !V(n) || + (u && + m(n[d]) && + !x(n) && + ((a = n[u]) && (n[u] = null), + (S.event.triggered = d), + e.isPropagationStopped() && f.addEventListener(d, wt), + n[d](), + e.isPropagationStopped() && f.removeEventListener(d, wt), + (S.event.triggered = void 0), + a && (n[u] = a))), + e.result + ); + } + }, + simulate: function (e, t, n) { + var r = S.extend(new S.Event(), n, { type: e, isSimulated: !0 }); + S.event.trigger(r, null, t); + }, + }), + S.fn.extend({ + trigger: function (e, t) { + return this.each(function () { + S.event.trigger(e, t, this); + }); + }, + triggerHandler: function (e, t) { + var n = this[0]; + if (n) return S.event.trigger(e, t, n, !0); + }, + }), + y.focusin || + S.each({ focus: 'focusin', blur: 'focusout' }, function (n, r) { + var i = function (e) { + S.event.simulate(r, e.target, S.event.fix(e)); + }; + S.event.special[r] = { + setup: function () { + var e = this.ownerDocument || this.document || this, + t = Y.access(e, r); + t || e.addEventListener(n, i, !0), Y.access(e, r, (t || 0) + 1); + }, + teardown: function () { + var e = this.ownerDocument || this.document || this, + t = Y.access(e, r) - 1; + t ? Y.access(e, r, t) : (e.removeEventListener(n, i, !0), Y.remove(e, r)); + }, + }; + }); + var Tt = C.location, + Ct = { guid: Date.now() }, + Et = /\?/; + S.parseXML = function (e) { + var t; + if (!e || 'string' != typeof e) return null; + try { + t = new C.DOMParser().parseFromString(e, 'text/xml'); + } catch (e) { + t = void 0; + } + return (t && !t.getElementsByTagName('parsererror').length) || S.error('Invalid XML: ' + e), t; + }; + var St = /\[\]$/, + kt = /\r?\n/g, + At = /^(?:submit|button|image|reset|file)$/i, + Nt = /^(?:input|select|textarea|keygen)/i; + function Dt(n, e, r, i) { + var t; + if (Array.isArray(e)) + S.each(e, function (e, t) { + r || St.test(n) + ? i(n, t) + : Dt(n + '[' + ('object' == typeof t && null != t ? e : '') + ']', t, r, i); + }); + else if (r || 'object' !== w(e)) i(n, e); + else for (t in e) Dt(n + '[' + t + ']', e[t], r, i); + } + (S.param = function (e, t) { + var n, + r = [], + i = function (e, t) { + var n = m(t) ? t() : t; + r[r.length] = encodeURIComponent(e) + '=' + encodeURIComponent(null == n ? '' : n); + }; + if (null == e) return ''; + if (Array.isArray(e) || (e.jquery && !S.isPlainObject(e))) + S.each(e, function () { + i(this.name, this.value); + }); + else for (n in e) Dt(n, e[n], t, i); + return r.join('&'); + }), + S.fn.extend({ + serialize: function () { + return S.param(this.serializeArray()); + }, + serializeArray: function () { + return this.map(function () { + var e = S.prop(this, 'elements'); + return e ? S.makeArray(e) : this; + }) + .filter(function () { + var e = this.type; + return ( + this.name && + !S(this).is(':disabled') && + Nt.test(this.nodeName) && + !At.test(e) && + (this.checked || !pe.test(e)) + ); + }) + .map(function (e, t) { + var n = S(this).val(); + return null == n + ? null + : Array.isArray(n) + ? S.map(n, function (e) { + return { name: t.name, value: e.replace(kt, '\r\n') }; + }) + : { name: t.name, value: n.replace(kt, '\r\n') }; + }) + .get(); + }, + }); + var jt = /%20/g, + qt = /#.*$/, + Lt = /([?&])_=[^&]*/, + Ht = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Ot = /^(?:GET|HEAD)$/, + Pt = /^\/\//, + Rt = {}, + Mt = {}, + It = '*/'.concat('*'), + Wt = E.createElement('a'); + function Ft(o) { + return function (e, t) { + 'string' != typeof e && ((t = e), (e = '*')); + var n, + r = 0, + i = e.toLowerCase().match(P) || []; + if (m(t)) + while ((n = i[r++])) + '+' === n[0] + ? ((n = n.slice(1) || '*'), (o[n] = o[n] || []).unshift(t)) + : (o[n] = o[n] || []).push(t); + }; + } + function Bt(t, i, o, a) { + var s = {}, + u = t === Mt; + function l(e) { + var r; + return ( + (s[e] = !0), + S.each(t[e] || [], function (e, t) { + var n = t(i, o, a); + return 'string' != typeof n || u || s[n] + ? u + ? !(r = n) + : void 0 + : (i.dataTypes.unshift(n), l(n), !1); + }), + r + ); + } + return l(i.dataTypes[0]) || (!s['*'] && l('*')); + } + function $t(e, t) { + var n, + r, + i = S.ajaxSettings.flatOptions || {}; + for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]); + return r && S.extend(!0, e, r), e; + } + (Wt.href = Tt.href), + S.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: Tt.href, + type: 'GET', + isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol), + global: !0, + processData: !0, + async: !0, + contentType: 'application/x-www-form-urlencoded; charset=UTF-8', + accepts: { + '*': It, + text: 'text/plain', + html: 'text/html', + xml: 'application/xml, text/xml', + json: 'application/json, text/javascript', + }, + contents: { xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/ }, + responseFields: { xml: 'responseXML', text: 'responseText', json: 'responseJSON' }, + converters: { + '* text': String, + 'text html': !0, + 'text json': JSON.parse, + 'text xml': S.parseXML, + }, + flatOptions: { url: !0, context: !0 }, + }, + ajaxSetup: function (e, t) { + return t ? $t($t(e, S.ajaxSettings), t) : $t(S.ajaxSettings, e); + }, + ajaxPrefilter: Ft(Rt), + ajaxTransport: Ft(Mt), + ajax: function (e, t) { + 'object' == typeof e && ((t = e), (e = void 0)), (t = t || {}); + var c, + f, + p, + n, + d, + r, + h, + g, + i, + o, + v = S.ajaxSetup({}, t), + y = v.context || v, + m = v.context && (y.nodeType || y.jquery) ? S(y) : S.event, + x = S.Deferred(), + b = S.Callbacks('once memory'), + w = v.statusCode || {}, + a = {}, + s = {}, + u = 'canceled', + T = { + readyState: 0, + getResponseHeader: function (e) { + var t; + if (h) { + if (!n) { + n = {}; + while ((t = Ht.exec(p))) + n[t[1].toLowerCase() + ' '] = (n[t[1].toLowerCase() + ' '] || []).concat(t[2]); + } + t = n[e.toLowerCase() + ' ']; + } + return null == t ? null : t.join(', '); + }, + getAllResponseHeaders: function () { + return h ? p : null; + }, + setRequestHeader: function (e, t) { + return ( + null == h && ((e = s[e.toLowerCase()] = s[e.toLowerCase()] || e), (a[e] = t)), this + ); + }, + overrideMimeType: function (e) { + return null == h && (v.mimeType = e), this; + }, + statusCode: function (e) { + var t; + if (e) + if (h) T.always(e[T.status]); + else for (t in e) w[t] = [w[t], e[t]]; + return this; + }, + abort: function (e) { + var t = e || u; + return c && c.abort(t), l(0, t), this; + }, + }; + if ( + (x.promise(T), + (v.url = ((e || v.url || Tt.href) + '').replace(Pt, Tt.protocol + '//')), + (v.type = t.method || t.type || v.method || v.type), + (v.dataTypes = (v.dataType || '*').toLowerCase().match(P) || ['']), + null == v.crossDomain) + ) { + r = E.createElement('a'); + try { + (r.href = v.url), + (r.href = r.href), + (v.crossDomain = Wt.protocol + '//' + Wt.host != r.protocol + '//' + r.host); + } catch (e) { + v.crossDomain = !0; + } + } + if ( + (v.data && + v.processData && + 'string' != typeof v.data && + (v.data = S.param(v.data, v.traditional)), + Bt(Rt, v, t, T), + h) + ) + return T; + for (i in ((g = S.event && v.global) && 0 == S.active++ && S.event.trigger('ajaxStart'), + (v.type = v.type.toUpperCase()), + (v.hasContent = !Ot.test(v.type)), + (f = v.url.replace(qt, '')), + v.hasContent + ? v.data && + v.processData && + 0 === (v.contentType || '').indexOf('application/x-www-form-urlencoded') && + (v.data = v.data.replace(jt, '+')) + : ((o = v.url.slice(f.length)), + v.data && + (v.processData || 'string' == typeof v.data) && + ((f += (Et.test(f) ? '&' : '?') + v.data), delete v.data), + !1 === v.cache && + ((f = f.replace(Lt, '$1')), (o = (Et.test(f) ? '&' : '?') + '_=' + Ct.guid++ + o)), + (v.url = f + o)), + v.ifModified && + (S.lastModified[f] && T.setRequestHeader('If-Modified-Since', S.lastModified[f]), + S.etag[f] && T.setRequestHeader('If-None-Match', S.etag[f])), + ((v.data && v.hasContent && !1 !== v.contentType) || t.contentType) && + T.setRequestHeader('Content-Type', v.contentType), + T.setRequestHeader( + 'Accept', + v.dataTypes[0] && v.accepts[v.dataTypes[0]] + ? v.accepts[v.dataTypes[0]] + ('*' !== v.dataTypes[0] ? ', ' + It + '; q=0.01' : '') + : v.accepts['*'], + ), + v.headers)) + T.setRequestHeader(i, v.headers[i]); + if (v.beforeSend && (!1 === v.beforeSend.call(y, T, v) || h)) return T.abort(); + if ( + ((u = 'abort'), + b.add(v.complete), + T.done(v.success), + T.fail(v.error), + (c = Bt(Mt, v, t, T))) + ) { + if (((T.readyState = 1), g && m.trigger('ajaxSend', [T, v]), h)) return T; + v.async && + 0 < v.timeout && + (d = C.setTimeout(function () { + T.abort('timeout'); + }, v.timeout)); + try { + (h = !1), c.send(a, l); + } catch (e) { + if (h) throw e; + l(-1, e); + } + } else l(-1, 'No Transport'); + function l(e, t, n, r) { + var i, + o, + a, + s, + u, + l = t; + h || + ((h = !0), + d && C.clearTimeout(d), + (c = void 0), + (p = r || ''), + (T.readyState = 0 < e ? 4 : 0), + (i = (200 <= e && e < 300) || 304 === e), + n && + (s = (function (e, t, n) { + var r, + i, + o, + a, + s = e.contents, + u = e.dataTypes; + while ('*' === u[0]) + u.shift(), + void 0 === r && (r = e.mimeType || t.getResponseHeader('Content-Type')); + if (r) + for (i in s) + if (s[i] && s[i].test(r)) { + u.unshift(i); + break; + } + if (u[0] in n) o = u[0]; + else { + for (i in n) { + if (!u[0] || e.converters[i + ' ' + u[0]]) { + o = i; + break; + } + a || (a = i); + } + o = o || a; + } + if (o) return o !== u[0] && u.unshift(o), n[o]; + })(v, T, n)), + !i && + -1 < S.inArray('script', v.dataTypes) && + (v.converters['text script'] = function () {}), + (s = (function (e, t, n, r) { + var i, + o, + a, + s, + u, + l = {}, + c = e.dataTypes.slice(); + if (c[1]) for (a in e.converters) l[a.toLowerCase()] = e.converters[a]; + o = c.shift(); + while (o) + if ( + (e.responseFields[o] && (n[e.responseFields[o]] = t), + !u && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), + (u = o), + (o = c.shift())) + ) + if ('*' === o) o = u; + else if ('*' !== u && u !== o) { + if (!(a = l[u + ' ' + o] || l['* ' + o])) + for (i in l) + if ( + (s = i.split(' '))[1] === o && + (a = l[u + ' ' + s[0]] || l['* ' + s[0]]) + ) { + !0 === a ? (a = l[i]) : !0 !== l[i] && ((o = s[0]), c.unshift(s[1])); + break; + } + if (!0 !== a) + if (a && e['throws']) t = a(t); + else + try { + t = a(t); + } catch (e) { + return { + state: 'parsererror', + error: a ? e : 'No conversion from ' + u + ' to ' + o, + }; + } + } + return { state: 'success', data: t }; + })(v, s, T, i)), + i + ? (v.ifModified && + ((u = T.getResponseHeader('Last-Modified')) && (S.lastModified[f] = u), + (u = T.getResponseHeader('etag')) && (S.etag[f] = u)), + 204 === e || 'HEAD' === v.type + ? (l = 'nocontent') + : 304 === e + ? (l = 'notmodified') + : ((l = s.state), (o = s.data), (i = !(a = s.error)))) + : ((a = l), (!e && l) || ((l = 'error'), e < 0 && (e = 0))), + (T.status = e), + (T.statusText = (t || l) + ''), + i ? x.resolveWith(y, [o, l, T]) : x.rejectWith(y, [T, l, a]), + T.statusCode(w), + (w = void 0), + g && m.trigger(i ? 'ajaxSuccess' : 'ajaxError', [T, v, i ? o : a]), + b.fireWith(y, [T, l]), + g && (m.trigger('ajaxComplete', [T, v]), --S.active || S.event.trigger('ajaxStop'))); + } + return T; + }, + getJSON: function (e, t, n) { + return S.get(e, t, n, 'json'); + }, + getScript: function (e, t) { + return S.get(e, void 0, t, 'script'); + }, + }), + S.each(['get', 'post'], function (e, i) { + S[i] = function (e, t, n, r) { + return ( + m(t) && ((r = r || n), (n = t), (t = void 0)), + S.ajax( + S.extend( + { url: e, type: i, dataType: r, data: t, success: n }, + S.isPlainObject(e) && e, + ), + ) + ); + }; + }), + S.ajaxPrefilter(function (e) { + var t; + for (t in e.headers) + 'content-type' === t.toLowerCase() && (e.contentType = e.headers[t] || ''); + }), + (S._evalUrl = function (e, t, n) { + return S.ajax({ + url: e, + type: 'GET', + dataType: 'script', + cache: !0, + async: !1, + global: !1, + converters: { 'text script': function () {} }, + dataFilter: function (e) { + S.globalEval(e, t, n); + }, + }); + }), + S.fn.extend({ + wrapAll: function (e) { + var t; + return ( + this[0] && + (m(e) && (e = e.call(this[0])), + (t = S(e, this[0].ownerDocument).eq(0).clone(!0)), + this[0].parentNode && t.insertBefore(this[0]), + t + .map(function () { + var e = this; + while (e.firstElementChild) e = e.firstElementChild; + return e; + }) + .append(this)), + this + ); + }, + wrapInner: function (n) { + return m(n) + ? this.each(function (e) { + S(this).wrapInner(n.call(this, e)); + }) + : this.each(function () { + var e = S(this), + t = e.contents(); + t.length ? t.wrapAll(n) : e.append(n); + }); + }, + wrap: function (t) { + var n = m(t); + return this.each(function (e) { + S(this).wrapAll(n ? t.call(this, e) : t); + }); + }, + unwrap: function (e) { + return ( + this.parent(e) + .not('body') + .each(function () { + S(this).replaceWith(this.childNodes); + }), + this + ); + }, + }), + (S.expr.pseudos.hidden = function (e) { + return !S.expr.pseudos.visible(e); + }), + (S.expr.pseudos.visible = function (e) { + return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length); + }), + (S.ajaxSettings.xhr = function () { + try { + return new C.XMLHttpRequest(); + } catch (e) {} + }); + var _t = { 0: 200, 1223: 204 }, + zt = S.ajaxSettings.xhr(); + (y.cors = !!zt && 'withCredentials' in zt), + (y.ajax = zt = !!zt), + S.ajaxTransport(function (i) { + var o, a; + if (y.cors || (zt && !i.crossDomain)) + return { + send: function (e, t) { + var n, + r = i.xhr(); + if ((r.open(i.type, i.url, i.async, i.username, i.password), i.xhrFields)) + for (n in i.xhrFields) r[n] = i.xhrFields[n]; + for (n in (i.mimeType && r.overrideMimeType && r.overrideMimeType(i.mimeType), + i.crossDomain || e['X-Requested-With'] || (e['X-Requested-With'] = 'XMLHttpRequest'), + e)) + r.setRequestHeader(n, e[n]); + (o = function (e) { + return function () { + o && + ((o = + a = + r.onload = + r.onerror = + r.onabort = + r.ontimeout = + r.onreadystatechange = + null), + 'abort' === e + ? r.abort() + : 'error' === e + ? 'number' != typeof r.status + ? t(0, 'error') + : t(r.status, r.statusText) + : t( + _t[r.status] || r.status, + r.statusText, + 'text' !== (r.responseType || 'text') || 'string' != typeof r.responseText + ? { binary: r.response } + : { text: r.responseText }, + r.getAllResponseHeaders(), + )); + }; + }), + (r.onload = o()), + (a = r.onerror = r.ontimeout = o('error')), + void 0 !== r.onabort + ? (r.onabort = a) + : (r.onreadystatechange = function () { + 4 === r.readyState && + C.setTimeout(function () { + o && a(); + }); + }), + (o = o('abort')); + try { + r.send((i.hasContent && i.data) || null); + } catch (e) { + if (o) throw e; + } + }, + abort: function () { + o && o(); + }, + }; + }), + S.ajaxPrefilter(function (e) { + e.crossDomain && (e.contents.script = !1); + }), + S.ajaxSetup({ + accepts: { + script: + 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript', + }, + contents: { script: /\b(?:java|ecma)script\b/ }, + converters: { + 'text script': function (e) { + return S.globalEval(e), e; + }, + }, + }), + S.ajaxPrefilter('script', function (e) { + void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = 'GET'); + }), + S.ajaxTransport('script', function (n) { + var r, i; + if (n.crossDomain || n.scriptAttrs) + return { + send: function (e, t) { + (r = S(' - - - - - - -
        - -
        -
        -
        -

        All Classes and Interfaces

        -
        -
        -
        Classes
        -
        -
        Class
        -
        Description
        -
        - Camera<T - extends org.openftc.easyopencv.OpenCvCamera,U - extends com.qualcomm.robotcore.hardware.HardwareDevice> -
        -
        -
        - This is an OpenCVCamera interface using the FTC SDK camera hardware -
        -
        - -
        -
        This is a Camera for use with a phone's internal camera
        -
        - -
        -
        - A vision streaming pipeline to enable vision processing during an opmode -
        -
        - -
        -
        - A webcam device interface that allows you to switch between multiple cameras! -
        -
        -
        - Webcam -
        -
        -
        Acquire webcamera is just a quit constructor away :)
        -
        -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/allpackages-index.html b/docs/Vision/allpackages-index.html deleted file mode 100644 index 4bb32373..00000000 --- a/docs/Vision/allpackages-index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - All Packages (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        All Packages

        -
        -
        Package Summary
        -
        -
        Package
        -
        Description
        - -
         
        - -
         
        -
        -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/hardware/Camera.html b/docs/Vision/com/technototes/vision/hardware/Camera.html deleted file mode 100644 index 0a8f3ac3..00000000 --- a/docs/Vision/com/technototes/vision/hardware/Camera.html +++ /dev/null @@ -1,591 +0,0 @@ - - - - -Camera (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice>

        -
        -
        java.lang.Object -
        com.technototes.library.hardware.HardwareDevice<U> -
        com.technototes.vision.hardware.Camera<T,U>
        -
        -
        -
        -
        -
        Type Parameters:
        -
        T - The OpenCvCamera type
        -
        U - The HardwareDevice type
        -
        -
        -
        All Implemented Interfaces:
        -
        org.firstinspires.ftc.robotcore.external.stream.CameraStreamSource, org.openftc.easyopencv.OpenCvCamera
        -
        -
        -
        Direct Known Subclasses:
        -
        InternalCamera, SwitchableWebcam, Webcam
        -
        -
        -
        public abstract class Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice> -extends com.technototes.library.hardware.HardwareDevice<U> -implements org.openftc.easyopencv.OpenCvCamera
        -
        This is an OpenCVCamera interface using the FTC SDK camera hardware
        -
        -
        -
          - -
        • -
          -

          Nested Class Summary

          -
          -

          Nested classes/interfaces inherited from interface org.openftc.easyopencv.OpenCvCamera

          -org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener, org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener, org.openftc.easyopencv.OpenCvCamera.ViewportRenderer, org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy
          -
          -
        • - -
        • -
          -

          Field Summary

          -
          Fields
          -
          -
          Modifier and Type
          -
          Field
          -
          Description
          -
          protected T
          - -
          -
          This is the OpenCvCamera object created
          -
          -
          -
          -

          Fields inherited from class com.technototes.library.hardware.HardwareDevice

          -device, hardwareMap
          -
          -

          Fields inherited from interface org.openftc.easyopencv.OpenCvCamera

          -CAMERA_OPEN_ERROR_FAILURE_TO_OPEN_CAMERA_DEVICE, CAMERA_OPEN_ERROR_POSTMORTEM_OPMODE
          -
          -
        • - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Modifier
          -
          Constructor
          -
          Description
          -
          protected
          -
          Camera(String device)
          -
          -
          Create a Camera device from the HardwareDevice provided
          -
          -
          protected
          -
          Camera(U device)
          -
          -
          Create a Camera device from the HardwareDevice provided
          -
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          -
          void
          - -
           
          -
          void
          -
          closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener cameraCloseListener)
          -
           
          -
          int
          - -
           
          -
          float
          - -
           
          -
          void
          -
          getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation<? extends org.firstinspires.ftc.robotcore.external.function.Consumer<android.graphics.Bitmap>> continuation)
          -
           
          -
          int
          - -
           
          - - -
          -
          get the camera created
          -
          -
          int
          - -
           
          -
          int
          - -
           
          -
          int
          - -
           
          -
          int
          - -
          -
          Deprecated.
          -
          -
          void
          - -
          -
          Invokes the Runnable's run() method when the camera has been opened.
          -
          -
          void
          - -
          -
          Invokes the Runnable's run() method when the camera has been opened, - and calls the IntConsumer's accept() method if an error occurs
          -
          -
          void
          -
          openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener cameraOpenListener)
          -
           
          -
          void
          - -
           
          -
          void
          - -
           
          -
          void
          -
          setPipeline(org.openftc.easyopencv.OpenCvPipeline pipeline)
          -
           
          -
          void
          -
          setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer renderer)
          -
           
          -
          void
          -
          setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy policy)
          -
           
          -
          void
          -
          showFpsMeterOnViewport(boolean show)
          -
           
          -
          void
          -
          startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters parameters)
          -
           
          -
          void
          -
          startStreaming(int width, - int height)
          -
           
          -
          void
          -
          startStreaming(int width, - int height, - org.openftc.easyopencv.OpenCvCameraRotation rotation)
          -
           
          -
          void
          - -
           
          -
          void
          - -
           
          -
          -
          -
          -
          -

          Methods inherited from class com.technototes.library.hardware.HardwareDevice

          -getDevice
          -
          -

          Methods inherited from class java.lang.Object

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

          Field Details

          -
            -
          • -
            -

            openCvCamera

            -
            protected T extends org.openftc.easyopencv.OpenCvCamera openCvCamera
            -
            This is the OpenCvCamera object created
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            Camera

            -
            protected Camera(U device)
            -
            Create a Camera device from the HardwareDevice provided
            -
            -
            Parameters:
            -
            device - The HardwareDevice for the camera (from hardwareMap.get)
            -
            -
            -
          • -
          • -
            -

            Camera

            -
            protected Camera(String device)
            -
            Create a Camera device from the HardwareDevice provided
            -
            -
            Parameters:
            -
            device - The name of the HardwareDevice for the camera (probably: TODO)
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            getOpenCvCamera

            -
            public T getOpenCvCamera()
            -
            get the camera created
            -
            -
            Returns:
            -
            the OpenCvCamera device created
            -
            -
            -
          • -
          • -
            -

            openCameraDevice

            - -
            Deprecated.
            -
            -
            Specified by:
            -
            openCameraDevice in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            openCameraDeviceAsync

            -
            public void openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener cameraOpenListener)
            -
            -
            Specified by:
            -
            openCameraDeviceAsync in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            openCameraDeviceAsync

            -
            public void openCameraDeviceAsync(Runnable open, - IntConsumer error)
            -
            Invokes the Runnable's run() method when the camera has been opened, - and calls the IntConsumer's accept() method if an error occurs
            -
            -
            Parameters:
            -
            open - A Runnable to be notified with the camera is opened
            -
            error - An IntConsumer error handler if an error occurs
            -
            -
            -
          • -
          • -
            -

            openCameraDeviceAsync

            -
            public void openCameraDeviceAsync(Runnable open)
            -
            Invokes the Runnable's run() method when the camera has been opened. - This has no error handling: Good luck, folks!
            -
            -
            Parameters:
            -
            open - A Runnable to be notified with the camera is opened
            -
            -
            -
          • -
          • -
            -

            closeCameraDevice

            -
            public void closeCameraDevice()
            -
            -
            Specified by:
            -
            closeCameraDevice in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            closeCameraDeviceAsync

            -
            public void closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener cameraCloseListener)
            -
            -
            Specified by:
            -
            closeCameraDeviceAsync in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            showFpsMeterOnViewport

            -
            public void showFpsMeterOnViewport(boolean show)
            -
            -
            Specified by:
            -
            showFpsMeterOnViewport in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            pauseViewport

            -
            public void pauseViewport()
            -
            -
            Specified by:
            -
            pauseViewport in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            resumeViewport

            -
            public void resumeViewport()
            -
            -
            Specified by:
            -
            resumeViewport in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            setViewportRenderingPolicy

            -
            public void setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy policy)
            -
            -
            Specified by:
            -
            setViewportRenderingPolicy in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            setViewportRenderer

            -
            public void setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer renderer)
            -
            -
            Specified by:
            -
            setViewportRenderer in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            startStreaming

            -
            public void startStreaming(int width, - int height)
            -
            -
            Specified by:
            -
            startStreaming in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            startStreaming

            -
            public void startStreaming(int width, - int height, - org.openftc.easyopencv.OpenCvCameraRotation rotation)
            -
            -
            Specified by:
            -
            startStreaming in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            stopStreaming

            -
            public void stopStreaming()
            -
            -
            Specified by:
            -
            stopStreaming in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            setPipeline

            -
            public void setPipeline(org.openftc.easyopencv.OpenCvPipeline pipeline)
            -
            -
            Specified by:
            -
            setPipeline in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getFrameCount

            -
            public int getFrameCount()
            -
            -
            Specified by:
            -
            getFrameCount in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getFps

            -
            public float getFps()
            -
            -
            Specified by:
            -
            getFps in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getPipelineTimeMs

            -
            public int getPipelineTimeMs()
            -
            -
            Specified by:
            -
            getPipelineTimeMs in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getOverheadTimeMs

            -
            public int getOverheadTimeMs()
            -
            -
            Specified by:
            -
            getOverheadTimeMs in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getTotalFrameTimeMs

            -
            public int getTotalFrameTimeMs()
            -
            -
            Specified by:
            -
            getTotalFrameTimeMs in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getCurrentPipelineMaxFps

            - -
            -
            Specified by:
            -
            getCurrentPipelineMaxFps in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            startRecordingPipeline

            -
            public void startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters parameters)
            -
            -
            Specified by:
            -
            startRecordingPipeline in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            stopRecordingPipeline

            -
            public void stopRecordingPipeline()
            -
            -
            Specified by:
            -
            stopRecordingPipeline in interface org.openftc.easyopencv.OpenCvCamera
            -
            -
            -
          • -
          • -
            -

            getFrameBitmap

            -
            public void getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation<? extends org.firstinspires.ftc.robotcore.external.function.Consumer<android.graphics.Bitmap>> continuation)
            -
            -
            Specified by:
            -
            getFrameBitmap in interface org.firstinspires.ftc.robotcore.external.stream.CameraStreamSource
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/hardware/InternalCamera.html b/docs/Vision/com/technototes/vision/hardware/InternalCamera.html deleted file mode 100644 index b8c94086..00000000 --- a/docs/Vision/com/technototes/vision/hardware/InternalCamera.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - -InternalCamera (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class InternalCamera

        -
        -
        java.lang.Object -
        com.technototes.library.hardware.HardwareDevice<U> -
        com.technototes.vision.hardware.Camera<org.openftc.easyopencv.OpenCvInternalCamera,com.technototes.library.hardware.DummyDevice<org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection>> -
        com.technototes.vision.hardware.InternalCamera
        -
        -
        -
        -
        -
        -
        All Implemented Interfaces:
        -
        org.firstinspires.ftc.robotcore.external.stream.CameraStreamSource, org.openftc.easyopencv.OpenCvCamera
        -
        -
        -
        public class InternalCamera -extends Camera<org.openftc.easyopencv.OpenCvInternalCamera,com.technototes.library.hardware.DummyDevice<org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection>>
        -
        This is a Camera for use with a phone's internal camera
        -
        -
        - -
        -
        -
          - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            InternalCamera

            -
            public InternalCamera()
            -
            Create the front-facing internal camera
            -
            -
          • -
          • -
            -

            InternalCamera

            -
            public InternalCamera(org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection dir)
            -
            Create a camera (using the one on the phone for the CameraDirection)
            -
            -
            Parameters:
            -
            dir - The direction (FRONT or REAR, probably)
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            getCameraDirection

            -
            public org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection getCameraDirection()
            -
            Get which internal camera is being used
            -
            -
            Returns:
            -
            FRONT or REAR, probably (TODO)
            -
            -
            -
          • -
          • -
            -

            createCamera

            -
            public org.openftc.easyopencv.OpenCvInternalCamera createCamera()
            -
            Create an OpenCvInternalCamera from this Camera
            -
            -
            Returns:
            -
            the OpenCvInternalCamera device
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/hardware/SwitchableWebcam.html b/docs/Vision/com/technototes/vision/hardware/SwitchableWebcam.html deleted file mode 100644 index 75d1181a..00000000 --- a/docs/Vision/com/technototes/vision/hardware/SwitchableWebcam.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - -SwitchableWebcam (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class SwitchableWebcam

        -
        -
        java.lang.Object -
        com.technototes.library.hardware.HardwareDevice<U> -
        com.technototes.vision.hardware.Camera<org.openftc.easyopencv.OpenCvSwitchableWebcam,com.technototes.library.hardware.DummyDevice<org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName[]>> -
        com.technototes.vision.hardware.SwitchableWebcam
        -
        -
        -
        -
        -
        -
        All Implemented Interfaces:
        -
        org.firstinspires.ftc.robotcore.external.stream.CameraStreamSource, org.openftc.easyopencv.OpenCvCamera
        -
        -
        -
        public class SwitchableWebcam -extends Camera<org.openftc.easyopencv.OpenCvSwitchableWebcam,com.technototes.library.hardware.DummyDevice<org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName[]>>
        -
        A webcam device interface that allows you to switch between multiple cameras!
        -
        -
        - -
        -
        -
          - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            SwitchableWebcam

            -
            public SwitchableWebcam(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName... device)
            -
            Constructor to create the switchable webcam object
            -
            -
            Parameters:
            -
            device - The list of WebcamName devices (TODO: I don't know what this is!)
            -
            -
            -
          • -
          • -
            -

            SwitchableWebcam

            -
            public SwitchableWebcam(String... device)
            -
            Constructor to create the switchable webcam object
            -
            -
            Parameters:
            -
            device - The list of names of cameras as configured in the Robot configuration
            -
            -
            -
          • -
          • -
            -

            SwitchableWebcam

            -
            public SwitchableWebcam(Webcam... device)
            -
            Constructor that takes already-created Webcam's so they can be accessed - through the switchable interface
            -
            -
            Parameters:
            -
            device - The list of Webcam devices
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            createCamera

            -
            public org.openftc.easyopencv.OpenCvSwitchableWebcam createCamera()
            -
            Get the switchable webcam object to use with your pipeline
            -
            -
            Returns:
            -
            the OpenCvSwitchableWebcam object
            -
            -
            -
          • -
          • -
            -

            setActiveCamera

            - -
            Set the active camera (and return it!)
            -
            -
            Parameters:
            -
            w - the Webcam object that was included in the constructor
            -
            Returns:
            -
            the SwitchableWebcam object for the 'w' device
            -
            -
            -
          • -
          • -
            -

            setActiveCamera

            -
            public SwitchableWebcam setActiveCamera(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName device)
            -
            Set the active camera (and return it!)
            -
            -
            Parameters:
            -
            device - the WebcamName device that was included in the constructor (TODO!)
            -
            Returns:
            -
            the SwitchableWebcam object for the 'w' device
            -
            -
            -
          • -
          • -
            -

            setActiveCamera

            - -
            Set the active camera (and return it!)
            -
            -
            Parameters:
            -
            device - the Webcam name that was included in the constructor
            -
            Returns:
            -
            the SwitchableWebcam object for the 'w' device
            -
            -
            -
          • -
          • -
            -

            getActiveCamera

            - -
            Get the currently selected camera
            -
            -
            Returns:
            -
            The active camera: MAY BE NULL!
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/hardware/Webcam.html b/docs/Vision/com/technototes/vision/hardware/Webcam.html deleted file mode 100644 index 6026eff8..00000000 --- a/docs/Vision/com/technototes/vision/hardware/Webcam.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - -Webcam (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class Webcam

        -
        -
        java.lang.Object -
        com.technototes.library.hardware.HardwareDevice<U> -
        com.technototes.vision.hardware.Camera<org.openftc.easyopencv.OpenCvWebcam,org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName> -
        com.technototes.vision.hardware.Webcam
        -
        -
        -
        -
        -
        -
        All Implemented Interfaces:
        -
        org.firstinspires.ftc.robotcore.external.stream.CameraStreamSource, org.openftc.easyopencv.OpenCvCamera
        -
        -
        -
        public class Webcam -extends Camera<org.openftc.easyopencv.OpenCvWebcam,org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName>
        -
        Acquire webcamera is just a quit constructor away :)
        -
        -
        - -
        -
        -
          - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            Webcam

            -
            public Webcam(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName device)
            -
            TODO: I'm not sure where WebcamName comes from. I should read up.
            -
            -
            Parameters:
            -
            device - The WebcamName for the camera?
            -
            -
            -
          • -
          • -
            -

            Webcam

            -
            public Webcam(String device)
            -
            Create a webcam device configured on the device with the given name
            -
            -
            Parameters:
            -
            device - The name of the device as configured in "Robot Configuration"
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            createCamera

            -
            public org.openftc.easyopencv.OpenCvWebcam createCamera()
            -
            Create an OpenCvWebcam, which can then be used in your vision pipeline
            -
            -
            Returns:
            -
            The OpenCvWebcam to use
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/hardware/package-summary.html b/docs/Vision/com/technototes/vision/hardware/package-summary.html deleted file mode 100644 index 0b089ef8..00000000 --- a/docs/Vision/com/technototes/vision/hardware/package-summary.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - -com.technototes.vision.hardware (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Package com.technototes.vision.hardware

        -
        -
        -
        package com.technototes.vision.hardware
        -
        -
          -
        • -
          -
          Classes
          -
          -
          Class
          -
          Description
          -
          Camera<T extends org.openftc.easyopencv.OpenCvCamera,U extends com.qualcomm.robotcore.hardware.HardwareDevice>
          -
          -
          This is an OpenCVCamera interface using the FTC SDK camera hardware
          -
          - -
          -
          This is a Camera for use with a phone's internal camera
          -
          - -
          -
          A webcam device interface that allows you to switch between multiple cameras!
          -
          - -
          -
          Acquire webcamera is just a quit constructor away :)
          -
          -
          -
          -
        • -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/hardware/package-tree.html b/docs/Vision/com/technototes/vision/hardware/package-tree.html deleted file mode 100644 index 7487ac19..00000000 --- a/docs/Vision/com/technototes/vision/hardware/package-tree.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - -com.technototes.vision.hardware Class Hierarchy (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Hierarchy For Package com.technototes.vision.hardware

        -Package Hierarchies: - -
        -
        -

        Class Hierarchy

        -
          -
        • java.lang.Object -
            -
          • com.technototes.library.hardware.HardwareDevice<T> -
              -
            • com.technototes.vision.hardware.Camera<T,U> (implements org.openftc.easyopencv.OpenCvCamera) - -
            • -
            -
          • -
          -
        • -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/subsystem/PipelineSubsystem.html b/docs/Vision/com/technototes/vision/subsystem/PipelineSubsystem.html deleted file mode 100644 index 698a5deb..00000000 --- a/docs/Vision/com/technototes/vision/subsystem/PipelineSubsystem.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - -PipelineSubsystem (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        - -
        - -

        Class PipelineSubsystem

        -
        -
        java.lang.Object -
        com.technototes.vision.subsystem.PipelineSubsystem
        -
        -
        -
        -
        All Implemented Interfaces:
        -
        com.technototes.library.general.Periodic, com.technototes.library.subsystem.Subsystem
        -
        -
        -
        public class PipelineSubsystem -extends Object -implements com.technototes.library.subsystem.Subsystem
        -
        A vision streaming pipeline to enable vision processing during an opmode
        -
        -
        -
          - -
        • -
          -

          Field Summary

          -
          Fields
          -
          -
          Modifier and Type
          -
          Field
          -
          Description
          -
          protected Camera
          - -
          -
          The Camera object this subsystem is processing frames from
          -
          -
          -
          -
        • - -
        • -
          -

          Constructor Summary

          -
          Constructors
          -
          -
          Constructor
          -
          Description
          - -
          -
          Create the subsystem with the Camera provided
          -
          -
          -
          -
        • - -
        • -
          -

          Method Summary

          -
          -
          -
          -
          -
          Modifier and Type
          -
          Method
          -
          Description
          - - -
          -
          Get the Camera device that frames are being processed from
          -
          - -
          startStreaming(int width, - int height)
          -
          -
          This begins streaming frames from the camera
          -
          - -
          startStreaming(int width, - int height, - org.openftc.easyopencv.OpenCvCameraRotation rotation)
          -
          -
          This begins streaming frames from the camera
          -
          - - -
          -
          Stop frame processing
          -
          -
          -
          -
          -
          -

          Methods inherited from class java.lang.Object

          -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          -
          -

          Methods inherited from interface com.technototes.library.subsystem.Subsystem

          -getDefaultCommand, periodic, register, setDefaultCommand
          -
          -
        • -
        -
        -
        -
          - -
        • -
          -

          Field Details

          -
            -
          • -
            -

            camera

            -
            protected Camera camera
            -
            The Camera object this subsystem is processing frames from
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Constructor Details

          -
            -
          • -
            -

            PipelineSubsystem

            - -
            Create the subsystem with the Camera provided
            -
            -
            Parameters:
            -
            c - The camera to process frames from
            -
            -
            -
          • -
          -
          -
        • - -
        • -
          -

          Method Details

          -
            -
          • -
            -

            getDevice

            -
            public Camera getDevice()
            -
            Get the Camera device that frames are being processed from
            -
            -
            Returns:
            -
            the Camera device in use
            -
            -
            -
          • -
          • -
            -

            startStreaming

            -
            public PipelineSubsystem startStreaming(int width, - int height)
            -
            This begins streaming frames from the camera
            -
            -
            Parameters:
            -
            width - The width of the frame (constrained to a specific range, based on the camera device)
            -
            height - The height of the frame (constrained based on the camera device)
            -
            Returns:
            -
            this PipelineSubsystem (for chaining, I guess?)
            -
            -
            -
          • -
          • -
            -

            startStreaming

            -
            public PipelineSubsystem startStreaming(int width, - int height, - org.openftc.easyopencv.OpenCvCameraRotation rotation)
            -
            This begins streaming frames from the camera
            -
            -
            Parameters:
            -
            width - The width of the frame (constrained to a specific range, based on the camera device)
            -
            height - The height of the frame (consrained based on the camera device)
            -
            rotation - The rotation of the frame to acquire
            -
            Returns:
            -
            this PipelineSubsystem (for chaining, I guess?)
            -
            -
            -
          • -
          • -
            -

            stopStreaming

            - -
            Stop frame processing
            -
            -
            Returns:
            -
            this PipelineSubsystem (for chaining)
            -
            -
            -
          • -
          -
          -
        • -
        -
        - -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/subsystem/package-summary.html b/docs/Vision/com/technototes/vision/subsystem/package-summary.html deleted file mode 100644 index a6c0223e..00000000 --- a/docs/Vision/com/technototes/vision/subsystem/package-summary.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -com.technototes.vision.subsystem (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Package com.technototes.vision.subsystem

        -
        -
        -
        package com.technototes.vision.subsystem
        -
        -
          -
        • -
          -
          Classes
          -
          -
          Class
          -
          Description
          - -
          -
          A vision streaming pipeline to enable vision processing during an opmode
          -
          -
          -
          -
        • -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/com/technototes/vision/subsystem/package-tree.html b/docs/Vision/com/technototes/vision/subsystem/package-tree.html deleted file mode 100644 index c2e948d0..00000000 --- a/docs/Vision/com/technototes/vision/subsystem/package-tree.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - -com.technototes.vision.subsystem Class Hierarchy (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Hierarchy For Package com.technototes.vision.subsystem

        -Package Hierarchies: - -
        -
        -

        Class Hierarchy

        -
          -
        • java.lang.Object -
            -
          • com.technototes.vision.subsystem.PipelineSubsystem (implements com.technototes.library.subsystem.Subsystem)
          • -
          -
        • -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/deprecated-list.html b/docs/Vision/deprecated-list.html deleted file mode 100644 index f8cef183..00000000 --- a/docs/Vision/deprecated-list.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - Deprecated List (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Deprecated API

        -

        Contents

        - -
        - -
        -
        -
        - - diff --git a/docs/Vision/element-list b/docs/Vision/element-list deleted file mode 100644 index 5335e3af..00000000 --- a/docs/Vision/element-list +++ /dev/null @@ -1,2 +0,0 @@ -com.technototes.vision.hardware -com.technototes.vision.subsystem diff --git a/docs/Vision/help-doc.html b/docs/Vision/help-doc.html deleted file mode 100644 index c5e91762..00000000 --- a/docs/Vision/help-doc.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - API Help (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -

        JavaDoc Help

        - -
        -
        -

        Navigation

        - Starting from the Overview page, you can browse the - documentation using the links in each page, and in the navigation bar at the top of each - page. The Index and Search box allow you to navigate to - specific declarations and summary pages, including: - All Packages, - All Classes and Interfaces - -
        -
        -
        -

        Kinds of Pages

        - The following sections describe the different kinds of pages in this collection. -
        -

        Overview

        -

        - The Overview page is the front page of this API document - and provides a list of all packages with a summary for each. This page can also - contain an overall description of the set of packages. -

        -
        -
        -

        Package

        -

        - Each package has a page that contains a list of its classes and interfaces, with a - summary for each. These pages may contain the following categories: -

        -
          -
        • Interfaces
        • -
        • Classes
        • -
        • Enum Classes
        • -
        • Exceptions
        • -
        • Errors
        • -
        • Annotation Interfaces
        • -
        -
        -
        -

        Class or Interface

        -

        - Each class, interface, nested class and nested interface has its own separate page. - Each of these pages has three sections consisting of a declaration and description, - member summary tables, and detailed member descriptions. Entries in each of these - sections are omitted if they are empty or not applicable. -

        -
          -
        • Class Inheritance Diagram
        • -
        • Direct Subclasses
        • -
        • All Known Subinterfaces
        • -
        • All Known Implementing Classes
        • -
        • Class or Interface Declaration
        • -
        • Class or Interface Description
        • -
        -
        -
          -
        • Nested Class Summary
        • -
        • Enum Constant Summary
        • -
        • Field Summary
        • -
        • Property Summary
        • -
        • Constructor Summary
        • -
        • Method Summary
        • -
        • Required Element Summary
        • -
        • Optional Element Summary
        • -
        -
        -
          -
        • Enum Constant Details
        • -
        • Field Details
        • -
        • Property Details
        • -
        • Constructor Details
        • -
        • Method Details
        • -
        • Element Details
        • -
        -

        - Note: Annotation interfaces have required and - optional elements, but not methods. Only enum classes have enum constants. The - components of a record class are displayed as part of the declaration of the record - class. Properties are a feature of JavaFX. -

        -

        - The summary entries are alphabetical, while the detailed descriptions are in the - order they appear in the source code. This preserves the logical groupings - established by the programmer. -

        -
        -
        -

        Other Files

        -

        - Packages and modules may contain pages with additional information related to the - declarations nearby. -

        -
        -
        -

        Tree (Class Hierarchy)

        -

        - There is a Class Hierarchy page for all packages, - plus a hierarchy for each package. Each hierarchy page contains a list of classes - and a list of interfaces. Classes are organized by inheritance structure starting - with java.lang.Object. Interfaces do not inherit from - java.lang.Object. -

        -
          -
        • - When viewing the Overview page, clicking on TREE displays the hierarchy for all - packages. -
        • -
        • - When viewing a particular package, class or interface page, clicking on TREE - displays the hierarchy for only that package. -
        • -
        -
        -
        -

        Deprecated API

        -

        - The Deprecated API page lists all of the API that - have been deprecated. A deprecated API is not recommended for use, generally due to - shortcomings, and a replacement API is usually given. Deprecated APIs may be removed - in future implementations. -

        -
        -
        -

        All Packages

        -

        - The All Packages page contains an alphabetic - index of all packages contained in the documentation. -

        -
        -
        -

        All Classes and Interfaces

        -

        - The All Classes and Interfaces page contains an - alphabetic index of all classes and interfaces contained in the documentation, - including annotation interfaces, enum classes, and record classes. -

        -
        -
        -

        Index

        -

        - The Index contains an alphabetic index of all classes, - interfaces, constructors, methods, and fields in the documentation, as well as - summary pages such as All Packages, - All Classes and Interfaces. -

        -
        -
        -
        - This help file applies to API documentation generated by the standard doclet. -
        -
        -
        - - diff --git a/docs/Vision/index-all.html b/docs/Vision/index-all.html deleted file mode 100644 index 09df77c7..00000000 --- a/docs/Vision/index-all.html +++ /dev/null @@ -1,916 +0,0 @@ - - - - - Index (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Index

        -
        - C G I O P R S W 
        All Classes and Interfaces|All Packages -

        C

        -
        -
        - camera - - Variable in class com.technototes.vision.subsystem.PipelineSubsystem -
        -
        -
        The Camera object this subsystem is processing frames from
        -
        -
        - Camera<T - extends org.openftc.easyopencv.OpenCvCamera,U - extends com.qualcomm.robotcore.hardware.HardwareDevice> - Class in - com.technototes.vision.hardware -
        -
        -
        - This is an OpenCVCamera interface using the FTC SDK camera hardware -
        -
        -
        - Camera(String) - - Constructor for class com.technototes.vision.hardware.Camera -
        -
        -
        Create a Camera device from the HardwareDevice provided
        -
        -
        - Camera(U) - - Constructor for class com.technototes.vision.hardware.Camera -
        -
        -
        Create a Camera device from the HardwareDevice provided
        -
        -
        - closeCameraDevice() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - com.technototes.vision.hardware - - package com.technototes.vision.hardware -
        -
         
        -
        - com.technototes.vision.subsystem - - package com.technototes.vision.subsystem -
        -
         
        -
        - createCamera() - - Method in class com.technototes.vision.hardware.InternalCamera -
        -
        -
        Create an OpenCvInternalCamera from this Camera
        -
        -
        - createCamera() - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Get the switchable webcam object to use with your pipeline
        -
        -
        - createCamera() - - Method in class com.technototes.vision.hardware.Webcam -
        -
        -
        - Create an OpenCvWebcam, which can then be used in your vision pipeline -
        -
        -
        -

        G

        -
        -
        - getActiveCamera() - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Get the currently selected camera
        -
        -
        - getCameraDirection() - - Method in class com.technototes.vision.hardware.InternalCamera -
        -
        -
        Get which internal camera is being used
        -
        -
        - getCurrentPipelineMaxFps() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - getDevice() - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
        -
        -
        Get the Camera device that frames are being processed from
        -
        -
        - getFps() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - getFrameBitmap(Continuation<? extends Consumer<Bitmap>>) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - getFrameCount() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - getOpenCvCamera() - - Method in class com.technototes.vision.hardware.Camera -
        -
        -
        get the camera created
        -
        -
        - getOverheadTimeMs() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - getPipelineTimeMs() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - getTotalFrameTimeMs() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        -

        I

        -
        -
        - InternalCamera - - Class in - com.technototes.vision.hardware -
        -
        -
        This is a Camera for use with a phone's internal camera
        -
        -
        - InternalCamera() - - Constructor for class com.technototes.vision.hardware.InternalCamera -
        -
        -
        Create the front-facing internal camera
        -
        -
        - InternalCamera(OpenCvInternalCamera.CameraDirection) - - Constructor for class com.technototes.vision.hardware.InternalCamera -
        -
        -
        - Create a camera (using the one on the phone for the CameraDirection) -
        -
        -
        -

        O

        -
        -
        - openCameraDevice() - - Method in class com.technototes.vision.hardware.Camera -
        -
        -
        Deprecated.
        -
        -
        - openCameraDeviceAsync(Runnable) - - Method in class com.technototes.vision.hardware.Camera -
        -
        -
        - Invokes the Runnable's run() method when the camera has been opened. -
        -
        -
        - openCameraDeviceAsync(Runnable, IntConsumer) - - Method in class com.technototes.vision.hardware.Camera -
        -
        -
        - Invokes the Runnable's run() method when the camera has been opened, and calls the - IntConsumer's accept() method if an error occurs -
        -
        -
        - openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - openCvCamera - - Variable in class com.technototes.vision.hardware.Camera -
        -
        -
        This is the OpenCvCamera object created
        -
        -
        -

        P

        -
        -
        - pauseViewport() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - PipelineSubsystem - - Class in - com.technototes.vision.subsystem -
        -
        -
        - A vision streaming pipeline to enable vision processing during an opmode -
        -
        -
        - PipelineSubsystem(Camera) - - Constructor for class com.technototes.vision.subsystem.PipelineSubsystem -
        -
        -
        Create the subsystem with the Camera provided
        -
        -
        -

        R

        -
        -
        - resumeViewport() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        -

        S

        -
        -
        - setActiveCamera(Webcam) - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Set the active camera (and return it!)
        -
        -
        - setActiveCamera(String) - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Set the active camera (and return it!)
        -
        -
        - setActiveCamera(WebcamName) - - Method in class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Set the active camera (and return it!)
        -
        -
        - setPipeline(OpenCvPipeline) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - setViewportRenderer(OpenCvCamera.ViewportRenderer) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - showFpsMeterOnViewport(boolean) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - startRecordingPipeline(PipelineRecordingParameters) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - startStreaming(int, int) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - startStreaming(int, int) - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
        -
        -
        This begins streaming frames from the camera
        -
        -
        - startStreaming(int, int, OpenCvCameraRotation) - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - startStreaming(int, int, OpenCvCameraRotation) - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
        -
        -
        This begins streaming frames from the camera
        -
        -
        - stopRecordingPipeline() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - stopStreaming() - - Method in class com.technototes.vision.hardware.Camera -
        -
         
        -
        - stopStreaming() - - Method in class com.technototes.vision.subsystem.PipelineSubsystem -
        -
        -
        Stop frame processing
        -
        -
        - SwitchableWebcam - - Class in - com.technototes.vision.hardware -
        -
        -
        - A webcam device interface that allows you to switch between multiple cameras! -
        -
        -
        - SwitchableWebcam(Webcam...) - - Constructor for class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        - Constructor that takes already-created Webcam's so they can be accessed through the - switchable interface -
        -
        -
        - SwitchableWebcam(String...) - - Constructor for class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Constructor to create the switchable webcam object
        -
        -
        - SwitchableWebcam(WebcamName...) - - Constructor for class com.technototes.vision.hardware.SwitchableWebcam -
        -
        -
        Constructor to create the switchable webcam object
        -
        -
        -

        W

        -
        -
        - Webcam - - Class in - com.technototes.vision.hardware -
        -
        -
        Acquire webcamera is just a quit constructor away :)
        -
        -
        - Webcam(String) - - Constructor for class com.technototes.vision.hardware.Webcam -
        -
        -
        - Create a webcam device configured on the device with the given name -
        -
        -
        - Webcam(WebcamName) - - Constructor for class com.technototes.vision.hardware.Webcam -
        -
        -
        TODO: I'm not sure where WebcamName comes from.
        -
        -
        - C G I O P R S W 
        All Classes and Interfaces|All Packages -
        -
        -
        - - diff --git a/docs/Vision/index.html b/docs/Vision/index.html deleted file mode 100644 index 70a53db1..00000000 --- a/docs/Vision/index.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - Overview (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Vision API

        -
        -
        -
        Packages
        -
        -
        Package
        -
        Description
        - -
        -   -
        - -
        -   -
        -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/jquery-ui.overrides.css b/docs/Vision/jquery-ui.overrides.css deleted file mode 100644 index bc437535..00000000 --- a/docs/Vision/jquery-ui.overrides.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -.ui-state-active, -.ui-widget-content .ui-state-active, -.ui-widget-header .ui-state-active, -a.ui-button:active, -.ui-button:active, -.ui-button.ui-state-active:hover { - /* Overrides the color of selection used in jQuery UI */ - background: #f8981d; - border: 1px solid #f8981d; -} diff --git a/docs/Vision/legal/ADDITIONAL_LICENSE_INFO b/docs/Vision/legal/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index ff700cd0..00000000 --- a/docs/Vision/legal/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1,37 +0,0 @@ - ADDITIONAL INFORMATION ABOUT LICENSING - -Certain files distributed by Oracle America, Inc. and/or its affiliates are -subject to the following clarification and special exception to the GPLv2, -based on the GNU Project exception for its Classpath libraries, known as the -GNU Classpath Exception. - -Note that Oracle includes multiple, independent programs in this software -package. Some of those programs are provided under licenses deemed -incompatible with the GPLv2 by the Free Software Foundation and others. -For example, the package includes programs licensed under the Apache -License, Version 2.0 and may include FreeType. Such programs are licensed -to you under their original licenses. - -Oracle facilitates your further distribution of this package by adding the -Classpath Exception to the necessary parts of its GPLv2 code, which permits -you to use that code in combination with other independent modules not -licensed under the GPLv2. However, note that this would not permit you to -commingle code under an incompatible license with Oracle's GPLv2 licensed -code by, for example, cutting and pasting such code into a file also -containing Oracle's GPLv2 licensed code and then distributing the result. - -Additionally, if you were to remove the Classpath Exception from any of the -files to which it applies and distribute the result, you would likely be -required to license some or all of the other code in that distribution under -the GPLv2 as well, and since the GPLv2 is incompatible with the license terms -of some items included in the distribution by Oracle, removing the Classpath -Exception could therefore effectively compromise your ability to further -distribute the package. - -Failing to distribute notices associated with some files may also create -unexpected legal consequences. - -Proceed with caution and we recommend that you obtain the advice of a lawyer -skilled in open source matters before removing the Classpath Exception or -making modifications to this package which may subsequently be redistributed -and/or involve the use of third party software. diff --git a/docs/Vision/legal/ASSEMBLY_EXCEPTION b/docs/Vision/legal/ASSEMBLY_EXCEPTION deleted file mode 100644 index 065b8d90..00000000 --- a/docs/Vision/legal/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1,27 +0,0 @@ - -OPENJDK ASSEMBLY EXCEPTION - -The OpenJDK source code made available by Oracle America, Inc. (Oracle) at -openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU -General Public License version 2 -only ("GPL2"), with the following clarification and special exception. - - Linking this OpenJDK Code statically or dynamically with other code - is making a combined work based on this library. Thus, the terms - and conditions of GPL2 cover the whole combination. - - As a special exception, Oracle gives you permission to link this - OpenJDK Code with certain code licensed by Oracle as indicated at - http://openjdk.java.net/legal/exception-modules-2007-05-08.html - ("Designated Exception Modules") to produce an executable, - regardless of the license terms of the Designated Exception Modules, - and to copy and distribute the resulting executable under GPL2, - provided that the Designated Exception Modules continue to be - governed by the licenses under which they were offered by Oracle. - -As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code -to build an executable that includes those portions of necessary code that -Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 -with the Classpath exception). If you modify or add to the OpenJDK code, -that new GPL2 code may still be combined with Designated Exception Modules -if the new code is made subject to this exception by its copyright holder. diff --git a/docs/Vision/legal/LICENSE b/docs/Vision/legal/LICENSE deleted file mode 100644 index 8b400c7a..00000000 --- a/docs/Vision/legal/LICENSE +++ /dev/null @@ -1,347 +0,0 @@ -The GNU General Public License (GPL) - -Version 2, June 1991 - -Copyright (C) 1989, 1991 Free Software Foundation, Inc. -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -Everyone is permitted to copy and distribute verbatim copies of this license -document, but changing it is not allowed. - -Preamble - -The licenses for most software are designed to take away your freedom to share -and change it. By contrast, the GNU General Public License is intended to -guarantee your freedom to share and change free software--to make sure the -software is free for all its users. This General Public License applies to -most of the Free Software Foundation's software and to any other program whose -authors commit to using it. (Some other Free Software Foundation software is -covered by the GNU Library General Public License instead.) You can apply it to -your programs, too. - -When we speak of free software, we are referring to freedom, not price. Our -General Public Licenses are designed to make sure that you have the freedom to -distribute copies of free software (and charge for this service if you wish), -that you receive source code or can get it if you want it, that you can change -the software or use pieces of it in new free programs; and that you know you -can do these things. - -To protect your rights, we need to make restrictions that forbid anyone to deny -you these rights or to ask you to surrender the rights. These restrictions -translate to certain responsibilities for you if you distribute copies of the -software, or if you modify it. - -For example, if you distribute copies of such a program, whether gratis or for -a fee, you must give the recipients all the rights that you have. You must -make sure that they, too, receive or can get the source code. And you must -show them these terms so they know their rights. - -We protect your rights with two steps: (1) copyright the software, and (2) -offer you this license which gives you legal permission to copy, distribute -and/or modify the software. - -Also, for each author's protection and ours, we want to make certain that -everyone understands that there is no warranty for this free software. If the -software is modified by someone else and passed on, we want its recipients to -know that what they have is not the original, so that any problems introduced -by others will not reflect on the original authors' reputations. - -Finally, any free program is threatened constantly by software patents. We -wish to avoid the danger that redistributors of a free program will -individually obtain patent licenses, in effect making the program proprietary. -To prevent this, we have made it clear that any patent must be licensed for -everyone's free use or not licensed at all. - -The precise terms and conditions for copying, distribution and modification -follow. - -TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -0. This License applies to any program or other work which contains a notice -placed by the copyright holder saying it may be distributed under the terms of -this General Public License. The "Program", below, refers to any such program -or work, and a "work based on the Program" means either the Program or any -derivative work under copyright law: that is to say, a work containing the -Program or a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is included -without limitation in the term "modification".) Each licensee is addressed as -"you". - -Activities other than copying, distribution and modification are not covered by -this License; they are outside its scope. The act of running the Program is -not restricted, and the output from the Program is covered only if its contents -constitute a work based on the Program (independent of having been made by -running the Program). Whether that is true depends on what the Program does. - -1. You may copy and distribute verbatim copies of the Program's source code as -you receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice and -disclaimer of warranty; keep intact all the notices that refer to this License -and to the absence of any warranty; and give any other recipients of the -Program a copy of this License along with the Program. - -You may charge a fee for the physical act of transferring a copy, and you may -at your option offer warranty protection in exchange for a fee. - -2. You may modify your copy or copies of the Program or any portion of it, thus -forming a work based on the Program, and copy and distribute such modifications -or work under the terms of Section 1 above, provided that you also meet all of -these conditions: - - a) You must cause the modified files to carry prominent notices stating - that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in whole or - in part contains or is derived from the Program or any part thereof, to be - licensed as a whole at no charge to all third parties under the terms of - this License. - - c) If the modified program normally reads commands interactively when run, - you must cause it, when started running for such interactive use in the - most ordinary way, to print or display an announcement including an - appropriate copyright notice and a notice that there is no warranty (or - else, saying that you provide a warranty) and that users may redistribute - the program under these conditions, and telling the user how to view a copy - of this License. (Exception: if the Program itself is interactive but does - not normally print such an announcement, your work based on the Program is - not required to print an announcement.) - -These requirements apply to the modified work as a whole. If identifiable -sections of that work are not derived from the Program, and can be reasonably -considered independent and separate works in themselves, then this License, and -its terms, do not apply to those sections when you distribute them as separate -works. But when you distribute the same sections as part of a whole which is a -work based on the Program, the distribution of the whole must be on the terms -of this License, whose permissions for other licensees extend to the entire -whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest your -rights to work written entirely by you; rather, the intent is to exercise the -right to control the distribution of derivative or collective works based on -the Program. - -In addition, mere aggregation of another work not based on the Program with the -Program (or with a work based on the Program) on a volume of a storage or -distribution medium does not bring the other work under the scope of this -License. - -3. You may copy and distribute the Program (or a work based on it, under -Section 2) in object code or executable form under the terms of Sections 1 and -2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable source - code, which must be distributed under the terms of Sections 1 and 2 above - on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three years, to - give any third party, for a charge no more than your cost of physically - performing source distribution, a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of Sections 1 - and 2 above on a medium customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer to - distribute corresponding source code. (This alternative is allowed only - for noncommercial distribution and only if you received the program in - object code or executable form with such an offer, in accord with - Subsection b above.) - -The source code for a work means the preferred form of the work for making -modifications to it. For an executable work, complete source code means all -the source code for all modules it contains, plus any associated interface -definition files, plus the scripts used to control compilation and installation -of the executable. However, as a special exception, the source code -distributed need not include anything that is normally distributed (in either -source or binary form) with the major components (compiler, kernel, and so on) -of the operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the source -code from the same place counts as distribution of the source code, even though -third parties are not compelled to copy the source along with the object code. - -4. You may not copy, modify, sublicense, or distribute the Program except as -expressly provided under this License. Any attempt otherwise to copy, modify, -sublicense or distribute the Program is void, and will automatically terminate -your rights under this License. However, parties who have received copies, or -rights, from you under this License will not have their licenses terminated so -long as such parties remain in full compliance. - -5. You are not required to accept this License, since you have not signed it. -However, nothing else grants you permission to modify or distribute the Program -or its derivative works. These actions are prohibited by law if you do not -accept this License. Therefore, by modifying or distributing the Program (or -any work based on the Program), you indicate your acceptance of this License to -do so, and all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -6. Each time you redistribute the Program (or any work based on the Program), -the recipient automatically receives a license from the original licensor to -copy, distribute or modify the Program subject to these terms and conditions. -You may not impose any further restrictions on the recipients' exercise of the -rights granted herein. You are not responsible for enforcing compliance by -third parties to this License. - -7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), conditions -are imposed on you (whether by court order, agreement or otherwise) that -contradict the conditions of this License, they do not excuse you from the -conditions of this License. If you cannot distribute so as to satisfy -simultaneously your obligations under this License and any other pertinent -obligations, then as a consequence you may not distribute the Program at all. -For example, if a patent license would not permit royalty-free redistribution -of the Program by all those who receive copies directly or indirectly through -you, then the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply and -the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any patents or -other property right claims or to contest validity of any such claims; this -section has the sole purpose of protecting the integrity of the free software -distribution system, which is implemented by public license practices. Many -people have made generous contributions to the wide range of software -distributed through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing to -distribute software through any other system and a licensee cannot impose that -choice. - -This section is intended to make thoroughly clear what is believed to be a -consequence of the rest of this License. - -8. If the distribution and/or use of the Program is restricted in certain -countries either by patents or by copyrighted interfaces, the original -copyright holder who places the Program under this License may add an explicit -geographical distribution limitation excluding those countries, so that -distribution is permitted only in or among countries not thus excluded. In -such case, this License incorporates the limitation as if written in the body -of this License. - -9. The Free Software Foundation may publish revised and/or new versions of the -General Public License from time to time. Such new versions will be similar in -spirit to the present version, but may differ in detail to address new problems -or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any later -version", you have the option of following the terms and conditions either of -that version or of any later version published by the Free Software Foundation. -If the Program does not specify a version number of this License, you may -choose any version ever published by the Free Software Foundation. - -10. If you wish to incorporate parts of the Program into other free programs -whose distribution conditions are different, write to the author to ask for -permission. For software which is copyrighted by the Free Software Foundation, -write to the Free Software Foundation; we sometimes make exceptions for this. -Our decision will be guided by the two goals of preserving the free status of -all derivatives of our free software and of promoting the sharing and reuse of -software generally. - -NO WARRANTY - -11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR -THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE -STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE -PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND -PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - -12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL -ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE -PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR -INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA -BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER -OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -END OF TERMS AND CONDITIONS - -How to Apply These Terms to Your New Programs - -If you develop a new program, and you want it to be of the greatest possible -use to the public, the best way to achieve this is to make it free software -which everyone can redistribute and change under these terms. - -To do so, attach the following notices to the program. It is safest to attach -them to the start of each source file to most effectively convey the exclusion -of warranty; and each file should have at least the "copyright" line and a -pointer to where the full notice is found. - - One line to give the program's name and a brief idea of what it does. - - Copyright (C) - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation; either version 2 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this when it -starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author Gnomovision comes - with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free - software, and you are welcome to redistribute it under certain conditions; - type 'show c' for details. - -The hypothetical commands 'show w' and 'show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may be -called something other than 'show w' and 'show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your school, -if any, to sign a "copyright disclaimer" for the program, if necessary. Here -is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - 'Gnomovision' (which makes passes at compilers) written by James Hacker. - - signature of Ty Coon, 1 April 1989 - - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General Public -License instead of this License. - - -"CLASSPATH" EXCEPTION TO THE GPL - -Certain source files distributed by Oracle America and/or its affiliates are -subject to the following clarification and special exception to the GPL, but -only where Oracle has expressly included in the particular source file's header -the words "Oracle designates this particular file as subject to the "Classpath" -exception as provided by Oracle in the LICENSE file that accompanied this code." - - Linking this library statically or dynamically with other modules is making - a combined work based on this library. Thus, the terms and conditions of - the GNU General Public License cover the whole combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent modules, - and to copy and distribute the resulting executable under terms of your - choice, provided that you also meet, for each linked independent module, - the terms and conditions of the license of that module. An independent - module is a module which is not derived from or based on this library. If - you modify this library, you may extend this exception to your version of - the library, but you are not obligated to do so. If you do not wish to do - so, delete this exception statement from your version. diff --git a/docs/Vision/legal/jquery.md b/docs/Vision/legal/jquery.md deleted file mode 100644 index d468b318..00000000 --- a/docs/Vision/legal/jquery.md +++ /dev/null @@ -1,72 +0,0 @@ -## jQuery v3.6.1 - -### jQuery License -``` -jQuery v 3.6.1 -Copyright OpenJS Foundation and other contributors, https://openjsf.org/ - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -****************************************** - -The jQuery JavaScript Library v3.6.1 also includes Sizzle.js - -Sizzle.js includes the following license: - -Copyright JS Foundation and other contributors, https://js.foundation/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/sizzle - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. - -********************* - -``` diff --git a/docs/Vision/legal/jqueryUI.md b/docs/Vision/legal/jqueryUI.md deleted file mode 100644 index 8031bdb5..00000000 --- a/docs/Vision/legal/jqueryUI.md +++ /dev/null @@ -1,49 +0,0 @@ -## jQuery UI v1.12.1 - -### jQuery UI License -``` -Copyright jQuery Foundation and other contributors, https://jquery.org/ - -This software consists of voluntary contributions made by many -individuals. For exact contribution history, see the revision history -available at https://github.com/jquery/jquery-ui - -The following license applies to all parts of this software except as -documented below: - -==== - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -==== - -Copyright and related rights for sample code are waived via CC0. Sample -code is defined as all source code contained within the demos directory. - -CC0: http://creativecommons.org/publicdomain/zero/1.0/ - -==== - -All files located in the node_modules and external directories are -externally maintained libraries used by this software which have their -own licenses; we recommend you read them, as their terms may differ from -the terms above. - -``` diff --git a/docs/Vision/member-search-index.js b/docs/Vision/member-search-index.js deleted file mode 100644 index f63548dc..00000000 --- a/docs/Vision/member-search-index.js +++ /dev/null @@ -1,177 +0,0 @@ -memberSearchIndex = [ - { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'camera' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'Camera(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'Camera(U)', u: '%3Cinit%3E(U)' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'closeCameraDevice()' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'closeCameraDeviceAsync(OpenCvCamera.AsyncCameraCloseListener)', - u: 'closeCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraCloseListener)', - }, - { p: 'com.technototes.vision.hardware', c: 'InternalCamera', l: 'createCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'SwitchableWebcam', l: 'createCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'Webcam', l: 'createCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'SwitchableWebcam', l: 'getActiveCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'InternalCamera', l: 'getCameraDirection()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getCurrentPipelineMaxFps()' }, - { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'getDevice()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getFps()' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'getFrameBitmap(Continuation>)', - u: 'getFrameBitmap(org.firstinspires.ftc.robotcore.external.function.Continuation)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getFrameCount()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getOpenCvCamera()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getOverheadTimeMs()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getPipelineTimeMs()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'getTotalFrameTimeMs()' }, - { - p: 'com.technototes.vision.hardware', - c: 'InternalCamera', - l: 'InternalCamera()', - u: '%3Cinit%3E()', - }, - { - p: 'com.technototes.vision.hardware', - c: 'InternalCamera', - l: 'InternalCamera(OpenCvInternalCamera.CameraDirection)', - u: '%3Cinit%3E(org.openftc.easyopencv.OpenCvInternalCamera.CameraDirection)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'openCameraDevice()' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'openCameraDeviceAsync(OpenCvCamera.AsyncCameraOpenListener)', - u: 'openCameraDeviceAsync(org.openftc.easyopencv.OpenCvCamera.AsyncCameraOpenListener)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'openCameraDeviceAsync(Runnable)', - u: 'openCameraDeviceAsync(java.lang.Runnable)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'openCameraDeviceAsync(Runnable, IntConsumer)', - u: 'openCameraDeviceAsync(java.lang.Runnable,java.util.function.IntConsumer)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'openCvCamera' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'pauseViewport()' }, - { - p: 'com.technototes.vision.subsystem', - c: 'PipelineSubsystem', - l: 'PipelineSubsystem(Camera)', - u: '%3Cinit%3E(com.technototes.vision.hardware.Camera)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'resumeViewport()' }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'setActiveCamera(String)', - u: 'setActiveCamera(java.lang.String)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'setActiveCamera(Webcam)', - u: 'setActiveCamera(com.technototes.vision.hardware.Webcam)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'setActiveCamera(WebcamName)', - u: 'setActiveCamera(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'setPipeline(OpenCvPipeline)', - u: 'setPipeline(org.openftc.easyopencv.OpenCvPipeline)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'setViewportRenderer(OpenCvCamera.ViewportRenderer)', - u: 'setViewportRenderer(org.openftc.easyopencv.OpenCvCamera.ViewportRenderer)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'setViewportRenderingPolicy(OpenCvCamera.ViewportRenderingPolicy)', - u: 'setViewportRenderingPolicy(org.openftc.easyopencv.OpenCvCamera.ViewportRenderingPolicy)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'showFpsMeterOnViewport(boolean)' }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'startRecordingPipeline(PipelineRecordingParameters)', - u: 'startRecordingPipeline(org.openftc.easyopencv.PipelineRecordingParameters)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'startStreaming(int, int)', - u: 'startStreaming(int,int)', - }, - { - p: 'com.technototes.vision.subsystem', - c: 'PipelineSubsystem', - l: 'startStreaming(int, int)', - u: 'startStreaming(int,int)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Camera', - l: 'startStreaming(int, int, OpenCvCameraRotation)', - u: 'startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)', - }, - { - p: 'com.technototes.vision.subsystem', - c: 'PipelineSubsystem', - l: 'startStreaming(int, int, OpenCvCameraRotation)', - u: 'startStreaming(int,int,org.openftc.easyopencv.OpenCvCameraRotation)', - }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'stopRecordingPipeline()' }, - { p: 'com.technototes.vision.hardware', c: 'Camera', l: 'stopStreaming()' }, - { p: 'com.technototes.vision.subsystem', c: 'PipelineSubsystem', l: 'stopStreaming()' }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'SwitchableWebcam(String...)', - u: '%3Cinit%3E(java.lang.String...)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'SwitchableWebcam(Webcam...)', - u: '%3Cinit%3E(com.technototes.vision.hardware.Webcam...)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'SwitchableWebcam', - l: 'SwitchableWebcam(WebcamName...)', - u: '%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName...)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Webcam', - l: 'Webcam(String)', - u: '%3Cinit%3E(java.lang.String)', - }, - { - p: 'com.technototes.vision.hardware', - c: 'Webcam', - l: 'Webcam(WebcamName)', - u: '%3Cinit%3E(org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName)', - }, -]; -updateSearchResults(); diff --git a/docs/Vision/module-search-index.js b/docs/Vision/module-search-index.js deleted file mode 100644 index a6f96499..00000000 --- a/docs/Vision/module-search-index.js +++ /dev/null @@ -1,2 +0,0 @@ -moduleSearchIndex = []; -updateSearchResults(); diff --git a/docs/Vision/overview-summary.html b/docs/Vision/overview-summary.html deleted file mode 100644 index dcf83320..00000000 --- a/docs/Vision/overview-summary.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - Vision API - - - - - - - - - - -
        - -

        index.html

        -
        - - diff --git a/docs/Vision/overview-tree.html b/docs/Vision/overview-tree.html deleted file mode 100644 index e677c81b..00000000 --- a/docs/Vision/overview-tree.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - Class Hierarchy (Vision API) - - - - - - - - - - - - - - -
        - -
        -
        -
        -

        Hierarchy For All Packages

        - Package Hierarchies: - -
        -
        -

        Class Hierarchy

        -
          -
        • - java.lang.Object -
            -
          • - com.technototes.library.hardware.HardwareDevice<T> -
              -
            • - com.technototes.vision.hardware.Camera<T,U> (implements org.openftc.easyopencv.OpenCvCamera) - -
            • -
            -
          • -
          • - com.technototes.vision.subsystem.PipelineSubsystem - (implements com.technototes.library.subsystem.Subsystem) -
          • -
          -
        • -
        -
        -
        -
        -
        - - diff --git a/docs/Vision/package-search-index.js b/docs/Vision/package-search-index.js deleted file mode 100644 index d142fd68..00000000 --- a/docs/Vision/package-search-index.js +++ /dev/null @@ -1,6 +0,0 @@ -packageSearchIndex = [ - { l: 'All Packages', u: 'allpackages-index.html' }, - { l: 'com.technototes.vision.hardware' }, - { l: 'com.technototes.vision.subsystem' }, -]; -updateSearchResults(); diff --git a/docs/Vision/resources/glass.png b/docs/Vision/resources/glass.png deleted file mode 100644 index a7f591f467a1c0c949bbc510156a0c1afb860a6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaqW6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY diff --git a/docs/Vision/script-dir/jquery-3.6.1.min.js b/docs/Vision/script-dir/jquery-3.6.1.min.js deleted file mode 100644 index 2c69bc90..00000000 --- a/docs/Vision/script-dir/jquery-3.6.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
        "],col:[2,"","
        "],tr:[2,"","
        "],td:[3,"","
        "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
        ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
        "),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
          ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
          ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
          ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
          ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/Vision/script.js b/docs/Vision/script.js deleted file mode 100644 index a6efd285..00000000 --- a/docs/Vision/script.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -var moduleSearchIndex; -var packageSearchIndex; -var typeSearchIndex; -var memberSearchIndex; -var tagSearchIndex; -function loadScripts(doc, tag) { - createElem(doc, tag, 'search.js'); - - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); -} - -function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); -} - -function show(tableId, selected, columns) { - if (tableId !== selected) { - document - .querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function (elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected).forEach(function (elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); - elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); - }); - updateTabs(tableId, selected); -} - -function updateTabs(tableId, selected) { - document - .querySelector('div#' + tableId + ' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]').forEach(function (tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex', 0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex', -1); - } - }); -} - -function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); - } - } -} - -var updateSearchResults = function () {}; - -function indexFilesLoaded() { - return ( - moduleSearchIndex && - packageSearchIndex && - typeSearchIndex && - memberSearchIndex && - tagSearchIndex - ); -} - -// Workaround for scroll position not being included in browser history (8249133) -document.addEventListener('DOMContentLoaded', function (e) { - var contentDiv = document.querySelector('div.flex-content'); - window.addEventListener('popstate', function (e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener('hashchange', function (e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - contentDiv.addEventListener('scroll', function (e) { - var timeoutID; - if (!timeoutID) { - timeoutID = setTimeout(function () { - history.replaceState(contentDiv.scrollTop, document.title); - timeoutID = null; - }, 100); - } - }); - if (!location.hash) { - history.replaceState(contentDiv.scrollTop, document.title); - } -}); diff --git a/docs/Vision/search.js b/docs/Vision/search.js deleted file mode 100644 index 3ba91721..00000000 --- a/docs/Vision/search.js +++ /dev/null @@ -1,376 +0,0 @@ -/* - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -var noResult = { l: 'No results found' }; -var loading = { l: 'Loading search index...' }; -var catModules = 'Modules'; -var catPackages = 'Packages'; -var catTypes = 'Classes and Interfaces'; -var catMembers = 'Members'; -var catSearchTags = 'Search Tags'; -var highlight = '$&'; -var searchPattern = ''; -var fallbackPattern = ''; -var RANKING_THRESHOLD = 2; -var NO_MATCH = 0xffff; -var MIN_RESULTS = 3; -var MAX_RESULTS = 500; -var UNNAMED = ''; -function escapeHtml(str) { - return str.replace(//g, '>'); -} -function getHighlightedText(item, matcher, fallbackMatcher) { - var escapedItem = escapeHtml(item); - var highlighted = escapedItem.replace(matcher, highlight); - if (highlighted === escapedItem) { - highlighted = escapedItem.replace(fallbackMatcher, highlight); - } - return highlighted; -} -function getURLPrefix(ui) { - var urlPrefix = ''; - var slash = '/'; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if (ui.item.category === catTypes || ui.item.category === catMembers) { - if (ui.item.m) { - urlPrefix = ui.item.m + slash; - } else { - $.each(packageSearchIndex, function (index, item) { - if (item.m && ui.item.p === item.l) { - urlPrefix = item.m + slash; - } - }); - } - } - return urlPrefix; -} -function createSearchPattern(term) { - var pattern = ''; - var isWordToken = false; - term - .replace(/,\s*/g, ', ') - .trim() - .split(/\s+/) - .forEach(function (w, index) { - if (index > 0) { - // whitespace between identifiers is significant - pattern += isWordToken && /^\w/.test(w) ? '\\s+' : '\\s*'; - } - var tokens = w.split(/(?=[A-Z,.()<>[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - if (s === '') { - continue; - } - pattern += $.ui.autocomplete.escapeRegex(s); - isWordToken = /\w$/.test(s); - if (isWordToken) { - pattern += '([a-z0-9_$<>\\[\\]]*?)'; - } - } - }); - return pattern; -} -function createMatcher(pattern, flags) { - var isCamelCase = /[A-Z]/.test(pattern); - return new RegExp(pattern, flags + (isCamelCase ? '' : 'i')); -} -var watermark = 'Search'; -$(function () { - var search = $('#search-input'); - var reset = $('#reset-button'); - search.val(''); - search.prop('disabled', false); - reset.prop('disabled', false); - search.val(watermark).addClass('watermark'); - search.blur(function () { - if ($(this).val().length === 0) { - $(this).val(watermark).addClass('watermark'); - } - }); - search.on('click keydown paste', function () { - if ($(this).val() === watermark) { - $(this).val('').removeClass('watermark'); - } - }); - reset.click(function () { - search.val('').focus(); - }); - search.focus()[0].setSelectionRange(0, 0); -}); -$.widget('custom.catcomplete', $.ui.autocomplete, { - _create: function () { - this._super(); - this.widget().menu('option', 'items', '> :not(.ui-autocomplete-category)'); - }, - _renderMenu: function (ul, items) { - var rMenu = this; - var currentCategory = ''; - rMenu.menu.bindings = $(); - $.each(items, function (index, item) { - var li; - if (item.category && item.category !== currentCategory) { - ul.append('
        • ' + item.category + '
        • '); - currentCategory = item.category; - } - li = rMenu._renderItemData(ul, item); - if (item.category) { - li.attr('aria-label', item.category + ' : ' + item.l); - li.attr('class', 'result-item'); - } else { - li.attr('aria-label', item.l); - li.attr('class', 'result-item'); - } - }); - }, - _renderItem: function (ul, item) { - var label = ''; - var matcher = createMatcher(escapeHtml(searchPattern), 'g'); - var fallbackMatcher = new RegExp(fallbackPattern, 'gi'); - if (item.category === catModules) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catPackages) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catTypes) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.l, matcher, fallbackMatcher); - } else if (item.category === catMembers) { - label = - item.p && item.p !== UNNAMED - ? getHighlightedText(item.p + '.' + item.c + '.' + item.l, matcher, fallbackMatcher) - : getHighlightedText(item.c + '.' + item.l, matcher, fallbackMatcher); - } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l, matcher, fallbackMatcher); - } else { - label = item.l; - } - var li = $('
        • ').appendTo(ul); - var div = $('
          ').appendTo(li); - if (item.category === catSearchTags && item.h) { - if (item.d) { - div.html( - label + - ' (' + - item.h + - ')
          ' + - item.d + - '
          ', - ); - } else { - div.html(label + ' (' + item.h + ')'); - } - } else { - if (item.m) { - div.html(item.m + '/' + label); - } else { - div.html(label); - } - } - return li; - }, -}); -function rankMatch(match, category) { - if (!match) { - return NO_MATCH; - } - var index = match.index; - var input = match.input; - var leftBoundaryMatch = 2; - var periferalMatch = 0; - // make sure match is anchored on a left word boundary - if (index === 0 || /\W/.test(input[index - 1]) || '_' === input[index]) { - leftBoundaryMatch = 0; - } else if ( - '_' === input[index - 1] || - (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input)) - ) { - leftBoundaryMatch = 1; - } - var matchEnd = index + match[0].length; - var leftParen = input.indexOf('('); - var endOfName = leftParen > -1 ? leftParen : input.length; - // exclude peripheral matches - if (category !== catModules && category !== catSearchTags) { - var delim = category === catPackages ? '/' : '.'; - if (leftParen > -1 && leftParen < index) { - periferalMatch += 2; - } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { - periferalMatch += 2; - } - } - var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match - for (var i = 1; i < match.length; i++) { - // lower ranking if parts of the name are missing - if (match[i]) delta += match[i].length; - } - if (category === catTypes) { - // lower ranking if a type name contains unmatched camel-case parts - if (/[A-Z]/.test(input.substring(matchEnd))) delta += 5; - if (/[A-Z]/.test(input.substring(0, index))) delta += 5; - } - return leftBoundaryMatch + periferalMatch + delta / 200; -} -function doSearch(request, response) { - var result = []; - searchPattern = createSearchPattern(request.term); - fallbackPattern = createSearchPattern(request.term.toLowerCase()); - if (searchPattern === '') { - return this.close(); - } - var camelCaseMatcher = createMatcher(searchPattern, ''); - var fallbackMatcher = new RegExp(fallbackPattern, 'i'); - - function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { - if (indexArray) { - var newResults = []; - $.each(indexArray, function (i, item) { - item.category = category; - var ranking = rankMatch(matcher.exec(nameFunc(item)), category); - if (ranking < RANKING_THRESHOLD) { - newResults.push({ ranking: ranking, item: item }); - } - return newResults.length <= MAX_RESULTS; - }); - return newResults - .sort(function (e1, e2) { - return e1.ranking - e2.ranking; - }) - .map(function (e) { - return e.item; - }); - } - return []; - } - function searchIndex(indexArray, category, nameFunc) { - var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); - result = result.concat(primaryResults); - if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { - var secondaryResults = searchIndexWithMatcher( - indexArray, - fallbackMatcher, - category, - nameFunc, - ); - result = result.concat( - secondaryResults.filter(function (item) { - return primaryResults.indexOf(item) === -1; - }), - ); - } - } - - searchIndex(moduleSearchIndex, catModules, function (item) { - return item.l; - }); - searchIndex(packageSearchIndex, catPackages, function (item) { - return item.m && request.term.indexOf('/') > -1 ? item.m + '/' + item.l : item.l; - }); - searchIndex(typeSearchIndex, catTypes, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.l : item.l; - }); - searchIndex(memberSearchIndex, catMembers, function (item) { - return request.term.indexOf('.') > -1 ? item.p + '.' + item.c + '.' + item.l : item.l; - }); - searchIndex(tagSearchIndex, catSearchTags, function (item) { - return item.l; - }); - - if (!indexFilesLoaded()) { - updateSearchResults = function () { - doSearch(request, response); - }; - result.unshift(loading); - } else { - updateSearchResults = function () {}; - } - response(result); -} -$(function () { - $('#search-input').catcomplete({ - minLength: 1, - delay: 300, - source: doSearch, - response: function (event, ui) { - if (!ui.content.length) { - ui.content.push(noResult); - } else { - $('#search-input').empty(); - } - }, - autoFocus: true, - focus: function (event, ui) { - return false; - }, - position: { - collision: 'flip', - }, - select: function (event, ui) { - if (ui.item.category) { - var url = getURLPrefix(ui); - if (ui.item.category === catModules) { - url += 'module-summary.html'; - } else if (ui.item.category === catPackages) { - if (ui.item.u) { - url = ui.item.u; - } else { - url += ui.item.l.replace(/\./g, '/') + '/package-summary.html'; - } - } else if (ui.item.category === catTypes) { - if (ui.item.u) { - url = ui.item.u; - } else if (ui.item.p === UNNAMED) { - url += ui.item.l + '.html'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.l + '.html'; - } - } else if (ui.item.category === catMembers) { - if (ui.item.p === UNNAMED) { - url += ui.item.c + '.html' + '#'; - } else { - url += ui.item.p.replace(/\./g, '/') + '/' + ui.item.c + '.html' + '#'; - } - if (ui.item.u) { - url += ui.item.u; - } else { - url += ui.item.l; - } - } else if (ui.item.category === catSearchTags) { - url += ui.item.u; - } - if (top !== window) { - parent.classFrame.location = pathtoroot + url; - } else { - window.location.href = pathtoroot + url; - } - $('#search-input').focus(); - } - }, - }); -}); diff --git a/docs/Vision/src-html/com/technototes/vision/hardware/Camera.html b/docs/Vision/src-html/com/technototes/vision/hardware/Camera.html deleted file mode 100644 index 2e74167b..00000000 --- a/docs/Vision/src-html/com/technototes/vision/hardware/Camera.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - -Source code - - - - - - -
          -
          -
          001package com.technototes.vision.hardware;
          -002
          -003import android.graphics.Bitmap;
          -004import com.technototes.library.hardware.HardwareDevice;
          -005import java.util.function.IntConsumer;
          -006import org.firstinspires.ftc.robotcore.external.function.Consumer;
          -007import org.firstinspires.ftc.robotcore.external.function.Continuation;
          -008import org.openftc.easyopencv.OpenCvCamera;
          -009import org.openftc.easyopencv.OpenCvCameraRotation;
          -010import org.openftc.easyopencv.OpenCvPipeline;
          -011import org.openftc.easyopencv.PipelineRecordingParameters;
          -012
          -013/**
          -014 * This is an OpenCVCamera interface using the FTC SDK camera hardware
          -015 *
          -016 * @param <T> The OpenCvCamera type
          -017 * @param <U> The HardwareDevice type
          -018 */
          -019public abstract class Camera<T extends OpenCvCamera, U extends com.qualcomm.robotcore.hardware.HardwareDevice>
          -020    extends HardwareDevice<U>
          -021    implements OpenCvCamera {
          -022
          -023    /**
          -024     * This is the OpenCvCamera object created
          -025     */
          -026    protected T openCvCamera;
          -027
          -028    /**
          -029     * Create a Camera device from the HardwareDevice provided
          -030     *
          -031     * @param device The HardwareDevice for the camera (from hardwareMap.get)
          -032     */
          -033    protected Camera(U device) {
          -034        super(device);
          -035        openCvCamera = createCamera();
          -036    }
          -037
          -038    /**
          -039     * Create a Camera device from the HardwareDevice provided
          -040     *
          -041     * @param device The name of the HardwareDevice for the camera (probably: TODO)
          -042     */
          -043    protected Camera(String device) {
          -044        super(device);
          -045        openCvCamera = createCamera();
          -046    }
          -047
          -048    /**
          -049     * get the camera created
          -050     *
          -051     * @return the OpenCvCamera device created
          -052     */
          -053    public T getOpenCvCamera() {
          -054        return openCvCamera;
          -055    }
          -056
          -057    /**
          -058     * Create the camera: Child classes need to implement this!
          -059     *
          -060     * @return the OpenCvCamera device created
          -061     */
          -062    abstract T createCamera();
          -063
          -064    @Override
          -065    @Deprecated
          -066    public int openCameraDevice() {
          -067        return getOpenCvCamera().openCameraDevice();
          -068    }
          -069
          -070    @Override
          -071    public void openCameraDeviceAsync(AsyncCameraOpenListener cameraOpenListener) {
          -072        getOpenCvCamera().openCameraDeviceAsync(cameraOpenListener);
          -073    }
          -074
          -075    /**
          -076     * Invokes the Runnable's run() method when the camera has been opened,
          -077     * and calls the IntConsumer's accept() method if an error occurs
          -078     *
          -079     * @param open  A Runnable to be notified with the camera is opened
          -080     * @param error An IntConsumer error handler if an error occurs
          -081     */
          -082    public void openCameraDeviceAsync(Runnable open, IntConsumer error) {
          -083        getOpenCvCamera()
          -084            .openCameraDeviceAsync(
          -085                new AsyncCameraOpenListener() {
          -086                    @Override
          -087                    public void onOpened() {
          -088                        open.run();
          -089                    }
          -090
          -091                    @Override
          -092                    public void onError(int errorCode) {
          -093                        error.accept(errorCode);
          -094                    }
          -095                }
          -096            );
          -097    }
          -098
          -099    /**
          -100     * Invokes the Runnable's run() method when the camera has been opened.
          -101     * This has no error handling: Good luck, folks!
          -102     *
          -103     * @param open A Runnable to be notified with the camera is opened
          -104     */
          -105    public void openCameraDeviceAsync(Runnable open) {
          -106        openCameraDeviceAsync(open, i -> {});
          -107    }
          -108
          -109    @Override
          -110    public void closeCameraDevice() {
          -111        getOpenCvCamera().closeCameraDevice();
          -112    }
          -113
          -114    @Override
          -115    public void closeCameraDeviceAsync(AsyncCameraCloseListener cameraCloseListener) {
          -116        getOpenCvCamera().closeCameraDeviceAsync(cameraCloseListener);
          -117    }
          -118
          -119    @Override
          -120    public void showFpsMeterOnViewport(boolean show) {
          -121        getOpenCvCamera().showFpsMeterOnViewport(show);
          -122    }
          -123
          -124    @Override
          -125    public void pauseViewport() {
          -126        getOpenCvCamera().pauseViewport();
          -127    }
          -128
          -129    @Override
          -130    public void resumeViewport() {
          -131        getOpenCvCamera().resumeViewport();
          -132    }
          -133
          -134    @Override
          -135    public void setViewportRenderingPolicy(ViewportRenderingPolicy policy) {
          -136        getOpenCvCamera().setViewportRenderingPolicy(policy);
          -137    }
          -138
          -139    @Override
          -140    public void setViewportRenderer(ViewportRenderer renderer) {
          -141        getOpenCvCamera().setViewportRenderer(renderer);
          -142    }
          -143
          -144    @Override
          -145    public void startStreaming(int width, int height) {
          -146        getOpenCvCamera().startStreaming(width, height);
          -147    }
          -148
          -149    @Override
          -150    public void startStreaming(int width, int height, OpenCvCameraRotation rotation) {
          -151        getOpenCvCamera().startStreaming(width, height, rotation);
          -152    }
          -153
          -154    @Override
          -155    public void stopStreaming() {
          -156        getOpenCvCamera().stopStreaming();
          -157    }
          -158
          -159    @Override
          -160    public void setPipeline(OpenCvPipeline pipeline) {
          -161        getOpenCvCamera().setPipeline(pipeline);
          -162    }
          -163
          -164    @Override
          -165    public int getFrameCount() {
          -166        return getOpenCvCamera().getFrameCount();
          -167    }
          -168
          -169    @Override
          -170    public float getFps() {
          -171        return getOpenCvCamera().getFps();
          -172    }
          -173
          -174    @Override
          -175    public int getPipelineTimeMs() {
          -176        return getOpenCvCamera().getPipelineTimeMs();
          -177    }
          -178
          -179    @Override
          -180    public int getOverheadTimeMs() {
          -181        return getOpenCvCamera().getOverheadTimeMs();
          -182    }
          -183
          -184    @Override
          -185    public int getTotalFrameTimeMs() {
          -186        return getOpenCvCamera().getTotalFrameTimeMs();
          -187    }
          -188
          -189    @Override
          -190    public int getCurrentPipelineMaxFps() {
          -191        return getOpenCvCamera().getCurrentPipelineMaxFps();
          -192    }
          -193
          -194    @Override
          -195    public void startRecordingPipeline(PipelineRecordingParameters parameters) {
          -196        getOpenCvCamera().startRecordingPipeline(parameters);
          -197    }
          -198
          -199    @Override
          -200    public void stopRecordingPipeline() {
          -201        getOpenCvCamera().stopRecordingPipeline();
          -202    }
          -203
          -204    @Override
          -205    public void getFrameBitmap(Continuation<? extends Consumer<Bitmap>> continuation) {
          -206        getOpenCvCamera().getFrameBitmap(continuation);
          -207    }
          -208}
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          - - diff --git a/docs/Vision/src-html/com/technototes/vision/hardware/InternalCamera.html b/docs/Vision/src-html/com/technototes/vision/hardware/InternalCamera.html deleted file mode 100644 index 21a75ac3..00000000 --- a/docs/Vision/src-html/com/technototes/vision/hardware/InternalCamera.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -Source code - - - - - - -
          -
          -
          001package com.technototes.vision.hardware;
          -002
          -003import com.technototes.library.hardware.DummyDevice;
          -004import org.openftc.easyopencv.OpenCvCameraFactory;
          -005import org.openftc.easyopencv.OpenCvInternalCamera;
          -006
          -007/**
          -008 * This is a Camera for use with a phone's internal camera
          -009 */
          -010@SuppressWarnings("unused")
          -011public class InternalCamera extends Camera<OpenCvInternalCamera, DummyDevice<OpenCvInternalCamera.CameraDirection>> {
          -012
          -013    /**
          -014     * Create the front-facing internal camera
          -015     */
          -016    public InternalCamera() {
          -017        this(OpenCvInternalCamera.CameraDirection.FRONT);
          -018    }
          -019
          -020    /**
          -021     * Create a camera (using the one on the phone for the CameraDirection)
          -022     *
          -023     * @param dir The direction (FRONT or REAR, probably)
          -024     */
          -025    public InternalCamera(OpenCvInternalCamera.CameraDirection dir) {
          -026        super(new DummyDevice<>(dir));
          -027        createCamera();
          -028    }
          -029
          -030    /**
          -031     * Get which internal camera is being used
          -032     *
          -033     * @return FRONT or REAR, probably (TODO)
          -034     */
          -035    public OpenCvInternalCamera.CameraDirection getCameraDirection() {
          -036        return getDevice().get();
          -037    }
          -038
          -039    /**
          -040     * Create an OpenCvInternalCamera from this Camera
          -041     *
          -042     * @return the OpenCvInternalCamera device
          -043     */
          -044    @Override
          -045    public OpenCvInternalCamera createCamera() {
          -046        return OpenCvCameraFactory
          -047            .getInstance()
          -048            .createInternalCamera(
          -049                getCameraDirection(),
          -050                hardwareMap.appContext
          -051                    .getResources()
          -052                    .getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName())
          -053            );
          -054    }
          -055}
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          - - diff --git a/docs/Vision/src-html/com/technototes/vision/hardware/SwitchableWebcam.html b/docs/Vision/src-html/com/technototes/vision/hardware/SwitchableWebcam.html deleted file mode 100644 index a6142f32..00000000 --- a/docs/Vision/src-html/com/technototes/vision/hardware/SwitchableWebcam.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - -Source code - - - - - - -
          -
          -
          001package com.technototes.vision.hardware;
          -002
          -003import com.technototes.library.hardware.DummyDevice;
          -004import com.technototes.library.hardware.HardwareDevice;
          -005import java.util.Arrays;
          -006import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName;
          -007import org.openftc.easyopencv.OpenCvCameraFactory;
          -008import org.openftc.easyopencv.OpenCvSwitchableWebcam;
          -009
          -010/**
          -011 * A webcam device interface that allows you to switch between multiple cameras!
          -012 */
          -013@SuppressWarnings("unused")
          -014public class SwitchableWebcam extends Camera<OpenCvSwitchableWebcam, DummyDevice<WebcamName[]>> {
          -015
          -016    private final Webcam[] devices;
          -017
          -018    /**
          -019     * Constructor to create the switchable webcam object
          -020     *
          -021     * @param device The list of WebcamName devices (TODO: I don't know what this is!)
          -022     */
          -023    public SwitchableWebcam(WebcamName... device) {
          -024        super(new DummyDevice<>(device));
          -025        devices = Arrays.stream(device).map(Webcam::new).toArray(Webcam[]::new);
          -026    }
          -027
          -028    /**
          -029     * Constructor to create the switchable webcam object
          -030     *
          -031     * @param device The list of names of cameras as configured in the Robot configuration
          -032     */
          -033    public SwitchableWebcam(String... device) {
          -034        this(Arrays.stream(device).map(s -> hardwareMap.get(WebcamName.class, s)).toArray(WebcamName[]::new));
          -035    }
          -036
          -037    /**
          -038     * Constructor that takes already-created Webcam's so they can be accessed
          -039     * through the switchable interface
          -040     *
          -041     * @param device The list of Webcam devices
          -042     */
          -043    public SwitchableWebcam(Webcam... device) {
          -044        this(Arrays.stream(device).map(HardwareDevice::getDevice).toArray(WebcamName[]::new));
          -045    }
          -046
          -047    /**
          -048     * Get the switchable webcam object to use with your pipeline
          -049     *
          -050     * @return the OpenCvSwitchableWebcam object
          -051     */
          -052    @Override
          -053    public OpenCvSwitchableWebcam createCamera() {
          -054        return OpenCvCameraFactory
          -055            .getInstance()
          -056            .createSwitchableWebcam(
          -057                hardwareMap.appContext
          -058                    .getResources()
          -059                    .getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName()),
          -060                getDevice().get()
          -061            );
          -062    }
          -063
          -064    /**
          -065     * Set the active camera (and return it!)
          -066     *
          -067     * @param w the Webcam object that was included in the constructor
          -068     * @return the SwitchableWebcam object for the 'w' device
          -069     */
          -070    public SwitchableWebcam setActiveCamera(Webcam w) {
          -071        return setActiveCamera(w.getDevice());
          -072    }
          -073
          -074    /**
          -075     * Set the active camera (and return it!)
          -076     *
          -077     * @param device the WebcamName device that was included in the constructor (TODO!)
          -078     * @return the SwitchableWebcam object for the 'w' device
          -079     */
          -080    public SwitchableWebcam setActiveCamera(WebcamName device) {
          -081        openCvCamera.setActiveCamera(device);
          -082        return this;
          -083    }
          -084
          -085    /**
          -086     * Set the active camera (and return it!)
          -087     *
          -088     * @param device the Webcam name that was included in the constructor
          -089     * @return the SwitchableWebcam object for the 'w' device
          -090     */
          -091    public SwitchableWebcam setActiveCamera(String device) {
          -092        return setActiveCamera(hardwareMap.get(WebcamName.class, device));
          -093    }
          -094
          -095    /**
          -096     * Get the currently selected camera
          -097     *
          -098     * @return The active camera: MAY BE NULL!
          -099     */
          -100    public Webcam getActiveCamera() {
          -101        for (Webcam c : devices) {
          -102            if (c.openCvCamera == openCvCamera) {
          -103                return c;
          -104            }
          -105        }
          -106        return null;
          -107    }
          -108}
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          - - diff --git a/docs/Vision/src-html/com/technototes/vision/hardware/Webcam.html b/docs/Vision/src-html/com/technototes/vision/hardware/Webcam.html deleted file mode 100644 index b273b9f9..00000000 --- a/docs/Vision/src-html/com/technototes/vision/hardware/Webcam.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
          -
          -
          001package com.technototes.vision.hardware;
          -002
          -003import org.firstinspires.ftc.robotcore.external.hardware.camera.WebcamName;
          -004import org.openftc.easyopencv.OpenCvCameraFactory;
          -005import org.openftc.easyopencv.OpenCvWebcam;
          -006
          -007/**
          -008 * Acquire webcamera is just a quit constructor away :)
          -009 */
          -010public class Webcam extends Camera<OpenCvWebcam, WebcamName> {
          -011
          -012    /**
          -013     * TODO: I'm not sure where WebcamName comes from. I should read up.
          -014     *
          -015     * @param device The WebcamName for the camera?
          -016     */
          -017    public Webcam(WebcamName device) {
          -018        super(device);
          -019    }
          -020
          -021    /**
          -022     * Create a webcam device configured on the device with the given name
          -023     *
          -024     * @param device The name of the device as configured in "Robot Configuration"
          -025     */
          -026    public Webcam(String device) {
          -027        super(device);
          -028    }
          -029
          -030    /**
          -031     * Create an OpenCvWebcam, which can then be used in your vision pipeline
          -032     *
          -033     * @return The OpenCvWebcam to use
          -034     */
          -035    @Override
          -036    public OpenCvWebcam createCamera() {
          -037        return OpenCvCameraFactory
          -038            .getInstance()
          -039            .createWebcam(
          -040                getDevice(),
          -041                hardwareMap.appContext
          -042                    .getResources()
          -043                    .getIdentifier("cameraMonitorViewId", "id", hardwareMap.appContext.getPackageName())
          -044            );
          -045    }
          -046}
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          - - diff --git a/docs/Vision/src-html/com/technototes/vision/subsystem/PipelineSubsystem.html b/docs/Vision/src-html/com/technototes/vision/subsystem/PipelineSubsystem.html deleted file mode 100644 index d172c53b..00000000 --- a/docs/Vision/src-html/com/technototes/vision/subsystem/PipelineSubsystem.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -Source code - - - - - - -
          -
          -
          001package com.technototes.vision.subsystem;
          -002
          -003import com.technototes.library.subsystem.Subsystem;
          -004import com.technototes.vision.hardware.Camera;
          -005import org.openftc.easyopencv.OpenCvCameraRotation;
          -006
          -007/**
          -008 * A vision streaming pipeline to enable vision processing during an opmode
          -009 */
          -010@SuppressWarnings("unused")
          -011public class PipelineSubsystem implements Subsystem {
          -012
          -013    /**
          -014     * The Camera object this subsystem is processing frames from
          -015     */
          -016    protected Camera camera;
          -017
          -018    /**
          -019     * Create the subsystem with the Camera provided
          -020     *
          -021     * @param c The camera to process frames from
          -022     */
          -023    public PipelineSubsystem(Camera c) {
          -024        camera = c;
          -025    }
          -026
          -027    /**
          -028     * Get the Camera device that frames are being processed from
          -029     *
          -030     * @return the Camera device in use
          -031     */
          -032    public Camera getDevice() {
          -033        return camera;
          -034    }
          -035
          -036    /**
          -037     * This begins streaming frames from the camera
          -038     *
          -039     * @param width  The width of the frame (constrained to a specific range, based on the camera device)
          -040     * @param height The height of the frame (constrained based on the camera device)
          -041     * @return this PipelineSubsystem (for chaining, I guess?)
          -042     */
          -043    public PipelineSubsystem startStreaming(int width, int height) {
          -044        camera.startStreaming(width, height);
          -045        return this;
          -046    }
          -047
          -048    /**
          -049     * This begins streaming frames from the camera
          -050     *
          -051     * @param width    The width of the frame (constrained to a specific range, based on the camera device)
          -052     * @param height   The height of the frame (consrained based on the camera device)
          -053     * @param rotation The rotation of the frame to acquire
          -054     * @return this PipelineSubsystem (for chaining, I guess?)
          -055     */
          -056    public PipelineSubsystem startStreaming(int width, int height, OpenCvCameraRotation rotation) {
          -057        camera.startStreaming(width, height, rotation);
          -058        return this;
          -059    }
          -060
          -061    /**
          -062     * Stop frame processing
          -063     *
          -064     * @return this PipelineSubsystem (for chaining)
          -065     */
          -066    public PipelineSubsystem stopStreaming() {
          -067        camera.stopStreaming();
          -068        return this;
          -069    }
          -070}
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          -
          - - diff --git a/docs/Vision/stylesheet.css b/docs/Vision/stylesheet.css deleted file mode 100644 index 236a306f..00000000 --- a/docs/Vision/stylesheet.css +++ /dev/null @@ -1,951 +0,0 @@ -/* - * Javadoc style sheet - */ - -@import url('resources/fonts/dejavu.css'); - -/* - * Styles for individual HTML elements. - * - * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular - * HTML element throughout the page. - */ - -body { - background-color: #ffffff; - color: #353833; - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; - margin: 0; - padding: 0; - height: 100%; - width: 100%; -} -iframe { - margin: 0; - padding: 0; - height: 100%; - width: 100%; - overflow-y: scroll; - border: none; -} -a:link, -a:visited { - text-decoration: none; - color: #4a6782; -} -a[href]:hover, -a[href]:focus { - text-decoration: none; - color: #bb7a2a; -} -a[name] { - color: #353833; -} -pre { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; -} -h1 { - font-size: 20px; -} -h2 { - font-size: 18px; -} -h3 { - font-size: 16px; -} -h4 { - font-size: 15px; -} -h5 { - font-size: 14px; -} -h6 { - font-size: 13px; -} -ul { - list-style-type: disc; -} -code, -tt { - font-family: 'DejaVu Sans Mono', monospace; -} -:not(h1, h2, h3, h4, h5, h6) > code, -:not(h1, h2, h3, h4, h5, h6) > tt { - font-size: 14px; - padding-top: 4px; - margin-top: 8px; - line-height: 1.4em; -} -dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - padding-top: 4px; -} -.summary-table dt code { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - vertical-align: top; - padding-top: 4px; -} -sup { - font-size: 8px; -} -button { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 14px; -} -/* - * Styles for HTML generated by javadoc. - * - * These are style classes that are used by the standard doclet to generate HTML documentation. - */ - -/* - * Styles for document title and copyright. - */ -.clear { - clear: both; - height: 0; - overflow: hidden; -} -.about-language { - float: right; - padding: 0 21px 8px 8px; - font-size: 11px; - margin-top: -9px; - height: 2.9em; -} -.legal-copy { - margin-left: 0.5em; -} -.tab { - background-color: #0066ff; - color: #ffffff; - padding: 8px; - width: 5em; - font-weight: bold; -} -/* - * Styles for navigation bar. - */ -@media screen { - .flex-box { - position: fixed; - display: flex; - flex-direction: column; - height: 100%; - width: 100%; - } - .flex-header { - flex: 0 0 auto; - } - .flex-content { - flex: 1 1 auto; - overflow-y: auto; - } -} -.top-nav { - background-color: #4d7a97; - color: #ffffff; - float: left; - padding: 0; - width: 100%; - clear: right; - min-height: 2.8em; - padding-top: 10px; - overflow: hidden; - font-size: 12px; -} -.sub-nav { - background-color: #dee3e9; - float: left; - width: 100%; - overflow: hidden; - font-size: 12px; -} -.sub-nav div { - clear: left; - float: left; - padding: 0 0 5px 6px; - text-transform: uppercase; -} -.sub-nav .nav-list { - padding-top: 5px; -} -ul.nav-list { - display: block; - margin: 0 25px 0 0; - padding: 0; -} -ul.sub-nav-list { - float: left; - margin: 0 25px 0 0; - padding: 0; -} -ul.nav-list li { - list-style: none; - float: left; - padding: 5px 6px; - text-transform: uppercase; -} -.sub-nav .nav-list-search { - float: right; - margin: 0 0 0 0; - padding: 5px 6px; - clear: none; -} -.nav-list-search label { - position: relative; - right: -16px; -} -ul.sub-nav-list li { - list-style: none; - float: left; - padding-top: 10px; -} -.top-nav a:link, -.top-nav a:active, -.top-nav a:visited { - color: #ffffff; - text-decoration: none; - text-transform: uppercase; -} -.top-nav a:hover { - text-decoration: none; - color: #bb7a2a; - text-transform: uppercase; -} -.nav-bar-cell1-rev { - background-color: #f8981d; - color: #253441; - margin: auto 5px; -} -.skip-nav { - position: absolute; - top: auto; - left: -9999px; - overflow: hidden; -} -/* - * Hide navigation links and search box in print layout - */ -@media print { - ul.nav-list, - div.sub-nav { - display: none; - } -} -/* - * Styles for page header and footer. - */ -.title { - color: #2c4557; - margin: 10px 0; -} -.sub-title { - margin: 5px 0 0 0; -} -.header ul { - margin: 0 0 15px 0; - padding: 0; -} -.header ul li, -.footer ul li { - list-style: none; - font-size: 13px; -} -/* - * Styles for headings. - */ -body.class-declaration-page .summary h2, -body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding: 0; - margin: 15px 0; -} -body.class-declaration-page .summary h3, -body.class-declaration-page .details h3, -body.class-declaration-page .summary .inherited-list h2 { - background-color: #dee3e9; - border: 1px solid #d0d9e0; - margin: 0 0 6px -8px; - padding: 7px 5px; -} -/* - * Styles for page layout containers. - */ -main { - clear: both; - padding: 10px 20px; - position: relative; -} -dl.notes > dt { - font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: bold; - margin: 10px 0 0 0; - color: #4e4e4e; -} -dl.notes > dd { - margin: 5px 10px 10px 0; - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; -} -dl.name-value > dt { - margin-left: 1px; - font-size: 1.1em; - display: inline; - font-weight: bold; -} -dl.name-value > dd { - margin: 0 0 0 1px; - font-size: 1.1em; - display: inline; -} -/* - * Styles for lists. - */ -li.circle { - list-style: circle; -} -ul.horizontal li { - display: inline; - font-size: 0.9em; -} -div.inheritance { - margin: 0; - padding: 0; -} -div.inheritance div.inheritance { - margin-left: 2em; -} -ul.block-list, -ul.details-list, -ul.member-list, -ul.summary-list { - margin: 10px 0 10px 0; - padding: 0; -} -ul.block-list > li, -ul.details-list > li, -ul.member-list > li, -ul.summary-list > li { - list-style: none; - margin-bottom: 15px; - line-height: 1.4; -} -.summary-table dl, -.summary-table dl dt, -.summary-table dl dd { - margin-top: 0; - margin-bottom: 1px; -} -ul.see-list, -ul.see-list-long { - padding-left: 0; - list-style: none; -} -ul.see-list li { - display: inline; -} -ul.see-list li:not(:last-child):after, -ul.see-list-long li:not(:last-child):after { - content: ', '; - white-space: pre-wrap; -} -/* - * Styles for tables. - */ -.summary-table, -.details-table { - width: 100%; - border-spacing: 0; - border-left: 1px solid #eee; - border-right: 1px solid #eee; - border-bottom: 1px solid #eee; - padding: 0; -} -.caption { - position: relative; - text-align: left; - background-repeat: no-repeat; - color: #253441; - font-weight: bold; - clear: none; - overflow: hidden; - padding: 0; - padding-top: 10px; - padding-left: 1px; - margin: 0; - white-space: pre; -} -.caption a:link, -.caption a:visited { - color: #1f389c; -} -.caption a:hover, -.caption a:active { - color: #ffffff; -} -.caption span { - white-space: nowrap; - padding-top: 5px; - padding-left: 12px; - padding-right: 12px; - padding-bottom: 7px; - display: inline-block; - float: left; - background-color: #f8981d; - border: none; - height: 16px; -} -div.table-tabs { - padding: 10px 0 0 1px; - margin: 0; -} -div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; -} -div.table-tabs > button.active-table-tab { - background: #f8981d; - color: #253441; -} -div.table-tabs > button.table-tab { - background: #4d7a97; - color: #ffffff; -} -.two-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); -} -.three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); -} -.four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax( - 10%, - auto - ); -} -@media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } -} -@media screen and (max-width: 800px) { - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-summary .col-last { - grid-column-end: span 2; - } -} -@media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -.summary-table > div, -.details-table > div { - text-align: left; - padding: 8px 3px 3px 7px; -} -.col-first, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name { - vertical-align: top; - padding-right: 0; - padding-top: 8px; - padding-bottom: 3px; -} -.table-header { - background: #dee3e9; - font-weight: bold; -} -.col-first, -.col-first { - font-size: 13px; -} -.col-second, -.col-second, -.col-last, -.col-constructor-name, -.col-summary-item-name, -.col-last { - font-size: 13px; -} -.col-first, -.col-second, -.col-constructor-name { - vertical-align: top; - overflow: auto; -} -.col-last { - white-space: normal; -} -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-first a:link, -.col-first a:visited, -.col-second a:link, -.col-second a:visited, -.col-constructor-name a:link, -.col-constructor-name a:visited, -.col-summary-item-name a:link, -.col-summary-item-name a:visited, -.constant-values-container a:link, -.constant-values-container a:visited, -.all-classes-container a:link, -.all-classes-container a:visited, -.all-packages-container a:link, -.all-packages-container a:visited { - font-weight: bold; -} -.table-sub-heading-color { - background-color: #eeeeff; -} -.even-row-color, -.even-row-color .table-header { - background-color: #ffffff; -} -.odd-row-color, -.odd-row-color .table-header { - background-color: #eeeeef; -} -/* - * Styles for contents. - */ -.deprecated-content { - margin: 0; - padding: 10px 0; -} -div.block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; -} -.col-last div { - padding-top: 0; -} -.col-last a { - padding-bottom: 3px; -} -.module-signature, -.package-signature, -.type-signature, -.member-signature { - font-family: 'DejaVu Sans Mono', monospace; - font-size: 14px; - margin: 14px 0; - white-space: pre-wrap; -} -.module-signature, -.package-signature, -.type-signature { - margin-top: 0; -} -.member-signature .type-parameters-long, -.member-signature .parameters, -.member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; -} -.member-signature .type-parameters { - white-space: normal; -} -/* - * Styles for formatting effect. - */ -.source-line-no { - color: green; - padding: 0 30px 0 0; -} -h1.hidden { - visibility: hidden; - overflow: hidden; - font-size: 10px; -} -.block { - display: block; - margin: 0 10px 5px 0; - color: #474747; -} -.deprecated-label, -.descfrm-type-label, -.implementation-label, -.member-name-label, -.member-name-link, -.module-label-in-package, -.module-label-in-type, -.override-specify-label, -.package-label-in-type, -.package-hierarchy-label, -.type-name-label, -.type-name-link, -.search-tag-link, -.preview-label { - font-weight: bold; -} -.deprecation-comment, -.help-footnote, -.preview-comment { - font-style: italic; -} -.deprecation-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; -} -.preview-block { - font-size: 14px; - font-family: 'DejaVu Serif', Georgia, 'Times New Roman', Times, serif; - border-style: solid; - border-width: thin; - border-radius: 10px; - padding: 10px; - margin-bottom: 10px; - margin-right: 10px; - display: inline-block; -} -div.block div.deprecation-comment { - font-style: normal; -} -/* - * Styles specific to HTML5 elements. - */ -main, -nav, -header, -footer, -section { - display: block; -} -/* - * Styles for javadoc search. - */ -.ui-autocomplete-category { - font-weight: bold; - font-size: 15px; - padding: 7px 0 7px 3px; - background-color: #4d7a97; - color: #ffffff; -} -.result-item { - font-size: 13px; -} -.ui-autocomplete { - max-height: 85%; - max-width: 65%; - overflow-y: scroll; - overflow-x: scroll; - white-space: nowrap; - box-shadow: - 0 3px 6px rgba(0, 0, 0, 0.16), - 0 3px 6px rgba(0, 0, 0, 0.23); -} -ul.ui-autocomplete { - position: fixed; - z-index: 999999; - background-color: #ffffff; -} -ul.ui-autocomplete li { - float: left; - clear: both; - width: 100%; -} -.result-highlight { - font-weight: bold; -} -.ui-autocomplete .result-item { - font-size: inherit; -} -#search-input { - background-image: url('resources/glass.png'); - background-size: 13px; - background-repeat: no-repeat; - background-position: 2px 3px; - padding-left: 20px; - position: relative; - right: -18px; - width: 400px; -} -#reset-button { - background-color: rgb(255, 255, 255); - background-image: url('resources/x.png'); - background-position: center; - background-repeat: no-repeat; - background-size: 12px; - border: 0 none; - width: 16px; - height: 16px; - position: relative; - left: -4px; - top: -4px; - font-size: 0px; -} -.watermark { - color: #545454; -} -.search-tag-desc-result { - font-style: italic; - font-size: 11px; -} -.search-tag-holder-result { - font-style: italic; - font-size: 12px; -} -.search-tag-result:target { - background-color: yellow; -} -.module-graph span { - display: none; - position: absolute; -} -.module-graph:hover span { - display: block; - margin: -100px 0 0 100px; - z-index: 1; -} -.inherited-list { - margin: 10px 0 10px 0; -} -section.class-description { - line-height: 1.4; -} -.summary section[class$='-summary'], -.details section[class$='-details'], -.class-uses .detail, -.serialized-class-details { - padding: 0px 20px 5px 10px; - border: 1px solid #ededed; - background-color: #f8f8f8; -} -.inherited-list, -section[class$='-details'] .detail { - padding: 0 0 5px 8px; - background-color: #ffffff; - border: none; -} -.vertical-separator { - padding: 0 5px; -} -ul.help-section-list { - margin: 0; -} -ul.help-subtoc > li { - display: inline-block; - padding-right: 5px; - font-size: smaller; -} -ul.help-subtoc > li::before { - content: '\2022'; - padding-right: 2px; -} -span.help-note { - font-style: italic; -} -/* - * Indicator icon for external links. - */ -main a[href*="://"]::after -{ - content: ''; - display: inline-block; - background-image: url('data:image/svg+xml; utf8, \ - \ - \ - '); - background-size: 100% 100%; - width: 7px; - height: 7px; - margin-left: 2px; - margin-bottom: 4px; -} -main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after -{ - background-image: url('data:image/svg+xml; utf8, \ - \ - \ - '); -} - -/* - * Styles for user-provided tables. - * - * borderless: - * No borders, vertical margins, styled caption. - * This style is provided for use with existing doc comments. - * In general, borderless tables should not be used for layout purposes. - * - * plain: - * Plain borders around table and cells, vertical margins, styled caption. - * Best for small tables or for complex tables for tables with cells that span - * rows and columns, when the "striped" style does not work well. - * - * striped: - * Borders around the table and vertical borders between cells, striped rows, - * vertical margins, styled caption. - * Best for tables that have a header row, and a body containing a series of simple rows. - */ - -table.borderless, -table.plain, -table.striped { - margin-top: 10px; - margin-bottom: 10px; -} -table.borderless > caption, -table.plain > caption, -table.striped > caption { - font-weight: bold; - font-size: smaller; -} -table.borderless th, -table.borderless td, -table.plain th, -table.plain td, -table.striped th, -table.striped td { - padding: 2px 5px; -} -table.borderless, -table.borderless > thead > tr > th, -table.borderless > tbody > tr > th, -table.borderless > tr > th, -table.borderless > thead > tr > td, -table.borderless > tbody > tr > td, -table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, -table.borderless > tbody > tr, -table.borderless > tr { - background-color: transparent; -} -table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, -table.plain > tbody tr, -table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, -table.plain > tbody > tr > th, -table.plain > tr > th, -table.plain > thead > tr > td, -table.plain > tbody > tr > td, -table.plain > tr > td { - border: 1px solid black; -} -table.striped { - border-collapse: collapse; - border: 1px solid black; -} -table.striped > thead { - background-color: #e3e3e3; -} -table.striped > thead > tr > th, -table.striped > thead > tr > td { - border: 1px solid black; -} -table.striped > tbody > tr:nth-child(even) { - background-color: #eee; -} -table.striped > tbody > tr:nth-child(odd) { - background-color: #fff; -} -table.striped > tbody > tr > th, -table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; -} -table.striped > tbody > tr > th { - font-weight: normal; -} -/** - * Tweak font sizes and paddings for small screens. - */ -@media screen and (max-width: 1050px) { - #search-input { - width: 300px; - } -} -@media screen and (max-width: 800px) { - #search-input { - width: 200px; - } - .top-nav, - .bottom-nav { - font-size: 11px; - padding-top: 6px; - } - .sub-nav { - font-size: 11px; - } - .about-language { - padding-right: 16px; - } - ul.nav-list li, - .sub-nav .nav-list-search { - padding: 6px; - } - ul.sub-nav-list li { - padding-top: 5px; - } - main { - padding: 10px; - } - .summary section[class$='-summary'], - .details section[class$='-details'], - .class-uses .detail, - .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } -} -@media screen and (max-width: 500px) { - #search-input { - width: 150px; - } - .top-nav, - .bottom-nav { - font-size: 10px; - } - .sub-nav { - font-size: 10px; - } - .about-language { - font-size: 10px; - padding-right: 12px; - } -} diff --git a/docs/Vision/tag-search-index.js b/docs/Vision/tag-search-index.js deleted file mode 100644 index 8f19e1f9..00000000 --- a/docs/Vision/tag-search-index.js +++ /dev/null @@ -1,2 +0,0 @@ -tagSearchIndex = []; -updateSearchResults(); diff --git a/docs/Vision/type-search-index.js b/docs/Vision/type-search-index.js deleted file mode 100644 index 7b85e10a..00000000 --- a/docs/Vision/type-search-index.js +++ /dev/null @@ -1,9 +0,0 @@ -typeSearchIndex = [ - { l: 'All Classes and Interfaces', u: 'allclasses-index.html' }, - { p: 'com.technototes.vision.hardware', l: 'Camera' }, - { p: 'com.technototes.vision.hardware', l: 'InternalCamera' }, - { p: 'com.technototes.vision.subsystem', l: 'PipelineSubsystem' }, - { p: 'com.technototes.vision.hardware', l: 'SwitchableWebcam' }, - { p: 'com.technototes.vision.hardware', l: 'Webcam' }, -]; -updateSearchResults(); diff --git a/package.json b/package.json index d68dbeff..8d83ff2d 100644 --- a/package.json +++ b/package.json @@ -7,26 +7,20 @@ "author": "Kevin Frei ", "license": "MIT", "scripts": { - "build": "run-script-os", - "build:win32": ".\\gradlew build", - "build:default": "./gradlew build", - "fulldoc": "yarn run doc && yarn run fmtdoc", - "docs": "yarn run doc", - "doc": "run-script-os", - "doc:win32": ".\\gradlew javadoc", - "doc:default": "./gradlew javadoc", - "fmtdoc": "prettier --write docs/**/*.js docs/**/*.html docs/**/*.css **/*.md", - "fmtpath": "prettier --write Path/**/*.java", - "fmtvis": "prettier --write Vision/**/*.java", - "fmtrbt": "prettier --write RobotLibrary/**/*.java", - "fmtsrc": "prettier --write Path/**/*.java Vision/**/*.java RobotLibrary/**/*.java", - "fmtmisc": "prettier --write *.json *.md .prettierrc", - "format": "yarn run fmtdoc && yarn run fmtsrc && yarn run fmtmisc" + "build": "bun run gradle build", + "fulldoc": "bun run doc && bun run format", + "docs": "bun run gradle javadoc", + "doc": "bun run gradle javadoc", + "format": "tools format bun", + "gradle": "bun run os gradle", + "gradle:win": ".\\\\gradlew", + "gradle:def": "./gradlew", + "os": "bun run scripts/os.ts" }, "devDependencies": { - "prettier": "3.3.2", - "prettier-plugin-java": "2.6.0", - "run-script-os": "1.1.6" + "@freik/workspace": "^0.6.4", + "prettier": "3.3.3", + "prettier-plugin-java": "2.6.4" }, - "packageManager": "yarn@4.3.0" + "packageManager": "bun@1.1.27" } diff --git a/scripts/os.ts b/scripts/os.ts new file mode 100644 index 00000000..0eb0751d --- /dev/null +++ b/scripts/os.ts @@ -0,0 +1,43 @@ +// This is a bun-specific replacement for the run-script-os NodeJS thing +// It takes a script, and invokes the "script:os" command +// if the script:win/mac/lin command doesn't exist, it falls back to the script:def command +import path from 'path'; +import fs from 'fs/promises'; +import os from 'os'; +import { chkObjectOf, hasFieldType, hasStrField, isString } from '@freik/typechk'; +import Bun from 'bun'; + +const osmap = new Map([ + ['win32', 'win'], + ['darwin', 'mac'], + ['linux', 'lin'], +]); + +async function main() { + // argv[1] is this script's name, so find the package.json file from there + const pkg = path.resolve(path.join(path.dirname(Bun.argv[1]), '..', 'package.json')); + const args = Bun.argv.slice(2); + const pkgj = JSON.parse(await fs.readFile(pkg, 'utf8')); + if (!hasFieldType(pkgj, 'scripts', chkObjectOf(isString))) { + throw new Error('No scripts field in package.json'); + } + const scriptName = args[0]; + const suffix = osmap.get(os.platform()) || 'def'; + const script = `${scriptName}:${suffix}`; + const scriptdef = `${scriptName}:def`; + const theScript = hasStrField(pkgj.scripts, script) + ? script + : hasStrField(pkgj.scripts, scriptdef) + ? scriptdef + : undefined; + if (!isString(theScript)) { + throw new Error(`No script found for ${scriptName} for ${os.platform()}`); + } + const cmds = args + .slice(1) + .map((v) => Bun.$.escape(v)) + .join(' '); + await Bun.$`bun run ${theScript} ${{ raw: cmds }}`; +} + +main().catch((err) => console.error(err)); diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 8b8c945a..00000000 --- a/yarn.lock +++ /dev/null @@ -1,147 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10c0 - -"@chevrotain/cst-dts-gen@npm:11.0.3": - version: 11.0.3 - resolution: "@chevrotain/cst-dts-gen@npm:11.0.3" - dependencies: - "@chevrotain/gast": "npm:11.0.3" - "@chevrotain/types": "npm:11.0.3" - lodash-es: "npm:4.17.21" - checksum: 10c0/9e945a0611386e4e08af34c2d0b3af36c1af08f726b58145f11310f2aeafcb2d65264c06ec65a32df6b6a65771e6a55be70580c853afe3ceb51487e506967104 - languageName: node - linkType: hard - -"@chevrotain/gast@npm:11.0.3": - version: 11.0.3 - resolution: "@chevrotain/gast@npm:11.0.3" - dependencies: - "@chevrotain/types": "npm:11.0.3" - lodash-es: "npm:4.17.21" - checksum: 10c0/54fc44d7b4a7b0323f49d957dd88ad44504922d30cb226d93b430b0e09925efe44e0726068581d777f423fabfb878a2238ed2c87b690c0c0014ebd12b6968354 - languageName: node - linkType: hard - -"@chevrotain/regexp-to-ast@npm:11.0.3": - version: 11.0.3 - resolution: "@chevrotain/regexp-to-ast@npm:11.0.3" - checksum: 10c0/6939c5c94fbfb8c559a4a37a283af5ded8e6147b184a7d7bcf5ad1404d9d663c78d81602bd8ea8458ec497358a9e1671541099c511835d0be2cad46f00c62b3f - languageName: node - linkType: hard - -"@chevrotain/types@npm:11.0.3": - version: 11.0.3 - resolution: "@chevrotain/types@npm:11.0.3" - checksum: 10c0/72fe8f0010ebef848e47faea14a88c6fdc3cdbafaef6b13df4a18c7d33249b1b675e37b05cb90a421700c7016dae7cd4187ab6b549e176a81cea434f69cd2503 - languageName: node - linkType: hard - -"@chevrotain/utils@npm:11.0.3": - version: 11.0.3 - resolution: "@chevrotain/utils@npm:11.0.3" - checksum: 10c0/b31972d1b2d444eef1499cf9b7576fc1793e8544910de33a3c18e07c270cfad88067f175d0ee63e7bc604713ebed647f8190db45cc8311852cd2d4fe2ef14068 - languageName: node - linkType: hard - -"chevrotain-allstar@npm:0.3.1": - version: 0.3.1 - resolution: "chevrotain-allstar@npm:0.3.1" - dependencies: - lodash-es: "npm:^4.17.21" - peerDependencies: - chevrotain: ^11.0.0 - checksum: 10c0/5cadedffd3114eb06b15fd3939bb1aa6c75412dbd737fe302b52c5c24334f9cb01cee8edc1d1067d98ba80dddf971f1d0e94b387de51423fc6cf3c5d8b7ef27a - languageName: node - linkType: hard - -"chevrotain@npm:11.0.3": - version: 11.0.3 - resolution: "chevrotain@npm:11.0.3" - dependencies: - "@chevrotain/cst-dts-gen": "npm:11.0.3" - "@chevrotain/gast": "npm:11.0.3" - "@chevrotain/regexp-to-ast": "npm:11.0.3" - "@chevrotain/types": "npm:11.0.3" - "@chevrotain/utils": "npm:11.0.3" - lodash-es: "npm:4.17.21" - checksum: 10c0/ffd425fa321e3f17e9833d7f44cd39f2743f066e92ca74b226176080ca5d455f853fe9091cdfd86354bd899d85c08b3bdc3f55b267e7d07124b048a88349765f - languageName: node - linkType: hard - -"java-parser@npm:2.3.0": - version: 2.3.0 - resolution: "java-parser@npm:2.3.0" - dependencies: - chevrotain: "npm:11.0.3" - chevrotain-allstar: "npm:0.3.1" - lodash: "npm:4.17.21" - checksum: 10c0/2b2760c68c48d0f23ba6c31c87e2ed4f9f6dece9cf021edd9a22b62b34fd0bb234437b8e05c0be44dc94601211e71399e029230c4c80b0713169dc0fa3954e0b - languageName: node - linkType: hard - -"lodash-es@npm:4.17.21, lodash-es@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash-es@npm:4.17.21" - checksum: 10c0/fb407355f7e6cd523a9383e76e6b455321f0f153a6c9625e21a8827d10c54c2a2341bd2ae8d034358b60e07325e1330c14c224ff582d04612a46a4f0479ff2f2 - languageName: node - linkType: hard - -"lodash@npm:4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c - languageName: node - linkType: hard - -"prettier-plugin-java@npm:2.6.0": - version: 2.6.0 - resolution: "prettier-plugin-java@npm:2.6.0" - dependencies: - java-parser: "npm:2.3.0" - lodash: "npm:4.17.21" - prettier: "npm:3.2.5" - checksum: 10c0/8fedc935239b06cf27eb8c1cb91262ae754363ed424ad90fa14e725f5079618bb6c0eb6002147393a871a3f4595c32135fcf418c692a939fdaaa75a6ab497c49 - languageName: node - linkType: hard - -"prettier@npm:3.2.5": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/ea327f37a7d46f2324a34ad35292af2ad4c4c3c3355da07313339d7e554320f66f65f91e856add8530157a733c6c4a897dc41b577056be5c24c40f739f5ee8c6 - languageName: node - linkType: hard - -"prettier@npm:3.3.2": - version: 3.3.2 - resolution: "prettier@npm:3.3.2" - bin: - prettier: bin/prettier.cjs - checksum: 10c0/39ed27d17f0238da6dd6571d63026566bd790d3d0edac57c285fbab525982060c8f1e01955fe38134ab10f0951a6076da37f015db8173c02f14bc7f0803a384c - languageName: node - linkType: hard - -"run-script-os@npm:1.1.6": - version: 1.1.6 - resolution: "run-script-os@npm:1.1.6" - bin: - run-os: index.js - run-script-os: index.js - checksum: 10c0/620e240a650c666bb8e3f5437680d88c522366e6c68d4867300caf6cad010c85ff36a016de2c71010debaf10e968966b2c6aaa8816bab8298381e5620d41d8aa - languageName: node - linkType: hard - -"technolib@workspace:.": - version: 0.0.0-use.local - resolution: "technolib@workspace:." - dependencies: - prettier: "npm:3.3.2" - prettier-plugin-java: "npm:2.6.0" - run-script-os: "npm:1.1.6" - languageName: unknown - linkType: soft From 34eb70bc3ab4aa43099137aa69ae35f5550fc354 Mon Sep 17 00:00:00 2001 From: Kevin Frei Date: Sun, 8 Sep 2024 20:35:08 -0700 Subject: [PATCH 47/47] Bun-ification --- bun.lockb | Bin 16214 -> 16214 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bun.lockb b/bun.lockb index 5385ee71a48df10891133ed94f13add7a830afb2..95520927a85747d16f231fe77144ebad816d8054 100644 GIT binary patch delta 20 bcmcascdc$ir8YZboPnO1p2_A0?Q6mSS=k4m delta 20 Ycmcascdc$ir8YYg0~l;>(7q-N08TRoO#lD@