Usuario:984 M18273

De Wikifab

TAREA 2

La interfaz de usuario programada para la presente tarea es la siguiente:

Imagen:M18273_Tarea2_1.PNG


Esta interfaz se compone de dos paneles:


1. Temperatura, donde encontramos los siguientes controles:

  • Arranque: si el interruptor está en "On" el programa representa en el gráfico, mientras que si está en "Off" detiene la representación.
  • Límite Superior: permite regular el límite superior de la temperatura.
  • Alarma Superior: el led se enciende si la temperatura en un instante de tiempo determinado está por encima del límite superior establecido.
  • Temperatura Instantánea: muestra la temperatura en cada instante de tiempo.
  • Sample Rate: permite regular la velocidad con la que se quiere representar en el gráfico.
  • Grabar Set de Datos / Detener grabación: pulsando este botón se empiezan a registrar en un fichero .txt los valores de temperatura que se vayan representando en el gráfico. Al volver a pulsar el botón se detiene el registro.
  • Análisis de Datos: al pulsar este botón se accede al panel "Análisis de Datos".
  • Salir: pulsando este botón se sale del programa.


2. Análisis de datos, donde encontramos los siguientes controles:

  • Mostrar Set de Datos: pulsando este botón se representan en el gráfico los valores guardados en el fichero .txt.
  • Borrar Set de Datos: pulsándolo se despeja el gráfico.
  • Promedio: muestra el promedio de los valores representados en el gráfico.
  • Volver: al pulsar este botón se vuelve al panel "Temperatura".
  • Salir: pulsando este botón se sale del programa.


Las variables declaradas para poder realizar el código del programa son:

Imagen:M18273_Tarea2_8.PNG


Asimismo, es necesario cargar el 2º panel, que se hace por medio de:

Imagen:M18273_Tarea2_3.PNG


Aunque en la interfaz de usuario no se aprecia, también se hay un "Timer", el cual permite concretar diversas funciones gracias al siguiente código:

Imagen:M18273_Tarea2_9.PNG


Para almacenar los datos en el fichero .txt se utiliza el siguiente código:

Imagen:M18273_Tarea2_10.PNG


Por un lado, para acceder al panel "Análisis de datos" se emplea la siguiente función:

DisplayPanel (panelHandle2);


Por otro lado, para volver al panel "Temperatura" se utiliza la siguiente función:

HidePanel (panelHandle2);


Para mostrar los valores guardados en el archivo .txt, así como el promedio de los mismos, se hace uso del siguiente código:

Imagen:M18273_Tarea2_11.PNG


Para poder borrar los datos representados en el gráfico se utiliza la siguiente función:

ClearStripChart (panelHandle2, PANEL2_STRIPCHART2);


Los resultados que se pueden obtener con este programa son como los que se muestran a continuación:

Imagen:M18273_Tarea2_12.PNG


Archivos para ejecutar el programa: Media:M18273_Tarea2.zip



TAREA 1 - REPRESENTACIÓN DE ONDAS SENOIDALES

Este programa permite al usuario representar ondas senoidales en función del número de ciclos, fase y amplitud del seno y del ruido que establezca el propio usuario, así como elegir el color con el que se quiera representar dicha curva.


La interfaz de usuario programada para la presente tarea es la siguiente:

Imagen:Tarea1_1.PNG


Los distintos controles del panel son:

  • Sine Cycles: permite modificar el nº de ciclos de la onda senoidal.
  • Phase: permite modificar la fase de la onda.
  • Sine Amplitude: permite modificar la amplitud de la onda.
  • Noise Amplitude: permite modificar la amplitud del ruido.
  • Plot Color: permite seleccionar el color con el que se quiere representar en el gráfico.
  • Add Wave: pulsando este botón se representa en el gráfico la función senoidal descrita con los parámetros anteriores.
  • Delete Waves: pulsando este botón se eliminan todas las curvas representadas.
  • Exit: pulsando este botón se sale del programa.


Para que el programa detecte los valores numéricos que se introduzcan para el nº de ciclos, la fase y la amplitud (del seno y del ruido), junto con el color asignado, se declaran las siguientes funciones en el código:

GetCtrlVal(panelHandle, PANEL_NCICLOS, &vnciclos);
GetCtrlVal(panelHandle, PANEL_FASE, &vfase);
GetCtrlVal(panelHandle, PANEL_AMPSENO, &vampseno);
GetCtrlVal(panelHandle, PANEL_AMPRUIDO, &vampruido);
GetCtrlVal(panelHandle, PANEL_COLOR, &vcolor);


Para que el programa represente las diferentes curvas senoidales con un ruido determinado, se fijan en el código las siguientes funciones:

SinePattern (1000, vampseno, vfase, vnciclos, seno);
WhiteNoise (1000, vampruido, -1, ruido);
for (i=0; i<=999; i++)
{
senoruidoso[i]=seno[i]+ruido[i];
}


Por un lado, para representar la curva deseada, se emplea la siguiente función:

PlotY (panelHandle,PANEL_GRAPH,senoruidoso,1000,VAL_DOUBLE,VAL_THIN_LINE,VAL_EMPTY_SQUARE,VAL_SOLID,1,vcolor);


Por otro lado, para borrar todas las ondas representadas, se utiliza la siguiente función:

DeleteGraphPlot (panelHandle, PANEL_GRAPH,-1,VAL_IMMEDIATE_DRAW);


Los resultados que se pueden obtener con este programa son como los que se muestran a continuación:

Imagen:Tarea1_2.PNG

Imagen:Tarea1_3.PNG


Archivos para ejecutar el programa: Media:M18273_Tarea1.zip

Herramientas personales