LabVIEW Idea Exchange

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

Check the images for explanation:

 

Front Panel

 

Block Diagram

A tabbed wiring diagram comment field. Not a constant, just a placeholder for free text.

 

17661iA4DF90F9D4D1C4A7

 

 

Firefox is not publishing the PNG data that contains a snippet inside the Drag and Drop info, however the info is stored inside CFSTR_FILEDESCRIPTOR (source) it would be very helpfull if LabVIEW supported this as well.

 

TOn

How about having a timeout occurrence as an input for functions which support timeouts?

 

I am illustrating a single use case with queues (and a notifier) but I would see this as being beneficial to nearly ALL functions with timeout inputs.

 

Sometimes we'd like to wait for one of a few different functions (an example of mine which springs to mind is the Dequeue primitive).  At the moment we must essentially poll each primitive with a relatively short timeout, see if one responded and then handle accordingly.  This is (for me at least) ugly to look at and introduces polling which I generally don't like.  I'm an events man.

 

Occurrence timeout.png

 

What I propose would be that instead of simply defining a timeout in milliseconds we can define both a timeout (in milliseconds AND an occurrence for the timeout).  If we wire this data to several primitives (all sharing the same occurrence) the first primitive to receive data triggers the occurrence so that the others waiting in parallel return also.

 

In the case where no data arrives, each function waits the defined amount of time but upon timeout DOES NOT fire the occurrence.  This would cover corner cases where you may want different parallel processes to have different timeouts (Yes there are cases although they may be rare).  It is possible to change the "priorities" of the incoming queues in thie way.

 

Background info: One example where I could use this is for RT communication.  Here we multiplex many different commands over TCP or UDP.  On the API side it would be beneficial to be able to work with several strictly-typed queues to inject data into this communication pipe while still maintining maximum throughput.  I don't like using variants or flattened strings to achieve this multiplexing.

 

Being forced to poll means the code must decide between efficiency (low CPU usage) OR response time (setting a very low timeout).  Although the CPU load for polling may be low, it's not something I personally like implementing and I think it's generally to be avoided.

 

There IS a LVOOP solution to this particular problem but not everyone can use LVOOP in their projects (for various reasons).  I can envisage other use cases where interrupting a timeout would be desireable (Event structure, wait on ms, VISA read and so on and so forth).

 

Shane.

When using a program we all expect the UI to be resizable and to remember it's size and position.

 

Graham Beauregard made and excellent blog post in the UI Interest Group about Resizable UI’s in LabVIEW.

 

That helps to address how to make your front panel resizable...BUT...

 

It's a pain storing the size and position and restoring it as soon as the application starts without the user seeing it jump and resize.

Unless there's a better method that I'm not aware of, you have to store the size and position in a config file somewhere, then read the file and apply the settings on start up.

If you don't want the user to see the front panel jump and resize you have to have the front panel start hidden, then move and resize, then display.

How much better it would be if there were a couple of checkboxes in the VI properties dialog to do that automatically for you.

 

RememberScreenSize.PNG

RememberScreenPos.PNG

 

From what I'm led to believe...".Net has an application settings system which handles this stuff automatically". Why not LabVIEW?

I am migrating and updating some of my favorite tools to LV10, and one of the first to make the move is always my Connector Pane Editor.  This is a homemade tool I have had around since LV8.2, which allows me to quickly wire the connector pane in a style reminiscent of the Icon Editor.  I use my version constantly and can not live without it at this point.  I would like NI to adopt something similar for a few reasons.  1) I am a UI pragmatist, and this could probably use a little help in this regard.  2)  It is hard to incorporate tools like this into the IDE.  Right now I use the Tools menu which is ok, but I'd like to get this into the Right-Click menu that we currently use to edit the connector pane.  3) It drives me nuts when I am on a computer that does not have this.

 

Here is a screenshot of my version and zoom on the right-hand side.

 

21055i12DB0EFCA0AC94F9

 

21059iD4CEEA35EC3F9767

 

Features I like about my current version:

1) No squinting and carpal tunnel issues trying to land on tiny terminals

2) Auto increments controls, when one control is placed, the target is automatically incremented so the next control is ready to go.  Arrow keys allow you to skip controls.

