If you have a project under source control but haven't yet checked it out (because you wouldn't think LabVIEW would modify some attribute without telling you what it is...), when you try to save the project allyou get is a dialog box stating you can't save it because the file is read-only.
"Project save" should trigger the same process with any VI, i.e., prompt you if you want to check the file out ot source control.
Simple one, allow me to create new folders from within the right click menu in the project explorer window.
Currently I have to use 'explore' then create the folder through windows in the target directory.
This an extension to the idea which I have submitted.
I had difficulty when accessing the control names on the front panel have more number of controls and also when we have same control names in the different pages of Tab Control.
It would be good if they can be grouped by Tab Page under the Event Sources in the Event Structure as shown below. This is similar to what the LabVIEW does when displaying the Cluster Variables in the Event Sources.
It will be helpful it the idea can be extended where ever accessing the controls/Indicators from the Tab Control Pages.
When I start LabIVEW, it will eventually ask me to log into my SCC (I use Perforce) as part of the startup process. Unfortunatly, LabVIEW requires that I type my password into the Perforce login dialog and then Perforce responds within 60 seconds or this will fail and I will get the following dialog:
So, if I start LabVIEW and then go off to do some other task and miss the window, I get this error. If I then open a project, it is not linked to my SCC system and none of the SCC status indicators show up on the project items. The only way to fix this is to close LabVIEW and reopen it.
All I am asking for here is a 'RETRY' button next to the 'OK' button so I can get a second chance at this. It is a small thing, but it would make my life much happier... So, please vote for this idea, even if you don't have the same problem.
I've had a look around and can't see anything in here like this already (which surprises me so I'm suspicious that it's just the search algorithm failing) but I'd like to see options in the LabVIEW Project tree for changing target hardware.
For example, I have a development underway using a cRIO-9114 chassis with a 9024 controller, and a 9144 EtherCAT expansion chassis. The primary chassis is about to be upgraded to a 9116, as we need a bigger FPGA, and although the hardware upgrade process is straightforward, upgrading the chassis in the LabVIEW Project is not a possibility. Instread, I need to create a whole new target, and copy and paste every VI, node, FIFO, DMA etc. across. There's quite the possibility that I'll miss something, or the new target won't have all the same settings (Scan Mode period and priority settings for example), leaving me with that niggling feeling that something under the hood will be wrong. It would be much neater if this was an automated migration.
Furthermore, as the hardware is not here yet, I need to create the new target and all it's modules manually, which will take me quite some time. An automated migration would save me that trouble.
When I edit a new VI's icon; First I choose a VI template from the templates tab, then I goto the layers tab and remove the incrementer and 'VI Icon' layers. Then back to the glyphs tab to add text and glyphs.
The incrementer layer is annoying, and it removes itself after 10 new VI operations anyway, negating the use of an incrementer. I want to choose to remove it from the word go rather than wait for 10 new VIs to be rid of it.
The VI Icon can go as well. I chose a template to work from. I don't want you to cover over my template.
I want to choose a template, goto the glyphs tab and add something descriptive and close it.
Even better, I could pick a template with layers remembered, add another glyph, remove an old glyph and get on with the code.
Bosh bosh bosh. Done. Quick.
As of LabVIEW 2010 when I select Edit...Set Tabbing Order from the menu of a VI LabVIEW makes all controls visible, which is necessary but not sufficient, since that doesn't necessarily make them accessible.
For instance, in our view VIs we frequently make buttons visible only in states when the user can click them. For instance, in the image below the Start button is visible when the system is in StandbyState, but the GoToStandby button (behind it in the image) is visible instead once the system starts.
I know the title doesn't make sense, so I will try to explain.
I think it would be a good idea to have a way to define values similar to the C instruction #define. In C code, you can define constants and change its values all over the code during development time.
Right now, there is nothing like this in LabVIEW. You can use controls and variables, or controls and property nodes.
(Strict) Type Defs for controls have kind of the same philosophy, you change things on a single file, while all the instances are updated (but there is no way to define a single value for all the instances of a control). I guess in LV it would make sense if we could define a constant file, and place it in every block diagram that we want to get that value.
Don't you think it would be a good idea?
I tried to define a Strict Type Def with a range where only one value is possible, and the coercing options. Anyway, the behaviour is not what I expected, as it seems that the control doesn't look at its own properties until you try to change its value. If the control has a default value of 4, and you change the valid range to [5,5], the control will have the 4 value until you try to change it (and then the value will be coerced to 5).
I don't think that is a good behaviour, do you agree?
PS: I think it would be great to have a "User Defined Type Def", in which you could define the things that stay the same and the thing that doesn't, but I know that idea is not mine .
This is really just a small time-and-space-saver...
It would be nice if the * Array Elements functions found in the Numeric and Boolean palettes would work directly on clusters:
Yes, the names would probably need to be changed ... but on the positive side, these functions do not even reside in the Array palette!! (Maybe they were destined for better polymorphism from the start )
It would be an added bonus if Darin's complementary idea was implemented at the same time.
I use local variables a lot and find myself having to keep changing the variables to read mode after dropping them as write mode.
I think it'd be nice to be able to Ctrl + Left Click when dropping local variables to switch them to Read mode, rather than the default Write mode.
LabView has email capability but if you do not have a mail (POP or Exchange) server on your network, or like in my case use of the company exchange server is restricted to users with logins, but automated test machines and ATE system users are not granted logins, you can not send email using the LabView vi's.
Sure it can be done by getting a G-mail account and using the POP servers on G-mail through active-X but that is a lot of hoops to jump through just to send an email, and who knows how long G-mail is going to allow use of the POP servers.
It would be a lot simpler if LabView had a basic POP server vi that could directly send email with settable outgoing port just in case port 110 is blocked for some reason.
At present when an external call is made via system exec.vi you have 2 options wait on completion true or false. If set to true labview suspends until the external app finishes, if set to false labview carries on but can not wait on an output from the external application. There should be a possibility of getting the output from the system exec.vi when when wait on completion set to false.
To give a real world example. I have a large test program that basically monitors a comms bus (udb in this case), and reacts to requests received on it. It also monitors the health and goes into a fault state if nothing received for over 100ms. WHen I call my external application (connects to wlan and gets some data and returns it to labview) labview pauses while this happens, this in turn forces a timeout error. If i set wait until completion false then i dont get the data from the external app. I have implemented a work round (use a temp file which is monitored from labview and set wait on completion to false). Would be much simpler if a method could be implemented in labview itself
In the real world, machine epsilon is a function of the binary representation of a floating point number.
The labview help describes it as:
"Represents the round-off error for a floating-point number with a given precision. Use the machine epsilon constant to compare whether two floating-point numbers are equivalent."
From the term "given precision", we would assume that epsilon depends on the representation. In fact, we can right-click on the machine epsilon and select between SGL, DBL, and EXT.
However, if we look at the actual value, we can see that machine epsilon has the identical decimal value for SGL, DBL, and EXT. No matter what representation we chose, we get the value for DBL.
This is not right!
Suggestion: the machine epsilon must depend on the representation. Since the exact representation of EXT depends on the architecture (64, 80, 96, 128 bits total), machine epsilon for EXT needs to adapt accordingly.
Here's one possible way to calculate machine epsilon explicitly. Note the discrepancy for SGL and EXT.
One of the (frankly many) ways that the Labview Compare Heirachy could be improved is to add support for comparing actual projects.
For instance, I might want to see at a glance what is different between two build specs, or whatever.
At the moment, this leaves me reaching for BeyondCompare (other diff tools are available )
Some people will prefer if the front panel is designed by a graphic artist. You don't want the graphic artist to touch (or even see) the source code or to change controls or indicators in the front panel to ones that will make the VI inoperable (replacing a numeric indicator with a string indicator, for example.)
It will be nice to have a "Front Panel edit mode" where you can only edit the cosmetics of the front panel: move controls and indicators, resize, change colors, etc., test the "Scaling Front Panel Objects" feature (if used), add clipart, etc., with constraints such as only replacing with the same datatype (unable to replace a numeric indicator with a string indicator), unable to change a control into an indicator and viceversa, unable to delete controls or indicators (but perhaps you can add and even link to an existing control or indicator.)
These function names create undue confusion. Every semester, new students to LabVIEW post questions on the NI and LAVA forums asking how to use these functions to open, edit or load data from an Excel file (.xls).
Unfortunately, the name spreadsheet file has become synonymous with Excel. Even experienced computer users have an expectation of some sort of intelligent file when reading the title "Read from Spreadsheet File".
These functions should really be renamed to 'Read from' and 'Write to' DSV file...
Delimiter Separator Values (wikipedia link)
As discussed in this thread.
With all deferance to FDGray, TST, Smercio_fc, Roy, Broken arrow, Ben and anyone I missed.!
1) We re-write the Style guide to remove refeances to control naming convention "Lable (Default)" and change to just "Lable": From here it appears a better technique to use "Caption (Default)" as the caption is a more appropriate location for this information and can be programmatically changed (unlike lables). Code documentation is improved.
2) NI change the Help screen to read the actual default value of controls and display them in parentheses to automate documenting controls to the new Caption(Default) standard.
2) Add an enviormental variable " Automatically display control default values in captions" with a default value of true to allow consistancy with pre-developed code.
There are border width Any Cluster Control that is currently available, it becomes a constraint on the design of the user interface.
|Border width(x)||Border width(y)|
|Classic||5 px||5 px|
|Modern||4 px||4 px|
|Silver||8 px||7 px|
|Zero border (suggestion)||0 px||0 px|
Cluster (classic style)
|Modern style||Zero border style|
This is disguised as shown in the table by putting a line in the body decoration elements of the cluster.
It is better control without the border if it is also available for other controls.