Measurement Studio for .NET Languages

cancel
Showing results for 
Search instead for 
Did you mean: 

Track Mode para plots en Measurement Studio 8.6

Hola Comunidad,

 

 

Es mi primera pregunta en NI Developer Zone, es muy urgente para mi saber como hacer esto para continuar mi proyecto. Estoy elaborando una Aplicacion que contiene Waveformgraph y 200 canales de waveformplots, mi duda es como poder hacer un tracking de cada plot para detectar desniveles y puntos maximos y minimos en mi plot. He visto eventos que detectan un nearest point en el plot pero no funcionan muy bien que digamos, Tambien vi alguna opcion llamada cwGTrackDragCursor pero no encuentro esto en la version de Measurement Studio que tengo. Necesito este tracking de los 200 plots para poder calcular defectos en mi grafica. Gracias por la ayuda!

 

 

Armando.

0 Kudos
Message 1 of 4
(4,452 Views)

Hola Armando.

 

Una pregunta, lo que te interesa es detectar los puntos mínimos y máximos de los datos y mostrarlos en la gráfica, correcto?

 

Si solamente quieres hacer cálculos o tener el valor numérico de los valores te recomendaría trabajar sobre los datos de entrada y no sobre la gráfica. En caso de que lo que desees es mostrar esos puntos si tendrías que alterar la gráfica programáticamente. En caso de que lo que quieras sea lo segundo te dejo algunos ejemplos al respecto:

http://zone.ni.com/devzone/cda/epd/p/id/1175

 

Si me pudieras explicar mejor exactamente que es lo que requieres te puedo apoyar de una mejor manera.

 

Saludos.

 

Aldo H
Ingenieria de Aplicaciones
0 Kudos
Message 2 of 4
(4,442 Views)

Hola Aldo,

 

 

Muchas gracias por tu respuesta en verdad lo aprecio mucho. Basicamente lo que quiero es desplegar el tracking de los datos por cada plot, es decir tener por decirlo de algun modo, un cursor que siga mis 200 plots y que de el dato al que estoy apuntando. Es buena tu idea de pre-procesar los datos en vez de detectarlos en la grafica solo queria ver si los eventos que esta tool tiene en realidad funcionan. Adjunto unos screen shoots de lo que quiero lograr. En la figura se muestran los 200 canales que estoy graficando, en el text box de defectos es el punto de dato que me arroja esta condicion:

 

XYGraphHitTestInfo hitLoc = waveformGraph1.HitTest(e.X, e.Y);

if (hitLoc == XYGraphHitTestInfo.Plot)
{
// now that we know we're over a plot, get the plot we're over
XYPlot hoveredPlot = waveformGraph1.GetPlotAt(e.X, e.Y);
double xVal, yVal, hovX, hovY;
// get the point (in data coordinates) that the mouse cursor is over
hoveredPlot.InverseMapDataPoint(hoveredPlot.GetBounds(), new PointF(e.X, e.Y), out hovX, out hovY);
// check if that data coordinate point is close to a point on the plot we're over
TxtDefect.Text = hovY.ToString();


  dentro del evento  waveformGraph1_PlotAreaMouseMove 

 

El Problema es que este evento no es muy dinamico que digamos y no arroja los puntos de dato a un buen rate por decirlo asi de muestra. En la grafica se esta viendo el canal 85 y el punto que arroja este metodo. Una vez mas te agradezco tu ayuda!

 

 

0 Kudos
Message 3 of 4
(4,439 Views)

Hola armando, sí esta arrojando resultados extraños ese método.

 

Te dejo un par de ligas con métodos diferentes que podrías utilizar para lograr el mismo resultado.

http://digital.ni.com/public.nsf/allkb/98024D511124B8CF86256D210079FF01?OpenDocument+

http://zone.ni.com/devzone/cda/tut/p/id/10525

 

 

Saludos.

 

Aldo H
Ingenieria de Aplicaciones
0 Kudos
Message 4 of 4
(4,428 Views)