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?
Thank you.