LabVIEW Idea Exchange

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

Hello,

 

It should be nice to add such a kind of "Cyclic event" in an event structure.

 

For the moment, the event structure only has a timeout which occurs after a certain amount of time ... only if no other event has occurs ! Smiley Sad

 

There is a problem when the timeout time is longer than the time between two events. => Then the timeout never occurs ! Smiley Sad

 

So it should be nice to add an input to the event structure, in order to add on ore more cyclic events.

 

So a Timer event could occurs in a cyclic way without having to build cyclic event generator !

(The implementation of this cyclic event should be aware to not fill the event queues.)

 

The cyclic event could be configured the same way a the timeout, with a special input of the event structure.

(One input per cyclic event generator / timer)

 

A kind of DotNet Timer component, dropped on a wondows form. Smiley Wink

 

I have already created my own cyclic event generator ... but i think that this need could be usefull for all Labview users.

 

Manu.net Smiley Tongue

 

 

 

 

 

I often employ a design pattern of for each item in a list where the list is a typdef enumerated type.  This is a great way of making a linear sequence where each item is tested one time (test sequences, list checking .....).  I used to make an array of the type and populate it with one of each item, this is not very scalable since when I change the typdef I have to redo the list.  Instead I do a little type manupulation to make sure that I itterate one time for each intem in my enum, this requires some support code and extra wiring.  It would be nice if I could make a for loop that takes the enyumerated type and used it as its itterator.  See below:

 

 

 

 

For each enum loop.jpg

The new for loop which takes an enum would greatly simplify the code readability.

