VeriStand

cancel
Showing results for 
Search instead for 
Did you mean: 

Lossless data transfer between RT Driver VI and async VI (RT FIFO Size control)

I have created a custom device using "Inline HW Interface" with the "Inline-Async API". I would like to stream lossless(ish) data between "RT Driver VI.vi" and the async VI.

Using the Inline-Async API, the RT FIFO is hardcoded to "Size = 1", with the "Elements in array = #channels" (found in Data Access Engine.lvlib:Read.lvclass:Read.Initialize.vi).

 

My question is: Is there a way of changing the FIFO size to include a [bigger] buffer as part of the API? Or do I have to re-implement it myself?

 

I'm quite happy implementing it myself, but I've gone down the route of doing it myself and then finding there's already a tool for that too many times, so I wanted to check first!

 

Thanks,

Tom

0 Kudos
Message 1 of 3
(158 Views)

Actually for what it's worth, I just created a producer consumer in the async VI (with a local buffer) and so far that's working well enough.

0 Kudos
Message 2 of 3
(138 Views)

There is a VI called 'Set FIFO Depth' that you can use in the Initialization VI.

 

The VI allows you to set the 'Source' and 'Sink' depths.  'Sink' depth sets the RT FIFO Read depth, if I recall correctly.

 

The VeriStand Engine uses these depths when creating the RT FIFO's.

 

Edit: Nevermind.  I just realized you want the FIFO between the RT Driver VI and the Async VI.

0 Kudos
Message 3 of 3
(68 Views)