LabVIEW Idea Exchange

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

It would be nice to have the choise to clean up all wires options (All wires within a VI) when right clicking a wire. I know it works with clean up utility if multiple wires are selected, but I don't want to mark them with shift clicks all over. Just by right clicking any wire within one VI should get the all option.

 

Today (Before)

cleanupallwiresbad.png

 

Futur (After)

cleanupallwires.png

I am extending on an old idea, but the implementation is different than the OP so I made this a new idea:

https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Decimation-feature-built-into-the-graph-indicators/idi-p/1109956

 

What I would want would be an XY graph with automatic disk buffering and on screen decimation.  Imagine this, I drop a super duper large data sets XY graph.  Then I start sending data in chunks of XY pairs to the graph (updating the graph at 10 hz while acquisition is running at +5000Hz).  We are acquiring lots of high rate data.  The user wants to see XX seconds on screen, probably 60 seconds, 120 seconds, or maybe 10 or 30 minutes, whatever.  That standard plot width in time is defined as a property of the plot.  So now data flows in and is buffered to a temp TDMS file on disk with only the last XX seconds of data showing on the graph.  The user can specify a file location for the plot buffers in the plot properties (read only at runtime). 

 

We decimate the incoming data as follows:

  • Calculate the maximum possible pixel width of the graph for the largest single attached monitor
  • Divide the standard display width in time by the max pixel width to calculate the decimation interval
  • Buffer incoming data in RAM and calculate the min and max value over the time interval that corresponds to one pixel width.  Write both the full rate data to the temp TDMS and the time stamped min and max values at the decimation interval
  • Plot a vertical line filling from the min to max value at each decimation interval
  • Incoming data will always be decimated at the standard rate with decimated data and full rate data saved to file
  • In most use, the user will only watch data streaming to the XY graph without interaction.  In some cases, they may grab an X scroll bar and scroll back in time.  In that case the graph displays the previously decimated values so that disk read and processing in minimized for the scroll back request.
  • If the user pauses the graph update, they can zoom in on X.  In that case, graph would rapidly re-zoom on the decimated envelope of data.  In the background, the raw data will be read from the TDMS and re-decimated for the current graph x range and pixel width and the now less decimated data will be enveloped on screen to replace the prior decimated envelope.  The user can carry on zooming in in this manner until there is at least one vertical line of pixels for every data point at which point the user sees individual points and not an envelope between the min and max values.
  • Temp TDMS files are cleared when the graph is closed. 
  • The developer can opt to clear out the specified temp location on each launch in case a file was left on disk due to a crash.

This arrangement would allow unlimited zooming and graphing of large datasets without writing excessive data to the UI indicator or trying to hold excessive data in RAM.  It would allow a user to scroll back over days of data easily and safely.  The user would also have access to view the high rate data should they need to. 

 

When I'm browsing Properties and Methods, the single most important tool is Context Help. However, if I open up a context menu to browse through the Properties or Methods, then hit CTRL+H, Context Help will not pop up! I must clear out the context menu I'm browsing by clicking elsewhere on the diagram, open up Context Help, then re-open the Property/Method list. I'd like CTRL+H to work when those context menus are active.

 

PropertyNodeBrowsing.png

It would be desirable if the event structure supported more than one timeout event. Ideally we could define multiple, independent timeout events. It could provide a fixed number (more than one) if this eases the implementation. Currently if you want multiple timeouts you end up with some type of state machine in the timeout event to control multiple events. Multiple timers would allow us to easily process different timeout events. Allow us to control them easily without special timeout management logic in the current single timeout event. Currently we can register/deregister user events. Let's extend this to timeouts as well.

Once upon a time one could distribute code that was reasonable in size. Now it seems all the runtimes are giga byte size.

It takes far to long to send someone a distribution with all the runtimes. Try uploading 1.7Gig of files...

 

Can this be reduced at all?

 

 

The FPGA compiler needs version 10.4, 11.5, 13.4. This directory is 19.5 Gig! If this directory is included in the backup, it too will take up a great deal of storage resources.

 

Can this be streamlined?

