LabVIEW Idea Exchange

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

I am a big fan of the built in logging added to the daqMX library, and would like to see NI build upon this model of adding common dq programming tasks without the need to do anything more than flip a few properties on a task.

 

The set of properties I would like to see is a section on task.read called processing that would apply signal processing to the incomming signal prior to reading.  Some examples would be filtering (low, High, band, selectable windows....) FFT, sthresholing, edge detection (returns booleans instead of analog signal).  If this was implemented in a slick way the driver could possibly offload the processing to a FPGA folowing the cRIO model.  Since this is a property added to a task, the task could decide if there are hardware resources avaliable or software processing only. 

 

The programmer can simply select the processing for the task type and now have a daq task with built-in signal processing simplifying the code development cycle (IMHO).

 

We are all used to creating arrays with a for loop.  I have always wondered why there wasn't a simplier way to do this.

 

What about simplfying array creation with a more advanced Initialize Array.  Add another terminal that is just "increment" or "delta".  In the example below a double array of length 1000 with a starting value of .004 and an increment of .004 per element.

 

newarray.png

It'd be usefull to explicitly see the figures as they look like coded in different FP formats and flavours. The main set of FP format is:

 

 

Floating-point precisions

IEEE 754:
16-bit: Half (binary16)
32-bit: Single (binary32), decimal32
64-bit: Double (binary64), decimal64
128-bit: Quadruple (binary128), decimal128
Other:
Minifloat · Extended precision
Arbitrary precision

 

The new VI(s) would be greatly welcomed.

Hi,

 

Can any one help me in converting Date/TIme(String ) to floating point number and vice verse. I have attached a file which contains the details.

 

regards,

nikhil.

I would like to see the call chain information of the Errors generated by the LabVIEW primitive VIs. In case of the user generated errors As a standard practice we add the Call chain information as part of the source string.

I'd like to have the ability to wire a cluster directly to the selector.  Values of the Cluster could be wrapped with brackets [], or {}, and elements separated by semicolon ; to make the various separations easier to distinguish..  

Add Non-Uniformly Spaced Vector Interpolation to Mathscript or Labview

(Similar to Matlab's griddata function) so the attached data set can be plotted on a contour plot in labview:

 

 

clear all;

x = 0:0.01:20;

y1 = 200*exp(-0.05*x).*sin(x);

y2 = 0.8*exp(-0.5*x).*sin(10*x);

plotyy(x,y1,x,y2);

axis([0,20,-200,200]);

xlabel('Time (\musec)');

ylabel('Fast decay');

title('Multiple Decay Rates');

 

Please help,

1. how can I make the 2nd y label ('Slow decay')?

2. how do I set 2nd y maximum and minimum axis?

Thank you very much in advance.

 

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.