LabVIEW Idea Exchange

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

The various instances of the polymoprhic XML Close VI all have standard error in functionality.  In other words, they run normally only if no error occurred before they run.  That can lead to references not getting closed if errors occur in sections of code that execute earlier.

 

Instead, the XML Close VI instances should run normally even if an error occurred before they run.  When calling the XML Close VI, it is a nuisance to have to clear the error passed in to it and then merge the previous error with the error output from the VI.

 

In addition, most of the other Close functions and VIs in LabVIEW run normally even if an error occurred before they run (Close File, UDP Close, VISA Close, Close Reference, DataSocket Close, etc.).

 

There may be other VIs and functions that have the same behavior as the current XML Close VI and they should be changed as well.  Examples include TDMS Close, Close Zip File VI, etc.

When using the radix option for case selector values (hex, binary) most often we want leading zeros to easily distinguish between "000000ff", "0000ff00" and "00ff0000". But right now the case structure doesn't even accept numbers with leading zeros!

 

So allow them and when doing so preset them to show as much zeros as are nibbles in the number (for hex) as suggested here...

The only way I know of getting the call chain of a VI is with the Call Chain primitive, which only works on *this* VI (the VI calling the primitive). It would be nice to expose that as a VI server property, so we could get the call chain of any VI by reference.

 

callchain.png

To be able to use 3rd party version control tools such as Git effectively, you need to be able to have a program that merges files and can compare files. Unfortunately LVdiff and LVmerge are only available in the professional labview version, but being able to use a VC system of your choice is such a basic need that it should be available for everyone. That way  you would be able to use the basic VC features, better integration with labview could still be integrated in the professional package.

Inspired by this idea... Changing the fill colour of thermometer according to the temperature

 

You want to customize the behavior of a LabVIEW control or indicator. The normal answer is to create an XControl. The problem is that you want to the XControl to have the same properties and methods as the base control. You have to recreate all the methods and properties yourself and then handle them all in your facade.

 

It would be nice to be able to create an XControl from a base control with all of it's properties and methods created for you. The you could then extend a base control instead of recreating one from scratch.

Please create a meaningful error message in case the application builder errors due to long path names.

 

The error below was ultimately fixed by shortening the output path in the build spec. It took me however more than half a day of fiddling around with alternative solutions to reach my end goal (https://forums.ni.com/t5/NI-Web-Technology-Lead-User/Hosting-WebVI-on-cRIO-following-KB-article/gpm-p/4061052/highlight/true#M282).

 

While explaining it to my colleague it hit me that the build output path could be too long, shortened it, built it, deployed it, and it worked.

 

 

Build error.PNG

I would like to make a small workind change on another suggestion found HERE.

 

I would like to be able to declare LVOOP classes as ABSTRACT.

 

One example is a spectrometer class I have developed which provides much of the needed functionality but which is not designed to actually DO anything (Get name, Set Name, GET calibration coefficients, SET calibration Coefficients and so on).  At the moment I can instantiate an object of this class as with any "VALID" class which then just returns an error at run-time because the functionality is not complete.

 

By preventing users from (either willfully or accidentally) dropping what is essentially an abstract class onto the BD of a program we could prevent some awkward bugs.

 

Shane.

New features that help us code more efficiently are great, but recently some have been added that change how things work and can be more of a detriment for people not used to them. I'm simply asking for an option to be added when a feature like this is in a new version of LabVIEW. Here are two examples of what I mean, from each version's documentation:

 

2017:

  • Maintaining Wire Connections When Moving Objects - LabVIEW 2017 automatically maintains wire connectivity when you move objects in and out of structures on the block diagram.

2019: 

  • Create Constant, Create Control, and Create Indicator - Creates a constant, control, or indicator from a terminal. These shortcut menu items have long been available and are now duplicated at the top of the shortcut menu.

Both of these are disruptive if you're used to doing things a certain way. Maintaining wire connections is nice, but only when I want it to happen (which is how it works when you disable it, it's much better.) I spent more time undoing and removing objects through structures than I ever saved from the automatic wiring. The one in 2019 just doesn't make sense to me. Those functions are already in the shortcut menu. Moving them to the top just moves other functions, like "Use default if unwired", that I constantly use.

 

I've disabled both of these using keys added to the configuration file, so it's possible that an option can do the same. I just wish it was included so I didn't have to go hunting for the configuration key every time something like this is added.

Does this idea need any more explanation? If someone swipes the box out of a mail slot at work and installs it at home, that becomes the "at home" installation. 

 

I realize Ideas with pictures do better, so here's a Golden Retriever puppy...

 

 

Message Edited by Broken Arrow on 06-11-2010 07:40 AM

When you use XControl in your Ui it's quite difficult to navigate into facade VI controls using tab key. Management of this navigation require a lot of work.

A way to fix this may consist in adding an "get focus" event to the facade VI. This event should be trigged each time XControl receive the focus in the Ui.

In addition to this event, we need to be able to have way to go out the facade VI when all reachable controls have been browsed.

 

Use case :

I've done an simple XControl containing only a string control with a "PlaceHolder" string. When string control is empty you configure it to display a "ghost" text to help user to fill in each fied with the right data.

If implementing "placeHolder" feature in the XControl was done in 4 hours, adding the capacity to navigate through each XControl and other object in the Ui has requiered 1 day and I can't ensure that my implementation is free of bug... 

Stop backward flowing wires in Stacked Sequences.

Stacked Sequence problem.png

 

The Sequence Local should function in the same way that Shift Registers do (in regards to placement)

