LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Any way to tell when an image display has been updated?

When updating image data going to an intensity graph display is there any way to tell when the update has actually been completed by the user interface and the user can actually see the updated data? Note that setting the display to be "synchronous" will not accomplish this. (using LV 7.0)
0 Kudos
Message 1 of 11
(3,898 Views)
Hi,

There is no way to tell, but I think the attached VI makes sure it is drawn.

Regards,

Wiebe.

"Warren Massey" wrote in message
news:50650000000800000096BD0000-1075935269000@exchange.ni.com...
> When updating image data going to an intensity graph display is there
> any way to tell when the update has actually been completed by the
> user interface and the user can actually see the updated data? Note
> that setting the display to be "synchronous" will not accomplish this.
> (using LV 7.0)



[Attachment Picture Update.vi, see below]
0 Kudos
Message 2 of 11
(3,898 Views)
Thanks for the reply but unfortunately this proposed solution does not see the delay within the display system. For large images (4kx4k) the time it takes to update the CRT display can be quite long and it seems that this time is invisible to LabVIEW. It can leave the user sitting there wondering "Well has it or hasn't it updated yet?" if there isn't much difference expected between the old and new images...
0 Kudos
Message 3 of 11
(3,898 Views)
Warren,

If you just need to signal the user that there was an update, you can put a
boolean led on the front panel. Every iteration (at the begin) put it's
negated value into itself. This way, the led will blink just after each
update....

Regards,

Wiebe.

"Warren Massey" wrote in message
news:506500000005000000B5560100-1075935269000@exchange.ni.com...
> Thanks for the reply but unfortunately this proposed solution does not
> see the delay within the display system. For large images (4kx4k) the
> time it takes to update the CRT display can be quite long and it seems
> that this time is invisible to LabVIEW. It can leave the user sitting
> there wondering "Well has it or hasn't it updated yet?" if there isn't
> much difference expect
ed between the old and new images...
0 Kudos
Message 4 of 11
(3,898 Views)
Maybe a little bit off topic, but I remember there was a (set) VI(s) in the internet toolkit which help you to detech if there are any image (png or other type) updates.

To synchronize the data and graph update, you can move or hide/show the graph everytime after each data update, so labview is 'forced' to update the indicator with latest data.

-Joe
0 Kudos
Message 5 of 11
(3,898 Views)
I've already tried something like this and it just does not work like I want it to.

Enforced with a sequence structure I do this:
1) put up a message saying "Updating"
2) dump the updated data to the display
3) clear the message

What I see on the CRT is this:
1) a message saying "Updating"
2) the message quickly goes away
3) several seconds later the image changes.

My kludge/workaround is to add a variable delay before the message is cleared. The delay is based on the image size and some empirically-derived constants.
0 Kudos
Message 6 of 11
(3,898 Views)
Thanks for the reply, but moving the image or blanking it out prior to displaying it won't work for us because we are looking for possible subtle changes between subsequent images and doing this would make that difficult (and it would also tend to introduce a considerable delay in the update).
0 Kudos
Message 7 of 11
(3,626 Views)
Warren,

The message doesn't show if you use a local (it does when you use a property
node!). The boolean does blink!

Try the attached VI.

Regards,

Wiebe.

"Warren Massey" wrote in message
news:5065000000050000007C570100-1075935269000@exchange.ni.com...
> I've already tried something like this and it just does not work like
> I want it to.
>
> Enforced with a sequence structure I do this:
> 1) put up a message saying "Updating"
> 2) dump the updated data to the display
> 3) clear the message
>
> What I see on the CRT is this:
> 1) a message saying "Updating"
> 2) the message quickly goes away
> 3) several seconds later the image changes.
>
> My kludge/workaround is to add a variable delay before the message
is
> cleared. The delay is based on the image size and some
> empirically-derived constants.



[Attachment Picture Update.vi, see below]
0 Kudos
Message 8 of 11
(3,898 Views)
> My kludge/workaround is to add a variable delay before the message is
> cleared. The delay is based on the image size and some
> empirically-derived constants.

The issue is that the terminals and locals of controls schedule an
update and allow for batching. They are not synchronous. To
synchronize things to them, you can try to use the Value Property on the
control's property node. At the moment I believe this is synchronized.
If not, you can use the Panel's property called Defer Panel Updates.
You can use the to synchronize multiple property nodes and values by
setting to TRUE, modifying, then setting defer to FALSE. So, you can
set your Boolean or string telling the user an update is in progress,
then defe
r, then set the image and string/Boolean again, then defer to
FALSE. The string/Boolean and image should update at close to the same
time telling the user that the update is finished.

Greg McKaskle
0 Kudos
Message 9 of 11
(3,898 Views)
How about a sequence like this:
1. Set cursor to busy (wait glass)
2. Update display
3. Reset cursor

George Zou
http://gtoolbox.yeah.net
George Zou
0 Kudos
Message 10 of 11
(3,898 Views)