UI Interest Group Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

User Interface Manager

 

This tool is provided as an example to the LabVIEW user community under the Sample Code License (ni.com/samplecodelicense). It is not a National Instruments product and not supported through the regular support channels. Please leave questions and feedback about the UI Manager in the comment section below and rate the document. Please provide suggestions for new features and improvements and related use cases.

 

OPEN SOURCE: Contribute here: https://github.com/Primary-Key/LabVIEW-User-Interface-Manager

 

The VI Package is built using VI Package Manager 2017. You can get it by installing LV 2017 or by downloading VIPM for this page - https://vipm.jki.net/

 

User Interface Manager is compatible with LV 2016 or later.

 

This tool is designed to help programmers capture and apply complex UI configurations to any LV VI, both at edit and run time. Using the User Interface Manager Tool and its API, you will be able to configure your UI, capture that configuration, export and import it from XML file, and apply any previously captured configuration. Using this tool you can separate the configuration of your UIs from your application functionality and still be able to achieve any effect as you would using standard VI Server methods and properties.

 

If the user interface property you want to capture is not handled by the standard provided UIPs, you can create a new one, using the UIP Class Template. By providing your own implementation for five simple methods, you will be able to capture any property from the controls on your VI front panel.

 

This tool has not been tested on LINUX RT with UI.

 

Some of the use cases that can be handled by this tool include:

  • Localization of the UI
  • Changing visibility of controls
  • Changing the enabled state of controls
  • Changing the color scheme of the UI
  • Resizing UI to fit resolution
  • Setting the values of controls

Currently available User Interface Properties (UIPs):

  • CaptionUIP
  • VisibleUIP
  • DisabledUIP
  • SizeUIP 
  • PositionUIP
  • DescriptionUIP
  • TipStripUIP
  • ValueUIP

Example additional UIPs (in ZIP archive):

  • Waveform Chart Color
  • Boolean Color
  • Owning Pane Color

 

The package provided below, installs the UI Manager API to be used programmatically in your applications and the UI Manager Tool in the LabVIEW Tools menu, which allows you to capture UI states interactively in a user friendly way.

 

Version 1.10

- Increased performance of the UIM Tool when working with big projects by limiting the number of memory scans for open VIs.

 

Version 1.9.0

- Added new functionality for specifying the UIPs used by UIM. Now the UIPs are specified within the XML itself in the UIPList tag. If no UIPList tag is specified in the XML the default UIPs and the Plugin UIPs will be used. If the UIPList tag is specified then only the specified plugins will be used.
- Flatten and Unflatten from String XML functions added to make it easier to specify the UIM strucutre in code, by string.
- Save XML function modified to generate Pretty Printed files.

 

Version 1.8.0

- New ValueUIP supporting: String, Numeric, Boolean, Slide, Knob, TabControl, Path, Enum, Ring. The parsing of these values happens while getting and setting the values. Because of this they are a little slower than other properties. Use with caution.
- Included example about the ValueUIP

 

Version 1.7.1

- Updated interface for adding new UIPs to make it easier to use in executable.
- Filtered the list of VIs in memory to only the ones that have FP open and valid (UI Manager Tool).
- Reformated some of the interfaces of the UIP related methods.
- Added to Capture State checking for duplicated label names and returning error in that case.

- Added detailed description link to UIM community web-page to VI and tool.

- Added right click menu to controls on the FP to capture state from only specified controls on right click.

- Corrected bug that would cause crash in different LV versions when using the UIM.
- Rearranged some of the functions and API to work easier and less error prone with inbuilt UIPs.

- Removed project from package not to confuse users
- Added a plugin UIP folder handling. The folder location is <User Documents>\LabVIEW Data\UIP
- Removed the compiled EXE version of the example because it caused confusion

 

Version 1.5.4

- Changed the behavior when user wires CTL reference into Apply or Capture method. Right now the behavior is that the wired references are used and the VI is not traversed for references. This improves performance in big applications, by specifying up front, which CTL refs to use.

 

Version 1.5.3

