LabVIEW Idea Exchange

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

The LabVIEW Task Manager is an outstanding tool for debugging LabVIEW Applications. It should be included in LabVIEW in my opinion.

 

a345fe65cbe713b29f505a851e0fe597.PNG

When you compare two Vis, one with a control, and the other one with the same control but with a change on the test justification (You can modify it by clicking on the dropdown menu of text settings, next to the pause button)

 

daguero_0-1680115378128.png

 

 

If you compare the vis at this moment it only shows this

----------------------------

Difference Type: text justification

 

As we can see there is missing information regarding other comparissons like label name, object type and detailed description like the following example

 

----------------------------

Label Name: Label1

Object Type: String

Difference Type: moved

Detailed Description: Changed from "(168,132)" to "(12,71)"

 

daguero_1-1680115378130.png

 

 

 

Consider that this is a small scenario (only comparing two indicators) where the difference can be found easily, but if you try this with bigger VIs it will have a lot of missing information

 

The fact that this information is not available is time consuming, eventhough they can be walked manually the record of changes is compromised

The Compare VI tool is immensely useful, except when identifying changes in case statements, where it is easily "confused". Take for example two VIs where the cases in the case statement are identical except that in one VI there is an additional case at the end, or has a renamed case. When you run the Compare VI tool, everything is out of whack. It shows differences between two case that are named totally different, ignoring the other case that is named exactly the same. When this happens, you end up manually comparing. It would be great if the Compare VI tool would ignore the case order and compare the actual case names when doing a compare, much like a text compare tool would. Maybe even make it an optional setting.

Whenever I'm working on let's say a state machine I find that I need to resize the case structure now and then. Mostly make it larger, then I clean up my code and want to make it smaller again. Often when I do this, the constants (usually) pointing out the next case either get longer wires since they get further away from the border (when making the structure larger), become hidden (structure made smaller and no auto-grow) or prevent the resize (auto-grow enabled).

A solution to this would be to be able to lock BD objects with respect to the nearest corner of an owning structure, in the same way the loop index terminal is locked wrt to the corner of a for or while loop.

 

LockToCorner.png

It would be nice to add another dimension to the system exec.vi that gives the user the option to open up the “Run as Administrator” command prompt in Windows 7.  This would enable a system administrator to use LabVIEW to make certain, currently restricted, changes to the computer.  I don’t believe it would create a security risk because you have to be logged in as an administrator anyway to have the access rights

 

As far as I’ve seen, there really is no string that you can enter into the command line that will instruct an elevated command prompt to open.   With this added functionality in the system exec vi, however, you will be given more flexibility with what you can do through your LabVIEW program.

 

Elevated?

Viewing this suggestion requires a bit of setup

  1. Forget you know what Silver controls look like
  2. Think about it from a user point of view
  3. Imagine a set of indicators including a sole boolean indicator show up on the screen. You have no comparison to other states of the boolean indicator.

New Bitmap Image.png

Is it True or False?

 

 

 

 

 

 

My opinion is that the gradient and lighter shade of green makes the state a little ambiguous. Not too much ambiguity, but enough to give me pause. Decreasing the gradient and darking the shade a little should help.

boolean.png

 

Yes, I realize this is a property you can set. This is more of a suggestion for setting the standard.

(this suggestion aside, my compliments to the designer of the Silver controls)

Trim Whitespace currently accepts strings (scalars).

 

I propose that Trim Whitespace be made polymorphic so that it also handles an array of strings (basically just wrap the scalar impelementation in a For Loop).

As touch screens are becoming very popular and limitation of using keyboards in the production sites, the OSK is becoming very popular requirement and in LabVIEW applications.

Add OSK as an in-built property to String and Numeric controller. Based on control type open the numeric only or full keyboard.

 

AdarshaPakala_0-1620737397931.png

 

 

The property can be set manually or programmatically.

Access to source code of OSK to customize the keyboard.

Multilingual keyboard option.

 

 

Thank you

Adarsh

CLA from 2014

If different libraries are created by different manufacturers, the same error code can occur multiple times and each has a different meaning.