I use this all the time and find it to work great, uppdate my enum and handle the new case, no chance of missing a case (I use it in conjunction with case structures with no defaults so my code breaks and forces me to handle the new case.

 

I have attached the code if any one is interested

 

 

DVRs have the potential to be a great way of sharing data by reference and the in place element structure is a great way to protect against race conditions however sometimes I still want to only read the value.

 

Right now you still have to use the IPE which takes up a lot of diagram space. It would be great to have a read primitive for this situation.

I know this sounds like a minuscule feature request, but this is an option I have learned to appreciate in Origin (and one of the reason I usually go through that software for publication-quality plots).

Just in case what I am suggesting is not clear, here is an example of a graph scale using the Scientific style:

 

ScreenHunter_001.jpg

 

The suggestion is about changing 1E+0 to just 1.

And this can even be an option (as it is in Origin) if some minds out there think that 1 is not a peculiar value and it would break the uniformity of the display or whatever other reason.

Obviously, if you have chosen a precision of 1 (or 2, etc), 1.0E+0 would be replaced by 1.0, etc.

Hello:

 

It is my understanding after talking to Jonathan Meyer at  NI Week that the OpenGL 3d library is not exposed to LabVIEW users and would be of great benefit for folks like myself who need better 3d volume rendering tools WITHIN LabVIEW to render X-ray computed tomography and other slice data.   So my idea is to please expose these tools as soon as possible.  Currently I use the ActiveX 3d Surface Graph to display multiple stacked surfaces.  It is very slow with a lot of slices and totally unstable with Windows Vista operating system. HELP!

Starting in LabVIEW 2015 we got a neat new function that can create a unique file path, and allows to not overwrite a file that might exist with a similar name.

 

Increment file.png  

 

 

This is such a cool function and I could think of a ton of places where I needed to save some temporary data and just wanted a unique name expecteing files to be cleaned up later.  Or give the user a checkbox which wouldn't overwrite the existing data, and then not need to worry about generating my own unique name.

 

Alas this function fell short of my expectations.  Why?  Because it creates the stupid file, and returns a reference to it, instead of just generating a path that I can use.  What if I want to use this with the report generation toolkit and generate a unique file name?  Well you can but you need to close the file reference it made, and possibly delete the file.  Same with if you want to use this on a TDMS file, or a Configuration INI file, or a zip, etc.

 

I suggest either adding another function (polymorphic?), or making an optional input to this function, which does everything it currently does except don't run the Open/Create/Replace function there by making the file, and returning a file reference.  Every time I've used this function to date it has been followed up with a Close File, then a Delete function.

It will be good to have a option like "Close all but this" in File Menu; which will be very useful to close all the sub Vis after debugging and just run the main Vi with all sub vis closed. i feel it would be very good to have this feature.

 

This is similar to the one in Notepad++.

I'm surprised a search did not turn up anything about this.  NI should create a LabVIEW Amazon Web Services/Azure/Docker Image(s).  The sample case I am thinking of is having a Jenkins CI server running on AWS EC2 with a full LabVIEW environment installed.  This would allow off-loading the long FPGA or full RF suite builds during CI.

 

Apparently NI had this with LabVIEW 2012 on AWS

 

I would suggest to NI the following steps:

  1. Collect underpants
  2. create AWS LabVIEW image for cloud-based compiling - charge per use
  3. Use AWS to work out the kinks to get an efficient, speedy image created
  4. Open an NI data-center that does what AWS/Azure does but for the tech/engineering field and host all of their own software images
  5. Profit (or at least start to pay back that huge CapEx outlay)

Thanks!

Charlie

 

 

 

 

 

I would like to see future versions install without changing anything in already installed LabVIEW versions. No updates to toolkits, add-ons,  or anything else. After the install, the previous version(s) should work exactly as they did before the new install without any changes. I would also like to be able to install older versions as if there was no newer versions were installed.

If you want to select, say, a cluster inside an array, you have a really narrow range of pixels to target. If you click in the body of the cluster, it selects the array. If you have a cluster in a cluster, it doesn't select anything to click blank space inside the cluster.

 

Attached file indicates what I'm talking about. If you want the green line, that's pretty narrow. Many people may be able to handle that degree of precision. But some people may find it hard to point that precisely.

 

SO, it'd be nice if you could select anything in the containment hierarchy, and discretely adjust your way to the right thing. I suggest that tapping shift would select the parent of the current selection. Tapping ctrl would select the child of the current selection that the mouse is hovering over.

 

Like, select the inner array and tap shift, and the selection is now the cluster it's in.

 

Showing this as an option in the contextual menu, with the shortcut indicated to the right, would be a good way to introduce this to the user -  "select parent (shift)", "select child 'childName' (ctrl)"

The Table is an important UI feature allowing cell widths adapted to the contents (a bit like in Excel). That is much better than the rigid array front elements. It is also much more powerful since cells can be coloured, cell fonts can be changed, cells can be highlighted and still more. Some possibilities appear to lack:

 

1 There is no 1D version of it. This necitates the user to finely adapt the height to see only one row. This makes that no dark grey line is around it and a user can accidently change to lower lines by selecting a cell and some mouse operation. It is hardly possible to return backward, certainly if the user is not aware that the line is in reality a 2D field.   Under properties e.g.' 1 row, 10 columns' can be given, but that does not prevent changing to other rows. For arrays dimensions can be added (from 1 to many), for the table dimensions 1&2 would be helpful.

 

2 Cells can be indicated with help of the properties 'selection start', 'selection size' and 'selection color'. The selections can not be programmatically disabled and re-abled when needed. At least a corner element remains if the 'selection size' is reduced to (0,0). With the right-click menu options a 'show selection' option exists for enabling and disabling the feature. It lacks as a property node.

 

3 Cells can be coloured with help of property node calls, what is nice. The method to undo all colourings and other settings does not exist. The invoke node method 'reinit to default' has no influence on the individual cell fonts, cell colours, etc. An invoke node to reset these features is wanted as well in addition to the existing reinitialisation. This lack is preventing using these features since the changes should be kept in memory somewhere to undo, or all cells have to be overwritten periodically with a lot of code. If the table length is undefined since e.g. measurement data  is put into it, then an arbitrary number of rows have to be assumed. A reset function can take this trouble out of hands.

 

The same remarks hold probably for the listbox controls.

I have recently been using more test vectors in the unit test framework.

 

The principle works well but if you are in a unit test and decide you need a test vector you must:

 

  • Close the unit test configuration
  • Create a test vector
  • Set up your vector (entering values and data types, which is much easier if you could see the actual unit test case)
  • Close the vector configuration window
  • Open the unit test configuration
  • Assign the new vector file to the unit test
  • Now you can assign vectors to test inputs

This seems convoluted and forces unnecessary context switchs.

 

I propose that at a minimum, you should be able to create a new vector file and launch it's configuration without leaving the unit test configuration window. I suspect that the whole process could be streamlined even further though.

During renaming nested libraries in my project I've got the following message:

 

not_loaded.png

 

Please add into this dialog explanation with the reason - why my library is not loaded? (not found / not licensed / corrupted / etc)

This might be also related to classes.

 

Thank you.

 

The Report Generation Toolkit provides functions to set various Format aspects of Excel "areas", and Excel Graphs, but doesn't provide the complementary "Get" functions to return the current values.  For example, I wrote a LabVIEW function that will set the Font Color of a row of a WorkSheet to Red (using Excel Set Cell Font), but if I want to find the row with the Red font, there is no "Excel Get Cell Font" that can return the property to me.  Of course, I could cobble something together using ActiveX calls, perhaps, but these are poorly documented, and since NI is already doing the "heavy lifting" to provide the Set functions, it would seem "relatively simple" for them to also add the corresponding Get functions, as well.

 

Bob Schor  (using Excel as a "controller" for some experiments controlled by a LabVIEW Real-Time system)

For all of us not running an english OS but want to install plain english versions of NI products:

Please give us an option or a documented method to install LabVIEW and  MAX and driver, etc. in plain english.

While it is possible to install LabVIEW in ENG, the MAX and the driver installer lookup the OS language and install the localized versions 😞   (just tried with a new PC, W10 and LV2018 full dev suite, even set my language setting to ENG, however I have to install the localized W10)  That is not helpfull if you want to look up the big commuinty help or knowledge base entries and can result in 'funny' error messages.

 

For the driver DVD I think I found a hack in the setup.ini

[Localization]
Languages=9,7,12,17,18,2052
#ForceLanguage = 9
CustomRes0009=SupportFiles\resourceEng.dll
CustomRes0007=SupportFiles\resourceDeu.dll
CustomRes0012=SupportFiles\resourceFra.dll
CustomRes0017=SupportFiles\resourceJpn.dll
CustomRes0018=SupportFiles\resourceKor.dll
CustomRes2052=SupportFiles\resourceChs.dll
StandardRes0007=SupportFiles\niresdeu.dll
...

by uncommenting the red part. But editing the setup.ini ??

OK, in this case the hint was there (or forgotten to remove :D)

The actual suite installer comes with a .xml  configuration file where that hint was missing or overseen.

 

I suggest something like:

 

Installer found local language version: <OsLang> ,

Install (where possible) in language: <ListOfSupportedLanguages>

 

That setting is hopefully stored for future automatic updates 😉

Currently, we have to use Unbundle By Name from Cluster and select an element for Case Section

 

1.png

 

It would be great if we could just wire the Cluster Directly and have a Right-Click Option at Case selector to select an element (one element only).

 

2.png

 

P.S. If it is a reasonable suggestion and gets enough Kudos to get R & D team’s attention for feasibility of this idea, then we ask for more logical operators support that would be useful. Also multiple elements and/or more statement node i.e. (type == Array and # elements <= 2)!!!

Only sometime I miss “if statement” support in LabVIEW. 

 

 

Message Edited by Support on 07-16-2009 11:56 AM

When LabVIEW replaces a cluster it replaces a minimized cluster with a maximized cluster. It would be really nice if the maximized/minimized state of the replacement cluster is the same as that of the original cluster.

Comparing VIs which have closed front panels is (almost) never used. Therefore it should not be the default.

 

The Dialog for selecting a VI shows all VIs in memory when first opened. There is a checkbox to "Only show objects with open front panels". It is not checked by default. I suggest to set its default value to true (=checked).

 

Comparing VIs is started in  "Tools" -> "Compare" -> "Compare VIs...". In the new dialogue, click on "Select..." (for any of the two VIs). The check box labeled "Only show objects with open front panels" is located near the bottom.

Selecting a VI for comparision.png

 

The (write protected) VI of this dialog is at <vi.lib>\Utility\allVIsInMemory.llb\VIMemory Select a VI.vi

The calling VI is at <LabVIEW dir>\project\_procmpvis.llb\CMP Compare VIs.vi

No idea where else "VIMemory Select a VI.vi" is called.

I will be the first to admit I am no artist. My panels are either bland or look like crap. I have tried making custom controls and they look like crap. I generally settle for a bland front panel full of default controls, text, and indicators in gray with maybe a light blue background.

 

It would be nice to have a set of color schemes to chose from, like any modern OS has that would color the panel and controls/indicators in a complementary colors.

 

Have a simple way for people to make, save, and share color schemes.

 

Better yet a skinning engine that would allow the very artistic to produce and distribute custom control sets like the modern or new silver set.

Right now the search window results have 3 columns, a check box, a number, and a string containing 4 pieces of info (the vi name, window type, object type and element type).

 

My idea is to reformat the last column into 4 columns.  The results would be the exact same, however they would be in 4 columns.  Then make the multi-column list box sort-able.  So if I click the list on the top of window type, then all the diagrams would be sorted together and all the panels would be together.

 

The most useful part of this for me would be sorting by object type.  If I look for something very common and get say 500 hits in my project, sorting by object type would be a big help.  Now I can quickly locate the group of hits for, like, an "EnumConstant", or whatever type of object I'm interested in.  Now I don't have to slowly look though the whole list looking for the object types I'm interested in.