LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Application runs very slow using localization

Good morning,

 

we experienced a problem with a customer which use our application with UIR panels localization (LoadPanel + LocalizePanel). The user can change a lot of panels, so there are many DiscardPanel + LoadPanel + LocalizePanel launched from the application. Our UIR is big (about 150 panels, 10Mb) and lwl file is about 1Mb.

Our application starts at pc startup. All works good for the first hours. After this time, change of panels became very slow.

So, we asked to the customer to run the application without localizazion (the application executes only LoadPanel, not LocalizePanel). The problem does not appear.

 

What can be the problem? UIR/lwl files too big?? Or something wrong in LocalizePanel implementation??

We experienced the problem on WINXP Embedded without HD (there is a compact flash with o.s. and application installed), but also with a "standard" WinXP with HD.

 

Thank you very much for your help.

0 Kudos
Message 1 of 9
(3,747 Views)

This is just a blind shot, not a real solution...

 

What happens if instead of LoadPanel+LocalizePanel you simply call LoadLocalizedPanel? The same condition that now determines whether to localize the UIR or not can be used to switch between LoadPanel and LoadLocalizedPanel.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 2 of 9
(3,739 Views)

Another blind shot: did you check for any resource leaks ? 

CVI 2010 Resource Tracking tool is your friend...Smiley Wink

 

 

 

 

 

 

 

Carlo A.
Megaris




0 Kudos
Message 3 of 9
(3,706 Views)

Roberto,

Carlox,

 

Thank you for your help. In the next days we will try your suggestion.

We need some hours to try it... and in these days we are overworked ...

 

I will update the forum asap.

 

 

0 Kudos
Message 4 of 9
(3,681 Views)

Hello,

 

I see the 2012 date, but ...

 

I use CVI (and LabVIEW) since 1997.

Now I use CVI 2013 SP2 one.

I have already use the "LoadLocalizedPanel" function in the pass (since CVI 4.0),

without so much problems.

 

After a long time without need to use multilangage functions (LabVIEW developments),

I need to use it again.

So I take again the old process, and go one.

 

Since 2 years now, many problem appears.

 

After the problems with "User Interface Localizer" tool,

now, I have got the same problem as LucaTesi.

 

Especially, when I use NI PCI or PXI boards (with "EveryNCallback" mixed to a personnal productor / consumer process).

Not when I use FIFO with Ethernet Compact RIO (but only 2 applications).

Not when I use only RS communication (but only few applications).

 

My ".uir" are not big (< 300 ko), and they are few panels inside (< 5), and with few controls inside each.

 

My "main" panel use a tab with several options, and with one with 4 "tree" controls inside.

We also use some dynamic interfaces (NewPanel and NewControl functions).

 

My acquisition is at 1kHz (on 32 channels), and the recorevy data is at 4 Hz.

The outputs are just some manual ones (not periodic, not inside software loops...).

 

I observe the same problem, all seems to run perfectly (acquisition, displayings, orders, graphs, saving data, monitorings ...).

 

But not when I open, for example, a simple personalized "About" panel (logo, adress, tel, email, etc...).

N.B. :

The problem is also the same for all the superposed panel (ex: data order panel, data information panel, etc...).

 

If I use only "LoadPanel" (so french panel), all is OK.

 

When I use english translations (".lwl" < 10 ko and ".lwd" < 4 ko) with :

- LoadLocalizedPanel

- or LoadLocalizedPanelEx (..., __CVIUserHInst, ...)

- or LoadPanel + LocalizePanel

the same trouble, the recovery time grow up, all seems very very slow :

- for example : a simple "cancel" button (DiscardPanel), is play only 5 s later the keypress

 

Have you any idea ?

The problem has been resolved in 2012 ?

 

In advance, thank a lot for your help.


Certified LabWindows/CVI DEVELOPER (2004)
LabVIEW since 5.01 | LabWindows/CVI since 4.01
0 Kudos
Message 5 of 9
(3,446 Views)

Hello,

 

So nobody have someidea.

Nevermind, I give the solution I found to avoid my problem and keep my multilanguage software.

 

I keep the "*.lwl" files of "User Interface Localizer" tool.

 

And I open them with "INI" file function,

and treat them just before display them (like someone propose in another post ... Thank),

througt some "SetCtrlVal", "Set...Attribute" (Panel, Menu, Ctrl, Table...), "ReplaceListItem", etc....

 

I do only what I need and treat only the data that I understand (so too few things).

 

But if someone have a better idea, please inform to me by a reply of this post.

 

And more the source code of this function, why not ?

 

 


Certified LabWindows/CVI DEVELOPER (2004)
LabVIEW since 5.01 | LabWindows/CVI since 4.01
0 Kudos
Message 6 of 9
(3,400 Views)

Just out of curiosity, what are you actually doing with the .LWL files?

Also, does the problem appears also in a smaller project (same data acquisition but simpler UI)?



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 7 of 9
(3,397 Views)

Hello,

 

Like I try to explain in my previous post, I read the "*.lwl" like a "INI" file.

 

Check into all the panels, the menus, the controls elements (throught ATTR_..._CONSTANT).

 

For each of them, I check if a section exist on the "INI" file.

 

I try to detect some special keyword ("Title", "Label", "Default", etc...) in the item name,

and that in function of the value of the "Type" item.

 

If them are not exist (I keep the initial attribute).

Else, I apply the data item to the attribute of the element ("SetPanelAttribute", "SetCtrlVal", "SetCtrlAttribute", etc...).

 

N.B. :

====

I have not treat the 1srt section "[LWCVI Language Resource File ]".

And I have not understood the "Flags" item name (checksum ??? TBD).

 

Example :

=======

...

 

[P_Commande] : PanelName
Flags = "@f" : TBD ???
Title = "Instruction" : SetPanelAttribute (panel, ATTR_TITLE, data item)

 

[P_Commande_NomSection] : PanelName_ControlName
Type = 3 : generic string control style
Flags = "Efee" : TBD ???
Label = "Section name" : SetCtrlAttribute (panel, Panel_Control, ATTR_LABEL_TEXT, data item)

 

...

 

I hope that this will answer your request.


Certified LabWindows/CVI DEVELOPER (2004)
LabVIEW since 5.01 | LabWindows/CVI since 4.01
0 Kudos
Message 8 of 9
(3,357 Views)

Sorry, I forget the 2nd part of your question.

 

For the size of the project, I do not kwow (it is not yet some huge : manual mode).

 

Now, it is very difficult to export, even, a few part of the code project (industrial application).

And wich one?

And any case, all the sofware parts are impacted (there is some translation everywhere).

 

For the size of the number of elements (analog, digital, .... data), it seems to have an impact.

Why ? Panels, menus, controls refreshing ?

But, where is the acceptable limits ?

 

Without this translation module (only LoadPanel),

I have several customers which use this application without troubles, but in French,

or throught my own module, all is allright.


Certified LabWindows/CVI DEVELOPER (2004)
LabVIEW since 5.01 | LabWindows/CVI since 4.01
0 Kudos
Message 9 of 9
(3,353 Views)