Ejemplo n.º 1
0
        /// <summary>
        /// Obtiene datos del Modulo MEPLATE.
        /// </summary>
        /// <param name="Data">
        /// Variable dinamica donde guardar los resultados: \n
        /// MEPResultados (Resultados) resultados del procesamiento \n
        /// MEPInformacion (Informacion) Informacion sobre el procesamiento \n
        /// MEPVelocidad (double) Velocidad de Avance de la chapa \n
        /// MEPOPConnected (bool) Estado de conexion del Ordenador de Proceso \n
        /// MEPTarjetaConnected (bool) Estado de conexion de la tarjeta de adquisicion \n
        /// </param>
        /// <param name="parameters">
        /// "Resultados" - Obtiene Los ultimos resultados medidos por el MEPLATE \n
        /// "Informacion"  - Obtiene la informacion de procesamiento del MEPLATE \n
        /// "Estado"  - Obtiene la informacion de conexiones y velocidad del MEPLATE \n
        ///  </param>
        public override void GetData(ref dynamic Data, params string[] parameters)
        {
            Data.MEPReturnedData = parameters;
            try
            {
                foreach (string parameter in parameters)
                {
                    switch (parameter)
                    {
                    case "Resultados":
                        Data.MEPResultados = (Resultados)((SharedData <Resultados>)_DispatcherSharedMemory["Resultados"]).Get(0);
                        break;

                    case "Estado":
                        Tarjeta tar = ((Tarjeta)((SharedData <Tarjeta>)_DispatcherSharedMemory["Velocidad"]).Get(0));

                        if (tar != null)
                        {
                            Data.MEPVelocidad = tar.Velocidad;
                        }
                        else
                        {
                            Data.MEPVelocidad = 0.0;
                        }
                        ((ComunicacionOP)_DispatcherThreads["ComunicacionOP"])._server.GetData(ref Data, "EstadoSocket");
                        Data.MEPOPConnected = Data.COMSocketDatosConnected;
                        ((ComunicacionTarjeta)_DispatcherThreads["ComunicacionTarjeta"])._server.GetData(ref Data, "EstadoSocket");
                        Data.MEPTarjetaConnected = Data.COMSocketDatosConnected;
                        Data.MEPMidiendo         = ((HiloAdquisicion)_DispatcherThreads["Adquisicion"])._Midiendo;
                        break;

                    case "Informacion":
                        Data.MEPInformacion = (Informacion)((SharedData <Informacion>)_DispatcherSharedMemory["Informacion"]).Get(0);
                        break;

                    case "Meplaca":
                        Data.MEPMeplaca = ((HiloAdquisicion)_DispatcherThreads["Adquisicion"])._Meplaca;
                        break;

                    case "ComunicacionOP":
                        Data.MEPID = (PlateID)((SharedData <PlateID>)_DispatcherSharedMemory["IDChapa"]).Get(0);
                        break;

                    default:
                        Data.MEPErrors = "Wrong Query";
                        break;
                    }
                }
                Data.MEPErrors = "";
            }
            catch (Exception ex)
            {
                Data.MEPErrors = ex.Message;
                //Ademas se lanzaria la excepcion oportuna
            }
        }
Ejemplo n.º 2
0
        public override void FunctionToExecuteByThread()
        {
            while (((SharedData <Byte[]>)SharedMemory["SocketReader"]).Elementos > 0)
            {
                Byte[] val       = (Byte[])((SharedData <Byte[]>)SharedMemory["SocketReader"]).Pop();
                short  messageid = BitConverter.ToInt16(val, 16);
                // Trace.WriteLine("New message arrived: MessageID->" + messageid);
                switch (messageid)
                {
                //case 21:
                //    _AuxLogCom.LOGTXTMessage = "ADDA : Recibido Inicio Chapa con velocidad : " + (((Tarjeta)(((SharedData<Tarjeta>)_SharedMemory["Velocidad"]).Get(0))).Velocidad / 100.0).ToString() + " m/s";
                //    _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion");
                //    if (_Midiendo == false)
                //    {
                //        Events["ComenzarMedida"].Set();
                //        ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("21");
                //        _AuxLogCom.LOGTXTMessage = "ADDA : Empieza a medir ";
                //        _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion");
                //    }
                //    _Midiendo = true;
                //    break;
                //case 22:
                //    ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("22");
                //    break;
                //case 23:
                //    _AuxLogCom.LOGTXTMessage = "ADDA : Recibido Fin Chapa con velocidad : " + (((Tarjeta)(((SharedData<Tarjeta>)_SharedMemory["Velocidad"]).Get(0))).Velocidad / 100.0).ToString() + " m/s";
                //    _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion");
                //    if (_Midiendo == true)
                //    {
                //        Events["FinalizarMedida"].Set();
                //        ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("23");
                //        _AuxLogCom.LOGTXTMessage = "ADDA : Acaba de medir ";
                //        _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion");
                //    }
                //    _Midiendo = false;
                //    break;
                //case 24:
                //    if (_Midiendo == true)
                //    {
                //        Events["AbortarMedida"].Set();
                //        ((ComunicacionOP)((Meplate)_Padre)._DispatcherThreads["ComunicacionOP"]).SendMessage("24");
                //        _AuxLogCom.LOGTXTMessage = "ADDA : Recibido Abortar Chapa (Sale chapa con velocidad negativa) con velocidad : " + (((Tarjeta)(((SharedData<Tarjeta>)_SharedMemory["Velocidad"]).Get(0))).Velocidad / 100.0).ToString() + " m/s";
                //        _Padre.LogCom.SetData(ref _AuxLogCom, "Informacion");
                //    }
                //    _Midiendo = false;
                //    break;
                case 26:

                    Tarjeta valor = new Tarjeta((double)BitConverter.ToInt16(val, 18), (double)BitConverter.ToInt16(val, 20));
                    ((SharedData <Tarjeta>)SharedMemory["Velocidad"]).Set(0, valor);
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        private double LeerVelocidad()
        {
            Tarjeta tarjetatemp = (Tarjeta)((SharedData <Tarjeta>)SharedMemory["Velocidad"]).Get(0);

            if (tarjetatemp != null)
            {
                return(tarjetatemp.Velocidad * 10);                   // mm/min
            }
            else
            {
                return(60);
            }
        }//Debe leer la velocidad de la tarjeta de adquisicion o por mensaje