LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Array base address pointer

I must find a way to manipulate huge amount of data (250 meg) in RAM.
I have 1 G of RAM in my computer.
A three dimension array of 1000 X 16 X 15000 (240 meg I8 bytes) is initialized at first beginning and manipulated witting a while loop.
I have create Visual C functions in a DLL that take the the data type array pointer from that initialized array to manipulate data witting memory.
Manipulating Data is then very fast but carrying that three dimension already initialized array in a loop seem to be time consuming.
Each loop duration is around 250 milliseconds. It is much to long for my purpose.
Is there a way to initialize an array and have the base address pointer information variable with Labview 6.1?
The loop would be much faster
and I would use that address pointer in my DLL or in another way?
I have tried to find a way in the Advanced Functions in Labview 6.1 with no results.

Regards
harold.hebert@nrc.ca
Harold Hebert
National Research Council Canada
0 Kudos
Message 1 of 3
(2,919 Views)
> I must find a way to manipulate huge amount of data (250 meg) in RAM.
> I have 1 G of RAM in my computer.
> A three dimension array of 1000 X 16 X 15000 (240 meg I8 bytes) is
> initialized at first beginning and manipulated witting a while loop.
> I have create Visual C functions in a DLL that take the the data type
> array pointer from that initialized array to manipulate data witting
> memory.
> Manipulating Data is then very fast but carrying that three dimension
> already initialized array in a loop seem to be time consuming.
> Each loop duration is around 250 milliseconds. It is much to long for
> my purpose.

The key will be to let the loop recycle the array. Place a shift
register on the loop. Pass the array into the DLL and back out the
right si
de, then back through the loop.

This wiring lets LV know that the DLL both reads and writes to the
array, and that is the intent. The shift register is inplace, the DLL
is inplace, and there should be no copies made anywhere. Note, if you
are displaying or reading the array somewhere else in the loop,
disconnect those or they will cause pretty big delays as well.

Greg McKaskle
0 Kudos
Message 2 of 3
(2,919 Views)
I finally found the problem!
I delete all the "Call Library Function Node" and then put them back. For any apparent reasons everything run perfectely.

I thanks M. McKaskle for is help.
Harold Hebert
National Research Council Canada
0 Kudos
Message 3 of 3
(2,919 Views)