LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

change a LabVIEW array outside LabVIEW and keep updated in LabVIEW

change a LabVIEW array outside LabVIEW and keep updated in LabVIEW

hi,

I am Interfacing a FrameGrabber with LabVIEW using a frame grabber
SDK(dll).

The memory managment of this FG allow you to allocate your own Array
and to give a pointer to this Array to the memory manager.
Then when you acquire with the frame grabber, the acquired image will
be directly accessible in your array.

1.I give to the FG memory manager a pointer to the Labview array
through a SDK Dll function.
2. I run the acquisition
3. I display the array

My problem is that the Array is allways displayed with it initial
value. I'am sure that the Array is changed outside LabVIEW.

maybe labVIEW don't reload the value because the Array i
s changed
directly in memory by the SDK.

Is there a way to force LabVIEW to relod the "true" value from memory

thanks in advance!

Sebastien
0 Kudos
Message 1 of 2
(2,440 Views)
seb wrote:

> The memory managment of this FG allow you to allocate your own Array
> and to give a pointer to this Array to the memory manager.
> Then when you acquire with the frame grabber, the acquired image will
> be directly accessible in your array.
>
> 1.I give to the FG memory manager a pointer to the Labview array
> through a SDK Dll function.
> 2. I run the acquisition
> 3. I display the array
>
> My problem is that the Array is allways displayed with it initial
> value. I'am sure that the Array is changed outside LabVIEW.
>
> maybe labVIEW don't reload the value because the Array is changed
> directly in memory by the SDK.
>
> Is there a way to force LabVIEW to relod the "true" value from memory

Not really. LabVIEW is dataflow. You will have to actu
ally call the
frame grabber with the pointer repetitively and pass it again and again
to the Control in which you display the image. Look at how the NI-IMAQ
VIs do it. They also use this approach.

Anything else would require access to LabVIEW internas we normal users
don't have and would break with every new LabVIEW version.

The operation you want to do has many problems too, besides of not
fitting well in most high level programming environments. If you write
your application in C you could deal with these issues through video
overlay buffers but Visual Basic, LabVIEW and many others won't work so
simply.

Also you would get unavoidable artefacts of the device driver updating
parts of the image while LabVIEW accesses it to blast to the screen.

Rolf Kalbermatter
Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 2 of 2
(2,440 Views)