LabVIEW Idea Exchange

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

I need a Gantt chart to show the order of a number of events from a log file. The X-axis was to be time, and a number of categories were listed along the Y-axis, similar to digital plot.

I wanted to represent each operation by a horizontal bar starting at the start time and ending at an end time. Multiple events could happen for each category over time. Ideally when hovering over an event, details should become visible. The end result would look similar to what you may know from MS-project, but is not quite the same.

Eventually I ended up drawing the whole thing in the picture control. While passable, it's not as clean as I want it to be and it's a work around. It is not easy to incorporate zoom, highlight elements etc.

Later on, I was completely blown away by an implementation of a similar Gantt chart in JFreeChart. It was zoomable and customizable every which way. If you don't know JFreeChart - check it on the web. It offers a highly customable graph api to the Java community for free (some 40,000 developers are incorporating it in their Java programs). The problem is... it's in Java and Labview can't touch it.

So what I would want is either a Gantt chart in Labview, or (maybe better), a Java container with the whole support of references, methods and properties (if possible), just like active-X and .net support.

The example graph is a very simple one. Now imagine 100 line items, each with hundreds or more occurrences, zoomable, expandable, color coded, labeled, etc.

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!

My idea is about the representation of arrays in the "Probe Watch Window". At the moment you only can scroll through the values of a array/multidimensional array if you have a Probe on a array wire. If I want to know the dimension of the array I have to scroll through the whole array until a value is grayed. Because of that it's easier to build in a "Array Size.vi" to find out if my arrays have the right dimensions but it would be more comfortable if I could see it already in the Probe Watch Window at the Probe Display

.

In summary it would be very helpful if I could see the dimensions of a array at once in the Probe Watch Window.

