early in the season, I thought I saw an article in ScreenSteps on using a NetworkTable array to do transactions; the article had a title, but was blank. I figured someone would notice and flesh it out, but now I can’t find it at all.
I have a few places where I’m wanting to implement transactions (actually, RPC) and/or queues via NetworkTables. Any prior art here?
Provided you are using LV on both, it may just be easier to use its RPC. The attached nodes in the image are in the Application Control palette, the one with the hand and a tray. And it works in both directions. Be sure to handle the errors and loop until getting a good connection.
It is obviously possible to make RPC above network tables, but it would be tricky, especially with the various implementations.
Greg McKaskle


what’s the underlying transport for the LV RPC? is it something that the FMS will let through between the DS and the robot?
It is TCP based, and it needs to be enabled and configured first. By default it is on 3363, but can be any port you like. You change it in Tools Options for development usage and in the project by right clicking on the target, choosing Properties and going to the VI Server page.
Greg McKaskle
hmmm. According to the FMS White Paper:
The ports that the teams are able to access on the playing field are as follows:
- TCP 1180: This port is typically used for camera data from the robot to the DS when the camera is connected to port 2 on the 8-slot cRIO. This port is bidirectional on the field.
- TCP 1735: SmartDashboard, bidirectional
- UDP 1130: Dashboard-to-Robot control data, directional
- UDP 1140: Robot-to-Dashboard status data, directional
- HTTP 80: Camera connected via switch on the robot, bidirectional
- HTTP 443: Camera connected via switch on the robot, bidirectional
Looks like the only chance would be to use a 4 slot cRIO and appropriate port 1180.
The 8 slot doesn’t need to use the port 1180, this was used the first year when there was no switch on the bridge and the cRIO had to transfer camera stuff to the dashboard manually.
Greg McKaskle