3) Front panel image shows which control is currently being wired, which one is currently attached to a terminal when the mouse is over it, and is clickable to choose which control to wire.

4) Control descriptions are editable at the same time.

5) Shift-click grabs the currently wired terminal.  If you want to move a connection, Shift-click to pick it up, move to the new location, click to drop.

6) Clicking on a currently wired terminal replaces that connection with the current target, and makes the previously wired control the new target.  Swapping terminals is a two-click process.

7) Optional autowiring, Error In/Out as well as references/paths can be autowired according to my preferred style.

 

In short, even my crude attempt is an incredible timesaver, I can wire a ConPane in a matter of seconds, without the back and forth trips between the FP and the ConPane with the wiring tool.  A little NI-ification, as well as integration should make it even better.  If it gets screwed up, at least it should be similar to the Icon Editor which can be modified by those who want to badly enough.

 

 

Hi all,

 

When LabVIEW prompts the user to locate a file and the file is inside an llb or lvlibp, long names of VIs are truncated in the title bar such that the user cannot easily verify which VI was prompted for. This ought to be fixed by allowing users to resize the window horizontally.

 

Here is an example wherein it is ambiguous which VI is being prompted for. Allowing horizontal resizing of the window would offer a straightforward fix that would help people with waning short term memory capabilities.

lvlibp_browse_name_truncation.png

 

The relevant LabVIEW help topic unambiguously refers to this window as "File Dialog Box".

I am not referring to the File Dialog function on the palette.

 

Thanks as usual!

Mr. Jim

 

Using ctrl + scroll for switching between the cases is somewhat hard to use, because when you have lots of cases its difficult to remember what is the order of them so its harder to ctrl scroll the one you looking for than to go to the case selector. Moreover if you work with bigger sized structures (which happens sometimes) you may not even have the case selector on your screen so if you ctrl scroll, you can only deduct which case you see by the visible part of the code itself. That doesnt work for me, I always go to the selector.

 

But what if when the user uses ctrl + scroll a small popup would appear at the mouse pointer and when the user scrolls up and down the highligh would move up and down selecting any case in the given structure?

 

This would highly increase the usability.

 

Applicable to the Event structure as well.

 

case.png

Splitters bars are tricky to position exactly. It's a two-step process (because you have to move both sides), and even then it's frustratingly difficult to get them aligned to the pixel where you want them (especially with grids enabled, because they edges will want to stick to grid lines).

_carl_0-1638206727315.png

As with other front panel controls, it's be quite useful to be able to just select the splitter bar, and then use keyboard arrow keys to move it up and down (or left and right for vertical splitters).

 

