LabVIEW Idea Exchange

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

Unless I'm missing something Linked Tunnels will not work with a Case Structure's selector terminal. The only reason I can see for this is that it might be considered poor programming style.

 

Linked Tunnel for Conditional Terminal.png

I was trying to find where the Network Stream Endpoint controls were located.  I originally thought they were Refnums (I mis-interpreted a LabVIEW Help description), but didn't find them on the Refnum Palette (along with other "missing" Refnums, as noted in a previous Idea Exchange).  I then realized they were I/O Controls, so looked on the I/O Palette, where they are also "missing".

 

Can we please get all the Refnums on the Refnum Palette, and all of the I/O Controls on the I/O Palette?  If there are "too many" to fit comfortably, create sub-Palettes ("Advanced", "Obscure", "Seldom Used") for them.

 

BS

One customer came up with code to programmatically scale front panel. Attached are the VIs that show what he came up with.  ResizeMe.vi is the front panel that resizes as the window is resized. It would be nice if the Scale all Objects to Pane feature worked more this way.

I'm having trouble posting a picture on here for some reason but here is what I mean:

 

http://i.imgur.com/ihhn7gm.png

 

When right clicking on a class to generate a new VI, say with dynamic dispatch, have LabVIEW automatically place some large text at the top of the front panel.  I do this with just about all parent and child classes to make sure I don't end up getting confused due to their similar layout or appearance.  It doesn't take for ever to double click and type, and then select again and do 'ctrl+' a bunch of times, but I know I would find it extremely helpful if there was some large text there to begin with.

 

Does anyone agree?  Does anyone do this already?

 

Thanks

-Pat

 

PS- it would also be nice if there was a better way for me select an Idea Label (I typed in LVOOP and it didn't like it, So now I've just put UI and usablity...)

When closing a remote debugging connection, LabVIEW asks if a changed class should be saved. This is nonsense becausenothing can be saved inside the executable. (There also is an error dialog when clicking save. I can save the class in a different place on the local computer, but this does not make any sense.)

This is annoying especially because the dialog is shown for several classes (but not all). Please do not show the dialog in this case.

A brief digression.  I am doing some Real-Time programming with LabVIEW 2012, and decided to check out the very complete Real Time Control sample project.  As NI intended, I started modifying it to suit my particular Real-Time task.  This Project uses Network-Published Shared Variables to send "Monitoring Data" from the RT Target to the Host.  I changed the type of one of the Shared Variables from Array of Double to Array of UInt8, but noticed that on the Host UI, the output was still a Double.

 

This project uses a cluster of Shared Variable References, passed from the RT Target to the Host.  I decided to simply "change" the Shared Variable Reference that was returning the "wrong" type with a new Reference that I could (so I thought) bind to the redefined Shared Variable.

 

I spent well over an hour (more like 2-3) looking for the Shared Variable Reference (or Refnum) on the Control Palette.  One logical place for it to be would be on the Refnum sub-Palette, but it is not there!  I noticed that the reference was of type "Variable Object", so I tried to create a Control Refnum and change its Server Class to Variable Object -- can't be done.  On the I/O sub-Palette, there is a Shared Variable Control, but this is something different -- it is not a Shared Variable Reference.  Finally, I tried copying my Shared Variable to the Block Diagram and right-clicking and doing a "Create Reference", but this option does not exist.

 

I tried doing a search to learn how to do what I wanted to do, namely to change the Shared Variable Reference so that it "referenced" an Array of UInt8.  Naturally, because I didn't already know the Answer to my Problem, I didn't search for Shared Variable Reference (and even if I had, the information out there is scant).

 

Here are several recommendations to Prevent Frustration in Users Trying to Use the NI Sample Projects (with specific reference to Shared Variable References).

 

1)  Put a Shared Variable entry on the Refnum sub-Palette.  This is the logical place to look to create a Front Panel Refnum.

2)  Allow the user to right-click a Shared Variable on the Block Diagram and have, as an option, Create Reference.

3)  If you leave the Shared Variable Control on the I/O page, consider also putting the Shared Variable Reference there (granted, it might not belong, but it's better to be in the Wrong Place than in No Place).

4)  Put a Shared Variable Reference Control on the Shared Variable sub-Palette on the Data Communications Palette.

 