- Updated the examples with more descriptive names. Modified one example to show how an app with UIM API can be built into an executable.

 

Version 1.5.2

- Removed the requirement for other packages to be installed with this tool. Now it is an independent package. Removed some small errors related to running the tool from the menu.

 

Version  1.4.3

- Due to unforeseen bug while loading had to revert back to LV 2016. The package is again only available in LV 2016 and higher.

 

Version 1.1.1

- Includes a QuickDrop shortcut for capturing the UI state into an XML file. Now, to capture state of the UI you just need to press Ctrl+Space Ctrl+U. The file generated this way will have the same name as the VI and the extension XML. It can be then loaded using the API or the UI Manager Tool from the tools menu.

An additional option you can use is the <Ctrl><Shift>+<U> which will take the text from the QuickDrop ComboBox and use this text as the UI state name. 


 

Picture1.png

 

Figure 1: Main window of the UI Manager Tool


uim67.png

 

Figure 2: UI Properties specification pane in the UI Manager Tool


uim68.png

 

Figure 3: Function palette for the UI Manager showing the API functions


 

Picture4.png

 

Figure 4: Example of programmatically setting the UI configuration using the UI Manager API


 

Picture1.png

 

Figure 5: Capturing UI State for many controls using Right Click Menu

Picture5.png

 

Figure 6. XML representation for the UI Manager



 

Please provide comments, feedback and feature suggestions in this forum post: http://forums.ni.com/t5/UI-Interest-Group-Discussions/Feature-suggestions-for-User-Interface-Manager...

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
Comments
djac91
Member
Member
on

seems to be a great tool. Nice work

-----------------------------------------------------------------------------------------------------------------------------
Waiting For the inner calling 🙂


Zbigniew_StS
Member Member
Member
on

Looks nice, well, even far better than nice.

Do you plan to add some simple examples?

Regards
Mikrobi (Zbigniew St. Sobków)____________________________________________________________
"You can lead a horse to water, but if you can get him to float on his back you've got something."
PrimaryKey
NI Employee (retired)
on

Hejka Zbigniew, the examples are installed together in the package.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
Zbigniew_StS
Member Member
Member
on

Perfect. Thanks.

Regards
Mikrobi (Zbigniew St. Sobków)____________________________________________________________
"You can lead a horse to water, but if you can get him to float on his back you've got something."
Hooovahh
Proven Zealot Proven Zealot
Proven Zealot
on

Pretty neat.  The UI looks typically LabVIEW, I'd prefer system controls over silver but whatever.  

 

I love that this is expandable with other classes.  You are right that the 4 included are probably the most common and should be included by default, but I'd hope that several less common ones are included but not selected by default.  Things like size, and value could be useful.  The next set of properties I think of are control specific like graph axis ranges, graph cursors, MCLB column widths, slider ranges, etc.  I think it would be useful if these classes were already made and just not selected by default.

 

The next thing I think of that I didn't see is maybe an exclude control list.  Maybe be able to specify controls to not get applied, or not get saved.

 

Why is 2016 or newer required?  2016 is only a few months old and I think the community would benefit if 2015 were supported as long as there isn't a technical limitation.

 

Lastly I see the license is described as "Sample Code License 2016".  I'm unfamiliar with this license and would highly suggest it be set to BSD in the built package.

PrimaryKey
NI Employee (retired)
on

Thanks for the comment 🙂

 

1. I included the SizeUIP.lvclass in the newest version. I was thinking of adding also ValueUIP but i dont want to just write the binary value to the XML. I need to think of a more elegant solution than that. I have an idea that requires rewriting the core functions a little, so that will be a direction for future development.

2. I will not write UIP for any more specific properties. Maybe some examples will include some of those but im not promising anything here. The point of this tool is to make it very easy for users to write their own UIPs. They can export anything they need for any project, and they can share it online. I will think however about a scripting based tool to generate UIPs.

3. 2016 version is just the version on which I built it. I had a lot of feeback about that and the next version will be released for LV2014 and compatible with 15 and 16.

4. Sample Code License is the license that is official for NI example code. I cannot use any other licence.

