LabVIEW Idea Exchange

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

Currently, the "Tab" key is not individually mapped to an action for Block Diagram interactions; my suggestion is to use it to swap between "control", "indicator" and "constant", in the same way we already do with the options of the right-click menu "Change to Control/Indicator/Constant".

As an example, having selected a control on the BD, by just pressing "Tab" we would transform it into an indicator, a second press to a constant, and a third one would bring it back into being a control.

 

I understand this is a simple thing, but personally, I feel this ends up being one of the most repeated actions we end up taking as developers and I believe it would be intuitive to map it to a familiar key to many of us - tab.

 

Thanks all,

Cris

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

The built in web services are a handy way to expose a simple RESTful API to a LabVIEW executable. And it's nice that it supports hosting static content like HTML pages and javascript. But it would be extra nice if we could host directories with dynamic content, such as a folder of log files that we want to expose for troubleshooting purposes.

 

For example, if I have services that generate debug logs, I could do something like start up a python simple http server to host the log directory and make the files accessible remotely. As log entries are appended, or new files are created, they are automatically made available via browsers (or programmatic GET operations). It would be really cool if the native labview web services could do this, to avoid having to set up a separate process (and manage another port number). If I've already set up a web service for remotely interacting with this process, it feels natural that I would be able to extend it to host stuff like this.

(In LV2017) "Browse Relationshiips\Unopened SubVIs" shows a list of icons with truncated VI names - about 12 characters per VI. When looking through a list of similar icons, one has to hover over each icon to see the full VI name.  This is impractical when hunting through tens or hundreds of SubVIs.  If unopened SubVIs could appear as an alphabetically-sorted list of VI names, it would be very helpful.

 

 

 

Ever tried to parallelize a loop?

You just have to place your mouse over what feels an approximately 1 pixel wide area on the left side of your loop and press the right mouse-button without moving the mouse. If there was no input or case terminal around a context menu opens that gives you access to the function you need.

Point anywhere else and the contect menu doesn't contain what you need.

 

The context menu entry could also show if the mouse hovers over any other parts of the loop as well to make the area easier to point at.

Currently, the only way to add a webservice to a project, is by right clicking a Target and selecting New->Web Service.

There's no way to add existing Web Service definitions to a project, other than manually performing the copy operation at the XML file level.

This prevents proper re-use of IP!

 

Webservice in project.png

 

I would propose extending the capabilities of a Library to also support Web Service definitions as Child objects.

That way, the library can act as a container for the Web Service definition, and can easily be reused in other projects:

 

Webservice in library.png

I tried using an XML editor to manually put a Web Service definition underneath a Library, LabVIEW didn't like that!

