Calorified Posted September 22, 2015 Report Posted September 22, 2015 Hi there, I have RIO in a Windows VirtualBox inside a Ubunbtu Host OS. I am sending data from a C++ program in the Ubuntu Host system to labview within the Guest OS. I can receive the data on labview installed on the windows guest os. Below is the png of the Windows working program. But when I tried to send the data to myRIO, I was getting a udp read only error 42. Somewhere on the NI forums, someone suggested the net address of the "UDP Multicast Read-Only" vi be wired to the address of the RIO which I have done below . Now, the code runs on myRIO but I can't receive any data on RIO. The multicast address I am sending to from Boost Asio C++ is 235.255.0.1 on port 30001. The RIO has a public ip of 172.22.11.2 and I set up a static ip address for it in NI MAX as the address of the UDP Multicast : "235.255.0.1. At this moment, I do not see what I am missing. All firewalls have been disabled and I have set the permissions for RIO through the Windows security page. Any help would be appreciated. Thank you! Quote
ShaunR Posted September 22, 2015 Report Posted September 22, 2015 The net address is for the address of your network card and usually only used if you have multiple cards installed in the system so you can bind to a particular card. You have quite a stack of network virtualisation there.You'll probably have to set up routing to forward UDP multicast packets from your router. Quote
Calorified Posted September 22, 2015 Author Report Posted September 22, 2015 You have quite a stack of network virtualisation there.You'll probably have to set up routing to forward UDP multicast packets from your router. You meant this: route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 ? Quote
ShaunR Posted September 22, 2015 Report Posted September 22, 2015 (edited) You meant this: route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 ? Well. Seeing as your multicast address starts with 235, I would say probably not. However, I avoid Linux whenever possible so I cannot help much further than saying what the net address is for because it will depend on how you set up the network cards and firewalls in all the layers (including Windows). Edited September 22, 2015 by ShaunR Quote
Calorified Posted September 22, 2015 Author Report Posted September 22, 2015 (edited) I quote from here : "This will add the static route for all packets arriving from the possible UDP multicast address range (224.0.0.0 through 239.255.255.255). To make the changes persist through rebooting the device, you can either write a script to run this command on device initialization or manually add the rule to the network interface configuration file in /etc/network/interface." Why do you say it won't work for an address that starts with 235? Edited September 22, 2015 by Calorified Quote
Calorified Posted September 28, 2015 Author Report Posted September 28, 2015 It's a bit lame but what I ended up doing was to receive the multicast on the Windows Virtual box, create a second ordinary udp broadcast to the RIO and receive the udp broadcast on RIO. Still no noticeable delay. Someone in my lab told me I could have used a shared variable engine to move the data around from my PC to RIO target. I tried this unsuccessfully with the 'Single-Process Shared Variable' as well as 'NI-PSP Shared Variable'. Maybe if someone has a way out, they could further shed some light on the shared variable host send and target receive. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.