示例#1
0
        public static Analisis analizar2(BindingList <CalibracionElec> lista, Equipo equipo, EnergiaElectrones energia)
        {
            Analisis      analisis = new Analisis();
            List <Double> valores  = lista.Select(q => q.Dwzref).ToList();

            if (CalibracionElec.hayReferencia(equipo, energia))
            {
                CalibracionElec caliRef = CalibracionElec.obtenerCaliReferencia(equipo, energia);
                analisis.Referencia = ValorARF.crear(caliRef.Dwzref, caliRef.Dwzref, caliRef.Fecha);
            }
            else
            {
                analisis.Referencia = new ValorARF()
                {
                    absoluto = double.NaN,
                    relativo = double.NaN,
                    fecha    = "",
                };
            }
            analisis.Maximo   = ValorARF.crear(valores.Max(), analisis.Referencia.absoluto, (lista[valores.IndexOf(valores.Max())].Fecha));
            analisis.Minimo   = ValorARF.crear(valores.Min(), analisis.Referencia.absoluto, (lista[valores.IndexOf(valores.Min())].Fecha));
            analisis.Promedio = ValorARF.crear(Math.Round(valores.Average(), 2), analisis.Referencia.absoluto);
            analisis.DesvEst  = ValorARF.crear(Calcular.desvEstandar(valores), analisis.Referencia.absoluto);

            return(analisis);
        }
示例#2
0
        public static bool guardar(CalibracionElec _nuevo, bool esRef)
        {
            var auxLista = lista();

            auxLista.Add(_nuevo);
            if (esRef)
            {
                if (hayReferencia(_nuevo.Equipo, _nuevo.Energia))
                {
                    if (MessageBox.Show("Ya existe una referencia \n ¿Desea continuar?", "Establecer Referencia", MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        establecerComoReferencia(_nuevo, auxLista);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    establecerComoReferencia(_nuevo, auxLista);
                }
            }
            IO.writeObjectAsJson(file, auxLista);
            return(true);
        }
示例#3
0
        //Kqq0
        private double calculokQQ0()
        {
            double kqq0 = CalibracionElec.calcularKqq0(sistDosimSeleccionado().camara, equipoSeleccionado(), energiaSeleccionada(), energiaSeleccionada().R50D);

            ToolTips.habilitar(Double.IsNaN(kqq0), PicBox_Kqq0Elec, ToolTips.stringErrorkQQ0Elec, 0);
            return(kqq0);
        }
示例#4
0
 private BindingList <CalibracionElec> listaCalibracionesElectrones()
 {
     if (CHB_Rango.Checked)
     {
         return(CalibracionElec.lista(equipoSeleccionado(), energiaElectronesSeleccionada(), DTPDesde.Value, DTPHasta.Value));
     }
     else
     {
         return(CalibracionElec.lista(equipoSeleccionado(), energiaElectronesSeleccionada()));
     }
 }
示例#5
0
        private CalibracionElec calibracionActual()
        {
            double difConRef = Double.NaN;

            if (hayLBsinCartel())
            {
                difConRef = calculoDifConRef();
            }
            return(CalibracionElec.crear(equipoSeleccionado(), energiaSeleccionada(), sistDosimSeleccionado(), Calcular.validarYConvertirADouble(TB_CaliLadoCampo.Text), energiaSeleccionada().Zref,
                                         DTP_FechaCaliElec.Value, realizadoPor(), calculoKTP(), calculokQQ0(), calculoKpol(), mideKpol(), Calcular.validarYConvertirADouble(TB_Vred.Text), calculoKs(), mideKs(), CalculoMref(), calculoDwRef(), calculoDwZmax(),
                                         Convert.ToDouble(TB_UM.Text), Convert.ToDouble(tbTemp.Text), Convert.ToDouble(tbPresion.Text), Convert.ToDouble(tbHumedad.Text), lecVmas(), lecVmenos(), lecVTotal(),
                                         lecVred(), lecRef(), difConRef));
        }
示例#6
0
        //Ks
        private double calculoKs()
        {
            double Vred = Double.NaN;

            if (!CHB_NoUsaKs.Checked && !CHB_UsaKsLB.Checked)
            {
                Vred = Convert.ToDouble(TB_Vred.Text);
            }
            double ks = CalibracionElec.calcularKs(sistDosimSeleccionado().Tension, lecVTotal(), lecVred(), CHB_NoUsaKs.Checked, CHB_UsaKsLB.Checked, equipoSeleccionado(), energiaSeleccionada(), Vred);

            ToolTips.habilitar(Double.IsNaN(ks), PicBox_KsElec, ToolTips.stringErrorInterpolacion, 0);
            return(ks);
        }
示例#7
0
        public static CalibracionElec obtenerCaliReferencia(Equipo equipo, EnergiaElectrones energia)
        {
            CalibracionElec caliLB = new CalibracionElec();

            foreach (CalibracionElec cali in lista())
            {
                if (cali.Equipo.Equals(equipo) && cali.Energia.Equals(energia) && cali.EsReferencia)
                {
                    caliLB = cali;
                    break;
                }
            }
            return(caliLB);
        }
示例#8
0
        public static void exportarUnaCalibracion(CalibracionElec _nuevo)
        {
            try
            {
                string fileName = IO.GetUniqueFilename(@"..\..\", "calibracionesExportadas");
                IO.writeObjectAsJson(fileName, _nuevo);

                MessageBox.Show("Se ha exportado la calibracion correctamente", "Exportar");
            }
            catch (Exception e)
            {
                MessageBox.Show("Ha ocurrido un error. No se ha podido exportar: " + e.ToString());
            }
        }
示例#9
0
 private bool hayLBsinCartel()
 {
     if (CB_CaliEquipos.SelectedIndex == -1 || CB_CaliEnergias.SelectedIndex == -1)
     {
         return(false);
     }
     else if (!CalibracionElec.hayReferencia(equipoSeleccionado(), energiaSeleccionada()))
     {
         return(false);
     }
     else
     {
         return(true);
     }
 }
示例#10
0
 public static void establecerComoReferencia(CalibracionElec caliElec, BindingList <CalibracionElec> auxLista)
 {
     foreach (CalibracionElec cali in auxLista)
     {
         if (cali.Equipo.Equals(caliElec.Equipo) && cali.Energia.Equals(caliElec.Energia))
         {
             cali.EsReferencia = false;
             if (cali.Equals(caliElec))
             {
                 cali.EsReferencia = true;
                 cali.DifLB        = Double.NaN;
             }
         }
     }
 }
示例#11
0
 private bool hayLB()
 {
     if (CB_CaliEquipos.SelectedIndex == -1 || CB_CaliEnergias.SelectedIndex == -1)
     {
         MessageBox.Show("Debe elegir equipo, energía y condiciones de medición \npara poder cargar valores de referencia");
         return(false);
     }
     else if (!CalibracionElec.hayReferencia(equipoSeleccionado(), energiaSeleccionada()))
     {
         MessageBox.Show("No se registra una calibración de referencia para este equipo, energía y condición");
         return(false);
     }
     else
     {
         return(true);
     }
 }
示例#12
0
        private DateTime primerFechaCali()
        {
            DateTime primeraFecha = new DateTime(2017, 11, 8);

            if (CalibracionFot.lista().Count > 0)
            {
                primeraFecha = (CalibracionFot.lista().OrderBy(c => c.Fecha).First()).Fecha;
            }
            if (CalibracionElec.lista().Count > 0)
            {
                DateTime primeraFechaElec = (CalibracionElec.lista().OrderBy(c => c.Fecha).First()).Fecha;
                if (DateTime.Compare(primeraFechaElec, primeraFecha) < 0)
                {
                    primeraFecha = primeraFechaElec;
                }
            }
            return(primeraFecha);
        }
示例#13
0
        private DateTime ultimaFechaCali()
        {
            DateTime ultimaFecha = new DateTime(2017, 11, 8);

            if (CalibracionFot.lista().Count > 0)
            {
                ultimaFecha = (CalibracionFot.lista().OrderByDescending(c => c.Fecha).First()).Fecha;
            }
            if (CalibracionElec.lista().Count > 0)
            {
                DateTime primeraFechaElec = (CalibracionElec.lista().OrderByDescending(c => c.Fecha).First()).Fecha;
                if (DateTime.Compare(primeraFechaElec, ultimaFecha) > 0)
                {
                    ultimaFecha = primeraFechaElec;
                }
            }
            return(ultimaFecha);
        }
示例#14
0
        public static double calcularTendencia(BindingList <CalibracionElec> lista, bool fechas, DateTime desde, DateTime hasta, Equipo equipo, EnergiaElectrones energia, Chart grafico)
        {
            BindingList <CalibracionElec> listaFiltrada = new BindingList <CalibracionElec>();

            if (fechas)
            {
                foreach (CalibracionElec cali in lista)
                {
                    if (DateTime.Compare(cali.Fecha.Date, desde.Date) >= 0 && DateTime.Compare(cali.Fecha.Date, hasta.Date) <= 0)
                    {
                        listaFiltrada.Add(cali);
                    }
                }
            }
            else
            {
                listaFiltrada = lista;
            }
            if (listaFiltrada.Count() == 0)
            {
                MessageBox.Show("No hay calibraciones en el rango de fechas seleccionado");
                return(Double.NaN);
            }
            if (listaFiltrada.Count() == 1)
            {
                MessageBox.Show("En el rango de fechas seleccionado hay una única calibración.\nNo se puede realizar el análisis");
                return(Double.NaN);
            }
            else
            {
                List <Double> valores      = listaFiltrada.Select(q => q.Dwzref).ToList();
                List <Double> fechasDouble = listaFiltrada.Select(q => q.Fecha.ToOADate()).ToList();
                Graficar.agregarLineaTendencia(grafico, Calcular.cuadradosMinimos(fechasDouble, valores), fechasDouble.Min(), fechasDouble.Max());
                if (CalibracionElec.hayReferencia(equipo, energia))
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / CalibracionElec.obtenerCaliReferencia(equipo, energia).Dwzref * 100 * 30, 2)); //mensual
                }
                else
                {
                    return(Math.Round(Calcular.cuadradosMinimos(fechasDouble, valores).Item1 / valores.Average() * 100 * 30, 2)); //mensual
                }
            }
        }
