Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion bin/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
/com/
/org/
6 changes: 6 additions & 0 deletions src/org/team3309/lib/Tunable/ITunable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.team3309.lib.Tunable;

public interface ITunable {
public String getTableName();
public String getObjectName();
}
20 changes: 20 additions & 0 deletions src/org/team3309/lib/Tunable/TestTunable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.team3309.lib.Tunable;

public class TestTunable implements ITunable {

@Override
public String getTableName() { return "SmartDashboard"; }

@Override
public String getObjectName() { return "TestTunable"; }

@Tunable
public int foo = 10;

@Tunable(ReadOnly=true)
public int bar = 5;

@Tunable
public String baz = "bazybaz";

}
11 changes: 11 additions & 0 deletions src/org/team3309/lib/Tunable/Tunable.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package org.team3309.lib.Tunable;

import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Tunable {
public String Category() default "Uncategorized";
public String DisplayName() default "";
public boolean ReadOnly() default false;
}
83 changes: 83 additions & 0 deletions src/org/team3309/lib/Tunable/TunableHelper.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
package org.team3309.lib.Tunable;

import java.lang.reflect.Field;
import edu.wpi.first.wpilibj.networktables.*;
import edu.wpi.first.wpilibj.smartdashboard.SmartDashboard;

public class TunableHelper
{
public static void UpdateTunable(ITunable tunable)
{
Class<?> c = tunable.getClass();
Field[] fields = c.getFields();

// -- Network Table
String tableName = tunable.getTableName();
boolean useSmartDashboard = false;
NetworkTable table = null;
if (tableName == "SmartDashboard")
useSmartDashboard = true;
else
table = NetworkTable.getTable(tableName);

// -- Prefix
String prefix = "";
String objName = tunable.getObjectName();
if (objName != null)
prefix = objName + "_";

try
{
for (Field f : fields)
{
Tunable annon = f.getAnnotation(Tunable.class);
if (annon != null)
{
String dispName = annon.DisplayName();
boolean readOnly = annon.ReadOnly();
String name = prefix + (dispName != "" ? dispName : f.getName());

// ---------------------------------------------------------------
// -- Set the data

Class<?> ft = f.getType();
// -- Boolean
if (ft.isAssignableFrom(boolean.class))
{
boolean value = f.getBoolean(tunable);
if (useSmartDashboard)
value = SmartDashboard.getBoolean(name, value);
else
value = table.getBoolean(name, value);
if (!readOnly)
f.set(tunable, value);
}
// -- Number
else if (ft.isAssignableFrom(double.class))
{
double value = f.getDouble(tunable);
if (useSmartDashboard)
value = SmartDashboard.getNumber(name, value);
else
value = table.getNumber(name, value);
if (!readOnly)
f.set(tunable, value);
}
// -- String
else if(ft.isAssignableFrom(String.class))
{
String value = (String)f.get(tunable);
if (useSmartDashboard)
value = SmartDashboard.getString(name, value);
else
value = table.getString(name, value);
if (!readOnly)
f.set(tunable, value);
}
}
}
}
catch(IllegalAccessException ex){}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public class TurretLeftRightController extends Controller {

private boolean isGoingLeft = false;
private final double DEGREES_TO_SLOW_DOWN = 25;
private static final double TURRET_MAX_DEGREES = Turret.getInstance().getMaxDegrees();
private static final double TURRET_MAX_DEGREES = 0;
private static final double SLOW_SPEED = .2;
private static final double FAST_SPEED = .35;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public class TurretLeftRightVelocityCompensatedController extends FeedForwardWit

private boolean isGoingLeft = false;
private final double DEGREES_TO_SLOW_DOWN = 25;
private static final double TURRET_MAX_DEGREES = Turret.getInstance().getMaxDegrees();
private static final double TURRET_MAX_DEGREES = 0;
private static final double SLOW_VEL = .2;
private static final double FAST_VEL = .35;

Expand Down