HTML5 supports WebSockets which allows low-latency, two-way communication between browser and server.  There are various screen-sharing technologies in existence based on this, but integrating a similar server in LabVIEW would enable capabilities that could be accessed from any desktop or mobile browser, no configuration required on the client side.  The key to this feature is the ability to configure the server and enable sharing from within LabVIEW or from a VI (i.e. a LabVIEW-aware server).

 

An idea of what this could do:

  • Remote control of LabVIEW development machine

remoteaccess_composite.png 

 

  • Selective sharing of windows, for instance allowing interaction with only LabVIEW windows.  The server application would have a mechanism for selecting which of the open windows to share.

app selection.png

  • A view-only mode so users could check the status of a running application from anywhere, including their cell phone.

 

remoteaccess_fo.png 

  • A brat or Express VI that when dropped in a VI would automatically share the VI when run.
  • Third-party toolkits and applications could build in sharing capability for their own app using the API.

 

This feature would be more powerful than Remote Panels in that:

  • It would give access to the LabVIEW development environment in addition to running applications.
  • No configuration or special software required on the client side, enabling multiple platforms including mobile.

Can somebody explain to me why the Colour box control is on the Numeric Palette as a control but as a constant it's on the Dialog & User Interface Palette???

 

 

CB Control.PNG CB Constant.PNG

 

It doesn't matter HOW many times I look for the Colour box constant on the Numeric palette and then move to the Dialog & User Interface palette, I NEVER learn.

 

Please please move the constant to the Numeric palette where it belongs.

 

Shane.

 

 

Both the diagram disable structure and the conditional disable structure are intended to allow easy enabling or disabling of blocks of code. These nodes ought to have no effect on a diagram except to remove or add sections of diagram. But they currently have the side effect of formalizing the blocks of code they surround, as if they were a sequence structure. There are two cases where this is undesirable.

 

1. Without the disable structure, these two loops would run in parallel. 

 conddis_unwantedsync.png

2. This VI arguably ought to terminate because that wire dependency from the loop to the Stop primitive is only created because whatever is in the disabled frame needs the result of the loop, but the code in the enabled frame does not. But because the disable structure acts as part of the code, this loop runs forever.

 conddis_shouldterminate.png

The key input of the Map Get / Replace Value node of an In Place Element structure is not a required input. This can lead to bugs, where a developer may have forgotten to wire the key. All other Map primitives require the key input.

map_node_key_input.PNG

The idea is to simply make the key a required input.

 

(The map isn't a required input either, but has a documented default. It should probably be required too though.)

How often have you seen this sort of thing.

There is a silly idea, but it seems to have lots of votes (or more votes than it should compared to other good ideas).

In this silly case the idea has 634 kudos and it may even have a chance of being implemented in the next update of LabVIEW

but you are sure that there must be at least the same number of people who positively hate this idea but we have no idea of telling this.....

You want to BOO or give a thumbs down but at the moment you can't.

eg.

Negative Kudos 1.gif

 

Well if the LabVIEW Idea Exchange had a BOO button like this

Boo Button.gif

or it could be a thumbs down icon

then the problem would be solved.

 

 

We would then know how many people HATE the idea and not just those who love it...

so instead of just positive kudos we would judge a good idea by the RATIO of Good to Bad votes....

This I think would far better reflect the relevance, importance etc of an idea-  what does everyone else think???

But then again - If I get no negative Kudos  who would know??????

At the moment the kudos assumes that each person who submits a kudos knows what he is talking about....

 

Here is what it would look like - and we would know that 634 kudos is no longer considered so good anymore when we know that it also got 99,999 boo's.

 

Negative Kudos 2 - Boos.gif

A note from an NI-AE made me think: Why is there no list of LabVIEW ini file keys available, provided by the maker of the software?

 

So I propose the idea(s):

- NI should make a list of ini file keys with their usage. They may hide the "most secret" parts, but should keep the list up-to-date. There also should be given the LabVIEW version the key works on...

- NI could provide an INI file editor for the LabVIEW.ini file, similar to opening the page "about:config" in MozillaFirefox. The could even pop up the warning like FireFox does when opening that page...

The "data" control of a XControl cannot be linked directly to an existing control typedef ... It can only contain it ! (You have to include your existing cluster in the data cluster.)

 

The problem is that when you want to access the value property of the XControl, you always have to bundle or unbundle it ...

 

It would be nice to be able to create a XControl data, as a link to an existing Control typedef.

 

I hope i am clear ?

 

I know a solution of my problem  could be to create my typedef as the data of the XControl ... but in this case i cannot create many different XControls for a unique data type !

And i don't think that linking datatype to dataview is very smart ! ( It is not MVC compliant ! )

I would like to see an invert node option for all the boolean operators  (didn't we used to have this ?) For consistancy with the rest of the boolean operators the select primitave should have this for its select input too (And here I would argue that the tertiary operator is a boolean operator but, I know its in the comparision palette so please don't move it) .   I learned my logic a long long time ago and frequently use And not, Or not and if-then.  the extra not nodes clutter up my BD unless  I use the multiple boolean and frankly the symbol on that function is small enough that I can miss-read the mode.

We do Create Constant/Control/Indicator a lot when working on a block diagram. It could be much easier. How about the following:

  Double-click on output terminal with wiring tool - Create Indicator.
  Double-click on input terminal with wiring tool - Create Control.
  Ctrl-click on input or output terminal with wiring tool - Create Constant.

Front Panel Control/Indicator

  Ctrl-click on node should Create Property Node.
  Ctrl-double click should Create Invoke Node.