private int ObtenerHolgura(bool enEntrada, int holgura) { EsquemaCalibracion datos = (EsquemaCalibracion)vista.Table.DataSet; double inicial = 0; double final = 0; if (enEntrada == true) { inicial = datos.Calibracion[0].Entrada; final = datos.Calibracion[datos.Calibracion.Rows.Count - 1].Entrada; } else { inicial = datos.Calibracion[0].Salida; final = datos.Calibracion[datos.Calibracion.Rows.Count - 1].Salida; } if (inicial < final) { return(holgura); } else { return(-holgura); } }
private void ActualizarPuntosCero(bool enEntrada, int holgura) { EsquemaCalibracion datos = (EsquemaCalibracion)vista.Table.DataSet; for (int i = 0; i < datos.Calibracion.Rows.Count - 1; i++) { EsquemaCalibracion.CalibracionRow fila1 = datos.Calibracion[i]; EsquemaCalibracion.CalibracionRow fila2 = datos.Calibracion[i + 1]; if (enEntrada == true) { if (fila1.Salida == fila2.Salida) { fila1.Entrada -= holgura; fila2.Entrada += holgura; } } else { if (fila1.Entrada == fila2.Entrada) { fila1.Salida -= holgura; fila2.Salida += holgura; } } } }
/// <summary> /// Actualiza los puntos extremos de la configuración /// </summary> /// <param name="datos">Puntos de calibración</param> /// <param name="enEntrada">indica si la actualización se aplica a los valores de entrada o de salida</param> /// <param name="holgura">Valor para la actualización</param> public void ActualizarPuntosExtremos(bool enEntrada, int holgura) { EsquemaCalibracion datos = (EsquemaCalibracion)vista.Table.DataSet; double inicial = 0; double final = 0; if (enEntrada == true) { inicial = datos.Calibracion[0].Entrada; final = datos.Calibracion[datos.Calibracion.Rows.Count - 1].Entrada; } else { inicial = datos.Calibracion[0].Salida; final = datos.Calibracion[datos.Calibracion.Rows.Count - 1].Salida; } holgura = ObtenerHolgura(enEntrada, holgura); if (enEntrada == true) { datos.Calibracion[0].Entrada = inicial + holgura; datos.Calibracion[datos.Calibracion.Rows.Count - 1].Entrada = final - holgura; } else { datos.Calibracion[0].Salida = inicial + holgura; datos.Calibracion[datos.Calibracion.Rows.Count - 1].Salida = final - holgura; } ActualizarPuntosCero(enEntrada, holgura); }
public Calibracion() { EsquemaCalibracion datosXml = new EsquemaCalibracion(); vista = datosXml.Calibracion.DefaultView; vista.Sort = "Entrada"; difCambio = 3; }
public Calibracion(int diferenciaCambio) { EsquemaCalibracion datosXml = new EsquemaCalibracion(); vista = datosXml.Calibracion.DefaultView; vista.Sort = "Entrada"; if (diferenciaCambio < 0) { diferenciaCambio = 0; } difCambio = diferenciaCambio; }
/// <summary> /// Guarda nuevos valores para la calibracion buscado los punto limites y dandole una holgura /// </summary> /// <param name="ArchivoXML">Ruta donde se va ha grabar el archivo XML</param> public void Guardar(string ArchivoXML) { try { EsquemaCalibracion datos = (EsquemaCalibracion)vista.Table.DataSet; datos.WriteXml(ArchivoXML); datos.Dispose(); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <summary> /// Busca un punto, edita la entrada y la salida, si este no existe crea el punto /// </summary> /// <param name="Punto">Punto a buscar</param> /// <param name="Entrada">Entrada para el punto</param> /// <param name="Salida">Salida para el punto</param> public void ProcesarPunto(int Punto, double Entrada, double Salida) { EsquemaCalibracion datos = (EsquemaCalibracion)vista.Table.DataSet; EsquemaCalibracion.CalibracionRow[] fila = (EsquemaCalibracion.CalibracionRow[])datos.Calibracion.Select("Punto = " + Punto); if (fila.Length > 0) { fila[0].BeginEdit(); fila[0].Entrada = Entrada; fila[0].Salida = Salida; fila[0].EndEdit(); } else { datos.Calibracion.AddCalibracionRow(Punto, Entrada, Salida); } datos.AcceptChanges(); datos.Dispose(); }
/// <summary> /// Cargar la calibracion desde un archivo XML /// </summary> /// <param name="NombreArchivo">Ruta y nombre del archivo XML</param> public void Abrir(string archivoXML) { try { EsquemaCalibracion datosXml = new EsquemaCalibracion(); datosXml.ReadXml(archivoXML); this.ArchivoXml = archivoXML; vista = datosXml.Tables["Calibracion"].DefaultView; vista.Sort = "Entrada"; datosXml.Dispose(); } catch (IOException ex) { throw new Exception(ex.Message); } catch (Exception ex) { throw new Exception(ex.Message); } }