Monitor de Temperatura. OBJETIVO Monitoreo de Temperatura en Salas de Computo Elaborar graficas de comportamiento Envío de Alertas.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

CJ02 – Técnicas avanzadas en java 1.4 y 5.0
JAVA PERSISTENCE API (JPA) - Relaciones
ASP.NET CON C SHARP.
Java nos ofrece System.out para escribir en pantalla, pero también tenemos System.in para leer. System.in es un objeto de una clase de java que se llama.
CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Estructura de Selección en Visual Basic
Agregar código a un formulario Web Form con Microsoft ASP.NET
Ejemplo de Hilos. public class RelojApplet extends Applet implements Runnable { Hereda applet y la clase Thread ( simula la herencia múltiple.
UML Lenguaje Unificado de Construcción de Modelos
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Programación Concurrente en Java
Estructuras de datos y algoritmos
Defina una clase TempMinMaxEst que encapsule la representación de las temperaturas mínimas y máximas registradas en una estación meteorológica y brinde.
ACCESO A BASES DE DATOS ORACLE CON PHP
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Fundamentos básicos del lenguaje C#
SOA conference. Qué es WCF Fundamentos de la Arquitectura WCF Adaptadores BizTalk WCF Novedades en BizTalk Demo.
Introducción Desarrollo de Windows Services Instalación.
Introducción Eventos y Delegados.
Oracle y Java Continuación *
Genéricos en Java Jaime Ramírez, Ángel Lucas González
1 Entrada/Salida en Java Jaime Ramírez, Ángel Lucas González DLSIIS. Facultad de Informática Universidad Politécnica de Madrid.
Tema 4 Árboles. Árbol sobre matriz.
Francisco Moreno Bases de Datos II Universidad Nacional
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Marzo 2007 Lenguajes Visuales Clase III.
Aplicación de Domótica Iluminación Remota FASE 1.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
Método en Java.
Lenguajes de Programación Tema 4. Paradigma Orientado a Objetos Java 1.5 Pedro García López
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Middleware Java 2 Enterprise Edition
RMI JAVA Implementación.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Christophe Fontano Julien Alagnou Socket.
Estructuras de Datos y Algoritmos TDA LISTA. Metáfora del TDA (repaso) Conjunto de operaciones forman una pared forman una interfase entre los programas.
0. Desarrollo de Programas: técnica del refinamiento.
Definición Estructura de datos jerárquica (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí por medio de ramas. Formalmente,
Clases abstractas no polimórficas para C++ Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática Agenda.
L ISTAS E NLAZADAS No son mas que un conjunto o lista de objetos que a diferencia de los vectores, estas poseen la capacidad de crecer o decrecer. Por.
Java Orientado a Objetos CLASES,OBJETOS Y MÉTODOS
Técnicas avanzadas de programación Interfaces
1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.
Colecciones.
1 TEMA 5. Seguridad en Java 1.Introducción a los Controladores de Seguridad 2.Decidir qué Métodos Sobreescribir del SecurityManager 3.Escribir un Controlador.
USA agenda e itemAgenda
Programación orientada a objetos
Clase Teórica No. 4 Programación IV
Suponiendo que además en la clase U hay: import java.util.*; class U{ static Scanner teclado = new Scanner(System.in); static public int readInt(String.
Dra. Ana Lilia Laureano Cruces
Capítulo 5 - b: Hilos. 4.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th edition, Jan 23, 2005 Ejemplo de hilos: un applet Un.
El lenguaje de programación Java
User Datagram Protocol UDP Juan Pablo Araneda Danilo Araya Z.
Arreglos de Objetos.
/** * Write a description of class General here. */ public class General { // instance variables - replace the example below with your own private int.
Listas. Utilización de un TAD Lista. Interfaz del TAD LISTA public interface Lista { void crearNodo (); /*Crea un nuevo nodo en el TadLista*/ int devolverClave.
Invocación Dinámica en CORBA
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
Fundamentos de Ingeniería de Software Facultad de Ingenieria Universidad Distrital Francisco José de Caldas PROGRAMACION ORIENTADA A OBJETOS Asignatura:
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Archivos de Propiedades
Implementación de Iterables Construcción de Iterables virtuales o basados en otros iterables Fundamentos de Programación Departamento de Lenguajes y Sistemas.
Crear Aplicación Cliente para Conectarse a una Base de Datos.
Tema 1: Concurrencia con Java
2012-BM5A. Unos tips antes de empezar: C# es Case Sensitive (sensible a mayúsculas) Pepe ≠ pepe ≠ pEpE Las asignaciones se hacen con “=” y las comparaciones.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Ingeniería del Software II Implementación metódica.
Los principales inventores de este languaje son Anders Hejlsberg, Scott Wiltamuth, and Peter Golde. Creado, Utilizado e implementado por Microsoft desde.
Diseño y Programación Orientada a Objetos
Casos de prueba con JUnit
User Name: SuperSayaHentai New Password: crUj65KKUAXC.
Transcripción de la presentación:

Monitor de Temperatura

OBJETIVO Monitoreo de Temperatura en Salas de Computo Elaborar graficas de comportamiento Envío de Alertas

Termómetro Digital interfase Serial

Diagrama de Clases de Persistencia

.Net VistaServiciosIntegración Capas significativas de la Aplicaci ó n

Mapeo de capas con Vista F í sica Vista -> Administrador Web, MotorTemperatura.exe Servicios -> MonitorTemperatura.Operaciones, Integración -> MonitorTemperatura.DataAccess : Acceso a Servidor DB4O

Vistas

Configuracion DB4O Client/Server Iniciar Servidor class Monitor {. private void buttonStart_Click(object sender, EventArgs e) { Comun c = new Comun(); c.AsyncStartServer(); } class Comun {. public delegate void MethodDelegate(); public void AsyncStartServer() { MethodDelegate dlgt = startServer; IAsyncResult ar = dlgt.BeginInvoke(null,null); } private void startServer() { StartServer server = new StartServer(); server.RunServer(); } Cliente Operaciones

Configuracion DB4O Client/Server Class StartServer : Util {… public void RunServer() { lock (this) { try { IObjectServer server = Db4oFactory.OpenServer(YapFileName, PORT); server.GrantAccess(USER, PASS); server.Ext().Configure().ClientServer().SetMessageRecipient(this); try { if (!this.stop) { Monitor.Wait(this); } catch (Exception exception) { System.Diagnostics.EventLog.WriteEntry("MonitorTemperatura", exception.ToString()); } server.Close(); } catch (Exception ex) { System.Diagnostics.EventLog.WriteEntry("MonitorTemperatura", ex.ToString()); } }} Acceso a Datos

Configuracion DB4O Client/Server Detener Servidor class Monitor {. private void buttonStop_Click(object sender, EventArgs e) { Comun c = new Comun(); c.stopServer(); } class Comun {. public void stopServer() { StopServer.Stop(); } Cliente Operaciones

Configuracion DB4O Client/Server Class StopServer : Util { public static void Stop() { IObjectContainer container = null; try { container = Db4oFactory.OpenClient("localhost", PORT, USER, PASS); } catch (Exception exception) { System.Diagnostics.EventLog.WriteEntry("MonitorTemperatura", exception.ToString()); } if (container != null) { container.Ext().Configure().ClientServer().GetMessageSender().Send(new StopServer()); container.Close(); } Acceso a Datos

Configuracion Base de Datos public class Util { public static readonly string ServerPassword = "password"; public static readonly string ServerUser = "user; public static readonly string YapFileName = MonitorTemperaturaDB.yap"; public static readonly string PASS = "db4o"; public static readonly string HOST = "localhost"; public static readonly int PORT = 0x1188; public static readonly string USER = "db4o"; } public class ComunDAO { private IObjectContainer OpenFileRemote() { IObjectContainer db = Db4oFactory.OpenClient(Util.HOST, Util.PORT, Util.USER, Util.PASS); ConfigureDBObjects(); return db; } private void CloseFile(IObjectContainer db) { db.Close(); } private void ConfigureDBObjects() // Permite la Actualizacion de Objetos y el Borrado en Cascada { Db4oFactory.Configure().ObjectClass(typeof(Ubicacion)).CascadeOnUpdate(true); Db4oFactory.Configure().ObjectClass(typeof(Ubicacion)).CascadeOnDelete(true); }

Queries public class UbicacionDAO { public Hashtable ObtenerUbicaciones(Ubicacion filtro) { db = OpenFileRemote(); list = db.QueryByExample(filtro); Hashtable t = GetDataTable(list); CloseFile(db); return t; } public Ubicacion ObtenerUbicacion(Ubicacion filtro) { return ObtenerUbicacion(filtro,true); } public Ubicacion ObtenerUbicacion(Ubicacion filtro, bool closedb) { db = OpenFileRemote(); list = db.QueryByExample(filtro); Ubicacion obj2=null; if (list.Count > 0) { obj2 = (Ubicacion)list.Next(); } if (closedb) CloseFile(db); return obj2; }

Grabado public class UbicacionDAO { public void GrabarUbicacion(Ubicacion obj) { UbicacionDAO dao = new UbicacionDAO(); dao.GrabarUbicacion(obj); } public void GrabarLecturas(Ubicacion obj) { UbicacionDAO dao = new UbicacionDAO(); Ubicacion filtro = new Ubicacion(); Ubicacion obj2; if( obj.IdUbicacion>0) filtro.IdUbicacion = obj.IdUbicacion; obj2 = (Ubicacion)dao.ObtenerUbicacion(filtro,false); // false-> no cierra la conexion para actualizalo if (obj2!= null) { obj2.Estado = obj.Estado; if (obj.Lecturas[0] != null) { obj.Lecturas[0].idLectura = (obj2.Index+1).ToString(); obj2.Lecturas[obj2.Index] = obj.Lecturas[0]; obj2.Index++; }.

Grabado. dao.GrabarUbicacion(obj2); } else { obj.Estado = true; dao.GrabarUbicacion(obj); } Class UbicacionDAO { public void GrabarUbicacion(Ubicacion obj) { GrabarUbicacion(obj, true); } public void GrabarUbicacion(Ubicacion obj, bool closedb) { db = OpenFileRemote(); db.Store(obj); if (closedb) CloseFile(db); }

Borrado de Datos public class ComunDAO {. public void DeleteAll() { IObjectContainer db = OpenFileRemote(); Util.DeleteAll(db); CloseFile(db); } public class Util {. public static void DeleteAll(IObjectContainer db) { object obj = new object(); IObjectSet set = db.QueryByExample(obj); foreach (object obj2 in set) { db.Delete(obj2); }

Simulación de Lecturas public class Lector { private void startReader() { stop = true; EstablecerEstadoBotones(); int i = 1; int top = int.Parse(ConfigurationManager.AppSettings["MaxLecturas"].Trim()); while (i < top && stop) { double val = ObtenerLectura(); labelLectura.Text = val.ToString() + " °C"; GrabarLectura(val); i++; } private static double ObtenerLectura() { return RandomDouble(15,70); }.

Simulación de Lecturas. private void GrabarLectura(double val, bool agregarlectura) { UbicacionOP op = new MonitorTemperatura.Operciones.UbicacionOP(); Ubicacion obj = new Ubicacion(); obj.IdUbicacion = int.Parse(ConfigurationManager.AppSettings["IdUbicacion"].Trim()); obj.Descripcion = ConfigurationManager.AppSettings["Descripcion"].Trim(); obj.Estado = stop; if (agregarlectura) { Lectura l = new Lectura(); l.Tipounidad.IdUnidad = ConfigurationManager.AppSettings["TipoUnidad"].Trim(); l.Valor = val; l.Fecha = System.DateTime.Now; l.Hora = System.DateTime.Now; obj.Lecturas[0] = l; } op.GrabarLecturas(obj); }

Configuracion Cliente