If you include a project code (unique UID) with the error code, for example, it is possible to provide a unique error message for different program code origins.

 

 

1) Bring to Error Constant a Tag for the Project

 

michaeln_0-1731616848772.png

michaeln_1-1731616959219.png

 

If you attempt to write an Enum to a TDMS Property the function will return error -68007.  "This channel or property value contains a data type that is not recognized by this version of LabVIEW."  Reading and writing Enums as Channel Data however works just fine.

 

There are a few work arounds for writing and reading TDMS properties as Enums, attached is one such example where we write the value as a string, then have to convert that back later.  There is extra work involved because we need to generate an error if the string value doesn't exist in the enumeration provided.

 

Example_VI_BD.png

 

This idea is to ad native Enum Reading/Writing to TDMS properties.

Situation:

You want to show a coworker or customer something "real quick" in the LabVIEW.  So you open a new VI, open the block diagram, and open the quick drop accidentally because you thought the palettes were already loaded.  

 

DANGIT you forgot that you haven't accessed the palettes since you started LabVIEW.  Now you have to resort to awkward conversation defending LabVIEW about how awesome it is, even though it can sometimes be slow, etc, etc.  If you decide to skip the awkward conversation and instead try clicking out of the window you see this awful image:

 

notresponding1.png

 

Oh No! Did LabVIEW crash?  Is it broken?  How long will this take?

 

Solution:

Cancel button on the windows in question that allows you to stop loading the palettes (or switch it to loading in the background) so that you can go back to work and find your function the old fashion way.  Save you time.  Save you annoyance.  Save LabVIEW some street cred.

 

cancel quick drop load.png

 

The world is a happier place...

 

I often have code in my apps where some error-out nodes are not wired, simply because the errors are generally not of interest to me or the error wiring would clutter up my block diagram. Typically this happens a lot in UI handling code where a lot of property nodes are used. For these parts I would rely on the automatic error handling for debugging purposes. One of the drawbacks of this method is that program execution is suspended when the automatic error handler kicks in. Even worse if this happens for code that is in a loop. You're only option then would be to abort the app, which e.g. is no good for your reference-based objects, etc.

 

I would love to have the ability to just specify my own 'Automatic Error Handler', enabling me to decide what to do with the unhandled errors. Just logging them is what first comes to mind, but maybe also do some special stuff depending on the type of error, just like a 'normal' error handler. I want to be in control!

 

