LabVIEW Idea Exchange

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

At present VI analyzer allows you to check a single VI or a complete project. However, within my Project files I often have clutter from imported librarys such as test functions which are not required for the application I am building but will be analyzed if I select the project, making it difficult to tell what is actually important in the results.

 

What I would like is an option to do a "top down" evaluation of the VI where you select your top level VI and run the analyzer on that VI and all the VIs below it in it's tree. This would allow me to ensure that in large projects I can only analyse and fix those VIs that are relevant to my current application rather than wading through potentially hundreds of useless results to find the useful ones.

When a  breakpoint has been inserted in a block diagram, and the vi stops and shows the blow diagram, frequently the breakpoint is on the edge of the screen.  This also occurs when using find/replace to find something in the block diagram, the object found is on the edge of screen, instead of centered on the screen.

It would be nice if the block diagram was centered on the object or breakpoint. 

I guess it is possible this problem is unique to me, possibly because some of the properties of the VI or the options in LabVIEW, and if so, please let me know how I can change it. 

 

LabVIEW comes with a example (Check TDMS File for Fragmentation.vi) to check is a TDMS file is fragmented:Check TDMS File for Fragmentation.vi Block DiagramCheck TDMS File for Fragmentation.vi Block Diagram

I create a subVI based in this example and added to my personal library. How about having a "TDMS is Fragmented" as a native function in the "TDMS Streaming" palette?

 

This is a proposal to the VI's icon:

TDMS is fragmented Icon.png

When replacing a normal Add (of a Timestamp and a value) with the compound arithmetic, the Timestamp input gets broken, this should not be the case.

 

Currently when replacing an element/subarray using Replace Array Subset, you are only able to replace an element that is of lower dimensionality where one dimension is unity.

For example, given an array of size 100x3, it is only possible to replace one row at a time 1x3.

It would be helpful for me to avoid using a loop and be able to replace a subarray of dimension Nx3 where  100 > N > 1.

 

I may still have to use a loop to completely fill an array, but the loop could potentially run many less iterations.

This comes up for me because I read the FIFO buffer from a device and generate a chunk of data at once.

I then need to insert this data into a preallocated array (avoiding buildarray or similar due to the time critical nature of VI).

 

If I have a 1E5x3 array that I want to place into a 1E8x3 array, why waste time with a loop to do each row at a time (remembering that the loop is still much faster than buildarray)?

Inconsistency is found in the supported image types for many IMAQ vi's:

 

For instance IMAQ ROIProfile, IMAQ LineProfile and IMAQ LinearAverages supports U8, I16 and SGL format but do not support U16 format images.

 

But, a profile along a line drawn in a U16 image should make as much sense as in an U8 image. Shouldn't it? So why is it not supported?

 

In addition, I would expect it to be easy to add an additional polymorphic U16 version.

 

These are just a few of several examples of similar inconsistency in IMAQ vi's.

 

 

Message Edited by heel on 03-17-2010 08:33 AM

