Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dashboard #17

Open
wants to merge 18 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 9 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
7 changes: 7 additions & 0 deletions .Glass/glass.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"NetworkTables": {
"transitory": {
"Faults": {
"open": true
},
"Robot": {
"drive": {
"frontRight": {
Expand Down Expand Up @@ -49,6 +52,7 @@
"/Robot/drive/rearRight/turnFeedback": "PIDController",
"/Robot/drive/rotationController": "PIDController",
"/Robot/drive/translationController": "ProfiledPIDController",
"/SmartDashboard/Alerts": "Alerts",
"/SmartDashboard/Scheduler": "Scheduler",
"/SmartDashboard/VisionSystemSim-main/Sim Field": "Field2d",
"/SmartDashboard/drive dynamic backward": "Command",
Expand All @@ -70,6 +74,9 @@
}
},
"NetworkTables Info": {
"Clients": {
"open": true
},
"visible": true
},
"NetworkTables Settings": {
Expand Down
14 changes: 7 additions & 7 deletions simgui.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@
"open": false
},
"transitory": {
"Dashboard": {
"open": true
},
"Robot": {
"drive": {
"Pose2d##v_/Robot/drive/getPose": {
Expand Down Expand Up @@ -180,16 +183,13 @@
"vision": {
"open": true
}
},
"Shuffleboard": {
"open": true
},
"SmartDashboard": {
"open": true
}
}
},
"NetworkTables Info": {
"Clients": {
"open": true
},
"visible": true
},
"Plot": {
Expand All @@ -202,7 +202,7 @@
0.0,
0.8500000238418579
],
"height": 405,
"height": 140,
"series": [
{
"color": [
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/sciborgs1155/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.sciborgs1155.lib.Test;
import org.sciborgs1155.robot.Ports.OI;
import org.sciborgs1155.robot.commands.Autos;
import org.sciborgs1155.robot.commands.Dashboard;
import org.sciborgs1155.robot.drive.Drive;
import org.sciborgs1155.robot.elevator.Elevator;
import org.sciborgs1155.robot.led.LEDStrip;
Expand All @@ -47,6 +48,7 @@ public class Robot extends CommandRobot implements Logged {
// INPUT DEVICES
private final CommandXboxController operator = new CommandXboxController(OI.OPERATOR);
private final CommandXboxController driver = new CommandXboxController(OI.DRIVER);
private final Dashboard dashboard = new Dashboard();

private final PowerDistribution pdh = new PowerDistribution();

Expand Down Expand Up @@ -153,6 +155,8 @@ private void configureBindings() {
.onFalse(Commands.runOnce(() -> speedMultiplier = Constants.FULL_SPEED_MULTIPLIER));

// TODO: Add any additional bindings.

dashboard.a().whileTrue(led.rainbow());
}

/**
Expand Down
118 changes: 118 additions & 0 deletions src/main/java/org/sciborgs1155/robot/commands/Dashboard.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
package org.sciborgs1155.robot.commands;

import edu.wpi.first.networktables.NetworkTable;
import edu.wpi.first.networktables.NetworkTableEntry;
import edu.wpi.first.networktables.NetworkTableInstance;
import edu.wpi.first.wpilibj.DriverStation.Alliance;
import edu.wpi.first.wpilibj2.command.button.Trigger;
import org.sciborgs1155.robot.Constants;

/**
* Dashboard listens to NetworkTable information from the Reefscape-2025-Dashboard, which can be
* used as Triggers.
*/
public class Dashboard {
private final NetworkTable base;
private final NetworkTableEntry entryTargetBranch;
private final NetworkTableEntry entryTargetLevel;
private final NetworkTableEntry entryRobotConnected;
private final NetworkTableEntry entryBlueAlliance;

/** Creates a Dashboard object. */
public Dashboard() {
// setup NetworkTables
base = NetworkTableInstance.getDefault().getTable("Dashboard");
entryTargetBranch = base.getEntry("branch");
entryTargetBranch.setString("");
entryTargetLevel = base.getEntry("level");
entryTargetLevel.setInteger(0);
entryRobotConnected = base.getEntry("robotConnected");
entryRobotConnected.setBoolean(true);
entryBlueAlliance = base.getEntry("blueAlliance");
entryBlueAlliance.setBoolean(Constants.alliance() == Alliance.Blue);
}

/**
* Returns a Trigger, given a reef branch.
*
* @param branch the branch for the trigger (A-L)
* @return a Trigger for that branch
*/
private Trigger setTriggerBranch(String branch) {
return new Trigger(() -> (branch.equals(entryTargetBranch.getString(""))));
}

/**
* Returns a Trigger, given a reef branch level.
*
* @param level the level for the trigger (1-4)
* @return a Trigger for that level
*/
private Trigger setTriggerLevel(int level) {
return new Trigger(() -> (level == entryTargetLevel.getInteger(0)));
}

public Trigger a() {
return setTriggerBranch("A");
}

public Trigger b() {
return setTriggerBranch("B");
}

public Trigger c() {
return setTriggerBranch("C");
}

public Trigger d() {
return setTriggerBranch("D");
}

public Trigger e() {
return setTriggerBranch("E");
}

public Trigger f() {
return setTriggerBranch("F");
}

public Trigger g() {
return setTriggerBranch("G");
}

public Trigger h() {
return setTriggerBranch("H");
}

public Trigger i() {
return setTriggerBranch("I");
}

public Trigger j() {
return setTriggerBranch("J");
}

public Trigger k() {
return setTriggerBranch("K");
}

public Trigger l() {
return setTriggerBranch("L");
}

public Trigger level1() {
return setTriggerLevel(1);
}

public Trigger level2() {
return setTriggerLevel(2);
}

public Trigger level3() {
return setTriggerLevel(3);
}

public Trigger level4() {
return setTriggerLevel(4);
}
}
Loading