Usuario:984 M18004

De Wikifab

TRABAJO 1: SENO RUIDOSO

INTERFASE CON EL USUARIO


Imagen:Interfase_Gráfica.PNG

En la imagen superior se muestra la interfase gráfica con la que interactúa el usuario, se han definido características de la curva Seno, las cuales son definidas por el usuario mediante botones.


Imagen:TIPO BOTON.png

Los botones correspondientes a Nº Ciclos, Amplitud del Seno, Fase y Amplitud del Ruido corresponden a botones tipo numéricos. El botón para cambiar el color de la línea también se muestra en la imagen de arriba junto al boton numérico simple; los botones Graficar, Borrar y Salir son botones tipo comando. Finalmente la gráfica es estática.

GENERACIÓN DEL CÓDIGO EN C


Imagen:GENERAR CÓDIGO.png

Una vez terminada la interfaz gráfica le damos a generar todo el código, lo que nos da el esqueleto del código en C que podemos modificar, empezamos por declarar las variables:

Imagen:Variables.PNG

Ahora procedemos a programar los botones comando de Graficar, Borrar y Salir. Empezamos con los más sencillos que son los de Borrar y Salir, así para borrar lo hacemos con el siguiente código:

Imagen:BORRAR.PNG

También se ha agregado la opción de que al hacer click derecho se muestra un mensaje indicando la función del botón.

Para el botón salir, tenemos la siguiente configuración:

Imagen:SALIR.PNG

Finalmente vamos a ver la configuración del botoón Graficar, el objetivo de la práctica es generar una onda Senoidal con ruido, para eso vamos a generar dos vectores de 1000 puntos cada uno, en un vector almacenamos el valor del Seno, mientras que en el otro almacenamos el ruido, por lo que si queremos la gráfica de un "SENO RUIDOSO" creamos un nuevo vector que es la suma del vector Seno y del vector Ruido. Para esto empleamos un lazo for. Los parámetros para graficar el Seno son definiddos por el usuario mediante los botones numéricos insertados en la interfaz gráfica mencionada al principio, por lo que para llamarlas usamos el GetCtrlVal, esto hay que hacerlo para las cinco variables definidas por el usuario que son: Nº Ciclos, Amplitud del Seno, Fase, Amplitud del Ruido y el Color.

Imagen:GRAFICA SENO.PNG

Adicional se ha agregado la opción para mostrar la ayuda haciendo click derecho sobre el botón para ver su función.

RESULTADO FINAL


Imagen:SENO RUIDOSO.JPG

Se muestra la apariencia final del programa, como podemos observar para que se aprecie mejor se definió que los incrementos de la amplitud de ruido sean pequeños. A continuación se adjunta el fichero que contiene el programa.

Media:TRABAJO 01.rar



TRABAJO 2: Grabar y mostrar Set de Datos

Imagen:INTERFASE_M18004.PNG

En la imagen superior se muestra la interfase gráfica con la que interactúa el usuario, en el stripChart se muestra la variación de la temeperatura con el tiempo, además en la parte inferior un Graph que muestra los datos guardados, cosa que explicaremos más adelante,se ha configurado dos alarmas: una superior y una inferior cuyos valores pueden ser modificados por el usuario mediante un dial. Adicional se ha añadido otro dial que permite variar la frecuencia con la que se generan los datos, esto lo realizamos modicidon el aributo de frecuencia en el timer. También cuenta con un botón numérico que muestra la temperatura instantánea de la gráfica.

Para empezar se declaran las variables y los vectores que se necesitan dentro el programa y tambien los static char para utilizar la escritura y lectura de ficheros. En el switch del BINARYSWITCH se programa un condicional if para grabar el estado del arranque dentro una variable.

Por medio de la instrucción "GetCtrlVal" se lee los valores definidos por el usuario en la interfase y para luego asignarlos a los variables de frecuencia del timer y las variable de los límites superior e inferior que reigen el comportamiento de las alarmas.

A través de "SetCtrlAttribute" se puede regular la velocidad de visualización sobre el Stripchart cambiando la frecuencia de muestreo en el timer.

Por medio de la función Rand se generan los datos aleatorios, los cuales se guardan en un vector de 3 dimensiones donde adicional a lo anterior se añade los valores de los límites superior e inferior en las correspondientes variables. Luego por medio de las instrucciónes "PlotStripChart" y "SetCtrlVal" se visualizan los puntos sobre el grafico con los dos limites y el valor instantaneo de temperatura. Cuando la temperatura instantánea supera el valor inferior o superior definido por el usuario, se enciende las alarmas.

Dentro el switch del botón GRABAR, para registrar los datos en el momento que se hace clic sobre el boton, se utiliza la instrucción "ArrayToFile" que quiere en input un vector donde estàn los datos, los cuales están grabados en el vector wave que se puede observar en el código. A continuación se muetsra la interfase para guardar el set de datos:

Imagen:GRABAR M18004.JPG

De la misma manera en lo switch de MOSTRAR se usa "FileToArray" que hace la función inversa, transfieren los datos del fichero seleccionado a un vector (en el código definido como waveload), el cual se grafico a través de la instrucción "PlotY" y un ciclo for que alimenta una variable contador para contar solo el numero de datos diferente de cero. A continuación se muestra la interfase para abrir el fichero y luego como se grafican en el panel.

Imagen:MOSTRAR M18004.JPG

Imagen:GRAFICA M18004.JPG

Se adjunta fichero con los archivos correspondientes.

Media:Tarea 2 M18004.rar

Herramientas personales