Communicating with cRIO over WiFi


I’ve had an idea that involves using a Windows Program running on the Driver Station’s laptop to get images from the Camera, do some image processing, and send some data back into the cRIO.

My question is, how do i communicate with the cRIO over WiFi and which ports do i send data to? how to get the images off of it? and, how do i receive data from within the cRIO? I haven’t seen any functions for this purpose on the WPILib reference…
(I’m using C++ as the programming language).

Thanks in advance.

If you plug the camera into the router, you can bypass the cRIO and pull the images via HTTP. There are some other threads that go into detail about that.

Alright, but the issue of sending data to the cRIO and using it still remains…

The theory is that the dashboard code would do the vision processing and send the code to the cRIO. Again, I defer to other threads on the vision tracking subject.

Alright, assuming I use the dashboard for vision processing, how would i ** receive it** within the cRIO code ? (C++) I haven’t seen any function to do such a thing in the WPILib reference…

EDIT: I’ve found this class called SmartDashboard and this class called Dashboard.
It specifies some functions, which, if i understand correctly, are used to Get and Put data from and to the Dashboard.
Are there any examples for the usage of this Class? I think the info on the WPILib reference is insufficient…

Again, I’ll defer to other threads on the vision tracking subject. I won’t be the one doing it, so I don’t know all the details.

The KinectGestures example has some commented out calls to the SmartDashboard.

BTW, for competition, your laptop needs to be wired into a router, which communicates over WiFi to the robot. In the shop, you can take shortcuts and use WiFi directly to the robot’s radio or tether directly to the robot’s radio. The key is that you need to form a network link with the robot.

See the other threads for how to get camera images to the laptop. Once you process the image on the laptop, you’ll need code in your dashboard to establish a socket connection to code in your robot that establishes a socket connection. Check out for samples on network programming.

Once you have your own connection, you can send commands from the dashboard to the robot. The commands can be anything you want.