public static BindingList <CalibracionElec> lista(Equipo equipo, EnergiaElectrones energia) { var filtrada = IO.readJsonList <CalibracionElec>(file).Where(c => c.Equipo.Equals(equipo) && c.Energia.Equals(energia)).ToList(); filtrada.Sort((x, y) => DateTime.Compare(x.Fecha, y.Fecha)); return(new BindingList <CalibracionElec>(filtrada)); }
public static void guardar(EnergiaElectrones _nuevo, bool edita, DataGridView DGV) { if (edita) { string IDvieja = ((EnergiaElectrones)DGV.SelectedRows[0].DataBoundItem).ID; var auxlista = lista(DGV); int indice = DGV.SelectedRows[0].Index; bool auxPredet = auxlista[indice].EsPredet; auxlista.RemoveAt(indice); _nuevo.ID = IDvieja; auxlista.Insert(indice, _nuevo); auxlista[indice].EsPredet = auxPredet; DGV.DataSource = auxlista; DGV.ClearSelection(); DGV.Rows[indice].Selected = true; edita = false; } else { if (DGV.RowCount == 0) { _nuevo.EsPredet = true; } var auxlista = lista(DGV); _nuevo.ID = _nuevo.Etiqueta; auxlista.Add(_nuevo); DGV.DataSource = auxlista; } darFormatoADGV(DGV); }
public static void editarAle(ComboBox Marca, TextBox Modelo, TextBox NumSerie, TextBox Alias, ComboBox Institucion, Panel Fuente, Panel TipoHaz, DataGridView DGVEnFot, DataGridView DGVEnElec, DataGridView DGVEquipo) { Equipo aux = (Equipo)DGVEquipo.SelectedRows[0].DataBoundItem; Marca.Text = aux.Marca; Modelo.Text = aux.Modelo; NumSerie.Text = aux.NumSerie; Alias.Text = aux.Alias; Institucion.Text = aux.Institucion; Fuente.Controls.OfType <RadioButton>().ElementAt(1).Checked = false; //Control ALE Fuente.Controls.OfType <RadioButton>().ElementAt(0).Checked = true; //Control Co if (aux.TipoDeHaz == 1) { TipoHaz.Controls.OfType <RadioButton>().ElementAt(1).Checked = true; //pulsado TipoHaz.Controls.OfType <RadioButton>().ElementAt(0).Checked = false; //pulsado y barrido } else if (aux.TipoDeHaz == 2) { TipoHaz.Controls.OfType <RadioButton>().ElementAt(1).Checked = false; TipoHaz.Controls.OfType <RadioButton>().ElementAt(0).Checked = true; } DGVEnFot.DataSource = aux.energiaFot; EnergiaFotones.darFormatoADGV(DGVEnFot); DGVEnElec.DataSource = aux.energiaElec; EnergiaElectrones.darFormatoADGV(DGVEnElec); }
public static void editar(TextBox Energia, TextBox R50Ion, TextBox Lado, Label R50D, Label Zref, TextBox PDDZref, DataGridView DGV) { EnergiaElectrones aux = lista(DGV)[DGV.SelectedRows[0].Index]; Energia.Text = aux.Energia.ToString(); R50Ion.Text = Calcular.stringNaN(aux.R50ion); Lado.Text = Calcular.stringNaN(aux.LadoCampo); R50D.Text = Calcular.stringNaN(aux.R50D); Zref.Text = Calcular.stringNaN(aux.Zref); PDDZref.Text = Calcular.stringNaN(aux.PDDZrefElec); }
private void BT_EnElecGuardar_Click(object sender, EventArgs e) { DGV_EnElec.Visible = true; EnergiaElectrones.guardar(EnergiaElectrones.crear(Convert.ToDouble(TB_EnElecEn.Text), Calcular.doubleNaN(TB_EnElecLado), Calcular.doubleNaN(TB_EnElecR50ion), Calcular.doubleNaN(L_EnElecR50dosis), Calcular.doubleNaN(L_EnElecZref), Calcular.doubleNaN(TB_EnElecPDDZref)), editaEnergiaElect, DGV_EnElec); limpiarRegistro(Panel_EnElecEquipo); TB_EnElecLado.Text = Configuracion.ladoCampoPredetElec.ToString(); L_EnElecR50dosis.Text = null; L_EnElecZref.Text = null; TB_EnElecEn.Focus(); // para que vuelva a energía para cargar uno nuevo BT_EnElecGuardar.Enabled = false; DGV_EnElec.Enabled = true; }
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); }
//linea base public static bool hayReferencia(Equipo equipo, EnergiaElectrones energia) { bool hayRef = false; foreach (CalibracionElec cali in lista()) { if (cali.Equipo.Equals(equipo) && cali.Energia.Equals(energia) && cali.EsReferencia) { hayRef = true; break; } } return(hayRef); }
public static Equipo crearAle(string _marca, string _modelo, string _numSerie, string _alias, int _fuente, int _tipoDeHaz, DataGridView DGVFot, DataGridView DGVElec, string _institucion) //EsPredet inicia como false siempre { string auxEnergiasFot = ""; string auxEnergiasElec = ""; ListaFotones listaF = new ListaFotones(); if (EnergiaFotones.lista(DGVFot).Count > 0) { listaF = EnergiaFotones.lista(DGVFot); } ListaElectrones listaE = new ListaElectrones(); if (EnergiaElectrones.lista(DGVElec).Count > 0) { listaE = EnergiaElectrones.lista(DGVElec); } foreach (var energia in EnergiaFotones.lista(DGVFot)) { auxEnergiasFot += energia.Energia + " "; } foreach (var energia in EnergiaElectrones.lista(DGVElec)) { auxEnergiasElec += energia.Energia + " "; } string auxEtiqueta = ""; if (_alias != "") { auxEtiqueta += " (" + _alias + ")"; } return(new Equipo() { Marca = _marca, Modelo = _modelo, NumSerie = _numSerie, Alias = _alias, Fuente = _fuente, TipoDeHaz = _tipoDeHaz, energiaFot = listaF, EnergiasFotones = auxEnergiasFot, energiaElec = listaE, EnergiasElectrones = auxEnergiasElec, Institucion = _institucion, Etiqueta = _marca + " " + _modelo + " " + auxEtiqueta, Nota = "", }); }
private void TB_EnElecR50ion_Leave(object sender, EventArgs e) { if (TB_EnElecR50ion.Text != "") { L_EnElecR50dosis.Text = EnergiaElectrones.calcularR50D(Convert.ToDouble(TB_EnElecR50ion.Text)).ToString(); L_EnElecR50dosis.Visible = true; L_EnElecZref.Text = EnergiaElectrones.calcularZref(Convert.ToDouble(TB_EnElecR50ion.Text)).ToString(); L_EnElecZref.Visible = true; } else { L_EnElecR50dosis.Text = "Vacio"; L_EnElecR50dosis.Visible = false; L_EnElecZref.Text = "Vacio"; L_EnElecZref.Visible = false; } }
private void InicializarComboBoxEnergias(bool guardarSeleccion = false) { EnergiaElectrones energiaASeleccionar = new EnergiaElectrones(); EnergiaElectrones energiaPredet = new EnergiaElectrones(); if (guardarSeleccion) { energiaASeleccionar = (EnergiaElectrones)CB_CaliEnergias.SelectedItem; } CB_CaliEnergias.Items.Clear(); if (CB_CaliEquipos.SelectedIndex != -1) { if (equipoSeleccionado().Fuente == 2) { foreach (var energia in equipoSeleccionado().energiaElec) { CB_CaliEnergias.Items.Add(energia); CB_CaliEnergias.DisplayMember = "Etiqueta"; if (energia.EsPredet == true) { energiaPredet = energia; } } if (energiaASeleccionar != null) { CB_CaliEnergias.SelectedItem = equipoSeleccionado().energiaElec.Where(e => e.ID == energiaASeleccionar.ID).FirstOrDefault(); } else if (energiaPredet != null) { CB_CaliEnergias.SelectedItem = equipoSeleccionado().energiaElec.Where(e => e.ID == energiaPredet.ID).FirstOrDefault(); } CB_CaliEnergias.Enabled = true; } CB_CaliEnergias.DisplayMember = "Etiqueta"; } }
public static CalibracionElec crear(Equipo _equipo, EnergiaElectrones _energia, SistemaDosimetrico _sistdos, double _ladoCampo, double _zref, DateTime _fecha, string _realizadoPor, double _ktp, double _kqq0, double _kpol, int _mideKpol, double _vred, double _ks, int _mideKs, double _mref, double _dwzref, double _dwzmax, double _um, double _temperatura, double _presion, double _humedad, double _lectVmas, double _lectVmenos, double _lectVtot, double _lectVred, double _lectRef, double _difLB) { return(new CalibracionElec() { Equipo = _equipo, Energia = _energia, SistemaDosim = _sistdos, LadoCampo = _ladoCampo, Zref = _zref, Fecha = _fecha, RealizadoPor = _realizadoPor, UM = _um, temperatura = _temperatura, presion = _presion, humedad = _humedad, Ktp = _ktp, Kqq0 = _kqq0, lectVmas = _lectVmas, lectVmenos = _lectVmenos, kpol = _kpol, mideKpol = _mideKpol, Vred = _vred, lectVtot = _lectVtot, lectVred = _lectVred, ks = _ks, mideKs = _mideKs, lectRef = _lectRef, Mref = _mref, Dwzref = _dwzref, Dwzmax = _dwzmax, DifLB = _difLB, EsReferencia = false, }); }
public static double calcularDifConRef(double Dwref, Equipo equipo, EnergiaElectrones energia) { double DwrefLB = obtenerCaliReferencia(equipo, energia).Dwzref; return(Math.Round((Dwref - DwrefLB) / DwrefLB * 100, 4)); }
private void BT_EnElecEditar_Click(object sender, EventArgs e) { DGV_EnElec.Enabled = false; EnergiaElectrones.editar(TB_EnElecEn, TB_EnElecR50ion, TB_EnElecLado, L_EnElecR50dosis, L_EnElecZref, TB_EnElecPDDZref, DGV_EnElec); editaEnergiaElect = true; }
private void BT_EnElecPredet_Click(object sender, EventArgs e) { EnergiaElectrones.hacerPredeterminado(DGV_EnElec); }
public static double calcularKpol(int signopol, double LVmas, double LVmenos, bool noUsa, bool usaLB, Equipo equipo, EnergiaElectrones energia) { if (noUsa) { return(1); } else if (usaLB) { return(obtenerCaliReferencia(equipo, energia).kpol); } else { if (signopol == 1) //polaridad positiva { return(Math.Round((Math.Abs(LVmas) + Math.Abs(LVmenos)) / (2 * Math.Abs(LVmas)), 4)); } else { return(Math.Round((Math.Abs(LVmas) + Math.Abs(LVmenos)) / (2 * Math.Abs(LVmenos)), 4)); } } }
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); }
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 } } }
public static double calcularKs(double Vtot, double LVtot, double LVred, bool noUsa, bool usaLB, Equipo equipo, EnergiaElectrones energia, double Vred) { if (noUsa) { return(1); } else if (usaLB) { return(obtenerCaliReferencia(equipo, energia).ks); } else { double a0 = 0; double a1 = 0; double a2 = 0; if (equipo.TipoDeHaz == 1) //Pulsado { string[] fid = Tabla.Cargar(Tabla.tabla_Ks_pulsados); double[] v1_v2Etiquetas = Tabla.extraerDoubleArray(fid, 0); string[] a0a1a2Etiquetas = Tabla.extraerStringArray(fid, 1); double[,] tabla = Tabla.extraerMatriz(fid, 3, 5, v1_v2Etiquetas.Count(), a0a1a2Etiquetas.Count()); a0 = Calcular.interpolatabla(Vtot / Vred, "a0", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a1 = Calcular.interpolatabla(Vtot / Vred, "a1", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a2 = Calcular.interpolatabla(Vtot / Vred, "a2", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); } else { string[] fid = Tabla.Cargar(Tabla.tabla_Ks_pulsadosYbarridos); double[] v1_v2Etiquetas = Tabla.extraerDoubleArray(fid, 0); string[] a0a1a2Etiquetas = Tabla.extraerStringArray(fid, 1); double[,] tabla = Tabla.extraerMatriz(fid, 3, 5, v1_v2Etiquetas.Count(), a0a1a2Etiquetas.Count()); a0 = Calcular.interpolatabla(Vtot / Vred, "a0", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a1 = Calcular.interpolatabla(Vtot / Vred, "a1", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); a2 = Calcular.interpolatabla(Vtot / Vred, "a2", v1_v2Etiquetas, a0a1a2Etiquetas, tabla); } return(Math.Round(a0 + a1 * Math.Abs((LVtot / LVred)) + a2 * Math.Pow((LVtot / LVred), 2), 4)); } }
public static double calcularKqq0(Camara camara, Equipo equipo, EnergiaElectrones energia, double R50ion = double.NaN) { return(Math.Round(Calcular.interpolarLinea(energia.R50D, Tabla.R50etiquetas, camara.kqq0Elec), 4)); }
private void BT_EnElecEliminar_Click(object sender, EventArgs e) { EnergiaElectrones.eliminar(DGV_EnElec); limpiarRegistro(Panel_EnElecEquipo); }