f



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 is 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
6/4/2004 12:46:58 PM
comp.lang.labview 35213 articles. 1 followers. vasusachin24 (1) is leader. Post Follow

1 Replies
3710 Views

Similar Articles

[PageSpeed] 8

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 actually 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
0
6/4/2004 2:03:57 PM
Reply: