///************************************************************************* /// /// FUNCIONES IMPORTANTES PARA EL ESTUDIANTE /// ///************************************************************************* //------------------------------------------- // // Generacion de la lsita de peticiones // //------------------------------------------- /// <summary> /// Genera una lista de peticiones lista de peticiones que quedará almacenada con las peticiones que el sistema puede realizar. /// </summary> /// <param name="listaPeticiones">Lista de peticoines que se desea rellenar.</param> private void RellenarPeticiones(ListaPeticiones listaPeticiones) { //---------------------------- //Peticion de lectura de BITS: //---------------------------- //La direccion es SSRRRRT (SS) direccion del esclavo, RRRR dirección de memoria //y T es el tipo (C coil, D entrada Digital, R Registro, I entrada analogica) string dir = "070002C"; int c = 2; byte[] trama = null; //Se llama al protocolo en uso para que genere la trama que correspondería trama = protocoloEnUso.ReadBit(dir, c); //Se añade la petición a la lista StatePetción(trama, modelo de datos, función que procesará los datos recibidos, //servidor de protocolo al que pertenece la trama) listaPeticiones.Add(new StatePeticion(trama, modelo_datos, ProcesarPilotos, protocoloEnUso)); //---------------------------- //Peticion de lectura de Analogicos (Registros): //---------------------------- ///TODO: Aquí el alumno tendrá que repetir la estructura anterior, pero esta vez deberá añadir a la lista de peticiones ///las peticiones necesarias para obtener los valores analógicos. }
/// <summary> /// Constructo. Este metodo se llama cuando se lanza la apliación. /// </summary> public Form1() { InitializeComponent(); //Contador usado para el envio y recepción de tramas. count = 0; //Crea el modelo de datos. CreateDataModel(); //------------------------------------ //Carga de los conectores y protocolos //------------------------------------ //Se cargan los conectores (Se usa el primero de la lista) listaConectores = ConectionConfig.LoadConfig("config.xml", "conector"); //Se cargan los protocolos listaProtocolos = ConectionConfig.LoadConfig("config.xml", "protocol"); //CONEXION try { //Se cargan los conectores conexionEstablecida = (IConector)listaConectores[0].getInstance(); //Se establece la conexión. //Inicialización de la lista de peticiones listaPeticiones = new ListaPeticiones(conexionEstablecida); //Se cargan los protocolos (Se usa el primero de la lista) protocoloEnUso = (IIOProtocolInterface)listaProtocolos[0].getInstance(); //Se prepara la lista de peticiones RellenarPeticiones(listaPeticiones); //Se enciende el timer. conexionEstablecida.Connect(listaConectores[0].Config); listaPeticiones.Start(); tm = new Timer(); tm.Interval = 50; tm.Tick += new EventHandler(ActualizaInterfaz); tm.Start(); } catch (Exception ex) { //Si ha habido algún error en la conexión se cierra y se muestra el mensaje. if (conexionEstablecida != null) { conexionEstablecida.Close(); conexionEstablecida = null; } MessageBox.Show("Error..... " + ex.Message); } }