LabVIEW Idea Exchange

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

An image explains this best:

 

stripbookmarkname from bookmark text.PNG

Removing the bookmark from the text when it is already displayed as the group name will reduce the level of information noise in the bookmark manager, and make it easier to read the bookmarks.

Remark: I'm using LV2015SP1, maybe there is already a change in LV2016 which I do not know!

 

Question:
Why is the decoration-element-palette of the block diagramm located inside Functions => Programming => Structures ??

In my opinion it's just a styling element which can be used for everything and nothing.
So my simple idea is to move it to the top level Functions-palette so that it can be easily found and reached.

Most of the time when I add an event it's a "Value Change" type - the default type.  I usually double-click on the Event Source wanting the dialog to accept the selection and close.  Since double-click (on event source) is currently ignored, why not treat it as if the "OK" button was pressed?

The current legend properties are too low level - requires a loop to iterate on active plot and set/get legend text.

There should be high level (express ?) VI's to do the most common task of labeling a plot legend.

Yes this can all be done with lower level primitives today but why waste everyone's time with coding something that is always needed.

Ideally an express VI that takes a reference to a plot and an array of numbers of strings and allows the user to generate an appropriate legend for the plot based on the array input. The express VI can be saved and modified by the user for special, uncommon applications but most users can just use express VI to quickly create legend for plots.

Current LV version should not be listed here! Many a time, this has confused me & even made me think that I'm already one version ahead of time.

 

Save for Previous Version - Has Current Version.jpg

It would be nice to have a managed solution to get LV Class properties both in development and in runtime environment: name of the properties, concerning accessor VIs with path and scope information.

Currently the only way to get these information is to handle the classes by XML parsing methods. This is neither managed solution nor working for classes which are found in compiled codes.

It would be great if one could mark certain files as having an absolute path so that it is easier to move projects that use a common resource around in a multi developer/station environment.    

 

A project might for example require a shared library or file that is installed by another application into c:\XXXX

Currently, all developers must place their project at the same relative folder depth to the shared resource to avoid linking issues.  e.g If Developer A uses c:\Users\Dev A\Project\  then Developer B would need to use  c:\Users\Dev B\Project\..   The project would complain about not finding the shared resource if Dev B was to use  c:\Users\Dev B\Repos\Project instead for example.


Marking the shared files as having an absolute path would resolve this

Quiztus2_2-1754045229444.png

Currently, when right-clicking a Messenger channel tunnel in LabVIEW, the context menu only offers the option to create a channel reader. However, Messenger channels support multiple writers, so it would be both logical and convenient to include a "Create Channel Writer" option directly in the popup menu.

At present, users must manually insert an element of the channel wire’s type and then create a writer from its output—an unnecessarily cumbersome workaround for a simple task.

This seems like an oversight rather than a technical limitation, and adding this feature would streamline development and improve usability for anyone working with Messenger channels.

Since a few years, we have native support for Map and Set in LabVIEW.

How about adding a DataFrame type similar to other programming languages (possible even with a native interaction with Python)?

 

A DataFrame type would be a 2D value where columns can have different datatypes. Currently, one needs to build around this by creating an 1D array of a cluster (or class) type.

Access to the data would be with numerical indexing for the rows and field access (like in a cluster) for the columns.

 

KR, Benjamin

Integrating markdown, asciidoc, whatever. This would help eliminate a step for most of us lowly third parties making docs for our software. A built-in browser would be nice, or just opening the doc straight away in a compatible viewer would be fine.

 

Loading the NI website's page for the help doc takes ages. This could also be a way to locally host vi docs and have a built-in browser-like display of help files.

 

I frequently find the context help information not detailed enough and get frustrated waiting for the website to load. If it was a one-stop shop markup-based doc, that's meaningful time saved.

PPLs are a powerful tool in LabVIEW, and when working on larger plug-in based applications, they're almost essential.

 

As a developer, I do my best to not reinvent the wheel. This means building modular libraries for common functionality. Sometimes this includes base classes and interfaces, sometimes this includes functional globals. If I'm calling either of these from a PPL, it's necessary to first put this common code in a PPL too -- otherwise there will be class conflicts or conflicting instances of functional globals.

 

I would love to be able to distribute this common code as a VIPM package to vi.lib so that it's reusable across multiple projects -- however that's simply not possible now. While yes, you can technically put a PPL in vi.lib, you're guaranteed to be met with failure as soon as you build an application that relies on PPLs calling the vi.lib PPLs.

 

There are workarounds to all of this of course, but they all come with compromises, typically maintainability -- such as including a copy of all of your PPLs (and in my case, a library of public VIMs that sits next to each PPL) with every project, while not having access to the common functionality outside of any of these projects.

 

The solution could be as "simple" as this:

  • When PPLs are compiled, they currently expect each dependency to be at an exact relative path.
    • Why not support loading from one of a number of paths similar to, say, how .NET finds DLLs?
      • Search order could be something like: exact relative path, current folder, common LabVIEW folders, and custom (where custom could be defined in build specs)
    • When building a PPL/application that relies on PPLs, if you don't exclude dependencies, this would now allow all of those dependencies to actually find each other.

It would be good if, after adding a custom image to the states (TRUE, FALSE, transitions etc.) or text of of a Boolean control using the Control Editor if there was an option to revert to the standard image rather than having to replace it by overwriting with a second image.

In many programs you can open/close all children (neighbours?) of a Tree node by holding control. It'd be nice it that worked in LV as well. (atleast it doesn't in 2019)

I mean 1 level down, not _all_ if there's several.

Yamaeda_0-1746618810697.png

Ctrl+click the '+' and it should open all the neighbour classes, if it's open all should be closed. 

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.

Let's Encrypt is an Certificate Authority (CA) that provides FREE TLS certificates for people and organisations to secure their websites and servers. Their certificates are valid for a maximum of 3 months, but client applications can automatically update the certificate when due.

It would be very nice to have this functionality in the NI web server. Exipiring certificates are cumbersome to manage.

LabVIEW's units support angular measurements of degrees, minutes, seconds, radians and steradians but I don't see support for a full revolution. If this was added, we could use 'rev/min' as a unit which is a very common unit.

 

I think that users don't really use units as much as they might because of limitations such as this. There are some other things that I would like changed with units, but this should be and easy one to fix.    

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

 

Let's be honest: The easiest way to make a large VI unreadable is to click on the “Clean Up Diagram” button (if you're smiling, that proves I'm right). My suggestion would be to give this button some artificial intelligence. Maybe give the customer the option of setting what is “good” and what is “bad” design. And if you like the challenge, let them train it themselves.

I got some code from a coworker that I'm building into an EXE.  There are a lot of references to user.lib (like 60 classes) and the folder structure that my coworker gave me makes some of the classes in user.lib too long and causes the exe to fail building.

 

I moved the stuff from user.lib to a root folder on my C drive and now I have to manually update every class because they aren't in user.lib.  Its pretty time consuming and I think just saying "Look in this directory for the missing files" would help tremendously for larger projects that need to get moved around.

Currently, if a new version of LabVIEW comes out with new shortcut menu plugin or a quick drop shortcut, that is written in LabVIEW the only way to have that added for older, still supported versions is to save them to for the oldest version, and copy them to the respective folders.

I wish, that the new features in these categories would be available trough download for the supported LabVIEW versions for everyone that has a license.

I would love, if these were separated into their own package, that is a dependency of the LabVIEW installer, but could be updated later from the package manager.