LabVIEW Idea Exchange

Community Browser
Top Authors
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Graphs have a plot images property that allows us to draw anything we want on the graph area using picture commands. (example 1, example 2).

 

I propose to have a similar property for the front panel (or specific pane) area that would allow us to address any pixel and use picture commands at run time (e.g. Plot Images.Front to temporarily circle an area to guide the user or place a huge red warning text across the entire panel in case of a malfunction. We could use Plot Images.back to change a logo or show a connection diagram picture, or similar. (currently, we only have the limited background image property)

 

This should be entirely cosmetic and should not interfere with the operation of controls, etc.

 

 Here's how it could look like at run time...

 

When we have multiple Enum values using a same case it is difficult to see what are the values using it. It would be good if we have a Tip strip showing the values handled in that particular case would be more meaningful instead of having "Selector Value" as a tip strip.

 

There is also an idea on removing the tip strip totally and it got fair response.

 

TipStripCaseSelector.png

Please ignore if already suggested!

In LabVIEW 7.1 it was possible to select a single letter and format the font (Bold, Underline), without having to affect the rest of the letters.

 

Since LabVIEW 8.x (verified in 8.5) it is no longer possible to do so.  This was discovered while coding in LabVIEW 2009 SP1.

See images below:

 

 

In the above images, only the 'S' in Select was bold and underlined, whereas trying to do the same in more recent versions of LabVIEW causes the entire text to be formatted.  Why remove a good-working feature?

 

Please bring back that feature.

 

Thanks,

 

RayR

How did a program made for engineers and scientists make it 20+ years and not allow for subscripts and superscripts to be displayed. 

E=MC2 is really not all that powerful.

Are there no chemistry math or physics applications developed.

 

One nice method for implementing this is to add an additional mode to string display called markup bhere simple tags could be added around characters to alter their appearance much like is done in HTML.

  

Sometimes it is interesting to programmatically operate front panel ctrols/indicators using not only references, but arrays of references to existing panel items.

 

Suprisingly, statically linked control references can be droped on the diagram and then programmatically combined into an array, BUT such an array can not be manually assembled at coding time.

 

It should be possible to do it (just like usual constant arrays can be made). It would be easier to code, and take much less room on the diagram.

 

Also, to make such a constant array easier to read (and gain diagram surface anywhere statically linked control references are used), why not replacing the type indication of the constant with the name ? Type can be checked by pointing at the output wire anyway...

 

ActualProposed

Many of these VI properties are "Run-time" writeable.  They should not be set while the vi is in an "Idle" state 

 

Screenshot 2023-05-12 191049.png

Idea:

Double-click to a wire + holding <ctrl> or <alt> will call the wire-cleanup tool for this particular line => much faster than via context menu

cleanup

There are cases where a variant constant / control needs to have a data value. This can be done by right-clicking a control / constant, selecting Data Operations -> Copy Data, then right-clicking the variant and selecting Data Operations -> Paste Data. This can be time consuming for many variants.

 

variant_drag_1.png

 

The idea is to allow dragging and dropping of a control or constant onto a variant, and have the data copied to the variant:

variant_drag_2.png

Some resizable primitives (Build Array, Compound Arithmetic) have an option in their right click menu which allows you to add or remove elements:

 

Compound.PNG

 

The Index Array primitive is notably absent from that list. It would be very useful if we could add or remove elements like this:

 

Add Element.gif 

 

This is something a few power users have asked me about. There's no Instrument Driver or VIPM Idea Exchange, so I thought I would post it here.


What if VIPM could manage Instrument Drivers from IDNet?
There are a few key benefits this would offer us...

  • download IDNet drivers directly from VIPM 
  • track which version of a driver you are using for different projects and revert when necessary 
  • wrap up ID dependencies in a VIPC file for use at a customer site
Install Other Version.png
Get Info.png 

In the option dialog it could be nice to be able to define the default connector pane. In our company we use 5x3x3x5 from the first day and I imagine other company as there own standard. It's realy annoing to have to change the connector pane all the time on new VI's and on the Class VI Template from 4x2x2x4 to 5x3x3x5.

 

DefaultConnectorPane.png

To replace a VI or a control by an other one from the hard disk a lot of mouse action is necessary (See the first image). An other disadvantage is, that the file browser opens in the last used folder. It would help to start browsing on definable paths.

 

currently

 

 

If the "replace"-context-menu would be extended in the suggested way the "select a VI" function could be reached much faster. Additionally some useful entrees could be added to make replacing even more comfortable.

"Recently used ..." a palette with the last twenty VIs / functions / controls (was already suggested in other ideas)

"Favorites ..." a user definable favorites palette with VIs / functions / controls (was already suggested in other ideas)

"Select a VI..." moved one level up from "All Palettes" and opens a file browser with the last used path

"Browse in <path>" Opens a file dialog at the specified position; Entry(s) should be configurable.

 

 

future

When building an installer, the resulting installer window can be customized with:

 

  • Welcome Title
  • Welcome Message
  • Readme & License agreements, etc.
  • Welcome Graphics (578x383 BMP)
  • Banner Graphic (578x59 BMP)

 

Like in the good old days of vt100 terminals, we are flying completely blind after selecting (hopefully!) correctly sized BMP files and entering all other information, because we have no idea how things will actually look like in the end. There is not even a verification that the BMP sizes are actually correct.

 

IDEA: I propose a instant graphical preview that actually shows how the dialog will look like based on the entered titles and images. This way we can easily make correction, pick different images, make the title or message longer or shorter, and so on.

 

The idea could be expanded to include a full graphical install dialog editor (similar to the icon editor) where we can paste (from clipboard, or explorer, for example) and arrange any kind and size of images interactively, scale them, change the saturation (gradient), etc. At the end, the Installer builder would create the final BMPs in the correct size to be used.)