Note that Point 4 is almost already done, but I just didn't realize it!  You do have the option on this sub-Palette to put a "Local Variable Object Reference" on the Block Diagram (how that for an obscure description?), and if you change this to a Control, presto, you have a Shared Variable Refnum control.

 

So what seems to be the "solution" to my problem?  I called a colleague on the phone and we noodled this together, and came up with two "insights".  First, the existing Shared Variable Reference that was returning (on the UI Main Block Diagram) an Array of Double could be changed to return an Array of UInt8 by right-clicking, choosing Properties, then opening the right-hand Configuration tab (which I hadn't noticed).

 

How about creating a Reference Control specific to a chosen Shared Variable?  Put an instance of the Shared Variable on the Block Diagram, right-click, and select "Replace with Programmatic Access" (also not so intuitive!).  This changes the Shared Variable into a Shared Variable Reference Constant, so if you want a Control, just right-click and "Change to Control".  You also will need to delete the Read Variable function that gets put on the Block Diagram.

 

It really doesn't need to be this difficult, nor this obscure, particularly if it involves a Sample Project!

 

BS

 

The context menu for a file in the project window always contains the entry "properties" - but the dialog that stays behind is different between LabView-Files and non-LabView-Files. e.g. for a VI the VI property dialog opens, for a TXT-file the windows file-property opens. With other words: I can't open the windows file-property-dialog for LabView files.

I would suggest to have an menu entry "file properties" that opens always the windows file-property dialog. The current "property" entry can disappear for non-LabView files.

 

Remark: I'm using LV2011SP1

Allow for zoomable block-diagram view, e.g. with Ctrl + Mouse middle button scroll.

 

 

Right-Click to a single file in the LabView project folder (LV 2011SP1) opens the windows file property dialog.

Trying the same with several selected files or a folder (file view) does not work because the property entry is not there. Please also add it for multi-selections.

 

Alternatively (for my purposes) it would be sufficient to have the possibility to add or remove the read-only flag for all selected files or folders (and sub folders).

Several LabView functions return a -1 to indicate not-found/failure.  I often find myself creating boolean code snippets with the "equal to ----" or "unequal to ----" functions comparing things to a "-1" constant with the T/F output going to a case structure.  I thought it might be nice to have pre-made "=-1?" and/or "<>-1?" functions (similar to the "=0?" and "<>0?" ones) on the "Comparison" function palette to at least clean up the code a bit,

I would like to suggest having a "reverse bytes" option for each parameter within the Call Library Function.

There would be both "Reverse Before call" and "Reverse After call" options.

 

As the CLF's purpose is to interface two [potentially] different environments, it seems the correct place for a translation to occur, if needed.

 

Cheers!

Ctrl-mouse wheel:    Scrolls through subdiagrams of a Case, Event, or Stacked Sequence structure. That's already great!

 

It would also be awesome, if I could scroll the same way through an Array while the mouse arrow is e.g. over the Index Display.

In Block-Diagram and Front-Panel, Indicators, Controls and Constants.

 

 

 

I cannot find any way to turn off autogrow on the front panel. For example, if I put a tab control down, it autogrows to include someething that I put down. This is very annoying because I spend a lot of time trying to get things to fit to a window. The auto grow makes it so I have to constantly resize things.

 

In fact, it would be good to have a global function that turns off all autogrow.

Hi All,

 

I've just been working with the histogram function, and as you can see it returns an error (but no error cluster....but I know thats another issue ;-)) if the Interval is wired at less than or equal to zero. I wanted to avoid this error so I quickly checked what the default was and wired my code so this was used when the input was set 'out of range'. Then I thought of an alternative way to do it - put the subVI in a case structure so that the false case is unwired....and therefore use default.

 

And then I thought perhaps I could suggest a third way - how about a 'constant' - called maybe [DEF] (which will adapt to the data-type of the SubVI input). This would save the user from using a case strucure or from looking up the default value for subVIs. An alternative (in some  cases identical, in some not) option would be a [Do Not Update] constant.

 

I've thought of a few other places where this might be useful. For example I like to set my subVIs inputs to 'this connection is required'. However there are times when you would like to use the default values or the last used values. If this is the case you have to set your subVI inputs to recommended rather than required. I'd like to be able to wire up a [DEF] constant or a [Do Not Update] constant so I can have my cake and eat it too;-)

 