As requested in this thread (http://forums.ni.com/t5/LabVIEW/Picture-variable-to-image-IMAQ/m-p/1626254), it would be nice if there were a function that could convert the picture type that is output from the Graphics and Sound toolbox into an IMAQ image type. 

 

Currently, the necessary steps are to use a trio of Picture to Pixmap, Unflatten Pixmap and then IMAQ ArraytoImage or IMAQ ArraytoColorImage or to save the file as a .bmp and then loading it as an IMAQ image.

 

Thanks!

 

Please add the circle constant tau, to the Math & Scientific Constants palette.  Happy Tau day!  (see more at http://tauday.com/)

 

Tau Constant

Therefore, my suggestion is to add functionality to a probe to provide the ability to replace the data passing through that point with the value of the developer’s choosing, either for a single iteration, or for multiple itterations.

 

Occasionally I have found instances where is would greatly helpful to be able to inject a value into a 'wire' for either a single iteration or for every iteration, overwriting the value that would be naturally set by the previous operation. This may be a desire to insert an erroneous value to test my code's response to unexpected values without disrupting the code that is in place, or, as I hate to admit, to recover a runaway thread without disrupting the execution of the remainder of the application and any associated, unsaved data.

 

For example, a while loop that has managed to miss its exit condition due to an unforeseen race condition, holding up a weekend’s worth of data collection from being saved to disk. Rather than being forced to click the dreaded Abort button, it would be nice to be able to simply force the next evaluation of the conditional terminal to be True, exiting the while loop and freeing the execution of the remainder of the application

 

Most fitting VIs have a mandatory input for X that is required to be the same sizes as the Y input. If left unwired, an error results, even though the x input is not designated a a required input for some reason.

 

Many times we want to fit a plain 1D array where the X value for each Y is simply the corresponding array index. In this case, the data and best fit arrays can be graphed on a waveform graph and we can ignore x entirely. This is now much cleaner and simpler than to construct the data for a multiplot xy graph.

 

Here is an example of a polynomial fit to a sine function, showing what we currently need to do. This idea would eliminate the need for the small FOR loop and associated wires:

 

 

 

My Idea is that most fitting VIs should assume a simple ramp if X is unwired.


(Applies to all fit function that have an X input and generate an error if it is left unwired: linear fit, polynominal fit, etc. )

 

 

Exceptions:

Fitting VIs that currently don't have a mandatory x input, e.g. "Nonlinear Fit" don't need to change, because it is up to the model to make assumptions about x. We already have full flexibility.

 

 

 

(A while ago I suggested to post this idea, but it has not happened so I do it. :D)

 

The Akima Spline (For example explained here) seems to have some desirable features compared to all the interpolation and fitting algorithms available. It should be added to the LabVIEW functions, at least to interpolate 1D

In a complexe project, when you make Packed Librairie (lvlibp) or dll it is very important to compil your lvlib in a good order.

(from lvlib with less depencies to lvlib with more depencies)

 

But we don't have a way to see the lvlib hierachy

(we have only vi hierarchie, class hierarchie)

 

 

Instead of using the sequence local, it maybe better to use the shift register in a sequence loop.

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.

 

Back in my Pascal days I could access string as an array. This made processing of data presented as a string much easier.  In Labview I have to convert the sting to an array then process the elements. This would not be too bad if their was ASCII option in the radix for a unsigned integer or case structure

 

 

I often want to pull elements out of an array based on their content. In a simple example, I'd like an array B that contains all, the elements of A that are greater than 0.5. A few previous posts have suggested a conditional append function on the output of a loop. Here's another possibility. Change IndexArray so that one can wire an array of Booleans to the Index input. The output would be just those elements of the input array for which the Boolean array element is true.

 

 

Another way to handle this would be to have a primitive that returns an integer array containing the indices of the true elements in a boolean array. Then allow arrays of indices to be wired to the Index input of IndexArray.

 

By the way, these are not really orignal ideas. They come from Matlab. Specifically, the A(A>0.5)  syntax and find(A>0.5).

I would like the ability to create a visually appealing Intensity Plot without having to jump through the hoops involved in some workarounds.  It could be a right click option or something, similar to anti-aliasing an XY Graph. For possible workarounds, see the thread I created here when I was looking for a way to do it.

 

intensity.PNG

3d.PNG

 

I want the top (Intensity Plot) to be able to look like the bottom (3D Surface)

Up to LV 2010 the "Nonlinear Curve Fit.VI" has an Input for the data weighting. For sure this could somehow be related to measurement errors of the data, but as this is not documented and not for a daily user well known it would be nice to have an additional instance were the input is not the "Weight" but the "Std. Dev. of y".

In a similar way it is not totally straight forward to calculate the standard deviation for the "best fit coefficients" from the "covariance matrix". So an additional output "Std. Dev. of best fit coefficients" would be very helpful.

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.

Hi,

 

My application uses a series of files to configure it self and I need to search in arrays to find which are similar to a given reference.

 

My solution is to use a for with a Match pattern VI and some logic to do the operation.

 

I believe that "Search 1D Array" would be faster than this implementation if it had the option to use wild cards ("*" and "?") as "element" input.

 

Other option would be include a flag "Exact match", by default set to TRUE to behave as is today or FALSE to stop on first occurrence of "element" in the array that contains it somewhere.

 

For example, if element = "ode" and array element = "model", it should set as a match if Exact match is set to FALSE.

 

Cheers.

Currently, whenever you filter data it is initialized with all zeroes.  If your data is fairly constant, there is a large section where the filtered value slowly goes from zero to the steady state value.  This is annoying when doing a quick look at the filtered data, because you have to rescale a graph to ignore the ramping portion of the filtered data.

 

My suggestion is to provide an option for either providing a starting value for the filter or automatically using the first value of the data being filtered.  For fairly constant data, this would eliminate the large ramp from zero.  For varying data, it would start better as well.  It seems the initial value is fairly arbitrary, so it shouldn't violate any mathematical rules.  It would be the equivalent of subtracting the first value from all the data, filtering, then adding the first value back to the filtered data.

 

Bruce

It seems like it shouldn't be too much to ask for a proper Smith chart (with markers and everything!).  Seems like it's already hiding somewhere...