Usuario:984 M18096

De Wikifab


RUBÉN MARTÍN


Graduado en Ingeniería Mecánica por la Universidad Carlos III de Madrid.

Estudiante del Máster en Ingeniería Mecánica de la Universidad Politécnica de Madrid.




TAREA 2


En este ejercicio se va a ejecutar el funcionamiento de las siguientes interfaces.



Una vez iniciado el programa (run) aparecerá la interfaz del menú principal, ahí gracias a la adaptación de una función random, se podrá representar unos valores de temperatura que oscilan entre 20 y 80. Para que se empiecen a mostrar estos valores en el StripChart habrá que accionar el botón de arranque (ponerlo en ON). El programa va representando valores por cada unidad de tiempo que origina un timer. Esta frecuencia de tiempo se puede modificar con la ruleta freq timer. El StripChart también representa los límites superiores e inferiores que el usuario desea de temperatura, para ajustar estos límites hay otras dos ruletas que los ajustan. Cada vez que la temperatura supere estos límites, se encenderá una alarma roja dependiendo de si se ha superado el límite superior o el inferior.


Imagen 2: Funcionamiento menú principal


En la imagen se ha podido observar como se representa gráficamente la temperatura y además se muestra el valor de esta, a cada instante, en un panel numérico. Se puede apreciar también que hay un botón para grabar un set de datos, esto va a permitir grabar un cierto número de datos que se muestren en la gráfica. Cuando se quiera empezar a grabar los datos se da a reset para limpiar el StripChart y se ajusta el número de datos que se desee para el set y su posterior graficado en el análisis de datos. Pasado un cierto tiempo se pulsa el botón de grabar, y se generará un archivo que contiene el número de datos que se ha marcado de las temperaturas que han aparecido desde la reinicialización.


Imagen 3: Acción de guardar Set de Datos


El último botón que aparece en el menú principal es de Análisis de datos, pulsando este botón se puede acceder al segundo interfaz de usuario. En él se pueden cargar los datos que previamente se habían guardado pulsando en el botón de Mostrar Set de Datos. Estos datos se representarán en el Graph para su correcto análisis. En este interfaz hay también un botón para limpiar el gráfico y dejarlo vacío, otro para regresar al menú principal, y el último, al igual que en el menú principal, el botón de salir para cerrar el programa.


Imagen 4: Interfaz de análisis de datos


Para mostrar este set de datos, al pulsar el botón de mostrar, se abrirá una ventana en la que buscar el archivo a cargar en el gráfico.


Imagen 5: Carga de datos


Detrás de toda esta interfaz gráfica hay una programación en C donde los aspectos más destacados son los siguientes.

- Declaración de variables y visualización de las dos interfaces por separado en el MAIN:


Imagen 6: Programación en C (1)



- Callback correspondiente al timer y todas las funciones que se realizan a cada tick:


Imagen 7: Programación en C (2)


- Algunas Callbacks más, importantes, como la de grabar, mostrar, acceder al panel 2 y retroceder al menú principal:



Imagen 8: Programación en C (3)



Aparte de estas funciones están las de limpiar, resetear y salir que se comentaron en la Tarea 1.


Archivos para ejecutar programa: Media:Tarea2_M18096.zip



TAREA 1


Realización de la siguiente interfaz de usuario para la representación de ondas senoidales.


Imagen 1: Interfaz de usuario


Con este programa se va a poder representar las ondas senoidales con el número de ciclos, la amplitud y la fase que determine el usuario. Además, el usuario podrá fijar el color que desee para cada curva .

Para que el programa pueda definir estas curvas senoidales con un ruido determinado se fijan en el código las siguientes funciones:


SinePattern (1000, amplitudseno, fase, ciclos, seno);
WhiteNoise (1000, amplitud, -1, ruido);
for (i=0;i<=999;i++)
{
SenoRuidoso[i]=seno[i]+ruido[i];
}


Este programa tiene que detectar los valores numéricos que se han introducido para los ciclos, la amplitud, la fase y el color. Para ello se declaran las siguientes funciones en el código:


GetCtrlVal (panelHandle, PANEL_NUMERIC, &ciclos);
GetCtrlVal (panelHandle, PANEL_NUMERIC_2, &amplitud);
GetCtrlVal (panelHandle, PANEL_NUMERIC_3, &fase);
GetCtrlVal (panelHandle, PANEL_NUMERIC_4, &amplitudseno);
GetCtrlVal (panelHandle, PANEL_COLORNUM, &color);


Por último, para graficar 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, color);


Como complemento, se ha añadido para que en los tres botones, si se pinchan con botón derecho te dé información de lo que hace. Para ello se ha declarado el siguiente código.


case EVENT_RIGHT_CLICK:
MessagePopup ("AYUDA", "PULSANDO ESTE BOTON SE REPRENSENTAN EN EL GRAFICO LA FUNCION SENOIDAL DESCRITA");
break;


Por lo tanto, los resultados que se pueden obtener con este programa, son como los que se muestran en las imágenes siguientes.


Imagen 2: Muestra la interfaz, el resultado y el comando de ayuda


Imagen 3: Resultado gráfico de la ejecución de dos curvas senoidales diferentes


Archivos para ejecutar programa.Media:Tarea1_M18096.zip

Herramientas personales