Jump to content

UDP multicast to RIO


Recommended Posts

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.


 


post-53076-0-37069000-1442942895.png


 


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


 


post-53076-0-00572400-1442942857.png


.


 


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!


Link to comment

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.

Link to comment

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 by ShaunR
Link to comment

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 by Calorified
Link to comment

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.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.