We have a small application which converts UPD Multicast data packets into normal UDP messages and passes them on to another system.
The code works fine in the LabVIEW environment, but when built into an executable and set to run on Rpi startup, it doesn't see the Multicast data packets.
We think it's probably a permissions thing on the Rpi, not allowing the Multicast when running as a different user.
Anyone else had a similar problem ?
What do you mean by "works fine in the LabVIEW environment"? Do you mean your program runs on your PC without a Raspberry Pi involved at all?
Assuming that is what you mean then the next step would be to run the VI on the Raspberry Pi in debug mode. You can debug VIs on the Raspberry Pi with the same techniques that you can debug VIs in LabVIEW RT, https://www.ni.com/documentation/en/labview-comms/latest/rt-targets/debugging-rt-application/. Depending on your project you may just need to press the run arrow on your VI and it will deploy down to the Raspberry Pi so that you can debug it.
When debugging your program like this what do you see? Are there any errors? Note that only a subset of functionality from LabVIEW is compatible with the Raspberry Pi so it is completely possible that your code may error out when running on the Pi.
I know UDP in general works with the Raspberry Pi as others are using it but I don't have any personal experience with this on the Pi.
Thanks for your reply David.
Yes, when I say 'works in LabVIEW environment' then this is in debug mode.
So, the UDP Multicast is still going through the Rpi and is picked up fine in debug mode........it just doesn't work as an executable.
I know the executable is running OK because it still pushes out normal UDP packets as a 'watchdog'.
I'm sure it must be something to do with permissions on the Rpi (Raspbian)
Is it possible that your start-up application is running before the Raspberry Pi has started the network device and obtained an IP address?
There is an option in raspi-config to wait for network at boot.
I had the same problem. My VI translates some Modbus TCP stuff and worked without a problem for about one year as a startup executable on the pi. Then I changed a little thing not network related and it did only run when in debug mode. "Wait for network" option in raspi-config solved the problem.
It should be mentioned in the linx tutorial.