LabVIEW Idea Exchange

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

Swagger/OpenAPI  has become the default go to way to document and interact with rest API's.  It would be great that when you publish a LabVIEW webservice it generates the OpenAPI yml or json file (being able to generate both would be great).

 

Also having a right click in the lvproj webservice view that brings you to the swagger page for debugging would be helpful. 

While debugging LabVIEW, we often have many VI windows open. It can sometimes be difficult to manage these windows, especially once the debugging session is over. I think we can improve this situation greatly with a minor change to the All Windows dialog. This dialog (launched from the 'Window' pull-down or by pressing Ctrl-Shift-W) currently shows a list of all LabVIEW windows that are currently open:

allw.png

There are several columns of information describing all the open windows, and the list is sortable by clicking a column header. You can multi-select in the list and click 'Close Window(s)' to close multiple windows at once.

 

Idea: If we add a "Time Opened" column that lists time stamps of when the windows were first opened, it would be easy to sort by that column, then close all the windows that were opened during a span of time, i.e. while debugging. 

 

While we're at it, there are several other usability enhancements that could be made to this dialog that seem to be low-hanging fruit:

  • Make the window a non-modal floater, with the list dynamically updating as windows open and close.
  • Add a 'Minimize Window(s)' button.
  • Give useful key navigation to the 'Close Window(s)' button (and any other buttons we may add).

