UNIVERSIDADE DE VIGO ESCOLA SUPERIOR DE ENXEÑERÍA INFORMÁTICA Memoria do Proxecto Fin de Carreira que presenta D. Ángel Dacal Nieto para a obtención do Título de Enxeñeiro en Informática Sistema de calibración automática de termohigrómetros TOMO II: MANUAL TÉCNICO Xullo, 2007 Proxecto Fin de Carreira Nº: ENI-181 Director/a: Arno Formella Codirector/a: Higinio González Jorge Área de coñecemento: Linguaxes e Sistemas Informáticos Departamento: Informática Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Índice 1. Datos ........................................................................................................................... 3 2. Conocimientos previos ............................................................................................ 4 3. Análisis ....................................................................................................................... 5 3.1 Análisis de requisitos .......................................................................................... 5 3.1.1 Datos preliminares.................................................................................................................5 3.1.2 Captación de requerimientos...............................................................................................5 3.1.3 Funcionalidades del sistema ................................................................................................6 3.1.4 Otras ampliaciones ................................................................................................................7 3.1.5 Usuarios del sistema..............................................................................................................8 3.2 Enumeración de los Casos de Uso .................................................................. 10 3.3 Diagramas de Casos de Uso............................................................................. 11 3.3.1 Diagramas de paquetes .......................................................................................................11 3.3.2 Diagramas de Casos de Uso por paquetes.......................................................................12 3.4 Descripción de los Diagramas de Casos de Uso ........................................... 15 3.4.1 Alta de Técnico .....................................................................................................................15 3.4.2 Baja de Técnico.....................................................................................................................16 3.4.3 Modificación de Técnico.....................................................................................................17 3.4.4 Consulta de Técnico ............................................................................................................18 3.4.5 Listado de Técnicos..............................................................................................................19 3.4.6 Alta de Protocolo ..................................................................................................................20 3.4.7 Baja de Protocolo..................................................................................................................21 3.4.8 Modificación de Protocolo .................................................................................................22 3.4.9 Consulta de Protocolo .........................................................................................................23 3.4.10 Listado de Protocolos.........................................................................................................24 3.4.11 Alta de Tipo de Protocolo .................................................................................................25 3.4.12 Baja de Tipo de Protocolo.................................................................................................26 3.4.13 Modificación de Tipo de Protocolo ...............................................................................27 3.4.14 Consulta de Tipo de Protocolo ........................................................................................28 3.4.15 Listado de Tipos de Protocolo..........................................................................................29 3.4.16 Alta de Calibración ............................................................................................................30 3.4.17 Baja de Calibración............................................................................................................32 3.4.18 Consulta de Calibración ...................................................................................................33 3.4.19 Listado de Calibraciones...................................................................................................34 3.4.20 Validar Usuario ..................................................................................................................35 3.4.21 Finalizar Sesión Usuario...................................................................................................36 3.5 Diagrama de Clases Preliminar ....................................................................... 37 4. Diseño ....................................................................................................................... 38 4.1 Diseño de las clases del dominio del problema ............................................ 38 4.1.1 Dispositivo ............................................................................................................................38 4.1.2 Dispositivo - Medicion .......................................................................................................40 4.1.3 Camara_Fotografica - Fotografia .......................................................................................41 4.1.4 Calibracion ............................................................................................................................41 4.2 Diseño de las clases de acceso a base de datos.............................................. 42 4.3 Diseño de las clases de la interfaz de usuario ............................................... 43 4.3.1 Formularios sencillos ..........................................................................................................43 4.3.2 Formularios de alta de calibración....................................................................................44 4.3.3 Formulario de calibración en curso ..................................................................................44 4.4 Algoritmos .......................................................................................................... 45 Manual Técnico 0 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.4.1 Algoritmo de Calibración ...................................................................................................45 4.4.2 Algoritmo de Estabilización...............................................................................................46 4.4.3 Algoritmo para Correcciones .............................................................................................47 4.4.4 Algoritmo para recoger mediciones del Sistema Redundante ....................................48 4.4.5 Algoritmo para recortado de fotografías..........................................................................49 4.5 Diagramas de Diseño ........................................................................................ 50 4.5.1 Escenario Alta de Técnico...................................................................................................51 4.5.2 Escenario Baja de Técnico ..................................................................................................52 4.5.3 Escenario Modificación de Técnico ..................................................................................53 4.5.4 Escenario Consulta de Técnico ..........................................................................................54 4.5.5 Escenario Listado de Técnicos ...........................................................................................55 4.5.6 Escenario Alta de Protocolo................................................................................................56 4.5.7 Escenario Baja de Protocolo ...............................................................................................57 4.5.8 Escenario Modificación de Protocolo ...............................................................................58 4.5.9 Escenario Consulta de Protocolo .......................................................................................59 4.5.10 Escenario Listado de Protocolos ......................................................................................60 4.5.11 Escenario Alta de Tipo de Protocolo...............................................................................61 4.5.12 Escenario Baja de Tipo de Protocolo ..............................................................................62 4.5.13 Escenario Modificación de Tipo de Protocolo ..............................................................63 4.5.14 Escenario Consulta de Tipo de Protocolo ......................................................................64 4.5.15 Escenario Listado de Tipos de Protocolo .......................................................................65 4.5.16 Escenario Alta de Calibración..........................................................................................66 4.5.17 Escenario Baja de Calibración .........................................................................................81 4.5.18 Escenario Consulta de Calibración .................................................................................83 4.5.19 Escenario Listado de Calibraciones ................................................................................85 4.5.20 Escenario Validar Usuario ................................................................................................87 4.5.21 Escenario Finalizar Sesión de Usuario ...........................................................................88 4.6 Diagrama de Clases........................................................................................... 89 4.7 Descripción detallada de las clases ................................................................. 92 4.7.1 Clase Archivo........................................................................................................................92 4.7.2 Clase Archivo_xls.................................................................................................................92 4.7.3 Clase Archivo_txt .................................................................................................................93 4.7.4 Clase BD ................................................................................................................................93 4.7.5 Clase BD_Archivo................................................................................................................94 4.7.6 Clase BD_Calibracion .........................................................................................................94 4.7.7 Clase BD_Dispositivo .........................................................................................................95 4.7.8 Clase BD_Fotografia ............................................................................................................95 4.7.9 Clase BD_Medicion .............................................................................................................96 4.7.10 Clase BD_Protocolo ...........................................................................................................97 4.7.11 Clase BD_Tecnico ..............................................................................................................97 4.7.12 Clase BD_Tipo_Protocolo.................................................................................................97 4.7.13 Clase Calibracion ...............................................................................................................98 4.7.14 Clase Camara_Climatica ...................................................................................................99 4.7.15 Clase Camara_Fotografica ..............................................................................................100 4.7.16 Clase ConexionGPIB .......................................................................................................101 4.7.17 Clase ConexionSerie........................................................................................................101 4.7.18 Clase Conversiones..........................................................................................................102 4.7.19 Clase DatosCalibracion...................................................................................................102 4.7.20 Clase Dispositivo .............................................................................................................103 4.7.21 Clase Dispositivo_Patron ...............................................................................................104 4.7.22 Clase EstadoInterfaz ........................................................................................................105 4.7.23 Clase Excepcion ................................................................................................................105 4.7.24 Clase Fotografia ................................................................................................................106 4.7.25 Clase Intepretacion ..........................................................................................................106 4.7.26 Clase Medicion .................................................................................................................106 Manual Técnico 1 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.27 Clase Proceso.....................................................................................................................108 4.7.28 Clase Protocolo .................................................................................................................108 4.7.29 Clase Tecnico ....................................................................................................................109 4.7.30 Clase Tiempo ....................................................................................................................109 4.7.31 Clase Tipo_Protocolo.......................................................................................................109 5. Diseño de la Base de Datos................................................................................. 110 5.1 Diagrama Entidad-Relación........................................................................... 110 5.2 Tablas de la Base de Datos ............................................................................. 111 5.2.1 Tabla Archivo .....................................................................................................................111 5.2.2 Tabla Fotografía .................................................................................................................111 5.2.3 Tabla Medicion...................................................................................................................112 5.2.4 Tabla Protocolo...................................................................................................................113 5.2.5 Tabla Tipo_Protocolo ........................................................................................................113 5.2.6 Tabla Técnico......................................................................................................................114 5.2.7 Tabla Dispositivo...............................................................................................................114 5.2.8 Tabla Calibracion...............................................................................................................115 5.2.9 Tabla Cal_Dispositivo.......................................................................................................116 5.2.10 Tabla Cal_Protocolo.........................................................................................................116 6. Implementación .................................................................................................... 117 6.1 Clases administradas y no administradas ................................................... 117 6.1.1 Diferencias ..........................................................................................................................117 6.1.2 Decisiones adoptadas........................................................................................................117 6.2 Diagrama de Despliegue ................................................................................ 118 6.3 Estructura del código ...................................................................................... 118 6.4 Compilación ..................................................................................................... 120 6.5 Ejecución ........................................................................................................... 121 7. Pruebas ................................................................................................................... 122 7.1 Seguridad.......................................................................................................... 122 7.2 Integración ........................................................................................................ 122 7.3 Formularios ...................................................................................................... 122 8. Apéndices............................................................................................................... 129 8.1 Librerías ............................................................................................................ 129 8.2 Drivers............................................................................................................... 129 Manual Técnico 2 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 1. Datos Proyecto: Identificación: “Sistema de Calibración Automática de Termohigrómetros” ENI-181 Director: Codirector: Autor: Dr. Arno Formella Dr. Higinio González Jorge Ángel Dacal Nieto Convocatoria: Departamento: Área: Julio 2007 Departamento de informática Lenguajes y sistemas informáticos Este segundo tomo del proyecto fin de carrera “Sistema de Calibración Automática de Termohigrómetros” se dedica a explicar con mayor detalle la construcción del sistema. Mientras que el objetivo de la Memoria es introducir al lector en la materia, contextualizar y justificar el nacimiento del proyecto, el Manual Técnico debería servir para que el lector comprenda las fases por las que ha pasado el desarrollo del proyecto, centrándose en el qué y el cómo se ha desarrollado. Por ello será objeto de este tomo relatar el ciclo de vida utilizado, las decisiones adoptadas en cada una de sus fases y los resultados obtenidos. Podemos avanzar que el ciclo de vida utilizado se ha centrado en cuatro fases principales: análisis, diseño, implementación y pruebas. Sin embargo estas cuatro fases no se han realizado secuencialmente. En su lugar se ha seguido un ciclo de vida iterativo e incremental, que ha buscado una construcción paulatina en sucesivas iteraciones, las cuales fueron refinando el comportamiento del sistema. Así, se han ido construyendo poco a poco distintas partes de la aplicación de forma completa. A pesar de este ciclo de vida, la presente documentación muestra un desarrollo secuencial con la intención de que el lector pueda comprender mejor las distintas fases, además de presentar una documentación mejor estructurada. Manual Técnico 3 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 2. Conocimientos previos Partiendo de la contextualización hecha en el tomo Memoria de esta misma documentación, podemos resumir los antecedentes del proyecto en los siguientes puntos: - El LOMG es un laboratorio dedicado al mundo de calibración y la metrología. Su Departamento de Temperatura y Humedad Relativa calibra dispositivos como Termómetros y Termohigrómetros. - Para el proceso de calibración es necesario generar unas determinadas condiciones de temperatura y humedad relativa. Esto se consigue mediante diversos dispositivos (como cámaras climáticas). Durante una calibración se generan varios puntos de consigna, cada uno con una determinada temperatura y humedad relativa. La configuración de estos equipos se puede realizar de manera manual, aunque algunos ya disponen de su propio software. - En el proceso de calibración, además del propio dispositivo que se esté calibrando, intervienen otro tipo de dispositivos llamados dispositivos patrón, de los cuales se sabe que están bien calibrados. Esto se sabe porque se han calibrado a partir de patrones superiores, y así consecutivamente, en una cadena que llega a los estándares internacionales. Esta trazabilidad permite conocer el error de cada patrón. El error, o corrección, se conoce para ciertas temperaturas, y se halla mediante una sencilla interpolación lineal. - Cuando se genera un determinado punto de consigna, es necesario esperar un cierto tiempo hasta que se consiga la estabilidad en el medio. La estabilidad es muy importante, ya que si el medio no está estable, la calibración es errónea. La estabilidad tarda horas en conseguirse. - Para cada punto de consigna, una vez estable el medio, se realizan habitualmente 10 mediciones separadas por un minuto al dispositivo que se está calibrando. Al mismo tiempo se anotan las mediciones de los dispositivos patrón. Estas mediciones se realizan a mano, aunque existen ciertas aplicaciones que automatizan las mediciones de algunos patrones. - Al finalizar, y dadas las mediciones de calibrandos y patrones, se emite un certificado al cliente con el error de su dispositivo. Partimos, por lo tanto, de un proceso largo, tedioso, y que precisa de la atención continuada de técnico. A pesar de que ciertas tareas comienzan a ser automatizadas, y algunos dispositivos traen sus propias aplicaciones, no existe un software que realice todo el proceso de manera integral. Cada dispositivo patrón es distinto al resto, con una evidente heterogeneidad, por lo que las soluciones en materia de metrología y calibración suelen ser ad hoc. Manual Técnico 4 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3. Análisis 3.1 Análisis de requisitos Se recomienda la lectura previa del tomo de esta documentación llamado Memoria, en el que se contextualiza este proyecto. En este punto de Análisis se pretende comunicar qué se ha hecho, mientras que en la Memoria se explica el por qué surge la idea. 3.1.1 Datos preliminares La intención de este proyecto es automatizar la tarea de calibración de termohigrómetros que se realiza actualmente en el Departamento de Temperatura y Humedad Relativa del Laboratorio Oficial de Metroloxía de Galicia (en adelante LOMG). Para ello se ha solicitado un sistema que haga automáticas las tareas que hasta ahora se realizan de manera manual. Concretamente: - La tarea de generación de un medio se conseguirá estableciendo una comunicación entre el sistema y la cámara climática mediante puerto serie. Para ello será necesario el estudio de los manuales de la cámara climática. Una calibración consta de la generación de varios puntos consecutivos. - La tarea de registro de las mediciones de los patrones se conseguirá estableciendo una comunicación entre el sistema y los dispositivos patrón mediante puerto serie o GPIB. Para ello será necesario el estudio de los manuales de dichos dispositivos. - La tarea de registro de las mediciones de los calibrandos, al no poder efectuarse mediante comunicación directa, se efectuará mediante fotografías. De este modo no se tendrá información numérica del dato registrado por el dispositivo, pero sí una imagen que refleje dicho dato. Será necesaria una cámara de fotografías, y el estudio de su manual. Así pues, el primer esbozo de este proyecto es desarrollar un sistema que sea capaz de llevar a cabo la calibración de un dispositivo, habiendo generado unas determinadas condiciones en una cámara climática, habiendo registrado las mediciones de un patrón, y habiendo realizado fotografías mediante una cámara fotográfica. Como nos interesa almacenar únicamente la zona de la fotografía en la que sale el display, se recortarán las fotografías para que únicamente se almacene esa zona. Esta primera idea del sistema se fue ampliando y refinando en función de las necesidades captadas de los técnicos del LOMG. 3.1.2 Captación de requerimientos En primer lugar se comprobó que existe una enorme variedad de dispositivos patrón. Cada uno tiene un funcionamiento distinto, una interfaz distinta, mide unas magnitudes distintas… Por ello se le debería ofrecer al usuario la posibilidad de escoger un determinado dispositivo patrón. Esta variedad de dispositivos se extendió a las cámaras climáticas y a las cámaras fotográficas. A pesar de que en estos dos tipos de dispositivos sólo se dispone de un modelo, se habilitará el sistema para que esté preparado a la llegada de nuevos modelos. Manual Técnico 5 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Tras hacer esta constatación, se descubrió otra realidad que aumentaba la complejidad del proyecto. En una misma calibración podían participar más de un dispositivo patrón. Esto se hacía para que cada dispositivo tomase nota de una determinada magnitud (por ejemplo que uno se dedique a medir punto de rocío y otro temperatura), o bien para reforzar las mediciones de un dispositivo con las de otro (por ejemplo usar un medidor de punto de rocío a la vez que un multímetro). No sólo eso. En una misma calibración era usual que participase más de un calibrando. O lo que es lo mismo: se realizan dos calibraciones a la vez, compartiendo el medio generado y los dispositivos patrón. Esto se hace para ahorrar tiempo, ya que la generación del medio es un proceso bastante largo y difícil de conseguir. Es decir, tras una breve investigación, se llegó a la conclusión de que el sistema necesario era uno que permitiese: - la intervención de más de un calibrando por calibración (es decir, más de una calibración a la vez) - la intervención de más de un patrón por calibración - la intervención de una cámara climática - la intervención de una cámara fotográfica Sin embargo, tras proseguir con la captación de requerimientos, se observó que esta última descripción es un caso genérico de calibración. Es decir, el sistema necesita que se puedan realizar tareas mucho más sencillas, y no necesariamente una calibración completa como la que acabamos de describir. Concretamente: - se debe permitir una calibración sin cámara climática. El técnico será el encargado de generar las condiciones necesarias por su cuenta, ajeno al sistema. - se debe permitir una calibración sin cámara fotográfica. Esto puede ser útil por ejemplo cuando se pretende simplemente tomar nota de las mediciones de un determinado patrón. Por lo tanto, y antes de proseguir, se toma nota de que se necesita un sistema muy potente y muy versátil que permita desde calibraciones completas con varios calibrandos, varios patrones, generación de un medio mediante una cámara climática y realización de fotografías, hasta procesos más sencillos como registro de datos de patrones, calibraciones sin cámara climática, etc. Esta versatilidad provoca la existencia de varios tipos de calibraciones. La principal división es: - calibración automática: cuando el sistema efectúa sus tareas de manera secuencial, sin ninguna intervención externa. - calibración manual: requiere de la presencia de un técnico para determinados aspectos, como indicar cuándo está estable el medio. 3.1.3 Funcionalidades del sistema La principal funcionalidad requerida para el sistema es el alta de una nueva calibración. Dicha funcionalidad es, en esencia, el sistema que hemos descrito hasta el momento. Para dar de alta una nueva calibración será necesaria una gran cantidad de captura de datos proporcionados por el usuario. Tras dicha captura se realizará la propia calibración, que se finalizará con la creación de archivos de salida que resuman el proceso. Sin embargo en la fase de captación de requerimientos se ha visto que puede ser útil revisar posteriormente estas calibraciones. Por lo tanto se facilitarán listados y consultas de las calibraciones realizadas en el sistema. También se facilitará la baja de calibración. Manual Técnico 6 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Observando la forma de trabajar del LOMG se ha constatado que es habitual calibrar los dispositivos en unos determinados puntos de consigna. Es decir, para un tipo determinado de calibrandos se suelen realizar calibraciones en unas determinadas condiciones de temperatura y humedad, que se repiten habitualmente. Por ello se ha llegado a la conclusión de que podría ser interesante que, en lugar de introducir estos puntos de consigna cada vez que se da de alta una calibración, se permita cargarlos, teniendo únicamente el técnico que escogerlos de un listado. Se cree que puede ser una buena funcionalidad, aunque se permitirá, del mismo modo, introducir nuevos puntos de consigna en el proceso de alta, y no sólo cargarlos. Para permitir esto se habilitarán funcionalidades de alta, baja, modificación, consulta y listado de Protocolos. Llamamos protocolo a un determinado punto de consigna: su temperatura, su humedad relativa, las mediciones que se realizarán, el intervalo de tiempo entre cada medición, etc. Recordemos que una calibración consta de varios protocolos. Tras esto se llegó a la conclusión de que sería interesante poder reunir, poder especializar, estos protocolos en una serie de tipos. Así, para un tipo de calibrando, se cargaría los protocolos de un tipo específico, y se podrían incluir fácilmente en el proceso de alta de calibración. Por lo tanto también serán necesarias las funcionalidades de alta, baja, modificación, consulta y listado de tipos de protocolo. Finalmente, y dado que las calibraciones son realizadas por técnicos, se vio fundamental una sección de usuarios que permita a cada técnico loguearse y salir del sistema, así como cambiar sus datos. Fue analizando esta sección cuando se comprendió que eran necesarios dos tipos de usuarios. Por un lado los usuarios básicos, los técnicos, cuyas atribuciones eran todas las descritas hasta ahora. Por otro, el Jefe de Departamento, un usuario especial que, además de las atribuciones de un técnico, estaba capacitado para listar los técnicos del sistema, darlos de alta y borrarlos. Tras este análisis se distinguió por un lado la funcionalidad de alta de calibración, que es la más importante y crucial del sistema, del resto de funcionalidades, concebidas simplemente como apoyo a esta funcionalidad. Por lo tanto, después de escuchar las necesidades del LOMG, y habiendo tomando las decisiones descritas, las funcionalidades que ha de cumplir el sistema son: - GESTIÓN DE TÉCNICOS. Operaciones de Alta, Baja, Modificación, Consulta y Listado de Técnicos - GESTIÓN DE PROTOCOLOS: Operaciones de Alta, Baja, Modificación, Consulta y Listado de Protocolos. - GESTIÓN DE TIPOS DE PROTOCOLO: Operaciones de Alta, Baja, Modificación, Consulta y Listado de Tipos de Protocolo. - GESTIÓN DE CALIBRACIONES: Operaciones de Alta, Baja, Consulta y Listado de Calibraciones. - GESTIÓN DE SEGURIDAD: Validación de usuarios. 3.1.4 Otras ampliaciones El alta de calibración se verá completada con dos funcionalidades hasta ahora realizadas de forma manual: el acceso al Sistema Redundante y la inclusión de Correcciones. El Sistema Redundante son una serie de sensores que registran temperatura y humedad relativa en cada uno de los laboratorios del LOMG. Cada cinco minutos vuelcan dicha información en unos archivos de texto del servidor. Cada calibración debe informar, además de la información anteriormente detallada, de las condiciones del ambiente del laboratorio en que Manual Técnico 7 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto fue desarrollada dicha calibración. Eso supone que el técnico debe acceder a los archivos de texto de los días en los que fue realizada la calibración, y hallar las temperaturas máxima y mínima, además de las humedades relativas máxima y mínima. La intención es que el sistema haga estos accesos de manera automática y el técnico pueda incluir dicha información en sus informes de manera sencilla. La inclusión de las correcciones de los dispositivos es otra tarea manual que se pretende automatizar. Cada dispositivo tiene un cierto error conocido a unas ciertas temperaturas. Se dispone de una pequeña tabla que asigna, para cada temperatura, un determinado error. Sin embargo esta tabla solamente indica el error para ciertas temperaturas, lo que obliga a interpolar linealmente para hallar el error a una temperatura deseada. La idea es hallar estas correcciones automáticamente a partir de las mediciones obtenidas y de una serie de archivos que contendrán la información necesaria para los cálculos. Las mediciones corregidas estarán disponibles para los técnicos, de modo que puedan añadirlas a sus informes sin efectuar ningún cálculo. La manera de incluir las correcciones en el sistema ha sido motivo de debate. La decisión final fue que el proceso de calibración adquiera la información necesaria para calcular las correcciones a través de archivos de texto indicados por el usuario en el momento de iniciar la calibración. Es la forma más flexible, ya que dicha información cambia, al menos, una vez al año, al calibrar el dispositivo. El sistema tomará dicha información, por tanto, de un archivo de texto. Las entrevistas con el LOMG han causado que se hayan tomado decisiones particulares: - no existirá una funcionalidad de modificación de calibraciones, ya que es un proceso cerrado, que cuando acaba no es posible modificar. Por ello no tiene sentido modificar una calibración. - la gestión de técnicos será testimonial, ya que ya existe una aplicación de gestión en el LOMG para tal efecto. En este sistema su utilidad se reduce a entrar en el sistema y asociar la calibración que se da de alta a un técnico en concreto. Por lo tanto, y a modo de resumen, se puede decir que la idea inicial del sistema, reflejada en el anteproyecto, se ha ampliado notablemente. Se ha pasado del caso particular de calibración tratado inicialmente, a multitud de tipos de calibración distintos, muy variados y complejos. Se han añadido numerosas funcionalidades con la intención de hacer más útil el sistema, y finalmente se han automatizado tareas hasta ahora realizadas de modo manual que pueden ayudar, sin duda, en el trabajo diario de los técnicos del LOMG. 3.1.5 Usuarios del sistema Distinguiremos dos tipos de usuarios del sistema de ahora en adelante: - - El Técnico Calibrador es el usuario principal del sistema. Tiene capacidad para gestionar Protocolos, Tipos de Protocolo y Calibraciones. Puede entrar y salir del sistema. Finalmente puede modificar sus datos y consultarlos. El Jefe de Departamento es un usuario especial que tiene las mismas capacidades que un Técnico Calibrador con algunas funcionalidades añadidas: puede dar de alta a otros Técnicos Calibradores, darlos de baja y listarlos. Manual Técnico 8 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto En ciertas partes de esta documentación se hará referencia a otros dos tipos de usuarios; - - El usuario Usuario Registrado no es más que una generalización de los usuarios Técnico Calibrador y Jefe de Departamento. Se usa para nombrar a estos dos tipos de usuarios al mismo tiempo. El usuario Usuario no Validado es un usuario que llega al sistema y desea validarse. Por lo tanto no está logueado, y la única opción que tiene es salir o loguearse. Manual Técnico 9 Sistema de Calibración Automática de Termohigrómetros 3.2 Enumeración de los Casos de Uso Gestión de Técnicos 1. Alta de Técnico 2. Baja de Técnico 3. Modificación de Técnico 4. Consulta de Técnico 5. Listado de Técnicos Gestión de Protocolos 6. Alta de Protocolo 7. Baja de Protocolo 8. Modificación de Protocolo 9. Consulta de Protocolo 10. Listado de Protocolos Gestión de Tipos de Protocolo 11. Alta de Tipo de Protocolo 12. Baja de Tipo de Protocolo 13. Modificación de Tipo de Protocolo 14. Consulta de Tipo de Protocolo 15. Listado de Tipos de Protocolo Gestión de Calibraciones 16. Alta de Calibración 17. Baja de Calibración 18. Consulta de Calibración 19. Listado de Calibraciones Gestión de Seguridad 20. Validar Usuario 21. Finalizar Sesión de Usuario Manual Técnico 10 Ángel Dacal Nieto Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.3 Diagramas de Casos de Uso 3.3.1 Diagramas de paquetes Los casos de uso se distribuyen en los siguientes paquetes: Gestión de Técnicos Gestión de Tipos de Protocolo Gestión de Seguridad Gestión de Protocolos Manual Técnico Gestión de Calibraciones 11 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.3.2 Diagramas de Casos de Uso por paquetes Paquete Gestión de Técnicos: Alta Técnico Jefe de Departamento (from Use Case View) <<include>> Listado Técnicos <<include>> <<include>> Usuario Registrado <<include>> Validar Usuario (from Gestión de Seguridad) <<include>> (from Use Case View) <<include>> Baja Técnico Modificación Técnico Técnico Calibrador <<include>> (from Use Case View) Consulta Técnico Paquete Gestión de Seguridad: Validar Usuario Usuario no validado (from Use Case View) Cerrar Sesión Usuario Usuario Registrado (from Use Case View) Jefe de Departamento (from Use Case View) Manual Técnico Técnico Calibrador (from Use Case View) 12 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Paquete Gestión de Protocolos: Alta Protocolo <<include>> Listado Protocolos <<include>> <<include>> <<include>> <<include>> Técnico Calibrador Validar Usuario (from Gestión de Seguridad) <<include>> (from Use Case View) <<include>> Baja Protocolo Modificación Protocolo <<include>> <<extend>> <<include>> <<extend>> Listado Tipos Protocolo Consulta Protocolo (from Gestión de Tipos de Protocolo) Paquete Gestión de Tipos de Protocolo: Alta Tipo Protocolo Listado Tipos Protocolo <<include>> <<include>> <<include>> Técnico Calibrador <<include>> <<include>> (from Use Case View) <<include>> Baja Tipo Protocolo <<include>> Modificación Tipo Protocolo <<include>> Consulta Tipo Protocolo Manual Técnico 13 Validar Usuario (from Gestión de Seguridad) Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Paquete Gestión Calibraciones: <<extend>> Listado Protocolos (f rom Gestión de Protocolos) <<extend>> <<include>> Alta Protocolo Alta Calibración (f rom Gestión de Protocolos) <<include>> Listado Calibraciones <<include>> <<extend>> <<include>> <<include>> <<include>> Validar Usuario Técnico Calibrador (f rom Gestión de Seguridad) (f rom Use Case View) ...) Baja Calibración <<include>> <<include>> <<include>> Consulta Calibración Manual Técnico 14 Listado Técnicos (f rom Gestión de Técnicos) Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4 Descripción de los Diagramas de Casos de Uso 3.4.1 Alta de Técnico 3.4.1.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Alta de Técnico Añadir un técnico en el sistema Jefe de Departamento El Jefe de Departamento está convenientemente validado. Será él quien dé al técnico de alta. Se añade un nuevo técnico al sistema 1. El Jefe de Departamento, previamente validado, solicita dar de alta un nuevo técnico. 2. Se le muestra un formulario para tal efecto. 3. El técnico asigna unos determinados datos al técnico, que podrá cambiarlos en cuanto se valide. 4. Se verifica la validez de los datos recién introducidos, como por ejemplo que no se esté introduciendo un técnico ya existente. 5. Si los datos son válidos, el técnico se añade. 1. Si algún dato no es válido, se le pide al Jefe de Departamento que lo introduzca adecuadamente. 2. Si el técnico ya existe, se aborta la operación. Baja 3.4.1.2 Diagrama de secuencia : Sistema : Jefe de Departamento : Técnico Solicita Alta de Técnico Solicita datos Introduce datos Comprueba si Técnico ya existe Comprueba validez de los datos Nuevo Técnico Informa de operación realizada Manual Técnico 15 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.2 Baja de Técnico 3.4.2.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Baja de Técnico Suprimir un técnico del sistema Jefe de Departamento El Jefe de Departamento está convenientemente validado. El Jefe de Departamento no puede borrarse a sí mismo, pero sí a otros Técnicos Calibradores. Se elimina un técnico del sistema. 1. El Jefe de Departamento solicita dar de baja un técnico. Puede acceder a esta opción desde el caso de uso Listado de Técnicos. 2. Se pide una confirmación para eliminarlo. 3. Si el Jefe de Departamento lo confirma, se suprime el técnico del sistema. 1. Si el Jefe de Departamento reconsidera el borrado del técnico, debe devolvérsele a la situación previa. Baja 3.4.2.2 Diagrama de secuencia : Sistema : Jefe de Departamento : Técnico Solicita Baja de Técnico Solicita confirmación Confirma Borra técnico del sistema Informa de operación realizada Manual Técnico 16 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.3 Modificación de Técnico 3.4.3.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Modificación de Técnico Modificar los datos de un técnico en el sistema Usuario Registrado El Usuario Registrado está convenientemente validado. El Usuario Registrado sólo tiene la capacidad de modificarse a sí mismo. El Jefe de Departamento no puede modificar a Técnicos Calibradores. Los datos del usuario son cambiados 1. El Usuario Registrado, previamente validado, solicita modificar un técnico. Se accede a esta opción desde el caso de uso Consulta de Técnico. 2. Se le muestra un formulario con los datos del técnico. 3. El Usuario puede ahora modificar sus datos. 4. Se verifica la validez de los datos recién introducidos. 5. Si los datos son válidos, el técnico se modifica. 1. Una vez introducidos los datos, alguno de ellos puede ser erróneo; en ese caso se fuerza a que se introduzcan de nuevo o se descarte continuar. Baja 3.4.3.2 Diagrama de secuencia : Sistema : Usuario Registrado : Técnico Solicita Modificación de Técnico Obtiene información de técnicos Muestra datos y solicita nuevos datos Introduce nuevos datos Comprueba validez de los datos Modifica técnico Informa de operación realizada Manual Técnico 17 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.4 Consulta de Técnico 3.4.4.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Consulta de Técnico Consultar un técnico del sistema Usuario Registrado El Usuario Registrado está convenientemente validado. Un Técnico Calibrador puede consultar sus datos; un Jefe de Departamento no puede consultar los de los Técnicos Calibradores. Se muestran los datos del técnico escogido. 1. El Usuario Registrado solicita visualizar sus datos. 2. El sistema muestra los datos de dicho técnico. Media 3.4.4.2 Diagrama de secuencia : Sistema : Usuario Registrado : Técnico Solicita Consulta de Técnico Obtiene información de Técnico Muestra información de Técnico Manual Técnico 18 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.5 Listado de Técnicos 3.4.5.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Listado de Técnicos Consultar todos los técnicos del sistema Jefe de Departamento El Jefe de Departamento está convenientemente validado Se muestra un listado con los técnicos del sistema 1. El Jefe de Departamento solicita visualizar un listado de los técnicos del sistema. 2. Se le presenta al Jefe de Departamento un listado con los técnicos del sistema. 3. El Jefe de Departamento podrá indicar uno o más técnicos para borrarlos, previa confirmación. Media 3.4.5.2 Diagrama de secuencia : Jefe de Departamento : Sistema : Técnico Solicita Listado de Técnicos Obtiene información de Técnicos Muestra listado de Técnicos Manual Técnico 19 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.6 Alta de Protocolo 3.4.6.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Alta de Protocolo Dar de alta un protocolo en el sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se añade un nuevo protocolo en el sistema 1. El Técnico Calibrador, previamente validado, solicita dar de alta un nuevo protocolo. 2. Se le muestra un formulario para tal efecto. 3. Se verifica la validez de los datos recién introducidos, como por ejemplo que no se esté introduciendo un protocolo ya existente. 4. Si los datos son válidos, el protocolo se añade. 1. Si algún dato no es válido, se le pide al Técnico Calibrador que lo introduzca adecuadamente. 2. Si el protocolo ya existe, se aborta la operación. 3. En la operación se escoge un Tipo de Protocolo, por medio de un listado. Alta 3.4.6.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Protocolo : Tipo_Protocolo Solicita Alta de Protocolo Obtiene lista de tipos de protocolo Solicita datos Introduce datos Comprueba validez Nuevo Protocolo Informa de operación realizada Manual Técnico 20 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.7 Baja de Protocolo 3.4.7.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Baja de Protocolo Eliminar un protocolo del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se elimina un protocolo del sistema 1. El Técnico Calibrador, previamente validado, solicita dar de baja un protocolo. El Técnico Calibrador puede acceder a esta opción desde el caso de uso Consulta de Protocolo. 2. Si el Protocolo ha sido usado en alguna Calibración existente en el sistema, se impide el borrado para que no se pierda dicha información. 3. Se pide una confirmación para eliminarlo. 4. Si el Técnico Calibrador lo confirma, se suprime el protocolo del sistema. 1. Si el Técnico Calibrador reconsidera el borrado del protocolo, debe devolvérsele a la situación previa. 2. Si el Protocolo ha sido usado en alguna Calibración existente en el sistema, se impide el borrado para que no se pierda dicha información. Baja 3.4.7.2 Diagrama de secuencia : Sistema : Técnico Calibrador : Protocolo Solicita Baja de Protocolo Solicita confirmación Confirma Borra Protocolo de Sistema Informa de operación realizada Manual Técnico 21 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.8 Modificación de Protocolo 3.4.8.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Modificación de Protocolo Modificar los datos de un protocolo en el sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Los datos del protocolo son cambiados 1. El Técnico Calibrador, previamente validado, solicita modificar un protocolo. El Técnico Calibrador accede a esta opción desde el caso de Consulta de Protocolo. 2. Si el Protocolo ha sido usado en alguna Calibración existente en el sistema, se impide la modificación para que no se pierda dicha información. 3. Se le muestra un formulario con los datos del protocolo. 4. El Técnico Calibrador modifica los datos del protocolo que considere oportunos. 5. Se verifica la validez de los datos recién introducidos. 6. Si los datos son válidos, el protocolo se modifica. 1. Una vez introducidos los datos, alguno de ellos puede ser erróneo; en ese caso se fuerza a que se introduzcan de nuevo o se descarte continuar 2. En la operación se hace uso de un listado de Tipos de Protocolo. 3. Si el Protocolo ha sido usado en alguna Calibración existente en el sistema, se impide la modificación para que no se pierda dicha información. Media 3.4.8.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Protocolo : Tipo_Protocolo Solicita Modificación de Protocolo Obtiene listado de tipos de protocolo Obtiene información de protocolos Muestra datos y solicita nuevos datos Introduce nuevos datos Comprueba validez Modifica protocolo Informa de operación realizada Manual Técnico 22 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.9 Consulta de Protocolo 3.4.9.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Consulta de Protocolo Consultar un protocolo del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se muestran los datos del protocolo escogido 1. El Técnico Calibrador solicita visualizar un protocolo. El Técnico Calibrador puede acceder a esta opción desde el caso de uso Listado de Protocolos. 2. El sistema muestra los datos de dicho protocolo. El técnico puede ahora modificar o borrar dicho protocolo. Alta 3.4.9.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Protocolo Solicita Consulta de Protocolo Obtiene información de protocolo Muestra información de protocolo Manual Técnico 23 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.10 Listado de Protocolos 3.4.10.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Listado de Protocolos Consultar todos los protocolos del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se muestra un listado con los protocolos disponibles 1. El Técnico Calibrador solicita visualizar un listado de los protocolos del sistema. 2. Se le presenta al Técnico Calibrador un listado con los protocolos del sistema. 3. El Técnico Calibrador podrá indicar un protocolo para verlo con más detalle. Alta 3.4.10.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Protocolo Solicita Listado de Protocolos Obtiene información de protocolos Muestra Listado de Protocolos Manual Técnico 24 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.11 Alta de Tipo de Protocolo 3.4.11.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Alta de Tipo de Protocolo Añadir un Tipo de Protocolo en el sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se añade un Tipo de Protocolo en el sistema 1. El Técnico Calibrador, previamente validado, solicita dar de alta un nuevo Tipo de Protocolo. 2. Se le muestra un formulario para tal efecto. 3. Se verifica la validez de los datos recién introducidos. Se comprueba, por ejemplo, que el tipo introducido no exista en el sistema. 4. Si los datos son válidos, el Tipo de Protocolo se añade. 1. Si algún dato no es válido, se le pide al Técnico Calibrador que lo introduzca adecuadamente. Media 3.4.11.2 Diagrama de secuencia : Sistema : Técnico Calibrador : Tipo_Protocolo Solicita Alta de Tipo de Protocolo Solicita datos Introduce datos Comprueba datos Crea nuevo Tipo de Protocolo Informa de operación realizada Manual Técnico 25 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.12 Baja de Tipo de Protocolo 3.4.12.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Baja de Tipo de Protocolo Eliminar un Tipo de Protocolo del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se elimina un Tipo de Protocolo del sistema 1. El Técnico Calibrador, previamente validado, solicita dar de baja un Tipo de Protocolo. El Técnico Calibrador puede acceder a esta opción desde el caso de uso Consulta de Tipo de Protocolo. 2. Se informa al Técnico Calibrador de los Protocolos que se borrarían en caso de seguir adelante con la operación. 3. Si alguno de dichos Protocolos ha sido usado en alguna Calibración existente en el sistema, se impide el borrado de ese Protocolo para que no se pierda dicha información. 4. Se pide una confirmación para eliminarlo. 5. Si el Técnico Calibrador lo confirma, se suprime el Tipo de Protocolo del sistema, así como los Protocolos asociados que no hayan sido usados en alguna Calibración. 1. Si el Técnico Calibrador reconsidera el borrado del Tipo de Protocolo, debe devolvérsele a la situación previa. 2. Si algún Protocolo ha sido usado en alguna Calibración existente en el sistema, se impide el borrado de dicho Protocolo para que no se pierda dicha información. Baja Flujo de eventos excepcional: Frecuencia de uso 3.4.12.2 Diagrama de secuencia : Sistema : Técnico Calibrador : Tipo_Protocolo : Protocolo Solicita Baja de Tipo de Protocolo Obtiene información de protocolos borrados a causa de la baja del Tipo de Protocolo Muestra información de protocolos borrados a causa de la baja del Tipo de Protocolo Solicita confirmación Confirma Borra Tipo de Protocolo Borra protocolos Se informa de operación realizada Manual Técnico 26 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.13 Modificación de Tipo de Protocolo 3.4.13.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Modificación de Tipo de Protocolo Modificar los datos de un Tipo de Protocolo en el sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Los datos del Tipo de Protocolo son cambiados 1. El Técnico Calibrador, previamente validado, solicita modificar los datos de un Tipo de Protocolo. El Técnico Calibrador puede acceder a esta opción desde el caso de uso Consulta de Tipo de Protocolo. 2. Se le muestra un formulario con los datos del Tipo de Protocolo. 3. El Técnico Calibrador modifica los datos del Tipo de Protocolo que considere oportunos. 4. Se verifica la validez de los datos recién introducidos 5. Si los datos son válidos, el Tipo de Protocolo se modifica. 1. Una vez introducidos los datos, alguno de ellos puede ser erróneo; en ese caso se fuerza a que se introduzcan de nuevo o se descarte continuar Media 3.4.13.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Tipo_Protocolo Solicita Modificación de Tipo de Protocolo Obtiene información de Tipos de Protocolo Muestra datos y solicita nuevos datos Introduce nuevos datos Comprueba validez Modifica Tipo de Protocolo Se informa de operación realizada Manual Técnico 27 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.14 Consulta de Tipo de Protocolo 3.4.14.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Consulta de Tipo de Protocolo Consultar un Tipo de Protocolo del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se muestran los datos del Tipo de Protocolo escogido 1. El Técnico Calibrador solicita visualizar un Tipo de Protocolo. Puede acceder a esta opción desde el caso de uso Listado de Tipos de Protocolo. 2. El sistema muestra los datos de dicho Tipo de Protocolo. Alta 3.4.14.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Tipo_Protocolo Solicita Consulta de Tipo de Protocolo Obtiene información de Tipo de Protocolo Muestra información de Tipo de Protocolo Manual Técnico 28 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.15 Listado de Tipos de Protocolo 3.4.15.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Listado de Tipos de Protocolo Consultar todos los Tipos de Protocolo del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se muestra un listado con los Tipos de Protocolo disponibles 1. El Técnico Calibrador solicita visualizar un listado de los Tipos de Protocolo del sistema. 2. Se le presenta al Técnico Calibrador un listado con los Tipos de Protocolo del sistema. 3. El Técnico Calibrador podrá indicar un Tipo de Protocolo para verlo con más detalle. Alta 3.4.15.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Tipo_Protocolo Solicita Listado de Tipos de Protocolo Obtiene información de Tipos de Protocolo Muestra Listado de Tipos de Protocolo Manual Técnico 29 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.16 Alta de Calibración 3.4.16.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Manual Técnico Alta de Calibración Añadir una Calibración en el sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado. Los dispositivos que sean necesarios en la Calibración están conectados y configurados. Se añade una Calibración al sistema 1. El Técnico Calibrador, previamente validado, solicita dar de alta una nueva Calibración. 2. Se le muestran diversos formularios para tal efecto. En dichos formularios se escogerán y configurarán parámetros de la Calibración. 3. Se verifica la validez de los datos recién introducidos. 4. Si los datos son válidos, la Calibración se lleva a cabo. Durante su duración el Técnico Calibrador es informado de las incidencias de la misma. 5. A su término, la Calibración es añadida en el sistema y son creados diversos archivos de salida. 1. Si algún dato no es válido, se le pide al Técnico Calibrador que lo introduzca adecuadamente. 2. Si algún dispositivo no está conectado, o falla en su funcionamiento durante la Calibración, se detiene el proceso. 3. Durante el proceso de alta es posible dar de alta nuevos Protocolos, para que puedan ser utilizados en la nueva Calibración. Se habilitarán listados de protocolos y tipos de protocolo para poder usarlos en la calibración. 4. Durante el proceso de alta se hará uso del listado de Técnicos, con la intención de escoger uno. Alta 30 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.16.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Calibración : Archivo : Técnico : Protocolo : Dispositivo : Medición Solicita Alta de Calibración Solicita datos Introduce datos Comprueba que no se repita Selecciona Técnico Selección de Protocolos Selección de Dispositivos Se informa de inicio de Calibración Para cada protocolo Nueva Medición Se informa de medición tomada Nueva Fotografía Se informa de fotografía tomada Crear Archivos Fin_para Crear Calibración Se informa de operación realizada Manual Técnico 31 : Fotografía Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.17 Baja de Calibración 3.4.17.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Baja de Calibración Eliminar una Calibración del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se elimina una Calibración del sistema 1. El Técnico Calibrador, previamente validado, solicita dar de baja una Calibración. El Técnico Calibrador puede acceder a esta opción desde los casos de uso Consulta de Calibración. 2. Si el Técnico Calibrador lo confirma, se suprime la Calibración del sistema 1. Si el Técnico Calibrador reconsidera el borrado, debe devolvérsele a la situación previa. Baja 3.4.17.2 Diagrama de secuencia : Sistema : Técnico Calibrador : Calibración : Archivo : Medición : Fotografía Solicita Baja de Calibración Obtiene información de Calibración Obtiene información de archivos que se darían de baja a causa de la baja de la Calibración Obtiene información de mediciones que se darían de baja a causa de la baja de la Calibración Obtiene información de fotografías que se darían de baja a causa de la baja de la Calibración Muestra información de elementos que se darían de baja a causa de la baja de la Calibración Solicita confirmación Confirma Borra archivos Borra mediciones Borra fotografías Borra Calibración Informa de operación realizada Manual Técnico 32 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.18 Consulta de Calibración 3.4.18.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Consulta de Calibración Consultar una Calibración del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se muestran los datos de la Calibración escogida 1. El Técnico Calibrador solicita visualizar una Calibración. El Técnico Calibrador puede acceder a esta opción desde el caso de uso Listado de Calibraciones. 2. El sistema muestra los datos de dicha Calibración. 3. El Técnico Calibrador podrá borrar dicha calibración si así lo desea. Flujo de eventos excepcional: Frecuencia de uso Alta 3.4.18.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Calibración : Archivo : Técnico Solicita Consulta de Calibración Obtiene información de Calibración Obtiene información de archivos Obtiene información de Técnico Obtiene información de protocolos Obtiene información de dispositivos Obtiene información de mediciones Obtiene información de fotografías Muestra información de Calibración Manual Técnico 33 : Protocolo : Dispositivo : Medición : Fotografía Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.19 Listado de Calibraciones 3.4.19.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Listado de Calibraciones Consultar las Calibraciones del sistema Técnico Calibrador El Técnico Calibrador está convenientemente validado Se muestra un listado con las Calibraciones del sistema 1. El Técnico Calibrador solicita visualizar un listado de las Calibraciones existentes en el sistema. 2. Se le presenta al Técnico Calibrador un listado con las Calibraciones existentes. 3. El Técnico Calibrador podrá indicar una Calibración para verla con más detalle. Alta 3.4.19.2 Diagrama de secuencia : Técnico Calibrador : Sistema : Calibración Solicita Listado de Calibraciones Obtiene información de calibraciones Muestra Listado de Calibraciones Manual Técnico 34 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.20 Validar Usuario 3.4.20.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Validar Usuario Certificar la existencia de un usuario en el sistema Usuario No Validado Ninguna Un Usuario No Validado certifica que es Usuario Registrado. 1. El usuario introduce sus datos para entrar en el sistema 2. Si el usuario existe y sus datos son válidos, se reconoce como Usuario Registrado. 1. Si los datos introducidos son erróneos, se pedirán de nuevo o se posibilitará abandonar la operación Alta 3.4.20.2 Diagrama de secuencia : Usuario no validado : Sistema : Técnico Solicita hacer Login Obtiene información de Técnico Comprueba datos introducidos El Técnico inicia sesión en el Sistema Se informa de operación realizada Manual Técnico 35 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.4.21 Finalizar Sesión Usuario 3.4.21.1 Descripción Nombre: Objetivo: Actores: Precondiciones: Poscondiciones: Flujo de eventos principal: Flujo de eventos excepcional: Frecuencia de uso Finalizar Sesión Usuario Finaliza la sesión de un usuario en el sistema Usuario Registrado El Usuario Registrado está convenientemente validado El Usuario Registrado finaliza su sesión en el sistema, por lo que no podrá acceder de nuevo al sistema sin validarse de nuevo. 1. El Usuario Registrado solicita finalizar la sesión. 2. El sistema finaliza la sesión de dicho usuario. Alta 3.4.21.2 Diagrama de secuencia : Usuario Registrado : Sistema Solicita Cerrar Sesión El Sistema cierra la sesión del usuario Se informa de operación realizada Manual Técnico 36 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 3.5 Diagrama de Clases Preliminar Antes de comenzar el diseño, han surgido las siguientes clases: Al expresar una clase como Singleton, se indica que de dicha clase solo puede existir una instancia. Se usa este patrón en Sistema, ya que se tiene la certeza de que sólo va a existir un objeto Sistema. Manual Técnico 37 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4. Diseño Al comenzar el diseño se tuvieron que tomar algunas decisiones que modificaban de alguna manera el trabajo realizado hasta el momento: - - - La clase Sistema, que se usaba para no tener un nivel de detalle excesivo, desapareció, para dar lugar a clases que definiesen mejor el comportamiento de la aplicación. La clase Dispositivo, que recogía todos los periféricos implicados en el proyecto, se especializó en diversas subclases. Concretamente, Dispositivo_Patrón, Cámara_Climática y Sistema_Redundante. La clase Cámara Fotográfica se separó de Dispositivo para distinguir el comportamiento de los dispositivos (que miden) del de la cámara fotográfica (que crea fotografías). Tras la creación de las clases Cámara_Fotográfica, Dispositivo_Patrón y Cámara_Climática, se crearon subclases correspondientes a cada uno de los dispositivos implicados en el proyecto. Así, fue necesario crear las clases Termohigrómetro_Protimeter_996, Camara_Thunder_2500, Camara_CCam_BCi4, etc. La clase Archivo se subdividió en Archivo_txt y Archivo_xls. Tras estas especializaciones evidentes, se ampliaron las clases existentes con las clases dedicadas al manejo de la base de datos. Posteriormente se añadieron las clases encargadas de la interfaz de usuario. 4.1 Diseño de las clases del dominio del problema En este apartado se tratará de explicar el camino seguido para darle forma al sistema, desde una perspectiva temporal. En posteriores apartados se hará una descripción de cada clase, pero en este apartado la intención es simplemente indicar cómo se ha abordado el diseño del sistema. 4.1.1 Dispositivo La primera tarea del diseño era especializar los dispositivos implicados. La primera decisión fue separar las Cámaras Fotográficas, por un lado (porque principalmente se dedican a efectuar fotografías), y por otro lado dispositivos que miden ciertas magnitudes y las vuelcan en una medición. De este modo las cámaras fotográficas se desvinculaban de dispositivo. Sin embargo esto no era suficiente, y fue necesario distinguir entre distintos tipos de dispositivos. Esta división es necesaria para distinguir el comportamiento de las cámaras climáticas (que configuran un medio a partir de un protocolo), del de un dispositivo patrón (que simplemente mide). Finalmente, el Sistema Redundante es un dispositivo especial, que también crea una medición, pero con características diferentes al resto. Cada una de estas subclases se divide, a su vez, en más subclases: - Dispositivo_Patron se especializa en: o Multimetro_34401ª o Multimetro_HP3457A o Termohigrometro_DP30_BCS o Termohigrometro_Protimeter_996 o Termometro_BlackStack_1560 Manual Técnico 38 Sistema de Calibración Automática de Termohigrómetros o - Ángel Dacal Nieto Termometro_F250 Camara_Climatica se especializa en; o Camara_Thunder_2500 Con estas consideraciones, un esquema de lo comentado hasta ahora es el siguiente: Especialización de Dispositivo Especialización de Camara_Fotografica Manual Técnico 39 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.1.2 Dispositivo - Medicion La siguiente tarea del diseño era tratar de encontrar similitudes entre los dispositivos implicados. Hablamos de periféricos muy heterogéneos entre sí, con comportamientos diversos, interfaces diversas, distintas magnitudes, etc. Tras la lectura de manuales y numerosas pruebas, se llegó a la conclusión de que la principal similitud, y más importante, era que los dispositivos realizaban mediciones. Daba igual qué midiesen o cómo. Lo importante era que la aplicación viese un Dispositivo medible que, del modo que fuese, devolviera una medición. Así, los primeros esfuerzos se dedicaron a encapsular los accesos a los puertos Serie y GPIB, para después centrarse en el proceso de creación de una medición. Para ello se decidió hacer uso de una variante del patrón de diseño conocido como Factory Method. Define la interfaz de creación de un cierto tipo de objetos, pero deja que sean sus subclases las que decidan qué tipo de objeto se debe crear. Patrón de Diseño Factory Method De este modo, existirá una subclase de Dispositivo por cada dispositivo que cree mediciones. Cada una de ellas creará su propio tipo de medición, adecuada a sus magnitudes y necesidades. Para la superclase Dispositivo, qué medición concreta se crea es irrelevante, ya que sabe que, en todo caso, será una Medicion. Esta arquitectura permite que la aplicación se desentienda del proceso de creación de mediciones de cada dispositivo, dejando un acceso transparente a los mismos. La clase Dispositivo, recordemos, tiene tres especializaciones: - Dispositivo_Patron, que denota a los patrones utilizados en las calibraciones. - Cámara_Climática, que denota a las cámaras climáticas que generarán condiciones de temperatura y humedad. - Sistema_Redundante, que es una clase que sirve para leer del Sistema Redundante. En todo caso cualquier subclase de estas especializaciones crea Mediciones, con las magnitudes adecuadas para cada caso. Manual Técnico 40 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.1.3 Camara_Fotografica - Fotografia Algo parecido a lo comentado en el punto 4.1.2 sucedió con la clase Camara_Fotografica. A pesar de que actualmente solamente se dispone de una Cámara Fotográfica (una CCam BCi4 USB), el sistema ha de quedar preparado para la posible inclusión de otros modelos. Por ello, y análogamente al caso de los dispositivos medibles, existe una clase abstracta Camara_Fotografica que define la manera de crear fotografías: a partir del método sacarFoto(). Cada subclase de Camara_Fotografica define su propia manera de acceder al dispositivo, y su propia manera de crear la fotografía. La diferencia con el Factory Method está en que sólo existe un tipo de Fotografía. Es decir, no existe un tipo de Fotografía por cada cámara como en el caso anterior. Creación de Fotografia En el diagrama vemos una cámara fotográfica concreta, la CCam BCi4, que es la única cámara, por el momento, de que se dispone. Dicha clase Camara_CCam_BCi4 es subclase de Camara_Fotografica. 4.1.4 Calibracion Una vez resuelta la problemática de creación de mediciones y fotografías, el siguiente paso era el eje central del proceso: la clase Calibracion. Se optó por una visión sencilla. La clase calibración incluiría toda la información necesaria para una calibración concreta. Esto supone incluir dispositivos, mediciones, fotografías, técnico, archivos, protocolos y otros datos relevantes como identificadores. Manual Técnico 41 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.2 Diseño de las clases de acceso a base de datos Una vez implantada la base de datos (que será descrita con mayor profundidad en capítulos posteriores), se crearon clases encargadas de su manejo. Para ello se diseñó una clase para cada una de las clases que almacenarían información en la base de datos: Dispositivo, Medicion, Fotografia, Tecnico, Archivo, Protocolo, Tipo_Protocolo y finalmente Calibracion. Cada una de estas clases dispondrían de los métodos necesarios para gestionar con transparencia los accesos: altas, bajas, consultas, modificaciones y listados. Con este diseño tenemos material suficiente para comenzar la implementación de modo que nos permita la creación de una aplicación que cumpla los objetivos marcados en un principio. Obviamente, y dadas las posibilidades actuales, se ha concebido una interfaz de usuario sobre este diseño que facilite el flujo de información entre usuario y sistema. Manual Técnico 42 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.3 Diseño de las clases de la interfaz de usuario Para el diseño de la interfaz de usuario se hace uso de diversas clases definidas en el .NET framework de Visual Studio. Dichas clases extienden el comportamiento de la clase System::Windows::Forms::Form, estando cada una orientada a un propósito específico. Form Form_Entrada Form_Home Form_Alta_Protocolo Form_Nueva_Calibracion_1 Form_Consulta_Protocolo Form_Nueva_Calibracion_2 Form_Listado_Protocolos Form_Nueva_Calibracion_3 Form_Alta_Tecnico Form_Consulta_Tecnico Form_Listado_Tecnicos Form_Nueva_Calibracion_4 Form_Alta_Tipo_Protocolo Form_Nueva_Calibracion_5 Form_Consulta_Tipo_Protocolo Form_Nueva_Calibracion_6 Form_Consulta_Calibracion Form_Nueva_Calibracion_7 Form_Listado_Calibraciones Form_Listado_Tipos_Protocolo Dividiremos estas clases en tres grupos para explicar mejor su funcionamiento. 4.3.1 Formularios sencillos El primer tipo de formularios diseñados son los llamados formularios sencillos. Se trata de formularios que dan soporte a ciertos escenarios cuyo comportamiento es extremadamente simple. Son formularios que se limitan a recoger o mostrar datos, sin nunca carga algorítmica más allá de la instanciación y paso de mensajes entre objetos. Cada uno de estos formularios cumplirán el cometido de un escenario (formularios de altas y formularios de listados), o incluso de dos (los formularios de consulta sirven, además, para modificaciones). Un caso especial es el Form_Home, que sirve para encaminar al usuario por las distintas funcionalidades del sistema. En este tipo de formularios se ha optado por permitir una interacción directa entre las clases del dominio del problema y el formulario, sin ninguna estructura intermedia. Entran en este grupo todos los formularios, a excepción de los formularios Form_Nueva_Calibracion_x. Manual Técnico 43 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.3.2 Formularios de alta de calibración El segundo tipo de formularios son los encargados de recoger los datos que conformarán una nueva calibración. Cada uno de ellos recogerá una cierta información del usuario que permitirá poder iniciar el proceso de calibración. Las funciones de cada uno de estos formularios se han dividido de la manera más coherente posible, agrupando las funciones similares para que el usuario vaya construyendo el proceso de la manera más natural posible: FORM_NUEVA_CALIBRACION_1: se dedicará a recoger datos genéricos de la calibración. FORM_NUEVA_CALIBRACION_2: todo lo relacionado con dispositivos patrón. FORM_NUEVA_CALIBRACION_3: todo lo relacionado con cámaras climáticas. FORM_NUEVA_CALIBRACION_4: asignación de protocolos. FORM_NUEVA_CALIBRACION_5: todo lo relacionado con cámaras fotográficas. FORM_NUEVA_CALIBRACION_6: resumen de lo introducido, y confirmación si procede. Son formularios sumamente complejos, con numerosas restricciones entre ellos, de modo que el formulario n+1 necesita que el formulario n haya sido rellenado correctamente. Por ello se exigirá un uso secuencial de los mismos. Para mantener la coherencia entre los formularios y permitir que su funcionamiento sea correcto, se ha escrito la clase EstadoInterfaz. Gracias a ella los formularios comparten información y toman decisiones en función de dicha información. Debemos ver a esta clase como una mochila que se pasa entre los distintos formularios, en la que éstos dejan y recogen cosas, de modo que la captura de datos sea coherente hasta el último momento. 4.3.3 Formulario de calibración en curso El tercer caso es el del formulario que presenta la información de la calibración en curso. Este formulario, FORM_NUEVA_CALIBRACION_7, que se ha construido mediante la información recogida en EstadoInterfaz, ha de dar respuesta a eventos de la interfaz de usuario mientras el proceso se realiza. Es decir, han de existir dos hilos de ejecución, uno para el proceso de calibración y otro para el formulario. En .NET los hilos se encuentran en el namespace System::Threading. Aunque no es posible crear una nueva clase que extienda a Thread, sí es posible que un nuevo hilo ejecute un cierto código. Por ello se ha diseñado una clase Proceso que es la encargada de definir ese nuevo hilo, y que dicho hilo ejecute el código encargado del desarrollo de la calibración. Los siete formularios FORM_NUEVA_CALIBRACION conforma el escenario de Alta de Calibración. Debido a su complejidad, el apartado 4.5 dedicado a los diagramas de diseño de los distintos escenarios del sistema, dividirá este escenario en función de los siete formularios que acabamos de describir. Por lo tanto, a pesar de esta división orientada a que el lector comprenda mejor el funcionamiento del escenario, se ha de ver como una sola funcionalidad. Manual Técnico 44 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.4 Algoritmos 4.4.1 Algoritmo de Calibración El eje central de este proyecto es, sin duda, el alta de una nueva calibración. Es un proceso complejo y muy variable. Los dispositivos que intervienen en él van desde un sólo patrón (en el caso más simple) a varios patrones, una cámara climática y una cámara fotográfica (en un caso más complejo). Y puede desarrollarse con un solo calibrando, o con varios al mismo tiempo. Por todo esto el algoritmo ha de ser lo más flexible posible, permitiendo una alta modularidad. El siguiente algoritmo describe, a grandes rasgos, el funcionamiento del proceso de calibración. Dicho algoritmo se implementa en la clase Proceso. ALGORITMO DE CALIBRACIÓN: Para cada protocolo hacer //estabilizar si hay cámara climática configurar cámara climática mientras calibración no estable, esperar fin_si Para cada paso de este protocolo hacer Para cada patrón hacer Para cada sonda del patrón hacer realizar medición presentar medición en interfaz fin_hacer fin_hacer si hay cámara fotográfica sacar fotografía recortar interpretar fotografía (si procede) presentar fotografía en interfaz fin_si esperar tiempo indicado por el protocolo fin_hacer fin_hacer Esta es la visión más automática del algoritmo. Se ofrecerá una variante más manual, de modo que sea el técnico quien tome las decisiones de cuándo está estable el medio, o cuándo pasar al siguiente protocolo. Manual Técnico 45 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.4.2 Algoritmo de Estabilización Otro punto conflictivo es el de estabilización del medio. Es de vital importancia conocer cuándo está estable el medio y detectar cuándo no. La estabilización es un proceso que puede llevar horas, dependiendo del medio que se pretende estabilizar. El aire, que es el usado por las cámaras climáticas con las que trabaja este proyecto, es un medio especialmente difícil de estabilizar. El algoritmo se basa en la comprobación de que las últimas mediciones de la cámara climática no sobrepasen (ni por encima ni por debajo) un cierto margen. Es decir, vamos a controlar una ventana de un cierto número de mediciones. Si todas y cada una de esas últimas mediciones se encuentran entre dos valores que consideramos válidos, entonces el medio se da por estable. Si no, se espera un cierto tiempo y se vuelve a medir. Lo podemos comprobar con el siguiente gráfico. En los puntos negros tenemos las mediciones de una cámara climática, mientras que la línea gris los interpreta dibujando una gráfica. Imaginemos que se pretende generar la temperatura marcada por la línea roja. Y que los márgenes definidos, asignados por el técnico, vienen marcados por las dos líneas naranja. Supongamos ahora que se necesitan 7 mediciones dentro de estos márgenes para considerar la el medio como estable. Pues bien, la calibración estaría estable (según los parámetros antes descritos) a partir del punto azul, y no antes. Estabilización de un medio Esta ventana de seguridad pretende solucionar el problema de la inercia. Dicho problema consiste en que la temperatura no va a subir o bajar directamente de una temperatura a otra, sino que hará una gráfica como la que acabamos de describir: acercándose al objetivo poco a poco. ALGORITMO DE ESTABILIZACIÓN: Si tenemos suficientes mediciones para crear una ventana hacer Hallar temperatura máxima de la ventana Hallar temperatura mínima de la ventana Si la temperatura máxima se sale del rango -> no está estable Si la temperatura mínima se sale del rango -> no está estable Si ambas están dentro de rango -> está estable fin_hacer Manual Técnico 46 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.4.3 Algoritmo para Correcciones Una utilidad muy interesante, ya que facilita mucho el trabajo de los técnicos del LOMG, es de la inclusión de las correcciones. Recordemos que cada dispositivo patrón tiene un error conocido a una cierta temperatura. Se conocen los errores para varias temperaturas, pero no obviamente cada temperatura concreta tendrá un error concreto. La idea es que la aplicación halle la corrección para cada dispositivo patrón a partir de una temperatura y unas tablas que se le proporcionan en archivos de texto, como esta: Tª 0 50 100 Corr. 0.150 0.166 0.180 Para hallar la corrección a una temperatura t, previamente tenemos que hallar: t_menor = la temperatura de la columna de la izquierda inmediatamente menor que t t_mayor = la temperatura de la columna de la izquierda inmediatamente mayor que t c_menor = la corrección de la columna de la derecha correspondiente a t_menor c_mayor = la corrección de la columna de la derecha correspondiente a t_mayor La fórmula para hallar una corrección a partir de la temperatura t y los datos anteriores es: Corr(t) = c_menor + c_mayor − c_mayor t_mayor − t_menor · ( t – t_menor ) El algoritmo carga en una estructura de datos la tabla obtenida del fichero de texto indicado y halla la corrección para una temperatura t indicada. Posteriormente las correcciones se suman, de modo que el técnico pueda disponer de las mediciones corregidas para incluir en sus informes. Por último, hay que comentar que hemos hablado de correcciones para temperatura, pero se pueden corregir otras magnitudes, como humedad relativa o las provenientes de un multímetro. Simplemente debemos tener la tabla adecuada, con los valores adecuados en la columna de la izquierda. La fórmula sería la misma. Manual Técnico 47 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.4.4 Algoritmo para recoger mediciones del Sistema Redundante El Sistema Redundante está compuesto por una serie de sensores, uno por habitación del LOMG, que registran temperatura y humedad relativa, y que vuelcan dichos registros cada cinco minutos en archivos de texto en el servidor. Se le conoce como Sistema Redundante porque el edificio ya dispone de un sistema similar para controlar sus condiciones ambientales y modificarlas en función de las necesidades de cada laboratorio. El Sistema Redundante simplemente registra, mientras que el otro controla. Cada calibración debe llevar consigo información acerca de las condiciones ambientales existentes en el laboratorio donde se llevó a cabo. Por ello la interacción con el Sistema Redundante es muy frecuente, y cualquier automatización es bienvenida. La información necesaria es un rango de temperatura y humedad relativa en el que ha fluctuado el laboratorio. Es decir, temperaturas máxima y mínima y humedades relativas máxima y mínima. Para ello la aplicación debe primero acceder a los ficheros de texto en los que se han registrado las incidencias de los días en los que fue realizada la calibración. Para ello el Sistema Redundante almacena estos registros de una manera bastante organizada. Cada día tiene su propia carpeta, dentro de la cual cada laboratorio dispone de dos archivos de texto: uno para datos de temperatura y otro para datos de humedad relativa. Las carpetas son fácilmente localizables, ya que su nombre se compone a partir de la fecha. Los archivos, en cambio, se nombran con números del 1 al 60, siendo necesario conocer la correspondencia laboratorio-archivos gracias a una lista aportada por el LOMG. Por ejemplo el laboratorio de Humedad Relativa registra sus incidencias en los archivos 1 y 21. Cada uno de estos archivos tiene una estructura como la que sigue: 09:54:32 ,24.17 09:59:37,24.188 … El algoritmo, por tanto, carga los archivos implicados en memoria, extrae los valores máximo y mínimo y hace posible que esa información se añada a la de la calibración en curso, que será escrita en los archivos de salida del proceso. Manual Técnico 48 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.4.5 Algoritmo para recortado de fotografías Una de las principales funcionalidades requeridas para el sistema era el recortado de las fotografías realizadas, salvando únicamente la zona de la fotografía en la que se observase el display del calibrando. Para esta funcionalidad se barajaron diversas alternativas. Una de ellas se basaba en la comparación de varias fotografías sucesivas. Comparando dichas imágenes se comprobaría que determinadas partes de la fotografía cambiaban (la zona del display) mientras que otras no cambiaban (el resto de la fotografía, como el cuerpo del termómetro, la pared, etc.). Localizando esa zona cambiante se conseguiría conocer en qué zona de la escena se encontraba el display. Posteriormente, y ya que la escena no se movería, se recortarían todas las imágenes en esa zona localizada. Sin embargo, tras la fase de captación de requisitos, se observó que era común la presencia de más de un calibrando por calibración. Es decir, era posible que hubiese más de un display por fotografía. Esto introducía una nueva variable en el problema, ya que no sólo era necesario localizar los displays, sino también identificarlos. Por ello se optó por darle un enfoque distinto al problema. En lugar de ser el sistema el que buscase los displays, sería el técnico el que, mediante algún tipo de herramienta en la fase de enfoque de la cámara, le indicase al sistema en qué lugares exactos de la fotografía se encontraban los displays. No sólo eso: también asociaría dichas zonas con sus calibrandos. De este modo, en esta fase de enfoque, el técnico deberá indicar una zona de la fotografía por cada calibrando introducido. El sistema tomará nota de las zonas indicadas y posteriormente recortará las fotografías por dichas zonas, teniendo cada calibrando su pedazo de fotografía para almacenar convenientemente. Es decir: //Fase de enfoque Para cada calibrando Escoger zona del display de dicho calibrando El sistema toma nota de dicha zona Fin_Para … //Fase de calibración Se toma una fotografía Para cada calibrando Se recorta la fotografía por la zona deseada Se almacena dicha fotografía Fin_Para Manual Técnico 49 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5 Diagramas de Diseño Antes de entrar con los diagramas de diseño, hemos de efectuar algunas aclaraciones. En primer lugar, se omitirán los atributos y métodos de las clases derivadas de Form, ya que dichas clases se forman a partir de numerosísimos componentes del .NET Framework, y su presencia en estos diagramas los convertiría en inmanejables. En segundo lugar, las clases de la carpeta Librerías (StringTokenizer, Conversiones y Tiempo) se han omitido. Por ser utilizadas en casi todos los escenarios, su presencia entorpecería la finalidad de estos diagramas. Dichas clases serán descritas posteriormente en esta misma documentación. Por último, otras clases, que como en el caso de la carpeta Librerías, son utilizadas pero no son fundamentales para la comprensión del diseño, serán omitidas. Por ejemplo, todos las clases dedicadas a la interacción con la base de datos instancian un objeto Base, encargado de conectarse con la base de datos. Esta clase y otras, como se ya se ha dicho, serán omitidas en los diagramas. Manual Técnico 50 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.1 Escenario Alta de Técnico 4.5.1.1 Diagrama de Clases parcial Form_Home Form_Alta_Tecnico (from Formularios) (fromFormulari... Técnico BD_Tecnico (fromBD) login password tipo base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() n 0..n toString() getLogin() getPassword() getTipo() 4.5.1.2 Diagrama de secuencia : Jefe de Departamento : Form_Home : Form_Alta_Tecnico : BD_Tecnico : Técnico Solicita Alta de Técnico new() Introduce datos Comprueba validez de los datos new() consultaTecnico( ) new() altaTecnico( ) Informa de operación realizada Manual Técnico 51 new( ) En esta consulta se comprueba que no se repita Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.2 Escenario Baja de Técnico 4.5.2.1 Diagrama de Clases parcial BD_Tecnico (f rom BD) base Form_Listado_Tecnicos consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() (f rom Formularios) 4.5.2.2 Diagrama de secuencia : Jefe de Departamento : Form_Listado_Tecnicos : BD_Tecnico Solicita baja de Técnico Solicita confirmación Confirma new() bajaTecnico() Informa de operación realizada Manual Técnico 52 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.3 Escenario Modificación de Técnico 4.5.3.1 Diagrama de Clases parcial Form_Consulta_Tecnico (f rom Formularios) Técnico login password tipo BD_Tecnico (f rom BD) base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() 0..n n toString() getLogin() getPassword() getTipo() 4.5.3.2 Diagrama de secuencia : Usuario Registrado : Form_Consulta_Tecnico : BD_Tecnico : Técnico Introduce nuevos datos Comprueba validez de datos new() consultaTecnico( ) Solicita confirmación confirma new( ) modificacionTecnico( ) Informa de operación realizada Manual Técnico 53 new( ) Esta consulta es para comprobar la contraseña Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.4 Escenario Consulta de Técnico 4.5.4.1 Diagrama de Clases parcial Form_Home Form_Consulta_Tecnico (f rom Formularios) (f rom Formularios) Técnico login password tipo BD_Tecnico (f rom BD) base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() 0..n n toString() getLogin() getPassword() getTipo() 4.5.4.2 Diagrama de secuencia : Usuario Registrado : Form_Home : Form_Consulta_Tecnico : BD_Tecnico : Técnico Solicita consulta de técnico new() new() consultaTecnico() Presenta datos de técnico Se usa el Técnico consultado para presentar datos por pantalla Manual Técnico 54 new() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.5 Escenario Listado de Técnicos 4.5.5.1 Diagrama de Clases parcial Form_Home Form_Listado_Tecnicos (f rom Formularios) (f rom Formularios) Técnico login password tipo BD_Tecnico (f rom BD) base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() 0..n n toString() getLogin() getPassword() getTipo() 4.5.5.2 Diagrama de secuencia : Jefe de Departamento : Form_Home : Form_Listado_Tecnicos : BD_Tecnico : Técnico Solicita Listado de Técnicos new() new() listadoTecnicos( ) Fin_Para Presenta listado de Técnicos Se devuelve un vector, y es lo que se usa para construir el listado en el formulario. Manual Técnico Para cada tecnico new( ) 55 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.6 Escenario Alta de Protocolo 4.5.6.1 Diagrama de Clases parcial Form_Home Form_Alta_Protocolo (f rom Formularios) (f rom Formularios) BD_Protocolo (f rom BD) BD_Tipo_Protocolo base (f rom BD) altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo Tipo_Protocolo id nombre descripcion 1 toString() getId() getNombre() getDescripcion() 0..n toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 4.5.6.2 Diagrama de secuencia : Técnico Calibrador : Form_Home Solicita Alta de Protocolo : Form_Alta_Protocolo : BD_Tipo_Protocolo new( ) new( ) listadoTipos_Protocolo( ) Para todo tipo new( ) Fin_Para Introduce datos Comprueba validez de los datos new( ) new( ) altaProtocolo( ) Informa de operación realizada Manual Técnico 56 : Tipo_Protocolo : BD_Protocolo Se recogen todos los tipos para presentarlos en el formulario y que el actor seleccione uno : Protocolo Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.7 Escenario Baja de Protocolo 4.5.7.1 Diagrama de Clases parcial BD_Protocolo (f rom BD) base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() Form_Consulta_Protocolo (f rom Formularios) 4.5.7.2 Diagrama de secuencia : Técnico Calibrador : Form_Consulta_Protocolo Solicita Baja de Protocolo Solicita confirmación Confirma new( ) bajaProtocolo( ) Informa de operación realizada Manual Técnico 57 : BD_Protocolo Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.8 Escenario Modificación de Protocolo 4.5.8.1 Diagrama de Clases parcial Form_Consulta_Protocolo (f rom Formularios) Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo BD_Protocolo (f rom BD) base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 4.5.8.2 Diagrama de secuencia : Técnico Calibrador : Form_Consulta_Protocolo : BD_Protocolo Solicita modificación de Protocolo Comprueba validez de datos Solicita confirmación Confirma new( ) new( ) modificacionProtocolo( ) Informa de operación realizada Manual Técnico 58 : Protocolo Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.9 Escenario Consulta de Protocolo 4.5.9.1 Diagrama de Clases parcial Form_Listado_Protocolos Form_Consulta_Protocolo (f rom Formularios) (f rom Formularios) BD_Protocolo (f rom BD) base BD_Tipo_Protocolo (f rom BD) altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo Tipo_Protocolo id nombre descripcion toString() getId() getNombre() getDescripcion() 1 0..n toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 4.5.9.2 Diagrama de secuencia : Técnico Calibrador : Form_Listado_Protocolos Solicita consulta de Protocolo : Form_Consulta_Protocolo : BD_Tipo_Protocolo new( ) : Tipo_Protocolo new( ) consultaProtocolo( ) new( ) listadoTipos_Protocolo( ) Para cada tipo new( ) Fin_para Muestra datos de protocolo Manual Técnico : BD_Protocolo 59 new( ) : Protocolo Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.10 Escenario Listado de Protocolos 4.5.10.1 Diagrama de Clases parcial Form_Home Form_Listado_Protocolos (f rom Formularios) (f rom Formularios) Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo BD_Protocolo (f rom BD) base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 4.5.10.2 Diagrama de secuencia : Técnico Calibrador : Form_Home : Form_Listado_Protocolos : BD_Protocolo : Protocolo Solicita Listado de Protocolos new( ) new( ) listadoProtocolos( ) Para cada protocolo new( ) Fin_Para Presenta listado de protocolos Manual Técnico Se devuelve un vector, y es lo que se usa para construir el listado en el formulario. 60 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.11 Escenario Alta de Tipo de Protocolo 4.5.11.1 Diagrama de Clases parcial Form_Home Form_Alta_Tipo_Protocolo (f rom Formularios) (f rom Formularios) Tipo_Protocolo BD_Tipo_Protocolo id nombre descripcion (f rom BD) altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() toString() getId() getNombre() getDescripcion() 4.5.11.2 Diagrama de secuencia : Técnico Calibrador : Form_Home : Form_Alta_Tipo_Protocolo : BD_Tipo_Protocolo : Tipo_Protocolo Solicita alta de tipo de protocolo new( ) Introduce datos Comprueba validez de los datos Esta consulta es para comprobar que el tipo no se repita new( ) consultaTipo_Protocolo( ) new( ) altaTipo_Protocolo( ) Informa de operación realizada Manual Técnico 61 new( ) Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.12 Escenario Baja de Tipo de Protocolo 4.5.12.1 Diagrama de Clases parcial BD_Tipo_Protocolo (f rom BD) Form_Consulta_Tipo_Protocolo altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() (f rom Formularios) 4.5.12.2 Diagrama de secuencia : Técnico Calibrador : Form_Consulta_Tipo_Protocolo : BD_Tipo_Protocolo Solicita baja de tipo de protocolo Solicita confirmación Confirma new( ) bajaTipo_Protocolo( ) Informa de operación realizada Manual Técnico 62 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.13 Escenario Modificación de Tipo de Protocolo 4.5.13.1 Diagrama de Clases parcial Form_Consulta_Tipo_Protocolo (f rom Formularios) Tipo_Protocolo id nombre descripcion BD_Tipo_Protocolo (f rom BD) altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() toString() getId() getNombre() getDescripcion() 4.5.13.2 Diagrama de secuencia : Técnico Calibrador : Form_Consulta_Tipo_Protocolo : BD_Tipo_Protocolo Solicita modificación de tipo de protocolo Comprueba validez de los datos Solicita confirmación Confirma new( ) new( ) modificacionTipo_Protocolo( ) Informa de operación realizada Manual Técnico 63 : Tipo_Protocolo Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.14 Escenario Consulta de Tipo de Protocolo 4.5.14.1 Diagrama de Clases parcial Form_Home Form_Consulta_Tipo_Protocolo (f rom Formularios) (f rom Formularios) Tipo_Protocolo BD_Tipo_Protocolo id nombre descripcion (f rom BD) altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() toString() getId() getNombre() getDescripcion() 4.5.14.2 Diagrama de secuencia : Técnico Calibrador : Form_Home : Form_Consulta_Tipo_Protocolo : BD_Tipo_Protocolo : Tipo_Protocolo Solicita consulta de tipo de protocolo new( ) new( ) consultaTipo_Protocolo( ) Presenta información de tipo de protocolo Manual Técnico 64 new( ) Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.15 Escenario Listado de Tipos de Protocolo 4.5.15.1 Diagrama de Clases parcial Form_Home Form_Listado_Tipos_Protocolo (f rom Formularios) (f rom Formularios) Tipo_Protocolo BD_Tipo_Protocolo id nombre descripcion (f rom BD) altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() toString() getId() getNombre() getDescripcion() 4.5.15.2 Diagrama de secuencia : Técnico Calibrador : Form_Home : Form_Listado_Tipos_Protocolo : BD_Tipo_Protocolo : Tipo_Protocolo Solicita listado de tipos de protocolo new( ) new( ) listadoTipos_Protocolo( ) Para cada tipo new( ) Fin_Para Presenta listado de tipos de protocolo Se devuelve un vector, y es lo que se usa para construir el listado en el formulario. Manual Técnico 65 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16 Escenario Alta de Calibración Como ya se ha comentado con anterioridad, el escenario Alta de Calibración es el eje central de este proyecto, y el que recoge la mayor complejidad. El diseño de la interfaz de usuario para esta funcionalidad se ha dividido en seis formularios (orientados de la manera más natural posible a recoger los datos del usuario que conformarán una nueva calibración), y un último formulario que se destina a informar de las incidencias de la calibración en curso. Debido al gran número de clases que intervienen en este escenario, presentarlas en un solo diagrama sería inmanejable. Es por ello que se presentarán del mismo modo que el que siguen los formularios destinados a la interfaz de usuario. Este orden es: - 1: recoger datos genéricos de la calibración - 2: recoger datos relativos a los patrones que intervendrán en el proceso - 3: recoger datos relativos a la cámara climática y a los protocolos que conformarán el proceso (se corresponde con los formularios 3 y 4) - 4: recoger datos relativos a la cámara fotográfica - 5: presentación de los datos recogidos y solicitud de confirmación - 6: el propio proceso en sí - 7: las tareas de salvado y creación de archivos de salida El orden escogido no es casual, ya que es necesario cubrir ciertos pasos antes de proseguir a los siguientes. A continuación se presentarán los diagramas de secuencia de este escenario divididos en los seis pasos antes mencionados. Para la total comprensión de este escenario habría que verlos conjuntamente, y en este orden. Manual Técnico 66 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.1 Paso 1: Datos genéricos de la calibración DIAGRAMA DE CLASES PARCIAL Form_Home Form_Nueva_Calibracion_1 Form_Nueva_Calibracion_2 (f rom Formularios) (f rom Formularios) (f rom Formularios) EstadoInterfaz (f rom Estado_Interfaz) lista_calibraciones esManual mediciones_estabilidad protocolo_activo lista_patrones camara_climatica protocolos asignaciones camara_fotografica q_interpretacion getCorrecciones() getListaCalibraciones() getListaPatrones() getListaProtocolos() getCamaraClimatica() getAsignaciones() getMediciones_estabilidad() getCamaraFotografica() getSeQuiereInterpretacion() getEsManual() temperaturaEsEstable() hrEsEstable() getProtocolo_activo() Manual Técnico DatosCalibracion BD_Tecnico (f rom Estado_Interfaz) (f rom BD) OT directorio laboratorio id fichero_de_texto fichero_excel tecnico_calibrador tipo descripcion getId() getDescripcion() getTipo() getTecnico() getArchivo_txt() getArchivo_xls() getOT() getDirectorio() getLaboratorio() 67 base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() BD_Calibracion (f rom BD) base altaCalibracion() bajaCalibracion() consultaCalibracion() listadoCalibraciones() Técnico login password tipo toString() getLogin() getPassword() getTipo() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Técnico Calibrador : Form_Home : Form_Nueva_Calibracion_1 : BD_Tecnico : Técnico Solicita alta de calibración new( ) new( ) listadoTecnicos( ) Para cada Técnico new( ) Fin_Para new( ) Introduce datos Para cada calibración Comprueba validez de los datos La consulta sirve para comprobar que la calibración no se repite. new( ) consultaCalibracion( ) new( ) añadir a estado Fin_Para Pulsa siguiente new( ) Manual Técnico 68 : EstadoInterfaz : BD_Calibracion : DatosCalibracion : Form_Nueva_Calibracion_2 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.2 Paso 2: Datos relativos a los patrones DIAGRAMA DE CLASES PARCIAL Form_Nueva_Calibracion_2 Form_Nueva_Calibracion_3 (f rom Formularios) (f rom Formularios) BD_Dispositivo (f rom BD) base altaAsociacionCalDispositivo() bajaCalibracion() consultaCamaraFotografica() consultaDispositivo() consultaCamaraClimaticaPorCalibracion() consultaCamaraFotograficaPorCalibracion() listadoDispositivosPatronPorCalibracion() listadoDispositivosPatron() listadoCamarasClimaticas() listadoCamarasFotograficas() EstadoInterfaz (f rom Estado_Interfaz) lista_calibraciones esManual mediciones_estabilidad protocolo_activo lista_patrones camara_climatica protocolos asignaciones camara_fotografica q_interpretacion Dispositivo_Patrón (f rom _Dispositivo) sondas quiere_correccion uds arch_correccion getCorrecciones() getListaCalibraciones() getListaPatrones() getListaProtocolos() getCamaraClimatica() getAsignaciones() getMediciones_estabilidad() getCamaraFotografica() getSeQuiereInterpretacion() getEsManual() temperaturaEsEstable() hrEsEstable() getProtocolo_activo() Manual Técnico <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() 69 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Técnico Calibrador : Form_Nueva_Calibracion_2 : BD_Dispositivo : Dispositivo_Patrón new( ) listadoDispositivosPatron( ) Para cada patrón new( ) Fin_Para Introduce datos Para cada patrón Comprueba validez de los datos Añade patrón a estado Fin_Para Pulsa siguiente new( ) Manual Técnico 70 : EstadoInterfaz : Form_Nueva_Calibracion_3 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.3 Paso 3: Datos relativos a la cámara climática y a los protocolos DIAGRAMA DE CLASES PARCIAL Se han suprimido las operaciones y atributos de las clases para que el diagrama sea suficientemente claro. Manual Técnico 71 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Técnico Calibrador : Form_Nueva_Calibracion_3 : BD_Protocolo : Protocolo : BD_Tipo_Protocolo : Tipo_Protocolo : BD_Dispositivo : Cámara_Climática : EstadoInterfaz : Form_Nueva_Calibracion_4 : DatosCalibracion new( ) listadoProtocolos( ) Para cada protocolo new( ) Fin_Para new( ) listadoTipos_Protocolo( ) "Introducir datos" supone o bien escoger los protocolos del listado, o bien dar de alta nuevos protocolos para poder ser escogidos. Para cada tipo de protocolo new( ) Fin_para new( ) listadoCamarasClimaticas( ) Para cada camara new( ) Fin_para Introduce datos Comprueba validez de los datos Añadir datos a estado Pulsa siguiente new( ) Solicita información para mostrar construir formulario get( ) Introduce datos Comprueba validez de los datos Añadir datos a estado Pulsa siguiente new( ) Manual Técnico 72 : Form_Nueva_Calibracion_5 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.4 Paso 4: Datos relativos a la cámara fotográfica DIAGRAMA DE CLASES PARCIAL Form_Nueva_Calibracion_5 Form_Nueva_Calibracion_6 (f rom Formularios) (f rom Formularios) BD_Dispositivo (f rom BD) base altaAsociacionCalDispositivo() bajaCalibracion() consultaCamaraFotografica() consultaDispositivo() consultaCamaraClimaticaPorCalibracion() consultaCamaraFotograficaPorCalibracion() listadoDispositivosPatronPorCalibracion() listadoDispositivosPatron() listadoCamarasClimaticas() listadoCamarasFotograficas() EstadoInterfaz (f rom Estado_Interfaz) lista_calibraciones esManual mediciones_estabilidad protocolo_activo lista_patrones camara_climatica protocolos asignaciones camara_fotografica q_interpretacion getCorrecciones() getListaCalibraciones() getListaPatrones() getListaProtocolos() getCamaraClimatica() getAsignaciones() getMediciones_estabilidad() getCamaraFotografica() getSeQuiereInterpretacion() getEsManual() temperaturaEsEstable() hrEsEstable() getProtocolo_activo() Manual Técnico DatosCalibracion (f rom Estado_Interfaz) OT directorio laboratorio id fichero_de_texto fichero_excel tecnico_calibrador tipo descripcion Fotografía (f rom _Archivo) getId() getDescripcion() getTipo() getTecnico() getArchivo_txt() getArchivo_xls() getOT() getDirectorio() getLaboratorio() Camara_Fotográfica id_fotografia fecha hora ruta id_calibracion id_dispositivo id_dispositivo nombre descripcion tipo <<virtual>> configurar() <<virtual>> cerrar() <<virtual>> sacarFoto() getIdDispositivo() getNombre() getDescripcion() getTipo() 73 1 0..n getId() setId() getURL() setURL() getFechaCreacion() setFechaCreacion() getHoraCreacion() setHoraCreacion() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Form_Nueva_Calibracion_5 : Técnico Calibrador : BD_Dispositivo : Camara_Fotográfica : EstadoInterfaz : DatosCalibracion new( ) listadoCamarasFotograficas( ) Para cada cámara new( ) Fin_para Solicita datos para crear el formulario get( ) Escoge cámara Mientras cámara no enfocada Solicita sacar fotografía sacarFoto( ) new( ) Fin_mientras Determina displays Comprueba validez de los datos Añade datos a estado Pulsa siguiente new( ) Manual Técnico 74 : Fotografía : Form_Nueva_Calibracion_6 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.5 Paso 5: Resumen de los datos obtenidos y solicitud de confirmación DIAGRAMA DE CLASES PARCIAL Manual Técnico 75 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Técnico Calibrador : Form_Nueva_Calibracion_6 : EstadoInterfaz getListaCalibraciones( ) Solicita datos para mostrar un resumen. Se obtienen vectores de objetos. getListaPatrones( ) getListaProtocolos( ) getCamaraClimatica( ) get( ) getCamaraFotografica( ) get( ) Pulsa siguiente Para cada calibración new( ) Añade calibración a estado Fin_Para new( ) Manual Técnico 76 : Cámara_Climática : Camara_Fotográfica : Calibración : Form_Nueva_Calibracion_7 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.6 Paso 6: Proceso de calibración DIAGRAMA DE CLASES PARCIAL Form_Nueva_Calibracion_7 (f rom Formularios) Proceso (f rom Proceso) altaCalibracion() finalizarCalibracion() Cámara_Climática (f rom _Dispositivo) EstadoInterfaz <<virtual>> configurar() <<virtual>> run() <<virtual>> stop() 0..1 0..n (f rom Estado_Interfaz) lista_calibraciones esManual mediciones_estabilidad protocolo_activo lista_patrones camara_climatica protocolos asignaciones camara_fotografica q_interpretacion getCorrecciones() getListaCalibraciones() getListaPatrones() getListaProtocolos() getCamaraClimatica() getAsignaciones() getMediciones_estabilidad() getCamaraFotografica() getSeQuiereInterpretacion() getEsManual() temperaturaEsEstable() hrEsEstable() getProtocolo_activo() Dispositivo_Patrón (f rom _Dispositivo) sondas quiere_correccion uds arch_correccion 1..n <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() Camara_Fotográfica id_dispositivo nombre descripcion tipo 0..1 <<virtual>> configurar() <<virtual>> cerrar() <<virtual>> sacarFoto() getIdDispositivo() getNombre() getDescripcion() getTipo() 1..n Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() Manual Técnico 77 Calibración camara_climatica camara_fotografica descripcion directorio fecha_fin fecha_inicio fichero_de_texto fichero_excel fotografias hora_fin hora_inicio id laboratorio medicion_sistema_redundante mediciones_camara mediciones_camara_estabilidad mediciones_interpretadas mediciones_patrones OT patrones protocolo_activo protocolos tecnico_calibrador tipo getArchivo_txt() getArchivo_xls() getCamara_climatica() getCamara_fotografica() 0..n getDescripcion() getDirectorio() getFecha_fin() getFecha_ini() getFotografias() 0..n getHora_fin() getHora_ini() getId() getLaboratorio() 0..n getMedicion_sistema_redundante() getMediciones_camara() getMediciones_camara_estabilidad() getMediciones_interpretadas() getMediciones_patrones() getOT() getPatrones() getProtocolos() getTecnico() getTipo() setMedicion_sistema_redundante() toString() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Técnico Calibrador : Form_Nueva_Calibracion_7 Crea estructura de datos en interfaz para mostrar el proceso de calibración. Para ello solicita información a EstadoInterfaz. Una vez creada la interfaz, lanza el hilo para alta de Calibración. : EstadoInterfaz : Proceso : Calibración : Protocolo Solicita información para construir interfaz getListaCalibraciones( ) getListaProtocolos( ) getListaPatrones( ) getCamaraClimatica( ) getCamaraFotografica( ) new( ) altaCalibracion( ) getListaCalibraciones( ) Para cada calibración get() Presenta información de calibraciones Recoge información para presentar en interfaz Fin_Para getListaProtocolos( ) Para cada protocolo get() getCamaraClimatica( ) Estabilización get() configurar( ) Mientras no estable realizarMedicion( ) Mostrar medición Esperar Fin_mientras Fin estabilización getListaPatrones( ) get() configurar( ) Para cada paso del protocolo Para cada dispositivo patrón Para cada sonda realizarMedicion( ) Mostrar medición Fin_Para getCamaraFotografica( ) Fin_Para get() sacarFoto( ) Mostrar foto Esperar Fin_Para Fin_Para Manual Técnico 78 : Dispositivo_Patrón : Cámara_Climática : Camara_Fotográfica Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.16.7 Paso 7: Finalizar proceso DIAGRAMA DE CLASES PARCIAL BD_Calibracion (f rom BD) Form_Nueva_Calibracion_7 base (f rom Formularios) altaCalibracion() bajaCalibracion() consultaCalibracion() listadoCalibraciones() Archivo_TXT (f rom _Archivo) Proceso escribir() leerLinea() toString() (f rom Proceso) altaCalibracion() finalizarCalibracion() Calibración 1 Sistema_Redundante (f rom _Dispositivo) laboratorio fecha id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 1 configurar() establecerConexion() cerrarConexion() realizarMedicion() 1 0..n Medición Protocolo 1..n 1 fecha hora unidades id_calibracion id_medicion id_dispositivo temperatura humedadRelativa medida puntoDeRocio <<virtual>> toString() getFecha() getHora() getUnidades() getIdCalibracion() getIdMedicion() getTemperatura() getHumedadRelativa() getPuntoDeRocio() getMedida() 0..n 0..n 1..n 0..n 1 Dispositivo_Patrón (f rom _Dispositivo) sondas quiere_correccion uds arch_correccion <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() Manual Técnico 79 1..n camara_climatica camara_fotografica descripcion directorio fecha_fin fecha_inicio fichero_de_texto fichero_excel fotografias hora_fin hora_inicio id laboratorio medicion_sistema_redundante mediciones_camara mediciones_camara_estabilidad mediciones_interpretadas mediciones_patrones OT patrones protocolo_activo protocolos tecnico_calibrador tipo getArchivo_txt() getArchivo_xls() getCamara_climatica() getCamara_fotografica() getDescripcion() getDirectorio() getFecha_fin() getFecha_ini() 0..n getFotografias() getHora_fin() getHora_ini() getId() getLaboratorio() getMedicion_sistema_redundante() getMediciones_camara() getMediciones_camara_estabilidad() getMediciones_interpretadas() getMediciones_patrones() getOT() getPatrones() getProtocolos() getTecnico() getTipo() setMedicion_sistema_redundante() toString() 1 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto DIAGRAMA DE SECUENCIA : Técnico Calibrador : Form_Nueva_Calibracion_7 : Proceso : Sistema_Redundante : Calibración : Dispositivo_Patrón Solicita finalizar proceso finalizarCalibracion( ) Para cada calibración new( ) configurar( ) realizarMedicion( ) Este paso supone múltiples llamadas a funciones, que resumimos en "datos genéricos" Escritura de archivos de salida Obtiene datos genéricos Añadir datos genéricos Hallar correcciones Se obtienen los datos que serán volcados en los archivos getPatrones( ) get() getProtocolos( ) getMediciones_patrones( ) get() get() getMediciones_interpretadas( ) Se informa de operación realizada Manual Técnico El método altaCalibracion() supone el uso de las clases BD_Medicion, BD_Archivo, BD_Fotografia, BD_Protocolo y BD_Dispositivo, para las respectivas altas de los componentes de una calibración. Se omiten para ganar en claridad. 80 get() Fin_escritura getArchivo_txt( ) escribir( ) new( ) altaCalibracion( ) Fin_Para get() : Protocolo : Medición : Archivo_TXT : BD_Calibracion Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.17 Escenario Baja de Calibración 4.5.17.1 Diagrama de Clases parcial Form_Consulta_Calibracion (f rom Formulari... BD_Fotografia BD_Archivo (f rom BD) BD_Calibracion (f rom BD) base altaCalibracion() bajaCalibracion() consultaCalibracion() listadoCalibraciones() (f rom BD) base base altaArchivo() bajaArchivo() modificacionArchivo() consultaArchivo() listadoArchivos() altaFotografia() bajaFotografia() bajaFotografiaPorCalibracion() consultaFotografia() listadoFotografias() listadoFotografiasPorCalibracion() modificacionFotografia() BD_Medicion BD_Dispositivo (f rom BD) BD_Protocolo (f rom BD) base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() ... Manual Técnico base altaAsociacionCalDispositivo() bajaCalibracion() consultaCamaraFotografica() consultaDispositivo() consultaCamaraClimaticaPorCalibracion() consultaCamaraFotograficaPorCalibracion() listadoDispositivosPatronPorCalibracion() listadoDispositivosPatron() listadoCamarasClimaticas() listadoCamarasFotograficas() 81 (f rom BD) base altaMedicion() bajaMedicion() bajaMedicionPorCalibracion() consultaMedicion() listadoMediciones() listadoMedicionesPorCalibracion() listadoMedicionesPorCalibracionYCamaraClimatica() listadoMedicionesPorCalibracionYPatrones() listadoMedicionesPorCalibracionYSR() listadoMedicionesInterpretadasPorCalibracion() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.17.2 Diagrama de secuencia : Técnico Calibrador : Form_Consulta_Calibracion : BD_Calibracion : BD_Medicion : BD_Dispositivo Solicita baja de Calibración Solicita confirmación Confirma new( ) bajaCalibracion( ) new( ) bajaMedicionPorCalibracion( ) new( ) bajaCalibracion( ) new( ) bajaFotografiaPorCalibracion( ) Baja de archivo_txt y de archivo_xls new( ) bajaArchivo( ) bajaArchivo( ) new( ) bajaCalibracion( ) Informa de operación realizada Manual Técnico 82 : BD_Fotografia : BD_Archivo : BD_Protocolo Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.18 Escenario Consulta de Calibración 4.5.18.1 Diagrama de Clases parcial BD_Archivo (from BD) Form_Home Form_Consulta_Calibracion (from Formulari... base (from Formulari... altaArchivo() bajaArchivo() modificacionArchivo() consultaArchivo() listadoArchivos() BD_Calibracion (from BD) base Archivo_TXT altaCalibracion() bajaCalibracion() consultaCalibracion() listadoCalibraciones() Archivo_XLS (from _Archivo) (from _Archivo) escribir() leerLinea() toString() Camara_Fotográfica toString() id_dispositivo nombre descripcion tipo 1 1 Fotografía (from _Archivo) 1 <<virtual>> configurar() <<virtual>> cerrar() <<virtual>> sacarFoto() getIdDispositivo() getNombre() getDescripcion() getTipo() 1 id_fotografia fecha 0..n hora ruta id_calibracion id_dispositivo 0..n 0..1 1 Calibración BD_Protocolo mediciones_patrones medicion_sistema_redundante camara_fotografica fotografias protocolos protocolo_activo OT directorio laboratorio mediciones_interpretadas id fecha_inicio fecha_fin hora_inicio hora_fin fichero_de_texto fichero_excel tecnico_calibrador tipo descripcion camara_climatica mediciones_camara mediciones_camara_estabilidad patrones (from BD) base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 1..n toString() getId() getFecha_ini() 0..n getFecha_fin() getHora_ini() getHora_fin() getDescripcion() getTipo() getTecnico() getArchivo_txt() getArchivo_xls() getCamara_climatica() getMediciones_camara() getMediciones_camara_estabilidad() getPatrones() getMediciones_patrones() getMedicion_sistema_redundante() setMedicion_sistema_redundante() getCamara_fotografica() getFotografias() getProtocolos() getOT() getDirectorio() getLaboratorio() getMediciones_interpretadas() BD_Dispositivo (from BD) base 0..n BD_Fotografia (from BD) base 1 altaFotografia() bajaFotografia() bajaFotografiaPorCalibracion() consultaFotografia() listadoFotografias() listadoFotografiasPorCalibracion() modificacionFotografia() 0..n Cámara_Climática 0..n (from _Dispositi... 0..1 <<virtual>> configurar() <<virtual>> run() <<virtual>> stop() Dispositivo_Patrón (from _Dispositi... 1 sondas quiere_correccion uds arch_correccion 1..n 1..n BD_Medicion (from BD) base altaMedicion() bajaMedicion() bajaMedicionPorCalibracion() consultaMedicion() listadoMediciones() listadoMedicionesPorCalibracion() listadoMedicionesPorCalibracionYCamaraClimatica() listadoMedicionesPorCalibracionYPatrones() listadoMedicionesPorCalibracionYSR() listadoMedicionesInterpretadasPorCalibracion() Manual Técnico altaAsociacionCalDispositivo() bajaCalibracion() consultaCamaraFotografica() consultaDispositivo() consultaCamaraClimaticaPorCalibracion() consultaCamaraFotograficaPorCalibracion() listadoDispositivosPatronPorCalibracion() listadoDispositivosPatron() listadoCamarasClimaticas() listadoCamarasFotograficas() <<virtual>> toString() getFecha() getHora() getUnidades() getIdCalibracion() getIdMedicion() getTemperatura() getHumedadRelativa() getPuntoDeRocio() getMedida() 83 <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() Medición fecha hora unidades id_calibracion id_medicion id_dispositivo temperatura humedadRelativa medida puntoDeRocio 1 0..n 0..n 1 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.18.2 Diagrama de secuencia : Técnico Calibrador : Form_Listado_Calibraciones : Form_Consulta_Calibracion : BD_Calibracion : BD_Fotografia : Fotografía : BD_Dispositivo : Cámara_Climática : Camara_Fotográfica : Dispositivo_Patrón : BD_Protocolo : Protocolo : BD_Archivo : Archivo_TXT Solicita consulta de calibración new( ) new( ) consultaCalibracion( ) new( ) listadoFotografiasPorCalibracion( ) Para cada fotografía new( ) Fin_para new( ) consultaCamaraClimaticaPorCalibracion( ) consultaCamaraFotograficaPorCalibracion( ) new( ) new( ) listadoDispositivosPatronPorCalibracion( ) Para cada patrón new( ) Fin_Para new( ) listadoProtocolosPorCalibracion( ) Para cada protocolo new( ) Fin_para new( ) consultaArchivo( ) consultaArchivo( ) new( ) Presenta datos de calibración Manual Técnico 84 new( ) new( ) : Archivo_XLS : Calibración Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.19 Escenario Listado de Calibraciones 4.5.19.1 Diagrama de Clases parcial BD_Archivo Form_Home Form_Listado_Calibraciones (from Formularios) (from Formularios) (from BD) base altaArchivo() bajaArchivo() modificacionArchivo() consultaArchivo() listadoArchivos() BD_Calibracion (from BD) base Archivo_TXT altaCalibracion() bajaCalibracion() consultaCalibracion() listadoCalibraciones() Archivo_XLS (from _Archivo) (from _Archivo) escribir() leerLinea() toString() Camara_Fotográfica toString() id_dispositivo nombre descripcion tipo 1 1 Fotografía (from _Archivo) 1 <<virtual>> configurar() <<virtual>> cerrar() <<virtual>> sacarFoto() getIdDispositivo() getNombre() getDescripcion() getTipo() 1 id_fotografia fecha 0..n hora ruta id_calibracion id_dispositivo 0..n 0..1 1 Calibración BD_Protocolo mediciones_patrones medicion_sistema_redundante camara_fotografica fotografias protocolos protocolo_activo OT directorio laboratorio mediciones_interpretadas id fecha_inicio fecha_fin hora_inicio hora_fin fichero_de_texto fichero_excel tecnico_calibrador tipo descripcion camara_climatica mediciones_camara mediciones_camara_estabilidad patrones (from BD) base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 1..n toString() getId() getFecha_ini() 0..n getFecha_fin() getHora_ini() getHora_fin() getDescripcion() getTipo() getTecnico() getArchivo_txt() getArchivo_xls() getCamara_climatica() getMediciones_camara() getMediciones_camara_estabilidad() getPatrones() getMediciones_patrones() getMedicion_sistema_redundante() setMedicion_sistema_redundante() getCamara_fotografica() getFotografias() getProtocolos() getOT() getDirectorio() getLaboratorio() getMediciones_interpretadas() BD_Dispositivo (from BD) base 0..n BD_Fotografia (from BD) base 1 altaFotografia() bajaFotografia() bajaFotografiaPorCalibracion() consultaFotografia() listadoFotografias() listadoFotografiasPorCalibracion() modificacionFotografia() 0..n Cámara_Climática 0..n (from _Dispositi... 0..1 <<virtual>> configurar() <<virtual>> run() <<virtual>> stop() Dispositivo_Patrón (from _Dispositi... 1 sondas quiere_correccion uds arch_correccion 1..n 1..n BD_Medicion (from BD) base altaMedicion() bajaMedicion() bajaMedicionPorCalibracion() consultaMedicion() listadoMediciones() listadoMedicionesPorCalibracion() listadoMedicionesPorCalibracionYCamaraClimatica() listadoMedicionesPorCalibracionYPatrones() listadoMedicionesPorCalibracionYSR() listadoMedicionesInterpretadasPorCalibracion() Manual Técnico altaAsociacionCalDispositivo() bajaCalibracion() consultaCamaraFotografica() consultaDispositivo() consultaCamaraClimaticaPorCalibracion() consultaCamaraFotograficaPorCalibracion() listadoDispositivosPatronPorCalibracion() listadoDispositivosPatron() listadoCamarasClimaticas() listadoCamarasFotograficas() <<virtual>> toString() getFecha() getHora() getUnidades() getIdCalibracion() getIdMedicion() getTemperatura() getHumedadRelativa() getPuntoDeRocio() getMedida() 85 <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() Medición fecha hora unidades id_calibracion id_medicion id_dispositivo temperatura humedadRelativa medida puntoDeRocio 1 0..n 0..n 1 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.19.2 Diagrama de secuencia : Técnico Calibrador : Form_Home Solicita listado de calibraciones : Form_Listado_Calibraciones : BD_Calibracion : BD_Fotografia : Fotografía : BD_Dispositivo : Cámara_Climática : Camara_Fotográfica : Dispositivo_Patrón : BD_Protocolo : Protocolo : BD_Archivo : Archivo_TXT new( ) new( ) listadoCalibraciones( ) Para cada CALIBRACIÓN new( ) listadoFotografiasPorCalibracion( ) Para cada fotografía new( ) Fin_para new( ) consultaCamaraClimaticaPorCalibracion( ) consultaCamaraFotograficaPorCalibracion( ) new( ) new( ) listadoDispositivosPatronPorCalibracion( ) Para cada patrón new( ) Fin_Para new( ) listadoProtocolosPorCalibracion( ) Para cada protocolo new( ) Fin_para new( ) consultaArchivo( ) consultaArchivo( ) new( ) Presenta listado de calibraciones Manual Técnico Fin_Para 86 new( ) new( ) : Archivo_XLS : Calibración Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.20 Escenario Validar Usuario 4.5.20.1 Diagrama de Clases parcial Form_Entrada Form_Home (f rom Formularios) (f rom Formularios) Técnico login password tipo BD_Tecnico (f rom BD) base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() toString() getLogin() getPassword() getTipo() 4.5.20.2 Diagrama de secuencia : Usuario no validado : Form_Entrada : BD_Tecnico : Técnico Introduce login y password Comprueba validez de los datos new( ) consultaTecnico( ) new( ) Manual Técnico 87 new( ) : Form_Home Esta consulta es para comprobar que los datos introducidos son correctos Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.5.21 Escenario Finalizar Sesión de Usuario 4.5.21.1 Diagrama de Clases parcial Form_Home Form_Entrada (f rom Formularios) (f rom Formularios) 4.5.21.2 Diagrama de secuencia : Usuario Registrado : Form_Home : Form_Entrada Solicita finalizar sesión de usuario Se cierra new( ) Manual Técnico 88 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.6 Diagrama de Clases Se ha estructurado el Diagrama de Clases en varios subdiagramas. Uno se centra en las clases del dominio del problema, y es el que se muestra a continuación: Técnico Archivo login password tipo id URL fecha_creacion hora_creacion toString() getLogin() getPassword() getTipo() Archivo_TXT 1 Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo 0..n toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() getNumero_mediciones() getTipo() 1..n 0..n <<virtual>> toString() getId() setId() getURL() setURL() getFechaCreacion() setFechaCreacion() getHoraCreacion() setHoraCreacion() (from_Archivo) Calibración camara_climatica camara_fotografica descripcion directorio fecha_fin fecha_inicio fichero_de_texto fichero_excel fotografias hora_fin hora_inicio id laboratorio medicion_sistema_redundante mediciones_camara mediciones_camara_estabilidad mediciones_interpretadas mediciones_patrones OT patrones protocolo_activo protocolos tecnico_calibrador tipo escribir() leerLinea() toString() Archivo_XLS (from_Archivo) 1 toString() 1 Fotografía 1 (from_Archivo) id_fotografia fecha hora ruta id_calibracion id_dispositivo 1 0..n 1 0..n 1 Tipo_Protocolo id nombre descripcion toString() getId() getNombre() getDescripcion() 1 getArchivo_txt() getArchivo_xls() getCamara_climatica() getCamara_fotografica() getDescripcion() getDirectorio() getFecha_fin() getFecha_ini() getFotografias() getHora_fin() getHora_ini() getId() getLaboratorio() getMedicion_sistema_redundante() getMediciones_camara() getMediciones_camara_estabilidad() getMediciones_interpretadas() getMediciones_patrones() getOT() getPatrones() getProtocolos() getTecnico() getTipo() setMedicion_sistema_redundante() toString() getId() setId() getURL() setURL() getFechaCreacion() setFechaCreacion() getHoraCreacion() setHoraCreacion() 0..n 0..n 1 Camara_Fotográfica 0..1 id_dispositivo nombre descripcion tipo <<virtual>> configurar() <<virtual>> cerrar() <<virtual>> sacarFoto() getIdDispositivo() getNombre() getDescripcion() getTipo() ConexiónGPIB (fromConexiones) Dispositivo 0..n 0..n id_dispositivo nombre descripcion tipo 0..n 1..n Medición fecha hora unidades id_calibracion id_medicion id_dispositivo temperatura humedadRelativa medida puntoDeRocio <<virtual>> toString() getFecha() getHora() getUnidades() getIdCalibracion() getIdMedicion() getTemperatura() getHumedadRelativa() getPuntoDeRocio() getMedida() 1 0..n getIdDispositivo() getNombre() getDescripcion() getTipo() <<virtual>> establecerConexion() <<virtual>> cerrarConexion() <<virtual>> realizarMedicion() 1 Sistema_Redundante (from_Dispositivo) laboratorio fecha configurar() establecerConexion() cerrarConexion() realizarMedicion() 0..1 Cámara_Climática (from_Dispositivo) <<virtual>> configurar() <<virtual>> run() <<virtual>> stop() 1..n Dispositivo_Patrón (from_Dispositivo) sondas quiere_correccion uds arch_correccion <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() Manual Técnico 89 slot_GPIB readbuffer 0..1 0..n establecerConexion() cerrarConexion() escribir() leerHasta() ConexiónSerie 0..n (fromConexiones) puerto 0..1 establecerConexion() cerrarConexion() escribir() leerHasta() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto El siguiente diagrama muestra el diagrama anterior con las clases encargadas de los accesos a la base de datos. Se han obviado clases como BD, Conversiones, Tiempo, etc, para que el diagrama sea más claro: Técnico BD_Tecnico login password tipo (fromBD) base consultaTecnico() altaTecnico() bajaTecnico() modificacionTecnico() listadoTecnicos() Archivo toString() getLogin() getPassword() getTipo() Archivo_TXT (from_Archivo) 1 Protocolo id temperatura margen_temperatura hr margen_hr intervalo_medicion numero_mediciones tipo escribir() leerLinea() toString() Calibración 0..n toString() getId() getTemperatura() getMargen_temperatura() getHr() getMargen_hr() getIntervalo_medicion() ... id URL fecha_creacion hora_creacion 1..n 0..n 0..n BD_Protocolo (fromBD) camara_climatica camara_fotografica descripcion directorio fecha_fin fecha_inicio fichero_de_texto fichero_excel fotografias hora_fin hora_inicio id laboratorio medicion_sistema_redundante mediciones_camara mediciones_camara_estabilidad mediciones_interpretadas mediciones_patrones OT patrones protocolo_activo protocolos tecnico_calibrador tipo (from_Archivo) toString() 1 Tipo_Protocolo id nombre descripcion toString() getId() getNombre() getDescripcion() BD_Tipo_Protocolo 1 (fromBD) altaTipo_Protocolo() bajaTipo_Protocolo() consultaTipo_Protocolo() modificacionTipo_Protocolo() listadoTipos_Protocolo() Fotografía (from_Archivo) 1 id_fotografia fecha hora ruta id_calibracion id_dispositivo 1 0..n BD_Fotografia (fromBD) base altaFotografia() bajaFotografia() bajaFotografiaPorCalibracion() consultaFotografia() listadoFotografias() listadoFotografiasPorCalibracion() modificacionFotografia() getId() setId() getURL() setURL() getFechaCreacion() setFechaCreacion() getHoraCreacion() setHoraCreacion() 0..n 1 0..n getArchivo_txt() getArchivo_xls() getCamara_climatica() getCamara_fotografica() getDescripcion() getDirectorio() getFecha_fin() getFecha_ini() getFotografias() getHora_fin() getHora_ini() getId() getLaboratorio() getMedicion_sistema_redundante() getMediciones_camara() getMediciones_camara_estabilidad() getMediciones_interpretadas() getMediciones_patrones() getOT() getPatrones() getProtocolos() getTecnico() getTipo() ... 0..n altaArchivo() bajaArchivo() modificacionArchivo() consultaArchivo() listadoArchivos() 1 base altaProtocolo() bajaProtocolo() modificacionProtocolo() consultaProtocolo() listadoProtocolos() listadoProtocolosPorTipo() listadoProtocolosPorCalibracion() altaAsociacionCalProtocolo() haSidoUsadoEsteProtocolo() (fromBD) <<virtual>> toString() getId() setId() getURL() setURL() getFechaCreacion() setFechaCreacion() ... Archivo_XLS 1 BD_Archivo base 0..n 1 Camara_Fotográfica 0..1 BD_Calibracion (fromBD) id_dispositivo nombre descripcion tipo BD_Dispositivo (fromBD) base <<virtual>> configurar() <<virtual>> cerrar() <<virtual>> sacarFoto() getIdDispositivo() getNombre() getDescripcion() getTipo() altaAsociacionCalDispositivo() bajaCalibracion() consultaCamaraFotografica() consultaDispositivo() consultaCamaraClimaticaPorCalibracion() consultaCamaraFotograficaPorCalibracion() listadoDispositivosPatronPorCalibracion() listadoDispositivosPatron() listadoCamarasClimaticas() listadoCamarasFotograficas() base altaCalibracion() bajaCalibracion() consultaCalibracion() listadoCalibraciones() 0..n ConexiónGPIB (fromConexiones) slot_GPIB readbuffer Dispositivo id_dispositivo nombre descripcion tipo 1..n Medición fecha hora unidades id_calibracion id_medicion id_dispositivo temperatura humedadRelativa medida puntoDeRocio <<virtual>> toString() getFecha() getHora() getUnidades() getIdCalibracion() getIdMedicion() getTemperatura() getHumedadRelativa() ... 1 0..n 1 Sistema_Redundante (from_Dispositivo) laboratorio fecha 0..1 Cámara_Climática (from_Dispositivo) BD_Medicion (fromBD) base configurar() establecerConexion() cerrarConexion() realizarMedicion() <<virtual>> configurar() <<virtual>> run() <<virtual>> stop() altaMedicion() bajaMedicion() bajaMedicionPorCalibracion() consultaMedicion() listadoMediciones() listadoMedicionesPorCalibracion() listadoMedicionesPorCalibracionYCamaraClimatica() listadoMedicionesPorCalibracionYPatrones() listadoMedicionesPorCalibracionYSR() listadoMedicionesInterpretadasPorCalibracion() Manual Técnico getIdDispositivo() getNombre() getDescripcion() getTipo() <<virtual>> establecerConexion() <<virtual>> cerrarConexion() <<virtual>> realizarMedicion() 1..n Dispositivo_Patrón (from_Dispositivo) sondas quiere_correccion uds arch_correccion <<virtual>> configurar() asignarSondas() getSondas() getQuiereCorreccion() getArchCorreccion() getUds() 90 0..1 0..n establecerConexion() cerrarConexion() escribir() leerHasta() ConexiónSerie 0..n (fromConexiones) 0..1 puerto establecerConexion() cerrarConexion() escribir() leerHasta() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Finalmente se ha incluido otro diagrama con las clases encargadas de la interfaz de usuario, y otras que colaboran con ellas. Se han obviado las clases de los dos diagramas anteriores, para ganar en claridad. Form_Consulta_Protocolo Form_Consulta_Tipo_Protocolo Form_Consulta_Tecnico Form_Consulta_Calibracion (from Formularios) (from Formularios) (from Formularios) (from Formularios) Form_Entrada (from Formularios) Form_Listado_Calibraciones (from Formularios) Form_Listado_Tecnicos Form_Home (from Formularios) (from Formularios) Form_Alta_Tipo_Protocolo Form_Listado_Tipos_Protocolo (from Formularios) (from Formularios) Form_Alta_Tecnico Form_Listado_Protocolos (from Formularios) (from Formularios) Form_Alta_Protocolo Form (from Formularios) (from Formularios) Form_Nueva_Calibracion_3 Form_Nueva_Calibracion_1 Form_Nueva_Calibracion_2 (from Formularios) (from Formularios) (from Formularios) Form_Nueva_Calibracion_4 Form_Nueva_Calibracion_5 Form_Nueva_Calibracion_6 (from Formularios) (from Formularios) (from Formularios) EstadoInterfaz Proceso (from Proceso) getCorrecciones() getListaCalibraciones() getListaPatrones() getListaProtocolos() getCamaraClimatica() getAsignaciones() getMediciones_estabilidad() getCamaraFotografica() getSeQuiereInterpretacion() getEsManual() temperaturaEsEstable() hrEsEstable() getProtocolo_activo() 91 (from Formularios) (from Estado_Interfaz) lista_calibraciones esManual mediciones_estabilidad protocolo_activo lista_patrones camara_climatica protocolos asignaciones camara_fotografica q_interpretacion Manual Técnico Form_Nueva_Calibracion_7 altaCalibracion() finalizarCalibracion() Interpretacion (from _Interpretacion) interpretar() Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7 Descripción detallada de las clases En este apartado se pretende tener una visión global de las clases creadas. Por ello no se hará hincapié en describir todos sus métodos y atributos, sino en resaltar ciertos aspectos importantes. Para una descripción absolutamente detallada de las clases, es posible acceder a la documentación generada mediante Doxygen en el soporte digital adjunto a esta documentación. Dicha documentación es accesible en distintos formatos, y permite un conocimiento exhaustivo de cada clase. Se puede encontrar en el directorio Documentación\Documentación del código por Doxygen. Se han omitido las clases derivadas de Form, ya que sus atributos y métodos se reducen a la captación de eventos de usuario, y no aportan información al diseño desarrollado. 4.7.1 Clase Archivo Superclase de los dos tipos de archivos del sistema: de texto y excel. Contiene atributos que permiten trabajar con un archivo, y métodos que establecen y obtienen los valores de dichos atributos. La clase archivo tiene dos subclases: Archivo_txt y Archivo_xls. 4.7.2 Clase Archivo_xls Clase derivada de Archivo. Especializa Archivo para archivos excel. Manual Técnico 92 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.3 Clase Archivo_txt Clase derivada de Archivo. Especializa Archivo para archivos de texto. El método escribir() sirve para volcar un texto en el archivo de texto asociado. Se sirve de funciones de acceso a archivos para rellenar el archivo de texto asociado. Usando este método se vuelca la información de una calibración el un archivo de texto de salida. 4.7.4 Clase BD Esta clase facilita el acceso al SGBD a las clases de acceso a BD. Así, las clases BD_Calibracion, BD_Archivo, etc, dispondrán de una interfaz simple para realizar conexiones, lecturas y escrituras. Los atributos myData y res son estructuras de datos de MySQL para efectuar conexiones y recoger resultados. El método establecerConexion() es el encargado de conectarse a la base de datos, gracias a una serie de argumentos como dirección de la base de datos, nombre, etc. El método escribirSentencia() se limita a escribir una determinada sentencia en la BD. Por su parte, el método getResultado() recibe un resultado de la base de datos, respuesta a alguna sentencia introducida anteriormente. Gracias a estos tres métodos, cualquier código que necesite interactuar con la base de datos puede hacerlo de manera transparente, sin preocuparse por los datos de conexión, y escribiendo sentencias y recogiendo sus resultados en tipos de datos comunes. Manual Técnico 93 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.5 Clase BD_Archivo La clase BD_Archivo provee de métodos para interactuar con la base de datos de manera transparente, permitiendo el alta, baja, modificación, consulta y listado de archivos. Los métodos de la clase BD_Archivo hacen uso de la clase BD para efectuar sus accesos a la base de datos. Más concretamente. El método altaArchivo() introduce una nueva tupla en la tabla Archivo a partir de un objeto Archivo. El método bajaArchivo() elimina una tupla de la tabla Archivo a partir de un identificador de archivo. El método modificarArchivo() modifica una tupla de la tabla Archivo a partir de un objeto Archivo. El método consultaArchivo() obtiene un objeto Archivo a partir de un identificador de Archivo. El método listadoArchivos() obtiene un vector de Archivos a partir de la tabla Archivo. 4.7.6 Clase BD_Calibracion La clase BD_Calibracion tiene una estructura análoga a BD_Archivo. La principal diferencia es que se carece de un método modificacionCalibracion(), ya que es una operación que no tiene sentido: una calibración es un proceso cerrado y no está permitido efectuar modificaciones sobre ella. Manual Técnico 94 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.7 Clase BD_Dispositivo La clase BD_Dispositivo tiene una estructura similar a BD_Archivo y BD_Calibracion. La principal diferencia es la presencia de métodos más específicos, dadas las características de los objetos Dispositivo. Concretamente: El método altaAsociacionCalDispositivo() añade a la base de datos la información necesaria para que se guarde la correspondencia entre una determinada calibración y un determinado dispositivo. Por la contra, el método bajaCalibracion() hace justo lo contrario. Existen métodos de consulta específicos para las distintas especializaciones de Dispositivo (consultaCamaraClimaticaPorCalibracion(), que recupera la cámara climática utilizada en una determinada calibración, consultaCamaraFotograficaPorCalibracion(), que recupera la cámara climática utilizada en una determinada calibración…). Existen métodos que permiten listados específicos. Por ejemplo listadoCamarasFotograficas() simplemente lista los dispositivos catalogados como cámaras fotográficas. Y listadoDispositivosPatronPorCalibracion() lista únicamente los dispositivos patrón de una calibración concreta. 4.7.8 Clase BD_Fotografia La clase BD_Fotografia es similar a las anteriormente descritas en cuanto a su estructura. La única diferencia es la presencia de los métodos bajaFotografiaPorCalibracion() y listadoFotografiasPorCalibracion(), que efectúan sus funciones sobre una calibración determinada, y no sobre todas como el resto de métodos. Manual Técnico 95 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.9 Clase BD_Medicion La clase BD_Medicion dispone, como las clases de acceso a base de datos, de los métodos de alta, baja, consulta y listado. Sin embargo carece de un método modificacionCalibracion(), ya que no tiene sentido modificar una medición ya hecha. Por el contrario dispone de listados específicos para los distintos tipos de mediciones. Así: listadoMedicionesPorCalibracion(): devuelve todas las mediciones de una determinada calibración. listadoMedicionesPorCalibracionYCamaraClimatica(): devuelve, de todas las mediciones de una determinada calibración, solamente las efectuadas por cámaras climáticas. listadoMedicionesPorCalibracionYPatrones(): devuelve, de todas las mediciones de una determinada calibración, solamente las efectuadas por dispositivos patrón. listadoMedicionesPorCalibracionYSR(): devuelve, de todas las mediciones de una determinada calibración, solamente la efectuada por el Sistema Redundante. listadoMedicionesInterpretadasPorCalibracion(): devuelve, de todas las mediciones de una determinada calibración, solamente las interpretadas (bien por el usuario o por el intérprete de fotografías). Manual Técnico 96 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.10 Clase BD_Protocolo La clase BD_Protocolo contiene los métodos típicos de acceso a base de datos vistos hasta ahora. Además dispone de dos métodos específicos: altaAsociacionCalProtocolo(): es un método que introduce en la base de datos la información necesaria para que sea posible que una determinada calibración ha usado un determinado protocolo. haSidoUsadoEsteProtocolo(): es un método que permite saber si un protocolo ha sido usado por alguna calibración. Este método se usa a la hora de gestionar los protocolos. Si un protocolo ha sido usado por alguna calibración, no se permite su borrado o modificación, para así no perder la información que describe por qué puntos fue pasando la calibración. 4.7.11 Clase BD_Tecnico La clase BD_Tecnico dispone únicamente de los métodos típicos de acceso a base de datos que hemos visto hasta ahora: alta, baja, modificación, consulta y listado. 4.7.12 Clase BD_Tipo_Protocolo La clase BD_Tipo_Protocolo, al igual que la anterior, dispone únicamente de los métodos típicos de acceso a base de datos que hemos visto hasta ahora: alta, baja, modificación, consulta y listado. Manual Técnico 97 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.13 Clase Calibracion Es la clase más importante. Integra todo lo relacionado con una calibración, desde sus mediciones a sus datos básicos. Entre sus atributos, encontramos: camara_climatica: un objeto Camara_Climatica, necesario para configurar el medio donde se efectuará la calibración. camara_fotografica: un objeto Camara_Fotografica, para efectuar las fotografías a los displays de los calibrandos. descripción: un texto que describa brevemente la calibración. directorio: el directorio asociado a la calibración, donde se guardarán las fotografías efectuadas a los displays. fecha_fin: fecha de finalización de la calibración. fecha_inicio: fecha de inicio de la calibración. Manual Técnico 98 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto fichero_de_texto: objeto Fichero_txt, necesario para volcar en él la información de salida del proceso de calibración. fichero_excel: objeto Fichero_xls, necesario por la misma razón que fichero_de_texto. fotografías: vector de objetos Fotografia en el que se van añadiendo las fotografías a medida que son sacadas. hora_fin: hora de finalización de la calibración. hora_inicio: hora de inicio de la calibración. id: identificador único de la calibración. También conocido como número de muestra. laboratorio: identificador de la sala del LOMG donde fue efectuada la calibración. medicion_sistema_redundante: objeto Medicion_Sistema_Redundante que sirve para registrar los datos relativos al Sistema Redundante obtenidos durante la duración de la calibración. mediciones_camara: vector de objetos Medicion relativos a mediciones obtenidas de la cámara climática. mediciones_camara_estabilidad: vector de objetos Medicion relativos a mediciones obtenidas de la cámara climática, utilizados para determinar la estabilidad del medio. mediciones_interpretadas: vector de objetos Medicion relativos a mediciones obtenidas de la interpretación que el usuario ha hecho de las fotografías efectuadas, o bien del intérprete automático de fotografías. mediciones_patrones: vector de objetos Medicion relativos a mediciones obtenidas de los dispositivos patrón. OT: identificador de la orden de trabajo asociada a la calibración. patrones: vector de objetos Dispositivo_Patron a través de los cuales se realizarán mediciones. protocolo_activo: protocolo que está siendo llevado a cabo en un momento dado. protocolos: vector de objetos Protocolo que sirve para ir pasando de un punto a otro de la calibración. tecnico_calibrador: identificador del técnico que efectúa la calibración. tipo: clasificación de la calibración según el criterio del técnico (no existen tipos predefinidos). Sus métodos se reducen a la obtención de los atributos que acabamos de describir. 4.7.14 Clase Camara_Climatica Esta clase deriva de Dispositivo y es superclase de todas las cámaras climáticas. Sus métodos son: configurar (): establece, según un Protocolo, los valores de temperatura y humedad relativa deseados. Se establece una comunicación con el dispositivo y se asignan los valores de dicho protocolo. run(): se arranca la cámara climática. stop(): se detiene la cámara climática. Manual Técnico 99 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto En el sistema hay una única subclase de Camara_Climatica: la clase Camara_Thunder_2500: 4.7.15 Clase Camara_Fotografica La clase Camara_Fotografica es la superclase de las cámaras fotográficas del sistema. Sus métodos más importantes son: configurar(): inicia la comunicación con el dispositivo mediante unos determinados valores de configuración. cerrar (): cierra la comunicación con la máquina. sacarFoto (): accede a la cámara para efectuar una fotografía, la guarda físicamente en una ruta determinada, y devuelve un objeto Fotografia asociado. La única subclase de Camara_Fotografica en el sistema es la Camara_CCam_BCi4: Manual Técnico 100 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.16 Clase ConexionGPIB La clase ConexionGPIB se usa para facilitarle al sistema el uso de dispositivos GPIB. Se pretende ofrecer métodos para leer y escribir del puerto sin necesidad de conocer las sentencias específicas de acceso a puertos GPIB. La variable slot_GPIB sirve para identificar el puerto GPIB usado en esta máquina. Algunas máquinas permiten la personalización de este puerto, mientras que otras no lo permiten. Los métodos, con más detalle, son: establecerConexion (): se crea el puerto, se abre y se configura. Todo queda preparado para comenzar las lecturas y escrituras sobre él. cerrarConexion (): se cierra el puerto, de modo que es necesario volver a abrirlo para realizar nuevas operaciones de lectura o escritura. escribir (): se envía un texto al puerto. Útil para los dispositivos que precisan de comandos para emitir mediciones. leerHasta (): se lee del puerto hasta que se encuentre un carácter concreto. Normalmente los dispositivos terminan sus respuestas con un salto de carro (CR), con una nueva línea (LF), o con ambas cosas (CRLF). 4.7.17 Clase ConexionSerie Análogamente a la clase ConexionGPIB, la clase ConexionSerie pretende facilitar la interacción con un puerto serie de la manera más transparente posible. Por ello se ofrecen los mismos métodos que en ConexionGPIB, aplicados ahora a un puerto serie. La principal diferencia es que, en lugar de tener una variable para el puerto GPIB, se tiene una variable para el puerto serie. La variable puerto denota un manejador del puerto serie, sobre el que se podrán manejar lecturas y escrituras. Manual Técnico 101 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.18 Clase Conversiones Debido al gran número de conversiones entre tipos que provocan los accesos a base de datos y el trabajo con interfaces de usuario, se ha creado una clase Conversiones que haga este proceso lo más sencillo posible. Por ello se han creado los métodos intToString() para convertir un entero en cadena, stringToInt() para convertir una cadena en un entero, floatToString() para convertir un número decimal en cadena, y stringToFloat() para convertir una cadena en un número decimal. 4.7.19 Clase DatosCalibracion En el proceso de alta de calibración, como ya se ha visto, se pasa por una serie de puntos secuencialmente para conformar lo que finalmente es una nueva calibración. En ese proceso de recogida de datos se le pide al usuario que seleccione e introduzca información, hasta que finalmente se tenga información suficiente para crear un objeto Calibracion y trabajar sobre él. Es decir, se tiene un objeto Calibracion incompleto. Para tener esa información disponible en el proceso de recogida de datos, se ha creado la clase DatosCalibracion. Esta clase recoge los atributos básicos de una calibración, y los mantiene hasta que se crea el objeto Calibracion. Manual Técnico 102 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.20 Clase Dispositivo Dispositivo es la superclase de todos aquellos dispositivos susceptibles de realizar algún tipo de medición, y por tanto crear un objeto Medicion mediante la arquitectura ya descrita Factory Method. Se especializa en Camara_Climatica (dispositivos que configuran un medio), Dispositivo_Patron (dispositivos que realizan mediciones y son tomados como referencia para medir una calibración) y Sistema_Redundante (que es un dispositivo especial que mide los extremos climáticos de un laboratorio en un espacio de tiempo). Dispositivo pretende fijar el comportamiento de todas estas subclases, mediante los siguientes métodos abstractos: establecerConexion(): para abrir la comunicación con un dispositivo, ya sea mediante la clase ConexionSerie o ConexionGPIB. cerrarConexion(): para cerrar dicha comunicación. realizarMedicion(): es el método más importante. Será el encargado de solicitar al dispositivo que emita una nueva medición. Cada dispositivo concreto creará un objeto Medicion concreto, pero en todo caso ese objeto Medicion concreto será una especialización de la clase Medicion. Existen, además, atributos y métodos para tener información del dispositivo como su nombre, identificación, etc. Dichos métodos ya se encontrarán, por lo tanto, disponibles para todas sus subclases. Manual Técnico 103 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.21 Clase Dispositivo_Patron Dispositivo_Patron especializa Dispositivo para el caso de dispositivos considerados como patrón. Posteriormente, Dispositivo_Patron se especializa en otras seis clases. Dispositivo_Patron añade a Dispositivo las siguientes variables: sondas: para tener constancia de qué sondas se quiere leer en una determinada calibración. uds: para conocer en qué unidades se está midiendo (útil sobre todo en el caso de los multímetros) quiere_correccion: flag que indica si este dispositivo patrón solicita corrección para sus mediciones, o no. arch_correccion: ruta del archivo en que se encuentran las correcciones, en caso de que se hayan solicitado. Las subclases de Dispositivo_Patron son: Manual Técnico 104 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.22 Clase EstadoInterfaz Como se ha descrito anteriormente, EstadoInterfaz se define como una clase que mantiene la coherencia entre los distintos pasos que supone el alta de una calibración, además de actuar como una especie de repositorio de todas las incidencias de dicho proceso de alta. En sus variables se mantiene información sobre las calibraciones que intervienen en el proceso, los protocolos, los patrones, y el resto de dispositivos. Además controla si la calibración es manual o automática (mediante esManual) y si se quiere o no interpretación automática de las fotografías (mediante q_interpretacion). Existen dos métodos especialmente interesantes: temperaturaEsEstable(): determina, según su estado interno, si la temperatura en un determinado medio está o no estable. Para ello utiliza el algoritmo para estabilización visto con anterioridad. Puede determinar esta estabilidad, ya que conoce las mediciones efectuadas (mediciones_estabilidad), conoce el protocolo activo (protocolo_activo) y la lista de protocolos (protocolos). hrEsEstable(): análogamente al caso anterior, pero con humedad relativa en lugar de temperatura. 4.7.23 Clase Excepcion Se ha diseñado una pequeña clase Excepcion, de la que derivarán excepciones más concretas, para aquellos errores específicos de este proyecto. De sus excepciones derivadas, la más importante es ConsultaSinResultadosExcepcion, que indica que una consulta a la base de datos no ha retornado ningún valor. Es útil en los escenarios de alta, para indicar si un valor se repite o no. Manual Técnico 105 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.24 Clase Fotografia La clase Fotografia identifica los objetos que son creados por las cámaras fotográficas. Esta clase permite conocer todos los aspectos relevantes a una fotografía, como su identificador, cuándo fue creada, por quién, etc. Los métodos se reducen al trabajo sobre estas variables. 4.7.25 Clase Intepretacion La clase Intepretacion se concibe como un primer paso en la ampliación de este proyecto en cuanto a interpretación automática de los displays fotografiados. Con la existencia de esta clase, el sistema se prepara para dicha ampliación, cuyo único paso sería reescribir el método interpretar(). Este método recoge una fotografía y retorna un número decimal. 4.7.26 Clase Medicion La clase Medicion es la superclase de todas las mediciones realizadas por los distintos dispositivos del sistema. Como ya se ha explicado, la relación entre Dispositivo y Medicion radica en el uso del patrón de diseño Factory Method. Las especializaciones de Dispositivo crearán especializaciones de Medicion. Por ello es necesario que exista un tipo de Medicion por cada Dispositivo concreto. Sus atributos reúnen toda la información necesaria para identificar unívocamente una medición. Desde identificadores básicos a información de cuándo fue creada, por quién y en qué calibración. Manual Técnico 106 Sistema de Calibración Automática de Termohigrómetros Sus métodos se limitan al acceso a las variables anteriormente descritas. Las subclases de Medicion son: Manual Técnico 107 Ángel Dacal Nieto Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.27 Clase Proceso La clase Proceso dispone de dos métodos que son utilizados en el proceso de alta de una nueva calibración. Dichos métodos realizarán el verdadero proceso de alta, dejando libre la interfaz de usuario para que el usuario pueda seguir interactuando con ella mientras el proceso sigue su curso. El método altaCalibracion() es el responsable del propio proceso de alta de la calibración (el algoritmo de calibración descrito anteriormente), mientras que finalizarCalibracion() es el responsable de la creación de los archivos de salida a partir de la calibración recién realizada. 4.7.28 Clase Protocolo La clase Protocolo reúne la información necesaria para conocer un punto de consigna de la calibración. Determina la temperatura generada, la humedad relativa generada, el margen que se tiene en ambas magnitudes para saber si el medio está estable, el intervalo de tiempo entre medición y medición, y el número de mediciones que se efectuarán en todo el punto de consigna. Todo protocolo tiene un tipo, que es el identificador de un objeto Tipo_Protocolo. Manual Técnico 108 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 4.7.29 Clase Tecnico La clase Tecnico es utilizada para la identificación de usuarios dentro del sistema. Es una clase muy sencilla, que únicamente dispone de los atributos login (para el nombre del usuario), password (para su contraseña) y tipo (para determinar los permisos del usuario). Los métodos se limitan a obtener los valores de dichas variables. 4.7.30 Clase Tiempo La clase Tiempo facilita la captura de la hora y fecha actual a partir de dos métodos. Es sumamente útil, ya que se necesita conocer la fecha y hora de creación de mediciones, fotografías, calibraciones, etc. 4.7.31 Clase Tipo_Protocolo La clase Tipo_Protocolo define las distintas variantes de Protocolo que pueden ser definidas por el usuario. Es una clase muy sencilla que simplemente toma nota del nombre e identificación del tipo, para que posteriormente este tipo pueda ser usado por algún Protocolo. Manual Técnico 109 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 5. Diseño de la Base de Datos 5.1 Diagrama Entidad-Relación El uso de diagramas Entidad-Relación a lo largo de esta documentación se fundamenta en que, aunque no pertenece a UML, es un tipo de diagrama muy útil para comprender conceptualmente el diseño de la Base de Datos. Tras la fase de diseño, dicho diagrama es el siguiente: Hemos obviado los atributos de las relaciones, para así ganar claridad de cara al lector. Dichos atributos serán descritos en las próximas páginas. Ahora nos dedicaremos a ver en detalle las tablas que surgen tras aplicar el algoritmo de paso a tablas a este diagrama. Manual Técnico 110 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 5.2 Tablas de la Base de Datos 5.2.1 Tabla Archivo Esta tabla almacena los archivos generados en las calibraciones. Dichos archivos son archivos de texto (.txt), que sirven para tener un resumen de la calibración en texto plano, y archivos excel (.xls), que serán utilizadas para la integración en la aplicación de gestión del LOMG. Con esta tabla se pretende tener en el sistema información suficiente para saber cuándo ha sido creado un archivo y dónde encontrarlo. No es necesaria una referencia a la calibración a la que pertenece, ya que la relación entre las tablas Archivo y Calibración es 1 a 1, y basta con tener dos campos id_archivo_txt e id_archivo_xls para resolver dicha relación. Cada archivo pertenece únicamente a una calibración; cada calibración tiene un único archivo_txt y un único archivo_xls. Sus campos son: - - id_archivo: un identificador único para cada archivo. En dicho identificador se indica, para evitar repeticiones, la id de la calibración a la que pertenece, seguido de “TXT” en el caso de los archivos de texto o “XLS” en el caso de los archivos excel. Es la clave primaria de la tabla. Un ejemplo de id_archivo: 07-125 TXT. fecha: la fecha de creación del archivo. Por ejemplo: 2007-05-25. hora: la hora de creación del archivo. Por ejemplo: 11-51-12. ruta: la dirección dentro del sistema de archivos en la cual se encuentra el archivo en cuestión. Por ejemplo: F:\Temperatura\2007\Calibraciones Clientes\07-125\07-125_txt.txt. tipo: el tipo de archivo. Con “txt” se denotan los archivos de texto, mientras que con “xls” se denotan archivos excel. 5.2.2 Tabla Fotografía Esta tabla almacena las fotografías realizadas por las cámaras fotográficas empleadas en las calibraciones. Con esta tabla se pretende tener en el sistema información que permita conocer cuándo se ha sacado una determinada fotografía, dónde encontrarla y a qué calibración pertenece. Al tener un campo id_calibración en esta tabla, resolvemos la relación existente entre las tablas Fotografia y Calibración, que es 1 a n. Cada fotografía “pertenece” únicamente a una calibración; una calibración puede efectuar n fotografías. Del mismo modo, teniendo un campo id_dispositivo también se resuelve la relación entre las tablas Fotografia y Calibración, que es 1 a n. Cada fotografía “pertenece” únicamente a un dispositivo (en este caso una cámara fotográfica); un dispositivo puede efectuar n fotografías. Sus campos son: - - id_fotografia: un identificador único para cada fotografía. En dicho identificador se indica, para evitar repeticiones, la id de la calibración a la que pertenece, seguido de un “contador” del protocolo en que fue sacada (por ejemplo, en el 4º), y un “contador” de la medición concreta en que fue realizada (por ejemplo, en la 5ª). Un ejemplo de id_fotografía: 07-125-3-4. Se trataría de la 5ª fotografía del 4º protocolo de l calibración 07-125. fecha: la fecha de creación de la fotografía. Por ejemplo: 2007-06-01 (1 de junio de 2007). hora: la hora de creación de la fotografía. Por ejemplo: 11-51-12. ruta: la dirección dentro del sistema de archivos en la cual se encuentra la fotografía en cuestión. Por ejemplo: F:\Temperatura\2007\Calibraciones Clientes\07-125\07-125-3-4.bmp. Manual Técnico 111 Sistema de Calibración Automática de Termohigrómetros - Ángel Dacal Nieto id_calibracion: la referencia al identificador de la calibración. Esta calibración es única. En este campo se almacena la clave de la calibración. Por ejemplo: 07-125. id_dispositivo: la referencia al identificador del dispositivo. Este dispositivo es único. En este campo se almacena la clave del dispositivo. Por ejemplo: T-BCi4. 5.2.3 Tabla Medicion Esta tabla almacena las mediciones efectuadas en las calibraciones. Dichas mediciones son realizadas por dispositivos patrón, por cámaras climáticas y por el Sistema Redundante. Con esta tabla se pretende tener información en el sistema que permita recuperar los datos recogidos en una medición concreta, como temperatura, humedad relativa… y datos específicos de cada dispositivo, cuándo fue efectuada, a qué calibración pertenece o con qué dispositivo fue realizada. Al tener un campo id_calibración en esta tabla, resolvemos la relación existente entre las tablas Medicion y Calibracion, que es 1 a n. Cada medición “pertenece” únicamente a una calibración; una calibración puede efectuar n mediciones. Del mismo modo, teniendo un campo id_dispositivo también se resuelve la relación entre las tablas Medicion y Calibración, que es 1 a n. Cada medición “pertenece” únicamente a un dispositivo; un dispositivo puede efectuar n mediciones. Los campos de la tabla son: - - - - id_medicion: un identificador único para cada medición. En dicho identificador se indica, para evitar repeticiones, la id de la calibración a la que pertenece, la id del dispositivo que realiza la medición (y su sonda, si procede), seguido de un “contador” del protocolo en que fue sacada (por ejemplo, en el 3º), y un “contador” de la medición concreta en que fue realizada (por ejemplo, en la 6ª). Un ejemplo de id_medicion: 07-125-T-1301--2-5. fecha: la fecha de realización de la medición. Por ejemplo: 2007-06-01. hora: la hora de realización de la medición. Por ejemplo: 10-28-51. unidades: unidades en que ha sido recogida la temperatura (en caso de que haya sido medida), o unidades en que ha sido recogida una medida (en el caso de un multímetro, que puede medir corriente alterna, corriente continua, resistencia, frecuencia, etc). Por ejemplo: C (ºC). temperatura: temperatura registrada en la medición, en caso de recogerla. Por ejemplo: 21.631. hr: humedad relativa registrada en la medición, en caso de haberse recogido. Por ejemplo: 45.78. punto_de_rocio: punto de rocío registrado en la medición, en caso de que haya sido recogido. Por ejemplo: 15.77. medida: otro tipo de medida registrada en la medición, como el caso de los multímetros, que recogen magnitudes como corriente alterna, resistencia, etc. Por ejemplo: -0.00185158. t_max: temperatura máxima registrada en la medición, usada en las mediciones del Sistema Redundante. Por ejemplo: 23.277. t_min: temperatura mínima registrada en la medición, usada en las mediciones del Sistema Redundante. Por ejemplo: 22.442. hr_max: humedad relativa máxima registrada en la medición, usada en las mediciones del Sistema Redundante. Por ejemplo: 45.434. hr_min: humedad relativa mínima registrada en la medición, usada en las mediciones del Sistema Redundante. Por ejemplo: 36.348. sonda: sonda mediante la que ha sido registrada la medición; ciertos dispositivos disponen de varias posibilidades para recoger mediciones, con lo cual es necesario especificar de qué sonda se están obteniendo las mediciones. Por ejemplo: A. id_calibracion: la referencia al identificador de la calibración. Esta calibración es única. En este campo se almacena la clave de la calibración. Por ejemplo: 07-125. id_dispositivo: la referencia al identificador del dispositivo. Este dispositivo es único. En este campo se almacena la clave del dispositivo. Por ejemplo: T-1301. Manual Técnico 112 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 5.2.4 Tabla Protocolo Esta tabla almacena los protocolos usados en las calibraciones. Estos protocolos indican cada uno de los pasos por los que va pasando una calibración. Cada uno de esos pasos individuales es un protocolo. En ellos se indica qué temperatura y humedad relativa se deben alcanzar en la cámara climática, qué márgenes se usarán para evaluar si la calibración está o no estable, que intervalo de tiempo se dejará entre medición y medición, y cuántas mediciones se deben efectuar (en este paso). Para facilitar la identificación de los protocolos existen los tipos de protocolo, que a nivel de base de datos podemos encontrar en la tabla Tipo_Protocolo. Al tener un campo id_tipo_protocolo en esta tabla, resolvemos la relación existente entre las tablas Protocolo y Tipo_Protocolo, que es 1 a n. Cada protocolo “tiene” únicamente un tipo de protocolo; un tipo de protocolo puede denotar n protocolos. Dado que la relación entre las tablas Protocolo y Calibración es n a n, es preciso crear una tabla intermedia que denominaremos Cal_Protocolo, que será la que mantenga la información de qué protocolos se han usado en una calibración concreta. Los campos de la tabla son: - - - id_protocolo un identificador único para cada protocolo. El identificador debería ser suficientemente indicativo de qué hace el protocolo en cuestión. Por ejemplo: CAM-THU-002. temperatura: la temperatura generada en la cámara climática en este punto de la calibración. Por ejemplo: 50. margen_temperatura: el margen de temperatura que indica cuándo una calibración está estabilizada o no según su temperatura. Por ejemplo un margen de 1ºC indica que una calibración se considera estable cuando ninguna de las últimas mediciones sobrepasan en 0,5ºC la temperatura buscada (y exactamente lo mismo por debajo). Por ejemplo: 0.01. hr: la humedad relativa generada en la cámara climática en este punto de la calibración. Por ejemplo: 70. margen_hr: el margen de humedad relativa que indica cuándo una calibración está estabilizada o no según su humedad relativa. Por ejemplo un margen de 1% indica que una calibración se considera estable cuando ninguna de las últimas mediciones sobrepasan en 0,5% la humedad relativa buscada (y exactamente lo mismo por debajo). Por ejemplo: 0.01. intervalo: el tiempo en segundos entre una medición y la siguiente (normalmente 60). Por ejemplo: 60. num_mediciones: el número de mediciones efectuadas en este protocolo (normalmente 10). Por ejemplo: 10. tipo_protocolo: el tipo de protocolo al que “pertenece” este protocolo. Es la referencia al identificador del tipo de protocolo. Este tipo de protocolo es único. En este campo se almacena la clave del tipo de protocolo. Por ejemplo: CAM-THU-LW. 5.2.5 Tabla Tipo_Protocolo Esta tabla almacena tipos de protocolo, que son referenciados por los protocolos a modo de especialización. Estos tipos de protocolos indican únicamente un nombre y una descripción. La intención es que existan muchos protocolos, y los tipos de protocolo agrupen estos protocolos para facilitar su uso. Un ejemplo sería agrupar los protocolos que trabajen con termómetros de una determinada marca X, con los cuales es habitual generar condiciones de 20, 40, 60 y 80ºC. La idea es crear un tipo de protocolo Termómetros_X, y unos protocolos que generen esas temperaturas, cuyo tipo sea Termómetros_X. Manual Técnico 113 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Los campos de la tabla son: - - id_tipo_protocolo un identificador único para cada protocolo. El identificador debería ser suficientemente indicativo de qué protocolos agrupa el tipo de protocolo en cuestión. Por ejemplo: Termómetros_X. nombre: el nombre del tipo de protocolo. Por ejemplo: Termómetros X. descripción: una breve descripción de porqué se agrupan unos determinados protocolos en esta “familia” de protocolos. Por ejemplo: Este tipo de protocolo recoge protocolos para termómetros X, con un rango de temperaturas de 20 a 80ºC. 5.2.6 Tabla Técnico Esta tabla almacena información para identificar a los usuarios del sistema. Se usará a la hora de validar quién quiere entrar en el sistema y para identificar quién realiza una determinada calibración. Existen dos tipos de usuario: jefe de departamento y técnicos calibradores. Los primeros tendrán un 1 en su campo tipo, y los segundos un 2. Los campos de la tabla son: - nombre: un identificador único para cada usuario. Es la clave primaria de la tabla. Lo escoge el propio usuario al registrarse. Por ejemplo: admin. password: es la contraseña del usuario, escogida también en el momento de registrarse. tipo: el nivel de privilegios para hacer uso del sistema, que además nos indica el tipo de usuario. El jefe de departamento tiene nivel 1 y los técnicos calibradores tienen nivel 2. Esto nos sirve para restringir el paso, por ejemplo, a los técnicos a la zona de listado de técnicos. 5.2.7 Tabla Dispositivo Esta tabla almacena información sobre los dispositivos del sistema. Se usan para identificar qué realiza una fotografía, qué realiza una medición, y qué está presente en una determinada calibración. Existen diversos tipos de dispositivos: cámaras fotográficas, cámaras climáticas, baños, hornos, termómetros, termohigrómetros, puntos de rocío, multímetros, el Sistema Redundante… Esta variedad se refleja en el campo tipo de esta tabla, que sirve para distinguirlos entre sí. Los campos de la tabla son: - - id_dispositivo: un identificador único para cada dispositivo. Es la clave primaria de la tabla. Es un identificador asignado por el LOMG. Los dispositivos que no estaban registrados en el LOMG (como la cámara fotográfica) se han añadido con una clave análoga. Por ejemplo: T-1301. nombre: el nombre del dispositivo. Por ejemplo: HP 3457A. descripcion: una descripción de qué hace el dispositivo, y cómo debe ser configurado. Por ejemplo: Enchufar y encender el dispositivo. Conectarlo al Puerto Serie del PC. tipo: la clase de dispositivo de que se trata. Entre ellos, los tipos antes comentados. Por ejemplo: Termometro. Manual Técnico 114 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 5.2.8 Tabla Calibracion Esta tabla almacena información sobre las calibraciones realizadas en el sistema. Su intención es recoger todos los datos que permitan al usuario recuperar totalmente una calibración. Como ya se ha descrito en los puntos anteriores, la tabla calibración tiene relaciones 1 a n con otras tablas, como Medicion y Fotografia, por lo que en la tabla Calibración no se guarda ninguna información acerca de estas entidades. Dicha información se recoge en las tablas Medicion y Fotografia, por medio de una clave foránea a Calibración. Un caso distinto son las relaciones 1 a 1, que se producen con Archivo y Tecnico. En este caso la información se almacena en la tabla Calibracion, que es la que referencia como claves foráneas a Archivo y Tecnico. Por último, en las relaciones n a n con otras tablas (Dispositivo y Protocolo), la solución es crear una tabla intermedia. Dichas tablas serán descritas a continuación de esta. Los campos de la tabla son: - - - - - id_calibracion: un identificador único para cada calibración. Es la clave primaria de la tabla. Es un identificador asignado por el usuario en el momento del alta de la calibración. Se corresponde con el número de muestra de la calibración dentro de la aplicación de gestión del LOMG. Por ejemplo: 07-125. OT: la orden de trabajo de la calibración. Una orden de trabajo puede tener más de una muestra. No es clave, ya que, como acabamos de decir, puede estar repetido en más de una calibración. Por ejemplo: OT-1003. directorio: el directorio base de la calibración. En este directorio se crearán las fotografías efectuadas (en caso de haber sido utilizada una cámara fotográfica). También es habitual que se utilice este directorio para la creación de los archivos de salida, aunque dichos archivos pueden ser creados en cualquier localización. Por ejemplo: F:\Temperatura\2007\Calibraciones Clientes\OT-1003\07-125. laboratorio: indica en qué laboratorio del LOMG se ha efectuado la calibración. Lo indica con un dígito, que se corresponde con un laboratorio. Por ejemplo: 2. descripción: es un breve texto que puede ser usado para describir ciertos aspectos de la calibración que no puedan ser salvados mediante los otros atributos. tipo: del mismo modo que con la descripción, este campo se deja a elección del usuario para que efectúe las clasificaciones que considere oportunas. tecnico: el técnico que efectuó la calibración. En este campo se guarda la clave primaria de la tabla Tecnico, es decir, su login. id_archivo_txt: el identificador del archivo de texto asociado a esta calibración. Este campo referencia a un archivo de la tabla Archivo. Por lo tanto, para recuperar, por ejemplo, su ruta, bastaría con ir a la tupla de la tabla Archivo con este identificador. Por ejemplo: 07-125 TXT. id_archivo_xls: Del mismo modo que con los archivos de texto, los archivos excel se referencian mediante este campo. Por ejemplo: 07-125 XLS. fecha_inicio: la fecha en que se inició la calibración. Por ejemplo: 2007-05-25. hora_inicio: la hora en que fue iniciada la calibración. Por ejemplo: 09-59-34. fecha_fin: la fecha en que se finalizó la calibración. Por ejemplo: 2007-05-26. hora_fin: la hora en que fue finalizada la calibración. Por ejemplo: 13-43-17. Manual Técnico 115 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 5.2.9 Tabla Cal_Dispositivo Esta tabla intermedia surge por la relación n a n entre las tablas Calibracion y Dispositivo. Sus únicos campos son las claves primarias de las tablas Calibracion y Dispositivo. Con ello se tiene suficiente información para poder resolver la relación y determinar qué dispositivos se han usado en una calibración concreta. Los campos de la tabla son: - id_calibracion: la clave de la calibración. Es clave primaria de la tabla. id_dispositivo: la clave del dispositivo. Es clave primaria de la tabla. 5.2.10 Tabla Cal_Protocolo Del mismo modo que con Cal_Dispositivo, Cal_Protocolo surge por la relación n a n entre las tablas Calibración y Protocolo. Por ello es necesaria una tabla intermedia, que únicamente contenga la clave de Calibración y la clave de Protocolo. Con dicha tabla se dispone de suficiente información para determinar qué protocolos han sido usados en una calibración en concreto. Los campos de la tabla son: - id_calibracion: la clave de la calibración. Es clave primaria de la tabla. id_protocolo: la clave del protocolo. Es clave primaria de la tabla. Manual Técnico 116 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 6. Implementación 6.1 Clases administradas y no administradas 6.1.1 Diferencias Visual Studio 2005 Professional es un entorno de desarrollo de Microsoft que permite el desarrollo de aplicaciones en varios lenguajes de programación. Dispone de su propio framework, el .NET Framework 2.0, que incluye numerosas clases ya implementadas listas para su uso e inclusión en aplicaciones propias. Visual Studio permite la programación en C++ clásico (basado en MFC, Microsoft Foundation Class Library), y en C++ supervisado, basado en el CLR (Common Language Runtime). Mientras que el código en C++ Clásico se compila y ejecuta como cualquier otro compilador de C++, el código en C++ supervisado se compila a un código intermedio llamado MSIL (Microsoft Intermediate Language) que es ejecutado en una máquina virtual, que es la que interactúa realmente con la computadora. Las clases del .NET Framework están orientadas a su uso en C++ supervisado. Las diferencias entre C++ clásico y supervisado no terminan ahí. El código en C++ basado en CLR cambia ligeramente la sintaxis que todos conocemos: - Los punteros se indican con ^ en lugar de con *. - El operador new se indica como gcnew. - Para crear una clase administrada, se crea como public ref class MiClase. 6.1.2 Decisiones adoptadas Desde un primer instante se comprobó que era absolutamente necesaria la presencia de ambas visiones de C++. Por un lado, las clases del dominio del problema, las que surgieron en el análisis, tenían que estar obligatoriamente en C++ clásico. Esta obligatoriedad surge del uso de librerías de terceros. Concretamente, para el manejo de la Cámara Fotográfica CCam BCi4 es necesario incluir una serie de librerías en C. Lo mismo pasa con las clases que interactúan con la base de datos (lo cual será explicado con mayor detenimiento en capítulos posteriores). Finalmente, el controlador GPIB que el LOMG ha dispuesto para el proyecto también aporta sus propias librerías. Otro motivo fundamental para escribir las clases más importantes en C++ clásico era la portabilidad del código. Aunque el proyecto se desarrolle en Visual Studio, hay que pensar en C++ como un lenguaje universal, por lo que el código escrito debería poder ser usado en otros entornos de desarrollo. Por otra parte la creación de una interfaz potente y fácil de desarrollar pasaba por el uso de los Windows Forms del .NET Framework, cuyas clases son en C++ supervisado. Las otras alternativas no supervisadas, como los Forms de MFC, no cumplían las expectativas deseadas. Finalmente el inevitable encontronazo entre ambas tecnologías sucedió. Se restringió el uso de CLR a las clases encargadas de la interfaz de usuario, mientras que las clases con el peso de la algoritmia de la aplicación se desarrollaron en C++ clásico. La interfaz de usuario, en C++ supervisado, hace uso de las clases de C++ clásico para procesos sencillos, y de ciertas clases “puente”. Manual Técnico 117 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 6.2 Diagrama de Despliegue Sistema Dispositivos (Cámaras fotográficas, cámaras climáticas y dispositivos patrón) Interfaz de Usuario (CLR) Clases del dominio del problema (MFC) S.G.B.D MySQL El sistema consta de tres partes: el propio sistema, los dispositivos implicados, y el sistema gestor de la base de datos. El sistema se divide en la interfaz de usuario y en las clases del dominio del problema. Son éstas últimas las que realizan los accesos a los dispositivos y la interacción con la base de datos. La interfaz se limita a presentar y recoger datos al usuario. - Dispositivos: los dispositivos de los que hace uso el sistema. Son cámaras fotográficas, cámaras climáticas y dispositivos patrón. - Sistema: El propio sistema: - Interfaz de usuario: presentar y recoger datos del usuario. - Clases del dominio del problema: llevan el peso de la aplicación. - SGBD: El sistema gestor de la base de datos, MySQL. 6.3 Estructura del código El código se ha organizado en diversas carpetas, agrupando las clases en función de su comportamiento. Cada clase se compone de un archivo de cabecera (*.h) y otro de código (*.cpp): • Carpeta Archivo: o Archivo Archivo_txt Archivo_xls • Carpeta BD (además de estas clases, se incluyen librerías de MySQL) o BD o BD_Archivo o BD_Calibracion o BD_Dispositivo o BD_Fotografia o BD_Medicion o BD_Protocolo o BD_Tecnico o BD_Tipo_Protocolo Manual Técnico 118 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto • Carpeta Calibracion: o Calibracion • Carpeta Camara (además de estas clases, se incluyen librerías de la CCam BCi4) o Camara_Fotografica Camara_CCam_BCi4 o Fotografia • Carpeta Conexiones (además de estas clases, se incluyen librerías del adaptador GPIB) o ConexionGPIB o ConexionSerie • Carpeta Dispositivos o Dispositivo Dispositivo_Patron • Multimetro_34401A • Multimetro_HP3457A • Termohigrometro_DP30_BCS • Termohigrometro_protimeter_996 • Termometro_BlackStack_1560 • Termometro_F250 • Termometro_F250_Serie Camara_Climatica • Camara_Thunder_2500 Sistema_Redundante o Medicion Medicion_Multimetro_34401ª Medicion_Multimetro_HP3457A Medicion_Termohigrometro_DP30_BCS Medicion_Termohigrometro_Protimeter_996 Medicion_Termometro_BlackStack_1560 Medicion_Termometro_F250 Medicion_Camara_Thunder_2500 Medicion_Sistema_Redundante Medicion_Interpretada • Carpeta EstadoInterfaz o EstadoInterfaz o DatosCalibracion • Carpeta Excepcion o Excepcion • Carpeta Interpretación o Interpretación • Carpeta Librerias o Conversiones o Tiempo o StringTokenizer • Carpeta Proceso o Proceso Manual Técnico 119 Sistema de Calibración Automática de Termohigrómetros • Carpeta Protocolo o Protocolo o Tipo_Protocolo • Carpeta Tecnico o Tecnico • Carpeta de Formularios o Form_Entrada o Form_Home o Form_Alta_Tecnico o Form_Alta_Protocolo o Form_Alta_Tipo_Protocolo o Form_Consulta_Calibracion o Form_Consulta_Tecnico o Form_Consulta_Protocolo o Form_Consulta_Tipo_Protocolo o Form_Listado_Calibraciones o Form_Listado_Tecnicos o Form_Listado_Protocolos o Form_Listado_Tipo_Protocolos o Form_Nueva_Calibracion_1 o Form_Nueva_Calibracion_2 o Form_Nueva_Calibracion_3 o Form_Nueva_Calibracion_4 o Form_Nueva_Calibracion_5 o Form_Nueva_Calibracion_6 o Form_Nueva_Calibracion_7 Ángel Dacal Nieto Dicho código se ha comentado mediante la herramienta Doxygen. Los resultados de dicha documentación pueden ser consultados en la carpeta Documentación\Documentación del código por Doxygen del soporte digital. Las librerías de terceros necesarias para el funcionamiento de la cámara CCam BCi4, del adaptador GPIB y de la base de datos MySQL han sido retiradas de dicha documentación, dejando únicamente las clases escritas para este proyecto (a excepción de la clase StringTokenizer, que se comenta en el capítulo 8 de este tomo). Otras clases no comentadas (como los formularios) sí se han incluido en la documentación de Doxygen para tener una visión global del proyecto). 6.4 Compilación Para poder compilar el proyecto, es necesario abrir previamente el archivo *.sln del proyecto, o bien abrir Visual Studio y pulsar Abrir proyecto, seleccionando después dicho archivo *.sln. Una vez abierto el proyecto, se debe pulsar en Generar, y a continuación en Generar solución. Otra alternativa es pulsar directamente F7. Con cualquiera de esas dos alternativas Visual Studio comenzará a compilar el proyecto. En la ventana de resultados podremos ver qué archivos se están compilando, podremos controlar la aparición de errores o advertencias, y se nos informará del éxito de la operación. Manual Técnico 120 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 6.5 Ejecución Para poder ejecutar el proyecto desde Visual Studio con la opción de depuración, es necesario que se haya compilado el proyecto previamente, lo cual se explica en el paso anterior. Hecho eso, basta con ir a Depurar, Iniciar Depuración, o bien pulsar directamente F5. Otra opción es lanzar el ejecutable sin Visual Studio. Se debe hacer doble clic en el archivo *.exe del proyecto. Manual Técnico 121 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 7. Pruebas Este capítulo estará dedicado a las pruebas realizadas para comprobar que el sistema funciona correctamente. Cabe destacar, primero, que durante la fase de implementación del sistema ya se han ido probando sus distintos componentes de forma individual aunque al final se hayan probado estos componentes de forma más exhaustiva. 7.1 Seguridad Estas pruebas pretenden demostrar que si un usuario no tiene permiso para acceder a una determinada zona del sistema, se le impide el paso a dicha zona. Las zonas susceptibles de necesitar un permiso especial son las de Alta de técnico, Listado de técnicos y Consulta tus datos. El listado y el alta únicamente pueden ser llevados a cabo por un Jefe de departamento, mientras que la consulta de datos únicamente puede realizarse sobre el usuario que está logueado. Tras dichas pruebas se ha comprobado que, en efecto, dichas restricciones se cumplen, manteniéndose el funcionamiento del proyecto dentro de los límites marcados por los requerimientos del análisis. 7.2 Integración Una vez comprobados todos los componentes por separado, se integran todas las unidades que constituyen el sistema final y se prueban conjuntamente. Aquí se comprueba que la comunicación entre las distintas unidades sea correcta. Las pruebas en esta fase se han llevado a cabo mediante calibraciones de prueba, probando los distintos dispositivos estudiados con anterioridad. Se ha ido comprobando que las mediciones que el sistema iba registrando eran, de hecho, las que marcaban los dispositivos. Finalmente se ha comprobado que los archivos generados reflejaban correctamente dichas mediciones, y que la base de datos guardaba esa información de manera correcta. Estas pruebas se han ido realizando a lo largo de todo el proceso de implementación, con mucha frecuencia, ya que es de vital importancia tener constancia de que lo que se está midiendo es, en realidad, lo que está registrando el dispositivo. 7.3 Formularios Estas pruebas consisten en comprobar la validez de los campos introducidos en los formularios. Dichas pruebas hacen uso de diversas estrategias, como contar el número de caracteres de los campos, o comprobar su correspondencia con una determinada expresión regular (usando la clase System::Text::RegularExpressions::Regex::IsMatch). En las columnas llamadas “Modificación” se indica si las pruebas realizadas en el formulario de alta también están presentes en el formulario de modificación. En el caso de que un determinado campo no sea modificable (o no se muestre en la modificación) se indica con “No permite”. *: caracteres inválidos son aquellos distintos de dígitos(0-9), letras (a-z, A-Z), guión (-), guión bajo (_) o espacio ( ). Manual Técnico 122 Sistema de Calibración Automática de Termohigrómetros Pruebas realizadas en el login de un usuario. Prueba Resultado esperado Enviar formulario vacío Usuario incorrecto o password incorrecta Enviar usuario vacío Usuario incorrecto o password incorrecta Enviar contraseña vacía Usuario incorrecto o password incorrecta Enviar usuario no Usuario incorrecto o existente password incorrecta Enviar usuario existente Usuario incorrecto o con contraseña incorrecta password incorrecta Enviar usuario existente Se entra en el sistema con contraseña correcta Pruebas realizadas en el alta de un técnico. Prueba Resultado esperado Enviar formulario vacío El campo login es demasiado pequeño Enviar login vacío El campo login es demasiado pequeño Enviar login de longitud El campo login es <4 demasiado pequeño Enviar login de longitud El campo login es > 14 demasiado grande Enviar login con El login debe estar caracteres inválidos* formado por caracteres alfanuméricos Enviar password vacío El campo password es demasiado pequeño Enviar password de El campo password es longitud < 4 demasiado pequeño Enviar password de El campo password es longitud > 14 demasiado grande Enviar password con El password debe estar caracteres inválidos* formado por caracteres alfanuméricos Enviar repetición de El campo repetición de password vacía password es demasiado pequeño Enviar repetición de El campo repetición de password de longitud < 4 password es demasiado pequeño Enviar repetición de El campo repetición de password de longitud > password es demasiado 14 grande Enviar repetición de El campo repetición de password con caracteres password debe estar inválidos* formado por caracteres alfanuméricos Enviar password y La password introducida repetición de password no se corresponde con su distintos repetición Insertar usuario repetido El técnico ya existe Manual Técnico 123 Ángel Dacal Nieto Resultado obtenido Correcto Correcto Correcto Correcto Correcto Correcto Resultado obtenido Modificación Correcto Igual Correcto No permite Correcto No permite Correcto No permite Correcto No permite Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto No permite Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto En la modificación de técnico es necesario introducir la contraseña vieja antes de cambiar la nueva. Se ha de introducir dicha contraseña antigua correctamente, o de lo contrario se informa de que “La antigua contraseña no es correcta”. Pruebas realizadas en el alta de un protocolo. Prueba Resultado esperado Enviar formulario vacío El identificador es demasiado pequeño Enviar identificador El identificador es vacío demasiado pequeño Enviar identificador de El identificador es longitud < 4 demasiado pequeño Enviar identificador de El identificador es longitud > 14 demasiado grande Enviar identificador con El identificador debe estar caracteres inválidos* formado por caracteres alfanuméricos Enviar temperatura vacía La temperatura es demasiado pequeña Enviar temperatura de La temperatura es longitud > 10 demasiado grande Enviar temperatura con La temperatura debe estar caracteres no dígitos formada por dígitos Enviar margen de El margen de temperatura temperatura de longitud es demasiado grande > 10 Enviar margen de El margen de temperatura temperatura con debe estar formado por caracteres no dígitos dígitos Enviar humedad relativa La humedad relativa es vacía demasiado pequeña Enviar humedad relativa La humedad relativa es de longitud > 10 demasiado grande Enviar humedad relativa La humedad relativa debe con caracteres no dígitos estar formada por dígitos Enviar margen de El margen de humedad humedad relativa de relativa es demasiado longitud > 10 grande Enviar margen de El margen de humedad humedad relativa con relativa debe estar caracteres no dígitos formado por dígitos Enviar intervalo vacío El intervalo es demasiado pequeño Enviar intervalo de El intervalo es demasiado longitud > 5 grande Enviar intervalo con El intervalo debe estar caracteres no dígitos formado por dígitos Enviar mediciones vacío El número de mediciones es demasiado pequeño Enviar mediciones de El número de mediciones longitud > 5 es demasiado grande Enviar mediciones con El número de mediciones caracteres no dígitos debe estar formado por dígitos Manual Técnico 124 Resultado obtenido Modificación Correcto Igual Correcto No permite Correcto No permite Correcto No permite Correcto No permite Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Sistema de Calibración Automática de Termohigrómetros Enviar mediciones de estabilidad de longitud > 5 Enviar mediciones de estabilidad con caracteres no dígitos Enviar tipo vacío Insertar protocolo repetido El número de mediciones de estabilidad es demasiado grande El número de mediciones de estabilidad debe estar formado por dígitos Es necesario seleccionar un tipo para el punto de consigna El punto de consigna ya existe Pruebas realizadas en el alta de un tipo de protocolo. Prueba Resultado esperado Enviar formulario vacío El identificador es demasiado pequeño Enviar identificador El identificador es vacío demasiado pequeño Enviar identificador de El identificador es longitud < 4 demasiado pequeño Enviar identificador de El identificador es longitud > 14 demasiado grande Enviar identificador con El identificador debe caracteres inválidos* estar formado por caracteres alfanuméricos Enviar nombre vacío El nombre es demasiado pequeño Enviar nombre de El nombre es demasiado longitud < 4 pequeño Enviar nombre de El nombre es demasiado longitud > 300 grande Enviar nombre con El nombre debe estar caracteres inválidos* formado por caracteres alfanuméricos Enviar descripción vacía La descripción es demasiado pequeña Enviar descripción de La descripción es longitud < 4 demasiado pequeña Enviar descripción de La descripción es longitud > 300 demasiado grande Enviar descripción con La descripción debe estar caracteres inválidos* formada por caracteres alfanuméricos Insertar tipo de protocolo El tipo de punto de repetido consigna ya existe Manual Técnico 125 Ángel Dacal Nieto Correcto Igual Correcto Igual Correcto Igual Correcto No permite Resultado obtenido Modificación Correcto Igual Correcto No permite Correcto No permite Correcto No permite Correcto No permite Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto Igual Correcto No permite Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto Pruebas realizadas en el alta de una calibración. FORMULARIO 1 (Datos genéricos) Prueba Resultado esperado Enviar formulario vacío Es necesario introducir alguna calibración. Enviar OT vacío El campo OT es demasiado pequeño Enviar OT de longitud < El campo OT es demasiado 4 pequeño Enviar OT de longitud > El campo OT es demasiado 14 grande Enviar OT con caracteres El campo OT debe estar inválidos* formado por caracteres alfanuméricos Enviar número de El campo muestra es muestra vacío demasiado pequeño Enviar muestra de El campo muestra es longitud < 4 demasiado pequeño Enviar muestra de El campo muestra es longitud > 14 demasiado grande Enviar muestra con El campo muestra debe caracteres inválidos* estar formado por caracteres alfanuméricos Enviar tipo con longitud El campo tipo es > 300 demasiado grande Enviar descripción con El campo descripción es longitud > 600 demasiado grande No seleccionar técnico Es necesario seleccionar un técnico y un laboratorio No seleccionar Es necesario seleccionar un laboratorio técnico y un laboratorio Enviar ruta de directorio La ruta del directorio es vacía demasiado pequeña Enviar directorio de La ruta del directorio es longitud < 4 demasiado pequeña Enviar directorio de La ruta del directorio es longitud > 300 demasiado grande Enviar ruta de archivo txt La ruta del archivo de vacía texto es demasiado pequeña Enviar ruta de archivo txt La ruta del archivo de con longitud < 4 texto es demasiado pequeña Enviar ruta de archivo txt La ruta del archivo de con longitud > 300 texto es demasiado grande Enviar ruta de archivo La ruta del archivo excel es excel vacía demasiado pequeña Enviar ruta de archivo La ruta del archivo excel es excel con longitud < 4 demasiado pequeña Enviar ruta de archivo La ruta del archivo excel es excel con longitud > 300 demasiado grande Enviar calibración ya Ya existe una calibración existente con ese número de muestra Manual Técnico 126 Resultado obtenido Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Sistema de Calibración Automática de Termohigrómetros FORMULARIO 2 (Patrones) Prueba Resultado esperado Enviar formulario vacío Es necesario introducir al menos un patrón No seleccionar patrón Es necesario seleccionar un patrón y un adaptador No seleccionar adaptador Es necesario seleccionar un patrón y un adaptador No indicar archivo de La ruta del archivo de correcciones, habiendo correcciones es demasiado seleccionado pequeño previamente que se desea corrección Enviar archivo de La ruta del archivo de correcciones de longitud correcciones es demasiado <4 pequeño Enviar archivo de La ruta del archivo de correcciones de longitud correcciones es demasiado > 14 pequeño Insertar un patrón más Patrón ya introducido de una vez FORMULARIO 3 (Cámara climática y protocolos) Prueba Resultado esperado Enviar formulario vacío Es necesario introducir al menos un patrón Enviar temperatura vacía La temperatura es demasiado pequeña Enviar temperatura de La temperatura es longitud > 10 demasiado grande Enviar temperatura con La temperatura debe estar caracteres no dígitos formada por dígitos Enviar margen de El margen de temperatura temperatura de longitud es demasiado grande > 10 Enviar margen de El margen de temperatura temperatura con debe estar formado por caracteres no dígitos dígitos Enviar humedad relativa La humedad relativa es vacía demasiado pequeña Enviar humedad relativa La humedad relativa es de longitud > 10 demasiado grande Enviar humedad relativa La humedad relativa debe con caracteres no dígitos estar formada por dígitos Enviar margen de El margen de humedad humedad relativa de relativa es demasiado longitud > 10 grande Enviar margen de El margen de humedad humedad relativa con relativa debe estar caracteres no dígitos formado por dígitos Enviar intervalo vacío El intervalo es demasiado pequeño Enviar intervalo de El intervalo es demasiado longitud > 5 grande Manual Técnico 127 Ángel Dacal Nieto Resultado obtenido Correcto Correcto Correcto Correcto Correcto Correcto Correcto Resultado obtenido Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Sistema de Calibración Automática de Termohigrómetros Enviar intervalo con caracteres no dígitos Enviar mediciones vacío Enviar mediciones de longitud > 5 Enviar mediciones con caracteres no dígitos Enviar mediciones de estabilidad de longitud > 5 Enviar mediciones de estabilidad con caracteres no dígitos Enviar tipo vacío Insertar protocolo repetido El intervalo debe estar formado por dígitos El número de mediciones es demasiado pequeño El número de mediciones es demasiado grande El número de mediciones debe estar formado por dígitos El número de mediciones de estabilidad es demasiado grande El número de mediciones de estabilidad debe estar formado por dígitos Es necesario seleccionar un tipo para el punto de consigna El punto de consigna ya ha sido introducido Ángel Dacal Nieto Correcto Correcto Correcto Correcto Correcto Correcto Correcto Correcto El resto de formularios del alta de calibración no poseen elementos susceptibles de necesitar un control como los anteriores. Su uso se basa en selección de elementos, más que en introducción de datos, por lo que no se hará un análisis exhaustivo como con los anteriores. Manual Técnico 128 Sistema de Calibración Automática de Termohigrómetros Ángel Dacal Nieto 8. Apéndices 8.1 Librerías En ciertas partes de este proyecto se ha utilizado la clase StringTokenizer. Dicha clase ha sido desarrollada por el ingeniero australiano Arash Partow, cuyo trabajo puede ser visto en su site: http://www.partow.net/programming/stringtokenizer/index.html. El funcionamiento de dicha clase puede ser consultado en la documentación generada por Doxygen (que se encuentra en la carpeta Documentación\Documentación del código por Doxygen del soporte digital): 8.2 Drivers Ha sido necesaria la incorporación de diversas librerías especiales para el funcionamiento y uso de diversos dispositivos del proyecto. En primer lugar, la cámara fotográfica CCam BCi4 precisa de las librerías ccapi.h y ccutil.h que proporcionan diversas funciones para acceder a la cámara, configurarla, obtener fotografías y guardarlas. La adición de estos archivos precisa de la inclusión de diversos archivos .h y .lib. También precisa de sus propias librerías el adaptador GPIB National Instruments. Concretamente necesita los archivos ni488.h y gpib-32.obj. En ellos se encuentran utilidades para la conexión y configuración del puerto GPIB. Por último, la base de datos MySQL necesita un cúmulo de archivos para la correcta comunicación entre el SGBD y la aplicación. La cabeza visible de estos archivos es el fichero mysql.h, aunque se incluyen otros archivos .h, .lib y .dll. Manual Técnico 129
© Copyright 2024 ExpyDoc