示例#15
0
        private void inicializarEquipos()
        {
            foreach (CalibracionFot cali in CalibracionFot.lista())
            {
                if (!ListBox_Equipos.Items.Contains(cali.Equipo))
                {
                    ListBox_Equipos.Items.Add(cali.Equipo);
                    ListBox_Equipos.DisplayMember = "Etiqueta";
                }
            }

            foreach (CalibracionElec cali in CalibracionElec.lista())
            {
                if (!ListBox_Equipos.Items.Contains(cali.Equipo))
                {
                    ListBox_Equipos.Items.Add(cali.Equipo);
                    ListBox_Equipos.DisplayMember = "Etiqueta";
                }
            }
        }
示例#16
0
 private void btnGuardar_Click(object sender, EventArgs e)
 {
     if (CalibracionElec.guardar(calibracionActual(), CHB_caliElecEstablecerComoRef.Checked))
     {
         MessageBox.Show("Calibración guardada");
         if (MessageBox.Show("¿Desea limpiar el registro?", "Limpiar Registro", MessageBoxButtons.OKCancel) == DialogResult.OK)
         {
             CHB_UsaKpolLB.Checked = false;
             CHB_UsaKsLB.Checked   = false;
             limpiarRegistro2Niveles(Panel_CalElec);
             actualizarComboBoxCaliElectrones();
             inicializarPredeterminados(100);
             chb_EditarVKpol.Checked = false;
             chb_EditarVKs.Checked   = false;
             actualizarCalculos();
             CB_caliElecRealizadoPor1.Text = "";
             CB_caliElecRealizadoPor2.Text = "";
             CB_caliElecRealizadoPor3.Text = "";
         }
     }
 }
示例#17
0
        public static void hacerReferencia(DataGridView DGV)
        {
            var             auxLista = lista();
            CalibracionElec cali     = (CalibracionElec)DGV.SelectedRows[0].DataBoundItem;

            if (cali.EsReferencia)
            {
                return;
            }
            if (hayReferencia(cali.Equipo, cali.Energia))
            {
                if (MessageBox.Show("Ya existe una referencia \n ¿Desea continuar?", "Establecer Referencia", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    establecerComoReferencia(cali, auxLista);
                }
            }
            else
            {
                establecerComoReferencia(cali, auxLista);
            }
            IO.writeObjectAsJson(file, auxLista);
        }
示例#18
0
 private double calculoDifConRef()
 {
     return(CalibracionElec.calcularDifConRef(calculoDwRef(), equipoSeleccionado(), energiaSeleccionada()));
 }
示例#19
0
 private double calculoDwZmax()
 {
     return(CalibracionElec.calcularDwZmax(calculoDwRef(), Convert.ToDouble(TB_CaliEPDDref.Text)));
 }
示例#20
0
 private double calculoDwRef()
 {
     return(CalibracionElec.CalcularDwRef(CalculoMref(), sistDosimSeleccionado()));
 }
示例#21
0
        //Referencia


        private double CalculoMref()
        {
            return(CalibracionElec.CalcularMref(lecRef(), calculoKTP(), calculoKs(), calculoKpol(), Convert.ToDouble(TB_UM.Text)));
        }
示例#22
0
 //Kpol
 private double calculoKpol()
 {
     return(CalibracionElec.calcularKpol(sistDosimSeleccionado().SignoTension, lecVmas(), lecVmenos(), CHB_NoUsaKpol.Checked, CHB_UsaKpolLB.Checked, equipoSeleccionado(), energiaSeleccionada()));
 }