I have an application where I want an autoscrolling listbox. I originally actually had a string indicator for this purpose, which was easier for autoscrolling to the bottom (just set Scroll.Position to +inf), but string controls do not respect the scroll wheel, and are diffult to selectively recolor (I want to color code by row).

 

The only way to programmatically affect the scroll position is to set the TopRow of a listbox. In this particular application, I have moveable splitters, so the size of the listbox is not constant. Plus, the elements are multiline-enabled, so I don't know how many rows would be visible even if I programmatically determined the vertical size of the listbox. It could be done, with a lot of math and wizardry, but it just doesn't seem like it should be that hard.

 

Can we get a ScrollPosition property, or a ScrollToEnd method for listboxes/multicolumn listboxes to provide this feature? Or has someone found a simpler way to accomplish this? [And no, I can't just reverse the incoming data so it scrolls up instead of down.]

That would be nice if we could get email notifications to a configurable email address from LabVIEW FPGA Compiler when the compilation finished.

 

It could be really useful, when we use a separate machine for compiling (like a PXI controller) and we do not want to poll the status of compilation regularly.

Getting small summary about compilation results would be also nice.

 

Thanks,

Peter

 

 

We have quite a few LabVIEW users here, but not many of us have the application builder or the experience to use it.  So I get many requests to build an executable and installer for others.  Each time I have to take their DaqMX tasks (in the form of a *.nce file from their machine), import it into my MAX and then when creating the installer essentially re-create the same file.  Can an option be added to the Hardware Configuration tab to allow you to select a NCE file instead of create one?

 

Thanks,

-Brian

 

Having downloaded and installed LabVIEW 2011 and several modules (Mathscript, RT, FPGA, etc.) I got annoyed by the following:

 

When running the donwloaded exe, we get an overly complicated dialog with many useless buttons ("run winzip"???), a choice where to unzip and what to do after unzipping. By default the following is selected:

 

  • overwrite files without prompting
  • When done unzipping, open .\ setup.exe.

Well, tough luck with that last one, because it will not automatically run setup but instead popup the most useless dialog in the history of computing:

 

 

 

The only thing we can do is press OK. Why does the entire install process need to stall here and prevent starting of setup.exe unless we acknowledge that the unzip completed? Dialogs should only be present if user interaction is required or something unexpected happened, which is definitely not the case here. (I don't mind a popup if the uzipping encountered an error, for example)

 

(Microsoft has definitely cleaned up its act here when dealing with zip files. Compare the "right-click...extract all" between windows XP and windows 7. Windows 7 eliminated all useless dialogs and works much smoother.)

This idea provides the same functionality as the Call library function node, but in this case using a formula node scrit .

Watch the image:

formula_script_node.jpg

In the Application Builder dialog under the icon category, you have the option to create an icon using the icon editor.  After you complete this and save it, you are brought back to the app builder dialog.  However you still have to select the icon file and add the .ico file to the project.  This should automatically be added when an icon file is saved from the icon editor.

I've been unable to find how to access the Waveform Chart property which would be called Legend:Number of Columns or LegNumColumns.  I have a customer that prefers the plot legend as a row at the top of the chart as shown in the attached example image.  This can be arranged in the editor or with VI scripting.  If the number of plots on the chart change during run-time, however, it doesn't seem possible to adjust number of columns in the legend. Setting the Legend:Number of Rows or LegNumRows property makes the legend adjust from being a single row to the usual single column. This makes adjustments to the number of plots displayed on the legend (as a row) difficult, if at all.

 

Capture chart.JPG

Capture chart properties.JPG

CfgFileLibrary2.png

Right now, the LabVIEW File utility for reading Configuration Files (NI_LVConfig.lvlib) are restricted to loading data from a configuration FILE.  Unfortunately, I have a case where I am storing configuration STRINGS in other locations (like in a database) and need to interpret them.  I'd love to be able to reuse this library of code to do that, and I can't quite do that without a lot of extra work.  Right now the workaround is to read the string from elsewhere, write it to a temporary file, read the temporary file, process..... (sucks to have to take time to read/write to disk, require permissions to save to a disk which I don't always have depending on permissions on system, and wastes processing time especially for larger configuration strings/files)

I'd love to just "Open Config String" instead of "Open Config File"  (and then "Close Config String" (and return an output string)).

Unfortunately because the library has internal items marked as private I cannot reuse the internal processing code without duplicating the entire lvlib and/or customizing vi.lib.

 

The LabVIEW XML parser library supports a polymorphic instance of the "Load" function to take either a file path OR a string input, so why can't we have the same support for the configuration file utility?

 

 

A lot of fron panel widgets have a lot of operations that are performed essentially on their border; drag-drop, right click menus, etc. Trying to target borders can be frustrating as they are only a couple of pixels wide.

 

I suggest adding an extension to the border which can be used as a larger target for arrays, clusters, boolean buttons with a large graphic covering most of the face, etc.

 

Obviously, this isn't visible at run time.

 

large border target.png

To check a string for (white) spaces we can use the ‘\’ Codes Display mode for string Control/Indicator/Constant.

With small pieces of text, it is easy to find your way through the text. However, when the piece of text gets larger it is difficult to navigate through the text.

It would be easier if a ‘\n’ and a ‘\r’ character performs an actual <new line> besides displaying a \ code.

It should be an option or an extra mode. I called it ‘\+’ mode.

 

 

String Display.jpg

Similar to an idea here:

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Integrate-Asynchronous-Call-By-Reference-with-Event-Structure/idi-p/1662356

 

I want to have the ability to know when a VI is completed when it is called Asynchronously without having to wait for it to complete.  That idea was to allow to register for events.  I think the first step is simply to have a timeout control on the Wait On Asynchronous Call and an indicator that it did timeout.  If the function did timeout I would expect the data returned would be the default data for the data type that the VI would have returned.

 

Async Call With Timeout.png

Hi,

 

Real short: I'd like to be able to select the default poly VI instance:

 

Default_PolyInstance.png

 

I often make poly VIs with a number of instances that each handle their own data type. This data type list I like to be sorted so the user can easily find the data type they're looking for. That in turn results in I8 usually being at the top of the list, but this is rarely the most common choice. Thus, I'd like to be able to select for example the DBL-instance as default when you drop the poly VI on the BD.

 

Bonus option: Allow us to define the auto-select order; We could have a prioritization list (sort of like defining cluster order) that might differ from the poly VI menu/selector order. The first item of this auto-selection order would be the default selected instance (when nothing is wired to the poly VI, and thus no instance has been auto-selected yet). Such a list would give us control over which instance is selected in the scenario where the connected data types will work for more than one instance in the poly VI.

 

If you kudo this I assume you like the default item selection part. If you also like the bonus option then please state so in the comments.

 

Cheers,

Steen

....I use labview since 1999 , I don't like, and I'm not able to write textual code and remember syntax.
I use Labview for every kind of software, from data acquisition to DB management.
During last two years i had the necessity to develop some application for mobile but there's no way to do it in labview....datadashboard is definetely not "programming in labview" for mobile.
Obviously I would like labview to be open source, a community version and a professional one could be nice....but...first of all, I would like labview to be able to compile executable for win, mac, linux, WEB,android and iOs using the same platform
Like for example i can do using LiveCODE (but as i said, it is simpler than other textual programming languages, but it still a textual language)
Now if i need an application for linux i need labview for linux ( a tragedy) and make executable from inthere the same thing for MAC.
I would like a single IDE where i can build executable for every platform (this SHOULD BE a real cross platform IDE).
...maybe I can ask it to Santa for christmas...

In this moment, Left click and Middle click mouse buttons has same function.

 

Idea is to map Pan tool to middle mouse button which will allow us to move block diagram (and front panel) when button is down.

 

Some block diagrams doesn't fit to one monitor (Main FPGA VIs and Top level VIs) and more pleasant scrolling/panning will be great.

 

This feature could be accessible by changing value in Labview.ini file.

Hello,

 

I would like to be able to change the "style" of several controls together. Something similar to a style sheet (like css for html) would be great.

 

Imagine the customer does not like the white background of the controls and wants a yellow one instead. This means I have to set the color of every single control. When I used strict typedef controls then I can change in groups, but I am not able to change the background color of a dbl and a U8 at the same time. View has nothing to do with the type!

Maybe also the frame is to big. There is nothing I can do so far. And if I could, I had to do it for all controls again.

 

Greetings,

shb