03-28-2012 04:23 AM
Hi everyone,
I'm having some troubles with my application.
With the application it's possible to switch through different sub VI's.
These sub VI's will be opened in a main VI.
In some of the sub VI's are some pictures.
When I'm switching through the different screens, the GDI (Graphic Design Interface) value goes up.
I am watching these values with " GDIView".
When a GDI value of 10000 is reached, the error, that is shown in the attachments (Error GDI), will come up.
I also attached the logfile that is created when the error came up.
I don't know if there is a function which makes it possible to set the GDI value to 0?
For example when I switch from one sub VI to an other one....
I already tried to change the following registry to 65536, but that doesn't change anything.
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\GDIProcessHandleQuota"
It still stops by this 10000. But even if I could change the value to 65536, the problem would not be solved but deferred.......
Does someone knows what I have to do?
Regards,
Kenny
03-28-2012 04:45 AM
Hi,
how do you switch from the main vi to the sub VIs?
Regards,
Marco
03-28-2012 04:58 AM
It is a main VI.
In this main VI there is a window called "Sub Panel".
In this sub panel, the VI's are called by VI reference.
Switching between different VI's is done by buttons.
Regards,
Kenny
03-28-2012 05:21 AM
I quickly checked with the subpanel example provided with Labview and GDIView, but nothing was increasing...
Shooting in the dark: do you close the reference to the subpanel vi when you switch from a subanel to another?
It would be useful to see the code...
Regards,
Marco
03-28-2012 06:50 AM
Hi Marco,
This is the code that is in the main VI.
The code that you see below is to open and close the sub VI's.
When going into the "Get VI Ref." block, the following code will be shown.
Here can be seen that the reference of the opened block will be determined.
In the "Open Scherm" block, the VI will be opened.
When going to look into the "Close Scherm" block, the following code will be shown:
Here you can see that, in the end, the reference will be closed.
What I explicitly want to say, the problem only comes up by switching sub VI's with pictures in it.
In sub VI's without any picture, the GDI value will not increase, only when switching sub VI's with pictures.
Hope it will be a lot clearer now.
Regards,
Kenny
04-16-2012 02:11 PM
Hello Kenny,
I have received confirmation that in your case the GDI objects are causing the errors.
Next tot the closing of the reference this might also be related to the used video card.
1) Have you tried it with a different video card?
2) Updating the video driver might also make a difference.
PS: Sorry for my late reply, but there were some unforeseen cicumstances this weekend.
04-16-2012 02:21 PM
Hello Kenny,
Can you also give me a summary of all the things that you have tried related to GDI Objects at your side?
Please let me know about all the tests you have tried and the results you have observed this way.
Is it possible to share a full set of code to me so that I can have a complete overview of everything?
Even if I won't be able to run it, this will still provide me with better insight into the issue.
04-16-2012 02:44 PM
Won't the "false" wired to the case structure prevent closing the DS refs?
Ben
04-16-2012 04:20 PM
@Ben wrote:
Won't the "false" wired to the case structure prevent closing the DS refs?
Ben
Thats the datasocket connection. the Branch at probe 18 is going to cause a buffer copy of the ref (A Ref to the ref if you will) likely its this buffer that's mis-behaving.
There is some data dependancy already betweet the Property node and the case where the ref eventually gets closed- try wiring the ref out rather than branch
04-17-2012 06:25 AM
Hi everybody,
I made a change in the program.
I did remove the flat sequence and made a case structure (you can see this below on the bottom of the vi).
In this case structure, I remove the vi when a new vi is opened.
The GDI counter still counts up when a sub panel is opened.
But when the sub panel has once been opened, switching to this panel again will not raise the counter.
But when I stop the runtime program, and then start it again, the counter will go further counting up, untill a sub panel has been opened.
The only way to set the GDI counter to zero, is too exit Labview and start it all over again.
Does anyone know what the problem can be????
@ Thierry C
The problem is coming up on different stations with different video cards, so this is not the problem.
I won't give you the set of code via the forum.
This is software that is developed by our company.
Is there an other way that I can send you the software?
Regards,
Kenny