Stay tuned for updates 🙂

 

UPDATE: Bug in LV 2016 prevents me from being able to convert code to previous versions. Once the bug is fixed I will post 2015 version of package here. Untill then I will be posting 2016 versions only.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
StefanLemmens
Member Member
Member
on

Also tip strip and help description might be useful to include.

PrimaryKey
NI Employee (retired)
on

@StefanLemmens - where would you like to see those? I thought I added help description and tip strips where needed.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
StefanLemmens
Member Member
Member
on

As a UIP of the front panel controls. So you can set them from your tool. This would make a front panel more multi-language.

PrimaryKey
NI Employee (retired)
on

Ah, so you would like to get plugin for tip-strip and description. I might add those, but in the mean time you can easily add the yourself 🙂

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
StefanLemmens
Member Member
Member
on

I think I will, but it was just a suggestion to get it in the "official" version. Great tool by the way Smiley Happy

PrimaryKey
NI Employee (retired)
on

Thanks, if you would like to please share in the community some projects where you used it. You can also add links to the plugins, if you make them.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
PrimaryKey
NI Employee (retired)
on

@StefanLemmens - as per your request, two new plugins 🙂

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
PrimaryKey
NI Employee (retired)
on

Due to unforseen error I had to revert back to only installing on LV 2016 or later. I do not know how long and if I will be able to fix the tool for LV 2015. Sorry about that.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
JGSaenz
Member
Member
on

Hi, I have only tried it for a couple of tests, and I think it is a powerfull tool with a lot of potencial. But I just make an appointment, I think that you could resize first the control and then move it, I say this because it failed when resizing and moving an item from a test VI.

 

Thank you for your effort

PrimaryKey
NI Employee (retired)
on

Thanks for the feedback. I'm thinking about enforcing some order in the UIP handling, maybe using some INT value like "priority". In the mean time you can put the size and movement updates into separate states and invoke them in sequence. This way you make sure the ordering of properties will be like you want.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
kosist90
Active Participant
Active Participant
on

Hello,

I've got one question, please? Does it support localization by Unicode symbols (like for Hungarian, Slovakian, Russian, etc.)? Fast test what I've tried shows that it saves and reads back text; but in xml file all the symbols are messed up and not readable for "unicode" text. Thus, I can not edit xml file manually.

Should I then somehow change coding of xml-file, in its header? Or I am wrong somewhere?

 

Thanks a lot,

 

Sincerely, kosist90

 

logos_middle.jpg

JGSaenz
Member
Member
on

@PrimaryKey - thank you for the quick answear, I think that the priority idea would be great. Meanwhile I'll try the solution you suggested. 

PrimaryKey
NI Employee (retired)
on

@kosist90 - the caption capture does not support unicode right now but it's on my radar. I'm thinking about including the Unicode tools for LabVIEW in the caption plugin. In the mean time you can work on it yourself and if you prepare something that works I can add it to the tool 🙂

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
PrimaryKey
NI Employee (retired)
on

Right now I'm focusing on working out a couple of things in regard to building apps with UIM functions into EXE. I want to make this process as easy at the whole tool is designed to be. You guys should expect updates about that soon.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
PAW59
Member
Member
on

@PrimaryKey – Nice tool and great job on the support documentation. I look forward to giving this a try.  If I understand things correctly, this is used to create different “Visual States” of the UI which I see a lot of value in.  Have you considered creating different “Value States” of the controls in the UI as well?  Maybe there are other tools available to do this, but I see where it might be implemented in this tool as well, hence eliminating the need for another.  My thoughts are that these value states might apply only to controls with a given label prefix/filter (ie “Cfg_”).  You could programmatically load or save “Value States” for any controls that match the prefix filter, and thereby get different value configurations for various uses of the application.  In my LV apps, I often change DAQ channels, VISA resources, parts on test, etc so I have made something like this, but not anything as elegant as your UI manager.

 My apologies if you already do this (or have dismissed the idea), but I did not see this in my reading / watching, and thought this could be a great addition to what I see as a very useful tool.  Thanks for sharing your work.

