summaryrefslogtreecommitdiff
path: root/src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java')
-rw-r--r--src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java b/src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java
index 7ae7441..00f520c 100644
--- a/src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java
+++ b/src/org/usfirst/frc/team4272/robotlib/DoubleSolenoid.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2015 Luke Shumaker.
+ * Copyright (c) 2015, 2017 Luke Shumaker.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,15 @@
package org.usfirst.frc.team4272.robotlib;
/**
- * TODO: Write JavaDocs
+ * DoubleSoleniod extends
+ * {@link edu.wpi.first.wpilibj.DoubleSolenoid wpilibj.DoubleSoleniod},
+ * adding the ability to disable it.
+ *
+ * Now, where things get useful is with enabling or disabling. If
+ * {@link #setEnabled(boolean) .setEnabled(false)}, then any calls to
+ * {@link #set(Value) .set()} will be remembered, but ignored until
+ * {@code .setEnabled(true)}. As long as {@code .setEnabled(false)},
+ * the actuated value will {@link Value.kOff}.
*/
public class DoubleSolenoid extends edu.wpi.first.wpilibj.DoubleSolenoid {
private boolean enabled = true;
@@ -44,6 +52,15 @@ public class DoubleSolenoid extends edu.wpi.first.wpilibj.DoubleSolenoid {
value = get();
}
+ /**
+ * Set whether the soleniod is enabled. If the solenoid is
+ * not enabled, then the actuated state is {@link Value.kOff}.
+ * If {@link #set(Value)} or similar is call while disabled,
+ * the set will be remembered, but not take effect until it is
+ * re-enabled.
+ *
+ * @param enabled Whether the soleniod is enabled.
+ */
public void setEnabled(boolean enabled) {
this.enabled = enabled;
if (enabled) {
@@ -53,10 +70,24 @@ public class DoubleSolenoid extends edu.wpi.first.wpilibj.DoubleSolenoid {
}
}
+ /**
+ * A convenience wrapper around {@link #set(Value) .set()}
+ * because {@link Value.kForward} and {@link Value.kReverse}
+ * are awkward to deal with.
+ *
+ * @param forward Whether to {@code .set(Value.kForward)} or {@code kBackward}.
+ */
public void setForward(boolean forward) {
set(forward ? Value.kForward : Value.kReverse);
}
+ /**
+ * Returns whether or not it is set to forward. If the
+ * solenoid is disabled, the return value is based on the
+ * remembered value that it will use upon being enabled.
+ *
+ * @return The current value of the solenoid.
+ */
public boolean getForward() {
return value == Value.kForward;
}