In MultiColumn listboxes there is a very useful (but slightly hidden, I'm sure a lot of people do not know about it) option that allows you to set the properties of entire rows or columns in one go by setting the active row or column to -2. Similarily you can set the properties of the headers by setting the row to -1.

 

However, if you want to set the properties of all rows or columns *except* the header, there is no such shortcut available; you have to first use the -2 option, then use -1 to undo the action on the header...

 

Idea: Add a third shortcut (-3 ?) to select all except the header.

 

SelectAllRowsExceptHeader.PNG

 

 

 

         in "debug mode" (retain wire values), be able to choose the "radix"

 

                something like this:

 

                toto.png

 

           yes, I know the custom probes, but I'm not talking about that. .
It would be nice and useful to have this in the native behavior of LabVIEW
                                        sorry for my poor english, i do my best

What bugs me about the VI Profiling Tool is that it is not intuitive.  The information it provides is really useful; however, it's so hidden and difficult to interpret that few people actually know where it is to use it.  Let's say you are simply acquiring data using DAQmx and writing that data to a file, as below:

 

Block Diagram of Inefficient DAQmx and File I/O

 

You might want to find out how to make this more efficient, but the only way you know is to insert Tick Count VIs and wrap your wires through sequence structures to do it.  It's annoying, and there are other ideas from JackDunaway (here) and JohnMc19 (here) which aim to simplify the use of those VIs. 

 

But why re-code your application when the VI Profiler can do it for you?  In addition, the VI profiler has more timing information (longest, shortest, average, total, etc) as well of number of runs and memory allocation data.

 

Good news: VI Profiler makes getting the data easy. 

Bad news: VI Profiler makes using the data difficult.

 

Why Using the Profiler is Difficult

 

First, you need to know it exists among a number of bland and condensed gray menus (Tools>>Profile>>Performance and Memory).

 

Next, you have to coordinate starting the profiler with starting your VI (start the Profiler, then start your VI, then stop your VI, then stop the Profiler).

 

Finally, you have to dig through a TON of VIs to find the ones that are relevant (I assume this is because, for polymorphic VIs, all of the instances are loaded into memory, even the dozens that aren't currently being used.)

 

When you find the VI you wish to examine, it will look something like this:

 

VI Profiler Currently

 

Have fun sorting through that!  When I finally find a VI that's hogging memory or speed, I'd expect to click on it to navigate to that VI.  NOPE!  All the VI Profiler does is make the line bold.  Not particularly easy to use...

 

I can't say if it's possible to get rid of VIs that aren't being used, or to make the menu option more visible to the user, but I do have an idea or two for how to make this information easier to understand in LabVIEW.

 

So here's what I suggest:

Adding a couple of check-boxes to the top of the VI Profiler will view in relation to your LabVIEW VI.  Notice the extra check boxes in the top of this image. 

 

VI Profiler With Color Shading

 

One checkbox allows you to color the column you wish to highlight in your LabVIEW code.  The other checkbox inserts a text comment containing the highlighted data straight into you LabVIEW code (right next to the sub VIs):

 

Shading SubVIs According to Relative Execution Speeds

From the above picture, you can clearly see the Write to Spreadsheet File VI is the slowest to execute.  Next in line are the Start DAQmx Task VI and then the Stop DAQmx Task VI.  So if a developer wanted to find out how to make his loop run faster (and therefore increase the rate data is read from his PC RAM), he would know the VIs that are more red are the ones he needs to focus on first.

 

Also, if a user wants to highlight the memory usage, he could select a memory column from the VI Profiler.

 

Highlight Average Memory Usage Per VI 

 

Then the LabVIEW block diagram would look like this:

 

Block Diagram Shaded in Blue for Average Memory Usage

In this case, if a developer wants to find out how he can optimize his code for memory usage, he knows where to start.

 

Side-note: I think selecting multiple colors at a time (one for each column of data you wish to highlight) would be cool, but that would start to get messy on the block diagram.

 

Other data, like the number of runs, could highlight which sections of code are running more often than others.

 

If we integrate the VI profiler more effectively into LabVIEW, there are a lot of benefits:

 

1. Re-coding to find timing specs won't be necessary for Sub-VIs

2. Monitoring memory allocations much easier (some users don't know it's possible with LabVIEW).

3. When there's a problem, it's easier to understand which SubVIs are slowing down code or hogging their memory.

4. Developers can further code development WHILE being wary of inefficiencies.

5. More integrated development environment "feel" for new customers or the experienced G-coder.

 

Please let me know what you think!

Whenever I drag an object's label or caption I can't help expecting the text justification to change too. Is there any use case where this would not be desired?

 

The current behaviour is particularly inconvenient when I first drag a label, and then later edit the label text:

 

update_justification.png

 

I feel that "auto-justification on drag" should apply to controls/indicators/constants on the front panel and block diagram.

 

A search of the idea exchange turned up a mention of this concept here (credit to M*H*), but it seems to have been lost as a sub-idea of a not-so-popular parent idea. I think it deserves a chance of its own!

 

When running NI web server, the domain URL of the server will always redirect to the NI web server (or Systemlink) login page. Every Labview-built web application/webservice has a name and therefore must have a path (like: https://example.com/mywebapp)

I would like to be able to set a default redirect in the NI Web Server configuration to redirect the domain url to the default web application on that server.

 

It can probably be done in some Apache config file, but those a really managed by the NI web server configuration and are easily corrupted. My forum post about this issue has not yet been answered.

Hi,

 

I suggest an option added to the Open VI Reference primitive to open that VI reference without any refees. I suggest option bit 10, i.e. option 0x200h:

 

OpenWithNoRefees.png

 

The demand for this arises when you want to access methods and properties of VIs that may be broken, while on the other hand you don't have any need to run those VIs - for instance in one of my current tools (BatchEditor) where I'm tasked with investigating hundreds of VIs simultaneously of which some could be broken or missing dependencies. Other situations would be tools for traversing project trees for instance. Opening a large number of healthy VI references takes a while, and when something is broken in a VI, opening even a single reference could take 30 seconds to minutes.

 

Currently you can suppress the "loading" and "searching" dialogs by setting option 0x20h on the Open VI Reference primitive, but that only loads the refnum silently as far as that will get you. Opening the refnum takes the same amount of time as if you could see those dialogs, and you are rewarded with an explorer window if a dependency search fails. I just want a way to open a VI refnum without even starting to look for dependencies, thus very quickly and guaranteed silently.

 

The relevant people would know that this request isn't that hard to implement, as it is kind of already possibly using some ninja tricks. I'd like such an option to be public.

 

Cheers,

Steen

So at the moment LabVIEW has the icon editor glphs stored in the following location.

 

<username>\Documents\LabVIEW Data\Glyphs

 

This is fine, until you login as another user.  Then you realize all of your icons are gone because LabVIEW installed the icons for the user that was logged in when LabVIEW was being installed.

 

Similarly a problem exists if I am distributing icon editor glyphs of my own.  I have a reuse package with a bunch of useful icons, and I have VIPM install them to that users folder.  The problem is if I login to a machine remotely, and perform the update as my user, then those icons are only installed for that user name, and not all users.

 

What this idea is for, is to have a shared folder for icon editor glyphs, which is used for all users on that PC.  Some place like

 

<LabVIEW Install>\Resources\Icon Editor Glyphs

 

would work, or...

 

<ProgramData>\National Instruments\Icon Editor Glyphs

 

Then icons can be installed in one folder, and be shared for all users.