there have been several ideas on the forums pertaining to making labview smarter about how it handles arrays, but none of them (that i've been able to find) quite get to the root cause: labview doesn't directly support a 'sorted' status of arrays.

 

sorted-arrays.png

 

 

labview should add a 'sorted' field to the array data. when the array primitives detect, either at runtime or compile time, that an array is or could be sorted, it generates optimized code. for the most part primitives will function the same but just be more efficient (e.g. array min/max will be constant time operations).

 

the special cases for this feature are the array building and modifying primitives because i believe they will need special behavior in some cases to make sorted arrays useful.

 

build array  when all input arrays are sorted, the output array will be sorted. this seemed strange to me at first, but the more i thought about it, the better this seemed as the default behavior.

 

insert into array  when the input array is sorted and the index is unwired, the output will be sorted. this will be true whether or not the insertion is one element or an array of (possible unsorted) elements. 

 

i would assume you could turn any of these behaviors off by right-clicking on the node and configuring it. i'm sure the labview team can figure out mutation issues as necessary.

Hi,

 

Adding or allocating a secondary axis in Excel chart/graph using Report Generation is a good to have feature. We can however use Macros to do this, but if we have a VI in Report Generation that would be great.

 

 

Thanks!

Hi

 

I think the title itself is self explanatory. 🙂 🙂

 

How about modifying the thermometer vi so that there are options in the vi itself which help in setting the colour (which fills the thermometer) for a range of temperature.

For example. if the range is from 0 to 100, then:

                                                                            GREEN for 0 to 30

                                                                            ORANGE for 31 to 60

                                                                            RED for  61 to 100

 

(not trying to make a traffic light system......hahaha)

 

the colour and the range can be set by the user.    

The Attached code calculates the square root free Cholesky factorization (LDL'), it is very useful to decompose matrices and in my specific case, to make observability analysis within electrical distribution networks. I'm publishing it because LV counts with other kind of decompositions like the LU decomposition, very useful but for my case, the values delivered by LDL' are more accurate and easier to calculate.

 

Best regards

Hello,

 

now the percentile VI calculate a table with NaN-values as the NaN-values are numbers higher than +Inf. This is incorrect.

 

The percentile VI should propage to result NaN if one of the elements of the table is NaN.

(An other solution is not consider NaN values and return as result the value greater than p percent of the data values in the array, but it would create incoherences with all other VI which propage the "NaN value")

 

Here a screenshot of the a bad response of this VI.

percentile-vi.PNG

Match regular expression will return sub matches for any groups in your expression. So this expression: (\w+)_(\w+) would be sub match 1 and 2.

 

temp.png

 

However, LabVIEW only returns the string of the sub match, not its offset and length. This makes doing replacements on sub matches difficult and technically impossible because you then have to do a search and replace on the sub match and hope there isn't an identical string somewhere in the full string (causing an incorrect replace).

 

Other languages deal with this easily by addressing sub matches by slash codes. For example the first sub match is \1 and the second is \2. So you can say... search for this and replace \1 with that.

 

So I propose:

temp2.png

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:

bd.png

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 Smiley Wink)

 

addmult.pngandor.png

 

 

It would be an added bonus if Darin's complementary idea was implemented at the same time.

This function already handles alpha characters such as the plus and minus signs, "e", "E" and the localized decimal point. It should also be able to handle the "thousands" separator (in the US, the comma).

 

Currently, if the string is "2,000,000" it returns simply "2". Ouch!

From trying to make a malleable VI for some set/map functionality, I cannot seem to find a good way to cause the VIM call to be broken for when the input is not a set/map. It would be helpful to have a Asset Set and Assert Map method added to the Assert Type palette for this. 

Related post 

I need the IMAQ Correlate function

 

imaq correlate.PNG

 

to work on a sub-pixel (super resolution) basis. For sub-pixel resolution capability, you will have to change the internal mathematics of this function for floating point calculations.

 

This function, as I am recommending for all of the Vision functions, should be made compatible with U16 image type as well.  (Currently, it is only compatible with U8 image type.)

If you have messy "future" or "obsolete but we are being risk-averse and keeping it around" code in the Disabled state of a Diagram Disable structure, VI Analyzer reports test failures for such code, in my opinion cluttering results.  It would be great to have an option, perhaps in the "Select Tests" page of the setup wizard, to ignore any such code.

Curvature in NI Vision has a property that makes a lot of sense: "If the current point is too close to either end of the array to choose the additional points, the curvature is calculated as 0." (Vision Manual).

Too close refers - obviously - to ~0.5 Kernel size.

 

curvature.png

 

This makes no sense when I'm working on an contour that is "closed" (starting point = ending point) - for example, when I am trying to analyse a particle and its "turning points". 

 

 

I'm losing 1 kernel width of data at exactly the starting point/end point - as marked in the picture - and in this synthetically generated and exxagerrated case, I'm losing the information about one edge!

To fix this, I either rotate the ROI or change the search direction, calculate the missing data and replace the values in the curvature profile. (Or - calculate the curvature myself.) 

This makes absolutely no sense. 
Vision could easily recognize starting-point = ending-point, or just allow me set some boolean if there is a reason not to make this automatic. (I can't think of one.)

 

It's a simple idea really.  Recompile the existing code so that the SPT runs in Linux and Mac, not just Windows.

Hello, I would like to be able to copy a configuration for a specific variable in fuzzy system designer. It's very tedious to specify the ranges and the values for those variables one by one. In some cases there are many variables that are configured in a very simillar way. There should be a copy button next to them.

 

Fuzy System Designer Idea