View Full Version : Error on using network tables from smartdashboard.
Stonemotmot
09-01-2013, 09:32
Hello, I am trying to send some simple double values from the smart dashboard to the robot the problem is the data does not appear to be recieved and I get a flood of messages from the network tables such as the ones below.
connection state: GOT_CONNECTION_FROM_CLIENT
edu.wpi.first.wpilibj.networktables2.server.Server ConnectionAdapter@14f entered
connection state: SERVER_ERROR: class
edu.wpi.first.wpilibj.networktables2.connection.Ba dMessageException: Unknown Network Table Message Type: 12
Close: edu.wpi.first.wpilibj.networktables2.server.Server ConnectionAdapter@14f
The Code I use is as follows
SmartDashboard Code
------------------------------
public static NetworkTable table;
public int network=0;
public WPIImage processImage (WPIColorImage image)
{
if (network==0)
{
NetworkTable.setIPaddress("10.4.86.2");
table = NetworkTable.getTable("camera");
network=1
}
table.putDouble("AREA", 2);
}
Robot Code
------------------------------
public static NetworkTable cameraTable = NetworkTable.getTable("camera");
function()
{
System.out.println(cameraTable.getNumber("AREA",-1);
}
The above code displays the previous error and -1(the default output)
Any help is much appreciated.
MagiChau
09-01-2013, 09:36
I believe you have to actually create a table called camera before you can try to get anything from it. I don't have access to the javadocs for the NetworkTable right now.
Stonemotmot
09-01-2013, 09:40
I believe you have to actually create a table called camera before you can try to get anything from it. I don't have access to the javadocs for the NetworkTable right now.
The description in the java doc for getTable() is
Gets the table with the specified key. If a table does not excist, a new table will be created. This will automatically initialize network tables if it has not been already.
to mean that means that no seprate creation is nessasary, but if im wrong how do i create one?
MagiChau
09-01-2013, 09:54
The actual error appears to be "Unknown Network Table Message Type: 12"
I actually was on the wrong track then. It is an issue with communicating using table "camera" probably when you are trying to retrieve a number or it could be when you put the number in.
Perhaps someone else more experienced can help you, I am trying to guess the most likely errors.
Stonemotmot
09-01-2013, 10:15
I have been trying to find a solution using what you said but I still cant figure out what is wrong.
MagiChau
09-01-2013, 10:48
You put in a number under the key of "area" but you try to retrieve with the key "RED_AREA" try changing "RED_AREA" to "area" when you use getNumber()
Stonemotmot
09-01-2013, 11:03
You put in a number under the key of "area" but you try to retrieve with the key "RED_AREA" try changing "RED_AREA" to "area" when you use getNumber()
Oh sorry that was a miss type in the post. In my actual code they are the same. Sorry for the confusion.
Joe Ross
09-01-2013, 11:55
If I had to guess, I'd say your smartdashboard code is using Network Tables Version 1, while the cRIO is running a Network Tables 2 server.
F22Rapture
09-01-2013, 12:30
If I had to guess, I'd say your smartdashboard code is using Network Tables Version 1, while the cRIO is running a Network Tables 2 server.
Is there any documentation specifically for using NetworkTables2 yet? I noticed the documents for NT on screensteps are still empty.
mitchellweb1
09-01-2013, 16:02
Yes I believe this is the error which you will get if the smart dashboard is running the old version of Network Tables.
You can go here to get the latest version of SmartDashboard which uses NetworkTables2
http://wpilib.screenstepslive.com/s/3120/m/7932/l/93058-smart-dashboard-standalone-vision-installer
Stonemotmot
09-01-2013, 19:26
Thanks for everyones' input. I have re-installed the dashboard and no longer get the error. However the data is still not sent from the dashboard to the network tables. I have used the NetworkTable Viewer to determine that the Robot communicates with the Network Tables just fine, but the dashboard seems unable to. I used the code below on the robot to put and retrieve values and this works just fine.
NetworkTable.getTable("MyTable").putDouble("AREA", 5);
System.out.println(NetworkTable.getTable("MyTable").getNumber("AREA",-1));
I have had no success repeating this on the dashboard however. If someone could post some SmartDashboard network table code from this season using the new crio image and new SmartDashboard I would very much appreciate it. :D
mitchellweb1
09-01-2013, 19:48
You have to put values using the SmartDashboard class
For example http://wpilib.screenstepslive.com/s/3120/m/7932/l/81106-displaying-expressions-from-within-the-robot-program
SmartDashboard only looks at a single table in networktables so that you can use other tables to send data to other programs but not have it show up on the SmartDashboard
You can also find more info on the SmartDashboard here http://wpilib.screenstepslive.com/s/3120/m/7932
Stonemotmot
09-01-2013, 20:00
I might be wrong, but I thought the SmartDashboard class could only be used on the robot not in the dashboard itself(don't have it in front of me at the moment)
I am trying to send data from the dashboard to the robot not the other way around. Should I use a table called "SmartDashboard" would that work?
mitchellweb1
10-01-2013, 14:46
Sorry I misunderstood your question. You should be able to do Robot.getTable() to get the SmartDashboard table from the plugin.
Stonemotmot
10-01-2013, 15:23
Sorry I misunderstood your question. You should be able to do Robot.getTable() to get the SmartDashboard table from the plugin.
Thank you! that did it.
Joe Ross
10-01-2013, 15:30
Mitchell, are there any plans for a tutorial on creating a SmartDashboard widget, like there was last year?
mitchellweb1
10-01-2013, 19:47
I believe so. We just haven't gotten to adding it to screenstepslive yet. if you want some examples you can look at the basic widgets that are included with SmartDashboard. There were a few changes in the NetworkTables API but beside that it is the same as last year.
ktrobotcreator
16-01-2013, 17:51
I have a question. When you say SmartDashboard code and Robot Code, where are those? We are very confused as to how you connect RoboRealm to SmartDashboard and what code you need everywhere.
Thanks!
F22Rapture
16-01-2013, 22:34
Thank you! that did it.
Could you post your code? Network Tables is probably the least-documented important feature atm, and it would be nice to have something to work from.
joelg236
16-01-2013, 23:26
Could you post your code? Network Tables is probably the least-documented important feature atm, and it would be nice to have something to work from.
Best I could find for documentation on Network Tables. http://wpilib.screenstepslive.com/s/3120/m/7912/c/36448
I seem to remember very recently someone posting a link to the specification, but for the life of me I can't find it.
vBulletin® v3.6.4, Copyright ©2000-2017, Jelsoft Enterprises Ltd.