When you want to look for a specific VI in your project using Ctrl+F you have an handy option to search vi by name. But this is quiet difficult to find the VI you are looking for in this windows : All VIs are listed (without structure) and there is no Filter. Something similar to Event selection window would be much better (That would have a filter and where VI's would be grouped by libraries and class)

 

This "Find all instance" could also be added directly in the project explorer, in the Right click -> "Find" menu

 

 

Download All

LabVIEW functions "Set Waveform Attribute" and "Get Waveform Attribute" could write/read any attribute name/value to waveform. But, according to help files (http://zone.ni.com/reference/en-XX/help/371361N-01/lvwave/set_waveform_attribute/), there are default attributes such as device number, channel name, etc., which could be set by NI-DAQ, and Express VIs. But sometimes there is need to set them manually (for example, while reading data from FPGA and building waveform from it).
It would be handy to include to Waveform pallete simple API with polymorphic VI to set and get those default attributes. Then one should not remember what exact name it has, but just take the function, select which attribute he needs, and use it.

 

Sincerely, kosist90.

 

Refer to http://zone.ni.com/reference/en-XX/help/371361P-01/lvpict/draw_line/

 

Under the Pen -> Style, there is a "Dot" option.

 

But the output is not really a dot but a short dash. Can labVIEW make the output into a real single pixel dot?

 

Same applies to draw circle VI.

 

It would be useful to insert a VI directly from a project or from a class into a line.

 

Sometimes / often it happens that I add an existing VI to an exiting class or lib.

In this case the icon of the added VI stays at it is and does not change to the libraries icon. I could use the lvlib-option-function "apply icon to VIs" but this changes all my VIs which is not appreciated!

 

What I suggest to add is a right-click option to the VIs icon "set library icon" (see attached picture).

 

Hi, I'm a EE currently working on a project with a group of others. Some in the group have significant Labview expertise and are developing .vi's to control NI-device-interfaced hardware that others & I have developed.  Those in our group that "speak Labview" are fairly comfortable reviewing and debugging each others' designs by reviewing the .vi files.  Unfortunately others of us such as myself have minimal Labview expertise and will remain that way for the foreseeable future.  To accurately/readily review .vi code, we would like more traditional formats such as Timing Diagrams.  In my experience, such formats not only can serve a broader scope of reviewers (thereby being more appealing in the marketplace as well?), but in many cases they hold potential for being more illuminating for reviewing, debugging, communicating, and so forth.

 

One of our software developers offered to develop such a tool, but as with most projects our staffing & time resources are scarce, and like many projects, software is currently on critical path.

 

I suspected that one or more tools to generate Timing Diagrams from a .vi already existed from NI and would have been in routine use by some developers.  Or if not from NI, then 3rd-party, or somewhat redundantly developed by thousands of project labs around the world.  NI Technical Support Engineering has suggested that I submit this entry here, so I am, first-time NI submitter.  The suggestion isn't tied to our project's particulars, but if the above suggestion isn't sufficient, possibly the below info about our application will help.  Thanks!

 

about our own application

 

Our medical-therapeutic research device will use a myRio-1900, interfacing with a user via wireless to a laptop.  The laptop will use code being developed with Labview.  Rio code is being developed with Labview-RT for the processor, and with Labview-FPGA for Rio's FPGA portion.  Interfacing to Rio's I/O, much of our custom circuitry is SPI-based, but with particulars that preclude using Rio's native SPI, so we've developed lots of SPI in the FPGA.  Among the external circuitry there's a total of about 100 SPI-interfaced a/d's, d/a's, and GPIO-interfacing chips.  16 battery-packs, each recharged by the instrument under software control, provide >500W of power to various regions of circuitry that spans 32 voltage-isolation barriers.

 

Here's one example of how the proposed tool would have helped us in the recent past.  (This would have been easier without COVID19 so that we could all be co-located and with the prototype, but ....).  During some debug, we eventually found that some bits were being generated or sampled on SPI clock (SCLK) edges that weren't compatible with some of the peripheral chips.  This would have been readily apparent if we had had timing diagrams showing the .vi outputs nCS, SCLK, and MOSI.  Those by themselves would have been highly helpful.  In addition, also helpful would have been to see some nodes that are internal to the .vi if possible, such that we could know when the incoming MISO line was sampled relative to SCLK.  We didn't need to see propagation delays etc., we just needed to see the logic manifestations on a diagram or equivalently easy for a .vi-illiterate human to digest.

 

Hope that's helpful.

 

       -- Bruce P.  8/10/20

 

This is just a small QOL thing but also not that hard to do I feel like. When right clicking a wire whose data type is a type def enum or cluster, add the option to Open Type Def. from that menu. The current way of doing that would be to right click the wire and Create -> Constant, right click the constant and Open Type Def., then delete the constant.

When working on VIs that require large arrays or images for input, I often need to run a calling VI rather than the VI I'm currently working on, which involves a lot of tabbing between windows and clutter from having more open windows. I realize it is possible to set default values for controls, but I would rather avoid that as I often use optional connections to my SubVIs and therefore don't want to change default values.
In my opinion it would be useful to have the option to configure the run button to run a different VI than the currently open one, when working on VIs specifically developed to run as subVIs in the context of a higher-level caller.

When using VI scripting to create UI objects, please add the new "NXG Style" objects as an option

Add a right click option to navigate to the method in the project window when you right click on a send message VI. Bonus if it gave you an option to go to the base class method or any overriding methods. 

 

NavToMethod.jpg

I often run into the issue that I have one event case that I need to execute for multiple controls. Most of the times I simply read out the terminals and most of times I get the "NewVal" from the terminal. Some times however that's not the case. I'm currently having the issue that I use a property node of a control to trigger the event and every other time the terminal gives out the "OldVal".

 

I believe the proper way to solve this issue would be to go by the reference. I find this blows up the code more than it should do. Looking around in the community I've found two other ideas suggesting different solutions for this issue:

 

The first has multiple boolean controls triggering the same event. SectorEffector's solution was asking for a reference case structure, which might be a great idea, especially when the event is triggered by different data types. When I have multiple boolean triggering one event I almost always build an array from the terminals and convert the array to an integer, so that a case structure or other code can deal with the value. But again I'd have to deal with fiddling the new value from the triggering control and the other control values together.

 

The second mentions actually two ideas. The actual idea of rcpacini is to have an enum indicating which control triggered the event. This is a similar approach to what SectorEffector suggested. They're both aiming at using a case structure with a different cases for each event source. The alternative idea of rcpacini was to have event data elements for each control. The is more similar to my idea, but I would like to have the values of all registered event sources clustered together.

 

Here a side by side of the current solution and what I'd suggest:

New value by referenceNew value by referenceNew value clusterNew value cluster

 

The order of the events would determine the order of the values in the cluster, so a way to arrange the events like a move up and move down button would be helpful:

Event source order up/down buttonsEvent source order up/down buttons

Often times I need to change a property of something in labview that seems to only be available through a property node. And often I don't want to do it during run time just once at development but I find it really hard to get references to some objects and I want them in another VI that I can run real quick to set the property and then be done. If you have the option enables that shows labview scripting property node options and invoke nodes, can under create there be a  Create reference in a new vi. And if you click it you get a new VI with just a ref that you can then do whatever you need with it. And please make this work for anything that has a property or method related to it. I have some tools that I wrote that can kind of do this but I am sure it is not a good way of doing it (but it is the best I have got).

On Plot Attribute Change event, the cluster structure should match with the group of properties such that we could pass it as is and re-use it when we need to re-apply all properties. Inside the property node there should be a section Plot.Attributes.All Elements that would be identical to the cluster returned by the event.

 

Also worth mention that Plot.Visible is not part of the cluster but the event is triggered when user toggles the plot visibility. Strangely the Plot.Name can also be edited by user but that doesn't trigger the event.

 

I wonder if it's a missing feature or more like a design flaw.

 

JICR_0-1581470137676.png

 

enum.png

...fast selection of enum value/member instead of opening enum-element or constant...