PrimaryKey
NI Employee (retired)
on

@PAW59 - Values are just another property. You can easily work with values, and that requires you to use a mechanism to flatten variants to strings and unflatten them in a meaningful way. I did not create a value plugin in UIM because I couldn't figure out an elegant way to do this, but if you have one you just need to create a new plugin, edit it to work with values and you can use it. You can also point to it here so that the whole community benefits. 

 

Also if I find a good way to make this work, I will add it myself. You also don't need to add any tags to the names of controls, just define that your specific UIM state handles all of the controls on the UI by Label Name. I don't want to add any custom tags to the tool because that introduces a lot of complexity for a questionable gain in functionality.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
PAW59
Member
Member
on

@PrimaryKey  - Maybe I need to get more familiar with the app, and see what's possible.  In any event I like the general idea of what you have done, and will look to try it out soon.  Thanks. 

PrimaryKey
NI Employee (retired)
on

@PAW59 - I forgot to thank you for your feedback in the previous post 🙂

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
kosist90
Active Participant
Active Participant
on

@PAW59, if you want to apply some states just to particular controls at some moment, then I guess that you can create your custom plugin for UIM, which will filter out controls by label mask, and apply/read the states what you need. It'll be a bit overhead inside of the plugins, but it seems, that it's possible to do in this way.

kosist90
Active Participant
Active Participant
on

@PrimaryKey – is it possible to have UIM tool in a way, that it'll load plugins and config files not just from default location, but from one what you can set up? Let's say, UIM tool will have advanced settings, where you can define new path for plugins, and xml files storing. B/c going to default folder (to check plugins, or whatever) sometimes is quite annoying... I understand, that from application and API I can load files from wherever I want, but maybe it worth to have such possibility for tool itself? It's just an idea...

PrimaryKey
NI Employee (retired)
on

@kosist90 - You can put your own plugins in the plugin folder. The XML only represents one UIM so I will probably not allow to point to a location, because it doesnt make sense to load many XMLs. I think that providing API functions for that is opening the functionality enough. However if more people vote for this to be included I will give it a second thought.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
Terry_ALE
Active Participant Active Participant
Active Participant
on

This looks like a great tool and we plan to check it out.

Question: if I am implementing a theme for my application where various picture controls load images (from disk) based on a theme setting, could UIM support the loading of these images?  I know it could not automatically deduce the path of the image but maybe it could detect that an image is loaded and then I tell it where the paths are?  Or maybe I name the files (in a given path) a certain way so that the UIM knows to load the images into the appropriate picture control?


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
kosist90
Active Participant
Active Participant
on

Interesting topic, Terry_ALE...

I have one (but maybe a little bit stupid or crazy) idea.

By UIM plugin, you can read image data from the picture control. If you could setup for UIM plugin VI path to the folder, which contains images/pictures, then you can read those images from the disk, and compare one-by-one with the image data in the picture control (at the end, data in array "image" of the cluster "Image Data" will be the same). If you will find correspondance, then you can save file path to image to xml-configuration file, for UIM. If there is no such image on the disk, then you can create such an image, and also store path to it.

And next time, when UIM plugin will check data for picture control types, you can verify, whether it contains some image path, or not. If it contains, then you just load images to controls by those paths. If no, then you again do verification algorithm.

Maybe if I would have time, I'd play with it a bit also...

What do you think about this?

Terry_ALE
Active Participant Active Participant
Active Participant
on

That's cool, I like this idea!


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
PrimaryKey
NI Employee (retired)
on

Unlimited power! 😄

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
ravyh
Member
Member
on

This is a great tool, thank you for that, here are my thoughts and observations:

- CaptionUIP behaves strangely with control labels. I have rewritten my copy of the UIP so i might not be 100% correct but if i remember well it was manipulating the control's label.visible property - i would leave this job to the potential LabelUIP.

- Is there a reason not to consider the 'Traverse Clusters' option when specific CTL references are wired in (in capture & apply VIs)?