Added values of this is that your application then has a catch-all error handler which enables you to at least log every error that occurs, even if not wired through. (Everyone forgets to wire some error-out that they actually did want to wire one time or another don't they? ;-))

 

Ofcourse the proposed setting in the image would ideally also be available programmatically by application property nodes.

 

21-4-2013 22-55-19.png

Is it immediately obvious to you what the following code does?

 

SwapArrayElements.png

 

This rats nest simply swaps two elements in an array, a very common operation when trying to operate on a large array in-place.  The In Place Element Structure helps the looks a little, but I find the performance to lag when used in a tight loop, you know, the kind you encounter when you are trying to operate on large arrays.

 

SwapArrayElementsIPE.png

 

I would like a simple primitive (sorry too lazy for a picture) which simply swaps two elements in an array.  It should be similar to the Replace Array Subset function, except for two sets of index inputs and no subset input.  If you want to really make my day be sure to allow disabled inputs to swap rows and columns in one shot for 2D arrays, or pages or volumes or whatever in higher dimensional arrays.

Swap Long.jpg

(hope this hasn't been posted before, couldn't find it)

 

Since we now have 64 bit numbers, can we please have a Swap Long function?

 

This is a real hassle to do yourself (convert to byte array, rotate array, convert back? or flatten to string, flatten back with different byte order?). If you have large arrays of "quads", it is a real performance hit without the function.

 

Regards,

 

Wiebe.

For about a decade and a half I have consistently changed the default block diagram grid spacing to 4. Why, to match the shift arrow moves.  Hold it!  Why not make the shift arrow moves equal the grid spacing?  

 

Yes, I a genius!  The Kudos button is lower left!

Hello all,

 

This is a rather non-technical request.  When classes are created from Project Explorer, a color is assigned by default.  If that's a color you're fine with, you hastily modify the icon and move on to more important matters.

 

While the color assignment works well enough to serve its mundane purpose, I've noticed several weaknesses:

 

  1. The object "cube" icon is not so easily edited because of its pretty, blurred lines and several colors.
  2. As far as I can tell, there are exactly six color families that LabVIEW assigns to classes: "goldenrod," blue, green, red, yellow, and purple.
  3. Depending on the order you make your classes in, the colors can introduce confusion.  e.g. What if three layers of inheritence are all blue? Not a big deal, but confusing nonetheless.

 

My suggestion is this, and maybe there's a better way to do this:

 

In the class properties dialog, why not allow the user to simultaneously assign a color scheme to the icon and the class private data ("cube") icon, in one quick step?

 

This would adjust the hue of the "cube" icon and the VI Icon Template at the same time.  It could also optionally modify the wire color accordingly.

 

Leave everything else on the UI as it is - this would be a new feature in addition to that pre-existing methodogy.

 

Thank you as always,

 

Jim

 

Note: For the sake of simplicity I chose the color picker dialog that LabVIEW uses everywhere else.  Any of several other methods could be used, such as a pulldown menu with predefined color names and swatches.  (Say, a dozen selections)

 

suggestion.png

 

Related ideas I came across:

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Change-the-color-of-different-classes-in-the-project-explorer/idi-p/1958803

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Class-ICON-update-to-Class-wire-scheme/idi-p/2516440

Currently: When you "Find Missing Items" in a project, it thinks a few seconds (on a large project) and pops up a non-resizable window. You can double click on an item in the list, which closes the Missing Items list and it highlights the missing item in the project. You remove that item (or relink it) in the project, and then have to "Find Missing Items" again. Wait a few seconds, rinse, repeat...

 

Proposed:

1. When you double click on an item in the Missing Items list, do not close the list - leave it open, and gray out items that have been taken care of and are no longer "missing" (like the find dialog, when you delete a found item).

2. Allow the columns to be sorted by clicking on the header Name, Location in Project, or Path (this one holds a dear place in my heart)

3. Finally, allow the window to be resizable (a common request...).

 

(I have given the example for "Find Missing Items"... you can apply the same concepts to "Find Items with No Callers") 

Message Edited by mechelecengr on 08-26-2009 02:19 PM

When a control is disabled, especially a large table or string control, it would be nice if the scroll bar would remain active in order to view the contents of the control, without the ability to actually change it.

 

I am not asking that the default behavior be changed, however a right click property/property node "scroll when disabled" would certainly have some value.

 

 

The idea of overloading methods is wide spread in other languages. Labview already supports this in a way with polymorphic vis.

 

The code snippet below has 2 classes, parent and child

 

methods are described in the image below. 

 

The underline idea is that parent can define 1 method (poly.vi) that can handle multiple inputs (polymorphic) but does not have to implement the functionality for all the input types (it just needs to know about them) and the child class can override poly.vi and the interface it want to implement.

 

overloading methods.png

 

 

Even though the code above is correct, Labview gives an error.

 

"Dynamic dispatch VIs cannot be members of polymorphic VIs."

 

I dont see why not, since dynamic distpacthing will still have an entry point for both classes (poly.vi) and choosing which polymorphic vi to use will be define at design time.

 

 

Now that the SSP package is delivered on USB instead of DVDs (good stuff!), I have a minor request: Could you have the USB label include a release/version name on its label?

It might add too much of a cost depending on how you get them customized, but if that is not an issue it would be very practical to be able to see what the USB contains by its label (as we could with the DVDs).Smiley Happy

 

On a side note: Many companies have strict regulations on the use of USBs, and the need for such has increased with weaknesses like BadUSB. Perhaps NI could state something about how the USB sticks they send out are protected, either in the delivery package, or just as a statement on ni.com? That way people who need to convince their IT departments to allow them to use the NI USB sticks will have something to show (I'm sure you will have to add some legal disclaimers there as well , but that's OK).