From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Fetch Rx Data questions

The Fetch Rx Data vi contained in the Rx Streaming (Host) example doesn't seem to want to time out for me.  When a data underflow occurs, instead of timing out and giving up (per the documentation), it just locks up whatever loop it's in until the application is restarted.  Is there a way to modify this vi to prevent it from stalling my RX loop?

 

If I drill down to the Fetch Rx Data (U32) vi, I can see that the Timeout method in the Invoke function is grayed out.  Is that significant? 

 

Thanks.

0 Kudos
Message 1 of 7
(4,854 Views)

What version of LabVIEW are you using? The grayed out style of the Timeout (ms) is expected so I don't believe that is the source of the error. Have you tried wiring in a 0 to the Timeout (ms) to see if it immediately times out and throws an error?

Rachel P. | Applications Engineer | National Instruments
0 Kudos
Message 2 of 7
(4,817 Views)

Thanks for the suggestion.  I see now that the timeout does actually do something.  Just not what I want it to do. 

 

If I don't wire the Timeout input and then I stop the FIFO data, it stalls the loop while it's waiting for more  data.  If I feed it more data then it's happy and the loop iterates.  If I wait until it times out (10 seconds by default) the loop stays locked up for good.  If I stop the application I get no error, but if I stop just the loop it throws a -50400 at me.

 

If I wire a 0 to the timeout it doesn't work at all because there are gaps in my FIFO data (the FPGA won't send any unless it's triggered).

 

So I guess my question becomes this: does anyone know of a way to poll the DMA FIFO status so that I can execute Fetch RX Data conditionally?

 

Thanks again.

0 Kudos
Message 3 of 7
(4,808 Views)

@Gato-Ray-d wrote:

What version of LabVIEW are you using?


It occurred to me that I didn't actually answer this question.  I'm using LV 2014.

0 Kudos
Message 4 of 7
(4,785 Views)

What information do you want to poll for and what conditions do you want to fetch on?

Rachel P. | Applications Engineer | National Instruments
0 Kudos
Message 5 of 7
(4,765 Views)

@Gato-Ray-d wrote:

What information do you want to poll for and what conditions do you want to fetch on?


I just need a method of determining whether or not there's data in the FIFO.  If there isn't, I could skip the Fetch RX Data vi (and several other downstream functions) and keep the loop from locking up.

 

I'd be looking for such a solution right now but another programmer has our development system tied up today...

 

Regards, and thanks for the input.

0 Kudos
Message 6 of 7
(4,751 Views)

What if instead of employing a polling function, you configured the DMA FIFO to a known size using the Configure invoke method and only iterated the loop to the number of times you specify?

Here is a link elaborating on the functionality of this invoke method: http://zone.ni.com/reference/en-XX/help/371599E-01/lvfpgahost/fpga_method_fifo_config/

Rachel P. | Applications Engineer | National Instruments
0 Kudos
Message 7 of 7
(4,685 Views)