I know there are other ideas about making debugging easier (don't show panels, etc.). I'm scoping this idea to improvements we can make specifically to the All Windows dialog to make debugging easier.

With a case structure I can place the mouse cursor over the structure and Ctrl + scroll wheel to cycle through the cases without it being active. If I try doing this on arrays it doesn't work.

 

For front panel arrays the numeric indicator must have focus for this to work. Doesn't work when the array data is selected. I understand that multidimensional arrays would be a problem, but for 1D arrays it would be nice if it cycled through the elements.

 

For array constant block diagram elements, no scroll action works regardless of what is active. Again it should allow the user to cycle through elements for 1D arrays simply by hovering over the item and Ctrl + scroll wheel.

 

original.gif

 

Not a duplicate of http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Array-scrollbar-quot-scrollable-quot-with-scroll-wheel/idi-p/1009220

 

[admin edit: Adding animation image at the request of the OP]

 

Hello,

 

I'm telling my strudents how they should use the error cluster and how important it is. In subvis no error dialogs should be shown and so on (see topics of LabVIEW Core 1 / Core 2).

 

But many VIs written by NI have been programmed very sloppy.

 

Example: VI "Write into spreadsheet file". The error cluster is not wired to the inputs/outputs and if an error occures, an error dialog would pop up. Here is the block diagram of your V "Write into spreadsheet file"I:

 

spreadsheed_file.PNG

 

Please check all of your VIs and do a revision that we can make well-coded applications where the error handling will work correctly.

 

Regards

My request is for NI to review and develop the ability to select where (IP specifically) a NSV will deploy on a system (eg. PC) containing multiple networks.

 

After searching through various forums and issues, I understand that currently we can only choose LabView software's global default adapter via unusual Windows methods. What if other projects do need to use the primary NIC ? or what if in one project I need some NSV to go to primary NIC and some to use the secondary NIC ? As various hacks and workarounds did not fulfill my requirements I opened a request for technical support. After review, the case (#03609821) concluded that this was not possible and suggested I post here to see if others also would find this useful to boost development priority.

 

My example scenario is this. My company develops specialized motion products (mainly automotive transmissions for heavy duty and defense applications). We primarily use NI in our dyno and own a few NI hardware systems: cRIO, cDAQ, PXI.

I work in the dyno room here and am trying to set up a cRIO as a datalogger and RT OS to primarily measure analog and CANbus signals and thereby control testing.

 

The test fixture is operated on a PC with two network cards. One private LAN to talk to the cRIO to stream data and control. The network shared variables keep track of various statuses. The other network card is on the company LAN primarily so we can transfer data and share fixture status. The secondary purpose of being on the company LAN is that we have 6 configurable dyno motors (usually used in pairs) in the room that run on a shared master controller (non-NI). Currently that is done via PC RS232 to the cRIO, but we’re planning eventually to transition that to a more open ethernet architecture. NSVs would be ideal for sharing each dynos’ status as the serial is limited in 1-1 connection and bandwidth.

On a For Loop that is configured to have parallel iterations there is a nifty feature when using errors on a shift register.  This feature is explained in an article here.  It basically ensures that For Loops that run 0 times, will preserve the incoming error as if the tunnel was a shift register.  However this feature also means that errors from iteration 0, won't be passed into iteration 1.  What is returned if the loop runs 0 times is just the incoming error.  But if it runs for more than that, the errors are all merged and returned will be the first error seen.

 

Untitled.png

This idea is just to allow this already existing feature to work on non-parallel configured For Loops.  When would this be useful?  Say I want to delete an array of files.  I want to attempt to delete all files, even if there is an error in trying to delete some, just keep trying to delete the other files.  Initially you may think this:

 

Untitled2.png

But that has the clear problem that if the incoming array is empty, then the error will be cleared.  So we often do something like this.

Untitled3.png

And honestly this bit of code isn't that big of a deal, but this feature already exists.  However it only works on For Loops that are configured to run iterations in parallel.  In this case I might be attempting to delete files in a specific order due to their placement on disk, and running in parallel isn't what I want.

 

Since not everyone wants all errors in loops to act this way it would need to be a right click menu to turn the tunnel into a normal one, a shift registered one, or a preserve and merge one.

Untitled4.png

That is what I want.

Many programming languages IDE are able to distinguish the cluster level. However, selecting a cluster element in LabVIEW requires covering the full path from the top cluster until the desired element. The consumed time for this actions is directly proportional to the cluster size. It would be great that the bundle\unbundle nodes distinguish the cluster level in LabVIEW to speed up the cluster item selection.

 

Currently, a selection of an item requires a full navigation:

CurrentUseability.PNG

With the improvement a selection would only require partial navigation:

SmartUnbundle.png

As shown by below RG code, the Select function should be redesigned in order to align the s input with the output vertically. Currently, the input is too low.

 

Select.png

Data Type Representation Pallette

 

Can the the options on the data type Representation pallette be changed from grey to match the color of the numerical icons and terminals?

 

Thank You!

Melissa McQueen

Searched briefly but couldn't find any ideas about this.

 

I know we have the ability #via_ignore comments to ignore specific tests for a specific VI, but I am looking at a different use case.

 

Here's the use case, I use DQMH. When you create a new DQMH module there is a lot of plumbing code that comes with it. It's standard stuff. Very rarely do I have to open or edit it. Much of it is scripting generated. It often fails tests but I don't care. In addition to failing, it takes up test time, which slows my feedback loop. I would a way to signal to VI analyzer to skip these files. I know I can use the VIAN API to limit the files it checks, but I was thinking there had to be a better way. 

 

Implementation Ideas - I had 2 main ideas

- Regex matching on VI names - with the regex pulled out of a text file somewhere ala gitignore. Many of the DQMH generated VIs have standard names, so that is easy. When generating events, they don't but you could easily add a prefix/suffix or something that the regex would pick up.

- Using the Tag API to tag the VI. I like this because the scripting can just apply the tag or apply it to the template the scripter uses. Downside is: kind of hidden from the user and perhaps if I decide to make some edits to this VI  I may want VIAN to stop ignoring it and it's not immediately obvious how to do that.

 

Note:

I picked the Execution and Performance Label because it didn't seem to fit any of the labels easily. If this is the wrong label and you are an admin, please relabel it.

 

 

On project folder ... 

It would be great if in the project tree,

Just like any items that are called and not on project are in dependencies...

The other way would be for

- Update icons (grayed them out) for items in project without callers to be greyed out or have a different icon like an exclamation mark or similar...

 

that way it would be easier to know if an item is

dead code or not called by anyone

 

When cleaning or developing is common to forget which vis are no longer used or needed.

The proposal consists in being able to format the content of a string control, to allow to read more easily: INI, XML, HTML, ...

 

Code Formatter.PNG

 

Regards.

(note: this idea is similar to this one, but different enough that I thought it warranted a new post)

 

LabVIEW 2019 will include a Clean Up Front Panel feature that repositions front panel objects to match their positions on the (already wired) connector pane. I think we should also consider implementing the opposite behavior, where you can arrange your front panel the way you want your connector pane, then assign that arrangement to the (currently empty) connector pane:

cp.png

I envision the gesture used to employ this feature would be a Quick Drop Keyboard Shortcut, an entry in one of the drop-down menus, or a right-click on the Connector Pane.

I'd like to suggest to add a small button to the header of a disable structure.

Clicking to this button would enable the currently visible case while all others should be disabled automatically.

 

quick-enable-button

I think the Array Element Gap should be sizable. This would facilitate lining up FP arrays with other items on the FP, or simply as a mechanism to add more apparent delineation between elements.

The size should be set in the Properties box, not by dragging the element gap with the mouse - that would add too much "cursor noise".

A new Property Node for this feature would complete Idea.

 

GapSize.png

When your certification expires, do you instantly forget everything you knew? Of course not.

 

I think the Certifications should be tied to a LabVIEW version. That way, there's an "implied age" to one's Certification (if they haven't taken a newer one), but you are still allowed to produce the Certification on cards, job interviews, etc.

 

 

CLAD logo Idea.JPG

Currently, for waveform/XY plots/graphs, the legend, graph palette, cursor window, etc are all "coupled" with the graph itself from a "graphical" perspective.

 

This means that all of these "addons" must be attached to the graph, and you can't put them in a different part of the panel. Screen resizing thus tends to screw things up, especially if your plot names can be defined by the user.

 

I'd like to decouple these somehow.

 

For example, I'd like to be able to put my legend and zoom tools in separate panes separated by splitter bars, or even in a right-click style menu (like a subpanel popping up). This feature would let you use automatic resizing on the plot itself and keep the legend separate.

 

BertMcMahan_0-1620838414574.png

 

You could theoretically program your own version of this, but:

-Recreating the legend functionality (line size/width/etc) would be a large undertaking, especially since there isn't a native Datagrid type control that could display a checkbox, string, and small image.

-I don't know of a way to get at the built-in zoom/pan tools programmatically (yes, you could create your own, but it's a big PITA)

-It wouldn't work at edit time, like the current features do, unless you baked all of it into an Xcontrol

 

Basically yes, you COULD get a lot of this done yourself... but it'd be nice to just use the tools NI already made, which work great. I don't want to reinvent the wheel just for some graphical convenience.

So, i just changed a case from a string input to a boolean input. Ofcourse it gets broken with a red "1" in the case selector. That's logical. 

Now i need to select the case selector and write False, then switch to the other and write True ...  

Once both cases are correct i can r-click and switch them with a "Make this case False".

 

Improvement suggestion:

If having a boolean input, the Make this case True/False should be active for all cases always.

Even if you have multiple cases (it'll still be broken and you'll have to clear the extra cases)

Help! I need a way to pack more Classes onto my Block Diagrams!

 

This idea is simple and quite subtle- reduce the size of the Class Constant on the Block Diagram. The majority of the footprint belongs to the Class Icon, which cannot be sized smaller, but the additional border graphic that creates the "Object Cube" effect can be reduced to give a total footprint of 42x42 pixels down from 48x48 pixels. (If you're counting, that's a 42% reduction in "fluff", discounting the 32x32 that must remain!)

 

Idea.png

 

 

If you're not crazy about the first-draft artwork, feel free to post a new rendition in the Comments section!

Navigating long lists in LabVIEW can get painful, e.g. for producer consumer design patterns and message handlers. 

This idea is to add submenu parsing for dot notation items.

NickNZ_0-1637183178741.png

NickNZ_3-1637185590012.png

 

Now your case structure can do this:

NickNZ_6-1637185740149.png

I don't think it will effect ranges in the case selector as it requires two dots... e.g. "Init.Step1".."Init.Step4"

 

Credit: This thread for inspiration: https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Case-structure-easier-selection-for-structures-with-a-large/idc-p/4192417?profile.language=en#M43910

 

Suggestions required on how to handle a list in this situation where its a lot of numbered messages. 

 

Also I just learned from a colleague that by grouping controls carefully (& some caveats) with the dot notation on FPGA it allows for a submenu. (And clusters on a FPGA can take up a lot of gates).  So LabVIEW already has some code for this feature. Can it be leveraged? See below:

 

https://forums.ni.com/t5/LabVIEW/Group-FPGA-Controls-With-Dot-Naming/td-p/2767678?profile.language=e...

This post generated this idea which is the same problem in the FPGA space... grouping long lists to make them easier to use.

https://forums.ni.com/t5/LabVIEW-FPGA-Idea-Exchange/Better-FPGA-FP-Control-Selection/idi-p/3074718