I'm working on a parsing UDP stream in real time. Right now - my method is pretty straight forward:
3 Asynchronous loops that do the following:
1 - UDP capture and queue each raw packet individually
2 - Flush raw queue and parse then queue parsed
3 - Dequeue parsed data and do whatever with it
The data, however, is quite large. If I were to use Wireshark and take PCAPs, I'd get in the realm of 100MB in 5 seconds. Granted, there's some header/meta data in the PCAP, but very much mostly raw packets. So, I have a few questions to the pros here regarding this:
Is this even possible in LabVIEW to capture that and only maybe drop a few packets? I'm worried LabVIEW isn't fast enough.
Is my approach garbage?
Should I capture, say, 5K packets and then queue that up?
If capture a bunch then queue, do I use LabVIEW's indexing feature on the loops or should I be initializing my arrays then replacing the subsets?
Would DVRs and notifiers be a better approach to this?
Is there a labview whitepaper regarding fastest ways to get and parse UDP?
Are we better off using a Windows DLL to capture UDP packets? If so, any suggestions?