- Is there any place where we could submit custom UIPs or 'braches' of the already included ones? There is a lot of potential in UIPs and i'm sure that many developers go through the same path of writing the same ones.

kosist90
Active Participant
Active Participant
on

Good idea, ravyh - this is something, what I'd also like to ask Piotr, whether it's possible to put this project somewhere on GitHub, let's say? So everyone could collaborate, fix/update application and create new plugins?

 

Recently I was playing with the tool again, and I'd like to share some thoughts about possible updates, maybe?

 

1) UIP tool - add storing to config file also list of active plugins. B/c now when xml file is opened, tool enables all plugins by default, and it's not directly visible from the first tab. So when states are selected/applied, all plugins are active, although just some specific are used. It causes a bit issues, when updating current configuration - instead of couple plugins, it can store information from all of them.
2) Add to final exit dialog window option "Remember choise for future use", or something - so all the time when user closes window, it'll rather ask confirmation, or simply would be closed. Now it asks confirmation all the time...
3) If file is loaded, and some states are changed but not saved to file, and user closes tool, then ask user whether to save changes, or not.

 

Thank you,

sincerely, kosist90.

PrimaryKey
NI Employee (retired)
on

Added the XML specification for list of plugins used. Please try it out and let me know what you think.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
kosist90
Active Participant
Active Participant
on

Thank you, Piotr - this is exactly what is needed!

kosist90
Active Participant
Active Participant
on

Hello Piotr,

 

let me, please, share two more thoughts regarding the toolkit.

 

