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,867 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,830 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,821 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,798 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,778 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,764 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,698 Views)