LabVIEW Idea Exchange

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

I find that my code window quickly becomes filled up with comments and notes.  Could we, maybe, have a small comment icon, which we can put in the code and which displays the comment when you hover your mouse pointer over it? 

 

  My present workaround is to put larger comments in the documentation window and number them, so that I just have to put a reference number in the code.  Maybe these two documentation devices could be dynamically linked together somehow.

At the moment I have to add a simple text label to each case in a case structure, for the better readability of the block diagram for other programmers. A helpful innovation would be the ability of adding a label to each case.

I bet you know this problem: You are developing your application and need to make a small simple change in the code. The launch time of the application you are developing is perhaps 10-30 seconds (deploying Shared Variables (formerly known as Feared Variables) or some other time consuming task). In other words, a little change in the code takes quite some time to test.

 

What if you had a Debug Tool, where any selected parts of the diagram could be executed with a simple right click?. The right click should work even without the main application or containing VI being in an executable state.

 

Usually when I need to test any new code or changes, I copy the new changes of the diagram to a new VI and then run a simple test. But this often requires creating new indicators and controls to test the VI - boring !.

 

So, if you are like me, you sometimes do not check new code and then sometimes it simply does not work.

 

/søren 


您好!能否在labvIEW前面板添加一个类似于microsoft office world 中格式刷功能的按钮?以实现以下功能:
同时进行多个前面板的控件标签属性操作,当用户在前面板选择一个控件文本标签,并设置好该文本标签后
,点击该按钮,可以讲该样式自动填充到其他控件文本中,使其他控件文本标签具有相同的文本样式。

hello!can you add a button that seem as fromatting brush of microsoft office world in front panel of labview? and it can
enable following feature:
it can change text label style of controls quickly in front panel,when customer select the text label of control in
front panel,and they have set this text label of control,and it auto copy this text label style to others if customer
click the button. and it enable others have the same text label style.
finally,i think it can apply to change many text label style of controls if customer set many controls.
thank you!
best regards.
from angela

I find conditional disables very useful for managing complex applications that require multiple configurations.  Often I have several versions of an application with some features removed (disabled depending on hardware support or target platform)  and use a conditional token to turn on or off these features.  What i find frustrating is that this is not connected (at least as far as I know) to the build process.  I would like the project conditional disable symbols to be overridable in the build script so that I can have several build scripts with different settings.

When you wire an enum or ring to a case statement, cases that handle multiple enum/ring items use "..." notation to collapse multiple items if they are contiguous. Most of the time this is fine. But when the ring/enum has only a few items (where displaying all of them would not take too much space) or when the items are not ordered, but random, it's easy to NOT notice that a particular enum/ring item is handled by a particular case, becuase... it's not displayed!!! That "..." can hide a lot of information!

 

I propose adding a boolean property, "Show all items in selector", to the "Edit Items" tab on the enum/ring properties.

    • When "Show all items in selector" is checked, the "..." notation is disabled and all item names are explicitly listed.
    • When "Show All Items" is not checked, the current "..." behavior is unchanged.

I like to be able to see and understand what the code is doing without having to continually pull up other code or data structures as references. Labview hides a LOT of information that is necessary for the code to run correctly, but not visually obviouse when looking at the block diagram. Although this is a natural outcome of the implementation of Labview, it doesn't mean that there aren't ways to make the hidden state of objects more visually apparent. This is an example of doing just that...

Idea being you could make super clean block diagrams.  I didn't spend long on the picture but you get the idea.

 

Conduits.png

Add an option to the right-click menu that allows a developer to "lock" a constant value on the block diagram.  Typedefs can currently provide this functionality, but in many circumstances constants don't demand their own control.  This would provide the developer with a small assurance that a constant hasn't been accidentally changed.

 

The constant could be "unlocked" via the right-click menu as well.

Similar to the discussions on command and data cluster primitives, it seems many programmers would like the ability to have a primitive to move a message and some additional data easily. The current methods involve casting specific data types to a generic types (i.e. Variants) which are then passed to a sub-process. Once in the sub-process, the process reverses and the data is cast back to the specific type. Many times this casting to and from generic data types not only takes time and resources but also requires managing many type def'ed controls for each specific data type used.

 

Here is a traditional method for passing data between processes:

Alternately, if the message (such as an enum) included the specific data type definition then no casting is required. This idea involves embedding inheritance of private class data into a defined LabVIEW primitive where each command is its own class of private data. It's like having your cake and eating it too! Or, it's like having your message and the data too! (cheesy, I know). Below is an idea for the configuration of the "Defined Enum":

Like a tab control, each tab is an Enum Item and the controls within the tab is the specific data associated with the item. The Defined Enum loads a drop-down selection list of the private data associated with the current item.

In the block diagram, like property nodes, the accessors would be used to get or set the values of the enum items. 

The sales pitch: When developing large applications where multiple services are running in parallel it is often difficult to develop completely modular processes because the casting to and from specific data types require a control dependency between the caller and the callee. Eliminating generic data casting would help develop a more robust hierarchy. I apologize if this idea is a repeat. Let me know what you think.

-Ryan

I've posted an idea, but didn't add any pic to explain:
http://forums.ni.com/t5/ideas/v2/ideapage/blog-id/labviewideas/article-id/16975/tab/rich

 

 

I've attached an image with this idea. Sorry for the duplicate posts.

These are simple examples but can get more complicated. For example, usage 2 can have more input (e.g. 4) it will have 16 possibilities which have different simplified code.

 

USAGE 1: User wires some input on the block diagram, when the simplify button is used, it simplifies the complicated code to a simple one ( noting that it is not the unique solution as shown in USAGE 3)

USAGE 2: If for the application, the user changes the value of the input and he gets different output; this table can get the simplified; or the "best fit" for the number of data present.

 