1. Maybe, it makes sense to clear/update field with captured data while changing VIs from the enum list. Let's say, if for the 1st VI data was captured, and user selects next one VI, then UI Mananger asks user to save changes, and after that clears field with data - so there would be not displayed configuration data for previous VI.
2. CaptionUIP - if caption is not visible, anyway, after applying of caption values, all captions become visible (although it's not expected behaviour, as for me)... I've checked the implementation, and there is that Label becomes invisible, and Caption visible. I guess, that CaptionUIP - if it saves just caption values - should not care about its visibility. If so, then maybe it makes sense also to capture with CaptionUIP plugin its visibility state? Of course, it's possible to change it, but this is one of toolkit's default plugin...

 

What is your opinion, please?

 

Thanks a lot,

Sincerely, kosist90

StefanLemmens
Member Member
Member
on

If we use multiple clusters of the same (strict) type the controls inside those clusters appear multiple times with the same label. This is not a huge problem since they are nested in unique clusters but the UI Manager will pop-up the error telling us that duplicate label names are used. We can avoid this by renaming all of the controls inside those clusters but this is quite a tedious thing to do and we like to keep the clusters as strict typedefs. Another way to deal with this is if the UI Manager would work by ID instead of by name. This can be done by adding the UID of a control as an attribute to the control-tag in the xml. The downside would be that it needs VI-scripting and won't run as an executable. Is there any reason why the controls are referenced by name instead of by UID? Since names are not necessarily unique and UID's are.

bigmanvstrashman_2
Member
Member
on

-Suggestion for UIM improvement-

Hello Piotr, First of all, thanks for your great work.

I love your tools, clean, easy to use / easy to integrate / Robust.

I think that you "UI Manager tool" windows can be improve with another tab with a tree display to modify XML file

With this tree display you may select directly the object :

- Replace values

- Remove UI plugin features

- Remove object

I think it can be a great improvement (no need to go into xml with notepad to remove stuff)...and you have already done beautiful tree view plugin

 

Thanks again

 PS : i have an error when i use quick drop function, only with ctrl+shift + U (ctrl+u work perfectly)

 

kosist90
Active Participant
Active Participant
on

Hello all,

let me share FontUIP implementation - plugin for storing of Font setting cluster, and Justification value for the UI elements' text.

It's not the most complete implementation, b/c, for examples, in case of slides, plots, multiply digital displays it stores info about the first one; but in most of cases it covers all texts. For all controls it's Caption, Label font settings, and then control-specific ones.

Please, you could download it by this link - https://github.com/kosist/fontuip/releases, fontuip.zip...

Looking forward for any feedback!

Enrico_Segre
Active Participant
Active Participant
on

+1 for visibility of Label/Caption.

Really, it looks like a great tool and I couldn't itch to try it on my big UI. First attempt: Capture. Wonderful.

Second step: Apply back, just to make sure. What?? all my UI messed up? Controls moved Up and down and left and right of one row? Aaah, all the labels which were set as invisible now show up, and it seems that they are accounted for in bounds...

I might try to dig into the plugin code someday, but...

kosist90
Active Participant
Active Participant
on

I'm curious about why controls were moved (b/c plugin should nicely store their exact positions); but also you need to pay attention while selecting of plugins what are used. Better to select just those, which are relevant for your current needs... And to remove visibility control of labels/captions in Labels/Captions plugins it's one minute job, so you could give it a try, and maybe you'll change your mind about the toolkit then )))

Enrico_Segre
Active Participant
Active Participant
on

Controls are moved because their labels become visible, and that is not taken into account in Position; since there is no writable property for the global dimension, I saw that for each supported control, SizeUIP sets the size of the possible subpart. E.g. for booleans is Button size. But then the size of the accessories is not taken into account.

Here is a trivial example before/after. Using all of the default 8 UIP, but that is not the point.

LabVIEW_2017-11-16_10-08-09.pngLabVIEW_2017-11-16_10-08-59.png

You're right that I could simply check out the Caption pugin before doing this. But, suppose I did want to record the label properties in the XML for some reason... Imho at least for this use case, the 1 minute solution is to have the UIP capture and restore also the label visibility [maybe position and orientation too, for completeness?], and not setting it to true out of no choice.

Enrico_Segre
Active Participant
Active Participant
on

 Don't get me wrong on the above, I think it is a very good tool.

I've been experimenting about something which is a long standing issue with labview UIs, the awful resizing of FPs.

Here is my quick go at it, which is somewhat promising for my purposes:

c.png

 r.png

I'm going to post some issues and ideas about in the support thread.

 

StefanLemmens
Member Member
Member
on

When I create a new plugin from the template, everything is copied into the specified folder but the new class still points to the vi's in the vi.lib instead of the new vi's. Can you update the TemplateUIP.lvclass to point to those vi's relatively instead of always using the ones from /<vilib>/NI/User Interface Manager/TemplateUIP/*.* ?

PrimaryKey
NI Employee (retired)
on

I will try to fix that. Thanks

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
kosist90
Active Participant
Active Participant
on

Recently, I've faced the following issue. When I was using UIM tool in project with many (2000+) VIs, it was working so slowly, that it was completely not possible to use it. When I've checked the code, I've found that by Timeout, tool scans VIs in memory, for displaying them in the list.

I'd suggest to do it just once, when tool is launched. Anyway, one can launch UIM window just if the project is opened - so, all VIs from the project would be already in the memory.

When I've modified it in this way, UIM tool started to work as previously - I could capture/set states from UIM configurator without any issues...

 

Thank you, 

Sincerely, kosist90.

PrimaryKey
NI Employee (retired)
on

Great idea. I will put it in the next version.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
kosist90
Active Participant
Active Participant
on

Thank you, Piotr, for confirming of the idea! Meanwhile, let me also to ask you about the following.

 

There is VI "UIM.lvclass:Get Default UIPs.vi", which has constants of 8 default plugins. Thus, these classes are loaded as dependencies to the project. I understand, that they have not so many methods, and they are quite "light", but I'd like just to reduce as much as possible number of dependencies for the project, especially if I'm not using all of them.
Would it be possible to read those classes from the folder dynamically, so then classes would be loaded to memory just after UIM tool would be used/called?

 

Thank you in advance,

Sincerely, kosist90

PrimaryKey
NI Employee (retired)
on

I decided against this because of potential issues related with users misplacing or breaking the folder structure. This was a design choice and I wouldn't like to change this.

Piotr Kruczkowski
Certified TestStand Architect
Certified LabVIEW Architect
kosist90
Active Participant
Active Participant
on

Thank you, Piotr! Now I see the reason.