Log in

View Full Version : 1st Post! ZomB Dashboard Troubles


gizzerd91
06-02-2012, 22:04
Long time lurker, first time posting. Hello everybody!

I'm trying to create a simple slider in ZomB that will let me set the speed of our shooter for testing out the range/rpm ratio on our shooter. I set up a slider in Visual ZomB, named it "Shooter Speed", and then wrote in my teleopPeriodic() in Java
try {
shooterGoalSpeed = dashboard.getInt("Shooter Speed");
} catch (NetworkTableKeyNotDefined ex) {
ex.printStackTrace();
}
Trouble is, I keep getting the NetworkTableKeyNotDefined exception [cRIO]edu.wpi.first.wpilibj.networktables.NetworkTableKe yNotDefined
[cRIO] at edu.wpi.first.wpilibj.networktables.NetworkTable.g etInt(NetworkTable.java:522)
[cRIO] at edu.wpi.first.wpilibj.smartdashboard.SmartDashboar d.getInt(SmartDashboard.java:140)
[cRIO] at edu.wpi.first.wpilibj.templates.RobotTemplate.tele opPeriodic(RobotTemplate.java:147)
[cRIO] at edu.wpi.first.wpilibj.IterativeRobot.startCompetit ion(IterativeRobot.java:145)
[cRIO] at edu.wpi.first.wpilibj.RobotBase.startApp(RobotBase .java:156)
[cRIO] in virtual method #10 of javax.microedition.midlet.MIDlet(bci=17)
[cRIO] at javax.microedition.midlet.MIDletTunnelImpl.callSta rtApp(64)
[cRIO] at com.sun.squawk.imp.MIDletMainWrapper.main(110)
[cRIO] in virtual method #95 of com.sun.squawk.Klass(bci=25)
[cRIO] at com.sun.squawk.Isolate.run(1506)
[cRIO] at java.lang.Thread.run(231)
[cRIO] in virtual method #47 of com.sun.squawk.VMThread(bci=42)
[cRIO] in static method #3 of com.sun.squawk.VM(bci=6) I've tried all the different data types, and all sorts of different component names (without spaces, with numbers, etc), but nothing helps. I'm sure this is something stupid I overlooked, but I've been at it four hours and I'm not making any headway. Any ideas?
My ZomB Dashboard is working great otherwise, I have encoders mapped to graphs and the camera is showing up. It's an awesome program. If you haven't tried it out, I would highly recommend it.

pblankenbaker
07-02-2012, 07:09
We ran across this same issue at one point. I don't have the robot in front of me, but I think the solution was to add a line in the robot initialization code to set a initial value for each SmartDashboard key name we wanted to retrieve before we started retrieving it.

Here's a example (from a SimpleRobot based perspective):


private int shooterSpeed = 0;

public void robotInit() {
// Tell SmartDashboard to register a "Shooter Speed" key and initial value.
SmartDashboard.putInt("Shooter Speed", shooterSpeed);
}

public void operatorControl() {

while (isOperatorControl() && isEnabled()) {

// Read value of "Shooter Speed" back from the dashboard
int newSpeed = SmartDashboard.getInt("Shooter Speed", shooterSpeed);

// If operator wants a new speed, update robot state to accomodate
if (newSpeed != shooterSpeed) {
doWhatYouNeedToDoOnASpeedChange(newSpeed);
}

Timer.delay(0.01);
}

}

gizzerd91
07-02-2012, 20:54
We tested that already, and it doesn't help. I'm switching to SmartDashboard, so I just wrote a custom widget that gets at the NetworkTable from within the program. Haven't tested it yet, but that seems like it should work. I'll test it as soon as I get back into the shop.

byteit101
09-02-2012, 15:11
what control are you using? some controls don't send data back