LabVIEW Idea Exchange

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

Hi,

 

I believe that an express VI that implements a Karmaugh map to solve a boolean equation would be good.

 

The VI should receive the input, request the output(s) name(s) and provide to the user "truth table" the define the boolean equation.

 

At the end, the VI should provide boolean gate array that fulfill the table.

 

Ref. http://en.wikipedia.org/wiki/Karnaugh_map

 

This would help us to implement complex logics with simple boolean algebra expressions.

 

Cheers.

Hi,

 

Some times a test must check an output that doesn't have a precise value and this output is expressed as a value +/- a band.

 

The current "In range" implementation requires that we provide the max and min value and indicates if the value was coerced or not.

 

I believe that we could have an LabVIEW primitive that works likes it but just check the value against a reference with a safe band expressed in absolute value or percentage.

 

The code would be something like this:

 

In range.PNGCheers.

Quite often I find myself using a combination of Array Size + Index Array with a constant to know just one size of a multidimensional array. Wouldn't it be easier, if Array size would behave in a similar way as other array functions - depending on how many dimensions the array has, so many outputs show up. The example shows 2 dimensions, but could be expanded to more

It would be very helpful for the programmers if the controls/indicators properties window has one more tab where we can define conditional expressions for disabling enabling the controls/indicators instead of writing case structures in BLOCK Diagram.

I would suggest that NI makes the datatypes of the "Quotient and Remainder" VI consistent.

 

If you now wire a double to the VI the outputs are of the datatype "double" however in my opinion this is not consistent with the mathematical definition of quotient, floor(x/y) and remainder, x-y*floor(x/y). The output of the VI is always a integer and should therefore also be of that datatype, thus one of the following datatypes (I64, I32, I16, I8).

It would be nice to have an option in XYgraph that could allow the user to define some set of spatially related points (or cluster in statistics) by drawing some boundaries with complex shapes using the mouse. Here is the problem that brought me to write this post. Let's say that we have a series of data {x1,x2...xi...xn} that represents the duration of time between two adjacent heart beats. The pointcare plot is the representation of the points [xi,x(i+1)] and that can be achieved to by the XYGraph function. Using this graphic, it is expected that adjacent intervals with almost similar values will form a cloud (circular, eliptic or with more complex shapes) centered around the average values of the xi. Now, unusual changes between adjacent xi values in the time series (lower or higher x(i+1)) will result in points outside of the primary cloud. This is an easy way to identify abrupt changes in a time series.

 

The step I'm blocked with the following. After I used the XY graph to plot the [Xi,X(i+1)], I would like to use the mouse the draw the border of the primary cloud and extract separately the indexes of the point in or points outside the border. 

 

Again, I really appreciate your help for that.

 

Olivier 

Add support for array calculations in Formula Node.

Seems not that much of an effort, since LabVIEW is very array based.

Now only scalars can be dealt with.

 

(Mathscript is an add-on that can do this, however I would like to see this as base functionality).

Currently I'm busy with GOOP and I came across the following problem. 

 

I have a validator class. The purpose of this class is to validate data. The validator class as a number of childrens...

 

Validate IP address

Validate string length

Validate inRange number

Validate Alpha

 

The main, validator, class has a function called "valid?" This function has 3 inputs and 3 outputs

 

Inputs:

- Object

- The data that must be validated

- Error

 

Output:

- Object

- Valid?

- Error

 

The children classes must inherit this function and overwrite it. Now the problem is is that each of the above validators have a different datatype which must be validated....

 

Validate IP address has a string as input

Validate string length has a string as input

Validate inRange number has a number as input

Validate Alpha has a string as input

 

Now you might see the problem. To get the children to inherit the function from the main, validator, class the connector pane must be the same as of the datatypes... This means that I have to choose in my main function to use a string or a number as input... This is something that I don't want... I want to be able to select a datatype called "yet unknown datatype" in my main "valid?" function in the main, validator, class. So that I can use any datatype input in my children that is suitable for that implementation. 

 

 

My idea is thus to create a new kind of datatype which sort of represents "any kind of datatype known to labview" which can be used in functions of a main class that are inherited by its children, which are all using a different input datatype.

 

ps. Now you could maybe suggest why not use a variant datatype? Yes this is possible but the problem is;

- I would have to cast the data back

- It isn't very neat programming, the variant solution is in my opinion more a kind of hack to make the code work.

 

pss. Yes but if you would do this... then...

- Yes there are proberbly a few more work arounds thinkable, such as creating two "Valid" VI's one inherited (Valid?), one unique of the child (_Valid?), but these are in my opinion still workarounds and do not really provide the functionality that is needed. Which is pretty common in OOP languages.

 

psss. if anyone knows a better title for this described idea let me know it! 

In their current form, Auto-Indexing tunnels only operate on a single dimension of an array.  For example.  If you input a 2D array, through an auto indexing tunnel into a for loop, and display the resulting 1D array in an indicator inside the for loop as below, you will always get the last row.

 

I'd like to see a feature where you can right-click on the tunnel or something, and set it to auto-index by column, instead of by row, and get the last column instead.20773i86B483107F51CD3820775i651136B201680B64

 

It could be as simple as an option in the context menu for the auto-indexing tunnel to say "Index by rows" or "Index by columns"  It gets more complex with 3D 4D and moreD arrays, but you could do something like a submenu flyout that says "Index By Dimension" > "1", "2", "3" etc

 

Hi,

 

I need a vi which will convert PNG file to GIF file. i could find a vi which is not in palette, do this. But the output GIF file is in uncompressed format. So the size of the file is very large. And also it is not working when i build the application as EXE.

 

It will be really helpful for me if this feature is included in the next release of LV.

 

Thanks,

Vairamuthu.

-----------------------------------------------------------------------------------------------

Via the Historical Data Viewer it is possible to export the citadel data to text (compare screenshot). In many cases it is necessary to export only the real datapoints without interpolation (like the read trace VI supports) to avoid an incorrect representation of the recorded data.
it would be nice if we could copy teh changes from one vi to another while comparing two VI's

To make your code reusable as subvi's and have less connector space used the cluster is a way to go, but you need to define the types inside your cluster upfront.

If you want to add an other item inside this cluster you have to rewrite all the subvi's this cluster is wired to...... This is at least annoying. (or dull, boring, dreadful, tedious, dreary, tiresome, aggravating, exasperating, irritating)

 

If you could add new types of variables inside this "Dynamic Cluster Array" on the fly, you can expand the clusters on the fly when needed !

 

Example of a "Dynamic Cluster Array":

 

Dynamic_Cluster_Array_example.png

 Look also to the Search 1D node, to see how you can select an array cluster item.

 

You can read and write the cluster as normal clusters but if you want to read or write a variable that does not exist this variable is added.

Reading and writing this variable will add this variable in all clusters in the array, these variables will get the default value until your software changes this value.

 

This behavior is the same as structures in Matlab

 

John

I really wish labview had a rainflow analysis algorithm in one of its tookits. Rainflow analysis algorithms are very useful for analyzing lots of data taken during structural test monitoring. A real-time version would be nice too.

 

180px-Rainflow_fig3.PNG

 

 

taken from http://en.wikipedia.org/wiki/Rainflow-counting_algorithm