Ya comentamos cuando describimos la clase Conexion que todas las clases heredaban de una clase ObjetoGeneral y que ésta nos ayudaría a gestionar los diferentes elementos de nuestra aplicación. Bueno, pues identificando los diferentes objetos y sus atributos, podemos identificar los datos que intercambiaremos para cada uno. En esta parte conviene pensar, para luego evitar tener que estar haciendo cambios continuamente cada vez que nos demos cuenta d que se nos había olvidado configurar algo que era necesario.
Si bien, hasta este momento sólo hemos hablado de nuestra clase Conexion, y que habría Actuadores y Sensores, dándole una vuelta más al problema es fácil ver que aparecerán otras clases en el sistema, en concreto, hasta ahora hemos identificado algunas más:
- Clase ObjetoControl: es un contenedor administrativo, nos servirá para agrupar actuadores y sensores de una unidad determinada (una piscina, un edificio, ...).
- Clase Grupo: esta clase es nueva, va a agrupar diferentes actuadores. ¿Para qué nos va a servir? Para simplificar comportamientos de actuadores que deben activarse a la vez. Imaginemos que tenemos un circuito de riego en un jardín, tiene una electroválvula maestra, una para cada circuito y finalmente una bomba de presión, bueno, pues para regar con ese circuito tenemos que activar los tres. Podríamos poner todos en el mismo actuador, pero normalmente, las electroválvulas son a 24VAC y la bomba será a 220VAC, la específica del circuito de riego debe estar separada (si no, cada vez que vayamos a regar se activaría) y así para cada circuito de riego ...
- Más allá le daremos cierta inteligencia, especializaremos un tipo de grupo que sea secuencial, es decir, sus actuadores irán consecutivos, no simultáneos, y otro en el que podamos configurar desplazamientos temporales, es decir, van arrancando de forma asíncrona.
- Clase Programa: todo está muy bien, pero aparte de tomar medidas de sensores, hay que decirle al sistema cuándo y qué hacer, configuraremos diferentes tipos de temporizadores y disparos (nos interesa al menos tener tempos periódicos, semanales y mensuales). También habrá que ver qué hacer con umbrales de las medidas de los sensores.
- Clase FicheroLOG: recordemos que queríamos guardar eventos del sistema, medidas de los sensores, ...
- Clase Usuario: vamos a acceder de forma remota, más vale que pongamos cierta seguridad de acceso, también habrá usuarios con roles diferentes.
Todavía tendremos algunas clases más, pero son más accesorias y no tan importantes de momento. Con esta primera reflexión, nos queda algo así:
Como temas importantes, hemos asignado a cada clase un id (primera columna), luego, como casi todas heredan de ObjetoGeneral, está la parte sombreada en verde, que se implementará en la susodicha clase, depués hemos introducido datos específicos para cada clase, especial mención a los sombreados azules, que es lo que relacionará los ObejtosConectados con los objetos Conexion.
He añadido también un concepto de información general, que nos servirá para testar el estado general del sistema. La memoria libre, la hora, ...
Ya solo tenemos que escribir estas líneas, leerlas y crear los objetos correspondientes. También utilizaré estos formatos para intercambiar datos con las aplicaciones.
Es evidente que si estos datos van a viajar por la red, convendría encriptarlos, pero de momento no es lo prioritario. Seguiremos con una primera configuración en la tarjeta SD en una próxima entrada.
Como temas importantes, hemos asignado a cada clase un id (primera columna), luego, como casi todas heredan de ObjetoGeneral, está la parte sombreada en verde, que se implementará en la susodicha clase, depués hemos introducido datos específicos para cada clase, especial mención a los sombreados azules, que es lo que relacionará los ObejtosConectados con los objetos Conexion.
He añadido también un concepto de información general, que nos servirá para testar el estado general del sistema. La memoria libre, la hora, ...
Ya solo tenemos que escribir estas líneas, leerlas y crear los objetos correspondientes. También utilizaré estos formatos para intercambiar datos con las aplicaciones.
Es evidente que si estos datos van a viajar por la red, convendría encriptarlos, pero de momento no es lo prioritario. Seguiremos con una primera configuración en la tarjeta SD en una próxima entrada.
No hay comentarios:
Publicar un comentario