Example #1
0
        ///*************************************************************************
        ///
        ///              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.
        }
Example #2
0
        /// <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);
            }
        }