(Apologies if this has been posted already, but my search didn't find it!)

Give us the option to input a Hex RGB code in the color palette.LabVIEW Color Palette.png

(This came up an a somewhat related discussion here. Possibly it would be easier to implement and thus has a better chance.)

 

The suggestion is to provide an event terminal that outputs the current number of queued up entries in the event queue for that particular event.

 

(The main purpose is to deal with stale event accumulation. Details are in the quoted idea thread.)

 

It seems there are a lot of NI services that start running directly after logging in to windows.  I even tried manually turning them off using msconfig thinking the services would start when LabView was loaded or on an 'as needed' basis, but I was wrong. 

The user should have the option of starting services at windows startup or at LabView startup, or even not at all if it is not required.  Perhaps this could be added to select the services within LabView's 'Options' menu.  An explanation of each service and why it is needed would be great also.  With all of the programs that run on our computers these days, the less running in the background, the better.

When selecting objects on the Front Panel and using the Shift + Up or Down arrow key, it moves them to the nearest grid line and successive shift+arrow keys keep things on the grid.  This is fine when selecting a single object, However, when selecting multiple objects that are not perfectly aligned, it may result in a misalignment.

 

The idea being suggested is when multiple objects are selected they should retain the original alignment between objects.  A more sophisticated version could allow the user to select in the options whether objects that are aligned within a given small number of pixels should automatically be perfectly aligned and moved together.  The idea is to prevent having to re-align an object after using the Shift + Arrow to move them.

 

See image below:

 

Problem:

Lets say you're writing a VI for stopping a process. Wanting the icon function to be recognizable at a glance, you open the icon editor and go to glyphs looking for this:

 

abort.png

 

You type "stop"... nothing... hmm. After muttering a few curses, you either trudge through the whole icon library, or you draw one.

 

Turns out you should have written "abort"! Oops. Not really intuitive.

 

Solution:

Turns out the glyph search is fairly useful. It can see if your search is in any part of the glyph file name. If the above glyph was named "abort stop.png", the search would have succeeded.

 

Glyphs would be a lot easier to find if they contain the noun and a handful of verbs that they represent. For example:

 

"support.png" support.png  -> "support checkmark yes.png" (support?)

 

"keep.png"keep.png     -> "keep checkmark yes.png" (keep?)

 

"create.png"Create.png     -> "create new.png"

 

"file.png"file.png         -> "file disk save.png"

 

 

Alternate Solution:

Impliment tags into the glyph library with the ability to add new tags to current glyphs. This would avoid long file names.

 

The Message Box from LabVIEW doesn't look very nice. On Windows Systems user32.dll provide a better Message Box.

See also MSDN entry at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms645505%28v=vs.85%29.aspx

 

It is possible to set the Buttons

  • Abort, Retry, Ignore
  • Cancel, Try Again, Continue
  • Help Button (!!!)
  • Ok
  • Ok, Cancel
  • Retry, Cancel
  • Yes, No
  • Yes, No, Cancel

Icons for

  • Error, Stop
  • Question
  • Exclamation or Warning
  • Asterisk, Information

and many more ....

 

LabVIEW should support this MessageBox on Windows Systems as additional MessageBox beside the existing.

 

Example MessageBoxA.png

When String is connected to path, then wire is broken as expected, but we can insert String To Path conversion primitive with single mouse click:

 

STR.png

 

Please do the same for the case when Boolean connected to Numeric:

 

bool.png

Thank you!

What if you need to run exe as admin mode?

 

Currently Build Specifications is not enought for doing it.

Here you are what you need to do:

 

1. Built the executable

2. Install mt.exe (https://www.microsoft.com/en-us/download/confirmation.aspx?id=8279)
3. Opened cmd as adminstrator and ran mt.exe -inputresource:"Application directory\application.exe" -out:application.manifest
4. Opened application.manifest and changed input="asInvoker" to "requireAdministrator".
5. Saved application.manifest
6. ran mt.exe -manifest:application.manifest -outputresource:"Application directory\application.exe";#1

 

Is it an effective method?

 

It would be better the following:

1. Create Manifest

2. Easy modification in My Application Properties

Capture1.JPG

 

 

Hope it helps to do a more effective LabVIEW!

 

Álvaro

We've had a few recent discussions relating to labels of block diagram objects. I don't think the following came up yet, but I think it's one area where improvements are really needed.

 

If we create a property node or invoke node, it has a label indentical to the linked object. However, this label can be changed to anything we want, possibly leading to code that is very confusing! For example if we had two terminals labeled A and B, we could label the property node linked to A with "B" and vice versa, completely obfuscating the code!

 

(The beginner could also incorrectly assume that changing the label is the correct way to change the association to a different terminal)

 

These nodes should really have the label of the linked terminal hardwired to the corresponding terminal name, because anything else simply would not make a lot of sense.

 

My graphic is not as nice as Jack's here, but I think the idea is clear. It would certainly need a few tweaks from the art department. 😉

 

 

We might need an option to hide the label. Oversized labels should be truncated for display, only showing the full text when hovering.

There is a need to have the capabilities to make comment about a type def/strict type def control (in the control editor) that are only visible in the control editor.

 

Control Editor Comment.png

 

For instance you might want to point to the person editing the control that he/she should not rename that particular cluster element or this will brake the code (and you may want to use an arrow pointing to the element along with some text).

 

Currently, if you do that the comment become part of the control and is visible for every front panel instance. This bring absolutely nothing to be able to see that type of comment on the FP and it should not be seen by the user of the control (because this actually make the type def so large an unwieldy).

 

Therefore, there should be a need to select a group of decorations and mark them has only visible in the control editor .

 

Note: Right now the only way to achieve something similar to what I describe, is to put the comment in the control description, but this is no great because:

 

  1. People tend to not expect control to have VI description.
  2. This does not allow to use arrow and such to directly point  to a specific part of a control.

 

PJM