In http://forums.ni.com/t5/ideas/v2/ideapage/blog-id/labviewideas/article-id/16975/tab/rich, I wanted to compare that  Partial fraction expansion vi is not widely used except for certain applications yet it is important and beneficial.

Same goes for this idea.

 

Best


 

Hi All,

 

I'd like to put up an idea I had about a 'pass through' node for case structures. I had the idea when working with the in-place element. What I would like is a pair of nodes - like shift register nodes - where the input and output are identical unless the inner loop is wired. In this way it would be like a shift register on a FOR LOOP when the index is wired to zero.

 

The idea of this would be to clean up case structures - in particular where you might have 3 or 4 wires going through multiple cases in a state machine. You have to make sure they are all wired up and they clutter up your block diagram. With these nodes you only have to work on the wire you are actually changing in a particular case and then ignore the rest of them.

 

I also though that if you wire a cluster to a 'pass through' node you could have the option to 'Unbundle/Bundle Elements' similar to the option in the InPlace Element Structure. Please note this change I'm suggesting is cosmetic/useability - I don't think this should have inplaceness associated with it. I reused the nodes because they were easy to copy and paste.

 

I've added an example of what it could look like - this is a simple case structure to initialise a cluster, increment it and exit the state machine. In the initialise state the inside of the 'pass through node' is wired and then goes into the shift register. For the increment case it is unbundled, incremented, rebundled and passed back out. Note that for both these cases the False boolean is passed through the shift register - without a wire - and then enters the stop node. In the exit case the cluster data is passed through the case without a wire and could be read outside the loop by wiring to the shift register (if I'd thought to draw it) whlie in this case the boolean now reads true and the loop is stopped.

 

LV_Case_Structure.png

 

 The second change I'd like to suggest is to allow a case structure node to be associated with a specific element in a cluster. Allow us to wire a cluster - which contains at least one string, enum, boolean etc - straight to the case structure node and out the other side. Then right click on the case structure node to choose which element the case structure reads!

 

LV_Case02.png

 

 And of course allow the 'case structure node' to double as a 'pass through node' also and I would be very happy programmer! 

 

I look forward to your comments - and Kudos,

 

Thanks,

Dave

 

 

 

 

PS if anyone has a better name than 'pass though node' please holler - it sounds worrying like a laxative;-)

Some times I have parallel while loops. In this case, it would be useful if I could switch between the different loops, as in a case loop, without the program code changes.

This would be much easier than the endless down- and upscroll...

 

Loop struct.JPG

 

Thanks!

 

Present commenting.PNG

 

Commenting like this needs more effort(Drawing arrow etc).

 

How about giving options like this??

 

1.PNG 

 

 

 

 

2.PNG

Hi,

 

I think it'd be better if NI would allow some ordinary VIs (the good group for example is the 'triangle VIs) to be verically orientated like this:

 

new.png

or like this:

 

new1.png

 

Of course the symbol of the operation needed to be not rotated for securing easy readibility.

 

Main advantage: saving the development space in horizontal dimension.

Other advantage: better visibility.

 

No disadvanteges in my opinion

The sequence locals in a stacked sequence structure appears on the right side, both in the parent frame and in the other frames. It'll be nice to read from the sequence locals if it appears on the left side in the frames which reads values from it and right side in the frame which write to it.

Sorting on array of clusters should have options for selecting which element to sort on.

Its doable now but requires extra codes and wastes development time because at present you have to unbundle the cluster,

make the sort order element the first element, re-bundle, do the sort and then re-cluster again.

It would  be much simpler if you could just select the element you want to select for sorting array of clusters by right clicking on the sort icon

after wiring the array of clusters to the sort icon.

Das Markieren von Objekten sollte auf zwei verschiedene Arten erfolgen:

 

  • Wird das Markierungsfenster z.B. von links nach rechts aufgezogen, so werden alle Objekte markiert, die von diesem Fenster geschnitten werden, auch wenn es nur ein Pixel ist.
  • Wird das Fenster dagegen von rechts nach links aufgezogen, so werden nur die Objekt markiert, die vollständig innerhalb des Fensters liegen.

I'd be nice to have a conditional disable (CD) for typedefs:

 

I sometimes use CDs to disable code which calls e.g. instrument drivers which are only installed on a lab PC, but not on the office PC where I also do code development. I can then at least load the code without broken arrow and develop those parts which do not use the drivers.

However, when the instr drivers make use of typedefs, these occur on the front panel. A CD on the front panel would therefore be helpful.

 

 

Hi,

 

I would like to have a native error cluster connection on timer VIs so that I'm able to use the error cluster to make sure that the VI is executed at the right moment without using sequence structures.

 

Here is an example of how this feature could be used to avoid sequence structures.

 

[img]http://forums.ni.com/ni/attachments/ni/labviewideas/15500/1/Timestamp_Errorcluster1.png[/img]

 

[img]http://forums.ni.com/ni/attachments/ni/labviewideas/15500/2/Timestamp_Errorcluster2.png[/img]

 

The VI 😉

 

[img]http://forums.ni.com/ni/attachments/ni/labviewideas/15500/3/Timestamp_Errorcluster3.png[/img]

 

 

I've built the VI for my own purposes, but I think this might come handy to other LabVIEW users, too. Simple, but useful. 🙂

 

Regards

Manuel

 

 

 

 

 

Download All

Sometimes a change can break many wires all over the code. A structural change in a "Type Def." is a typical case. Hidden wires in Cases, Stacked Sequence or just out of the window, can make the use of "Remove Broken Wires" (Ctrl+B) a nightmare, since it removes all broken wires.

The idea is to allow user to select part of the code, including broken wires, in order to restrict the action of the  "Remove Broken Wires" command only the selected broken wires will be removed.