Similarly of you are updating a front-panel object from different cases (i.e. a state machine) and there is a case where you don't want the FP object updated I either wire up a shift register with the previous value or (if I'm lazy) use a local variable. With this idea just wire up the 'Do Not Update' constant and it wouldn't update the FP object.

 

 

 

Dave

 

 

What I'm doing:

 

demo.png

 

 

What I'd like:

demo - Copy.png

 

And to conclude let me quote a hero of mine:

 

De-fault! The two sweetest words in the English language.
                                                -- Homer Simpson

 

 

Often error terminals aren't necessary for class data accessor VIs. We can create accessor VIs without error terminals but then we can't make them available through property nodes. We have to call these VIs explicitly on the BD.

 

ToString1.png

 

It would be great if we could use Bundle/Unbundle instead:

 

ToString2.png

 

Notive the small wrench on the Unbundle node. That means there's still an accessor VI for parentData behind the scenes. childData belongs to the current class so that's a mere unbundle operation. The BD readability has improved.

 

Say I have some inputs/outputs that are shared between a function block in the start of code block and a function block that is 15 code blocks away in the LV Code.. And there are multiple such sharings occuring, without an involvement of a tunnel.. Now there are wires everywhere..  Either we cluster them into one single line (which becomes uneasy sometimes) or some use local variables (when shared and updated at multiple locations it becomes dangerous).. 

Current method.png

Instead, if we can go wireless.. 

Correction.png


Like a transmitter at the source and single or multiple recievers at the required spots.. 

transrecieve.png

When there is a tunnel to be placed.. 

tunnel.png

The appearance and the presentability of this method can be made much better.. (like tiny dots or something similar to bundly by name but not these ugly circles.. ) Just wanted to convey the idea.. This can remove wires flowing unnecessarily and would make the code more readable and easy to modify.. 


I brought this up briefly in this idea...

 

I ocasionally find myself pressing enter to open a subVI that is selected on the block diagram.  I think it'd be nice if this action actually worked. 

 

I have since tracked down how I get myself into a situation where it's easier to click enter than double click the mouse...

 

From any VI I hit ctrl+shift+E to get me to the project. 

I then type "main" to get me to Main.VI (this is when I leave my mouse)

I then press ctrl+r, which brings up the error window because some other vi is still broken. 

I press enter to go to that subVI. 

I press enter to open that subVI, and am stuck.

With For_Loop the default behavior of the output tunel is always "indexing" Smiley Frustrated

 

Allow users to choose the default behavior of the output tunel. Smiley Happy


Default behavior : last value OR indexing.

 

 

 

 

Enum and Adapt To Entered Data has no meannig.

 

With an "Enum", this option should be removed from the menu.

 

 

                       SR1.png

Since my request for separating namespace from library membership hasn't gone anywhere, I'll throw out a less disruptive idea:  provide an option to group project items by namespace.

 

Often I have groups of vis or classes that are related to each other, but do not depend on each other.  (For example, the LapDog message classes are logically related to each other, but not functionally related to each other.)  Since grouping by namespace helps me understand the code, I typically put them all in the same library, even though they are not functionally linked.

 

The alternative is to name each message class according to its complete namespace (i.e. LapDog.Messaging.NativeMessages.StringMessage.lvclass) and skip the lvlib.  Doing this means I lose the grouping feature in the dependencies tree.  If there were an option to automatically group project items in a tree according to their namespace, I would get the benefit of grouping without incurring the overhead of library membership.

 

Currently LV includes the file extension as part of the namespace.  I think that's fine identifying a specific vi.  When grouping within the project window I don't think the extensions should be used.  For example, a class method that is a member of a lvlib might have a fully qualified namespace of,

 

MyLib.lvlib:MyClass.lvclass:MyVi.vi

 

That vi should appear in the tree at the same place as a single vi with the filename,

 

MyLib.MyClass.MyOtherVi.vi.

 

(I really think Namespace should be a new tab in the project window like the Items and Files tabs, since it represents a different view of the project.  However, that would probably be more work to implement so I'll pare down the request.)