private void btnCalibrar_Click(object sender, EventArgs e) { // metodo para ejecutar tareas en segundo plano //backgroundWorker1.RunWorkerAsync(); string calibracion = Hardy.Calibracion_C2(ip); lblPesoHardy.Text = "calibración = " + calibracion; }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { ListaPesos = new List <double>(); bool estado = false; int CardAddr = 0; int h = OpenDevice(CardAddr); switch (h) { case 0: case 1: case 2: case 3: bool estadoEntrada2 = ReadDigitalChannel(2); bool estadoEntrada3 = ReadDigitalChannel(3); this.lblEstadoSenor.Invoke(new MethodInvoker(delegate() { lblEstadoSenor.Text = "Card " + h.ToString() + " connected"; })); while (!backgroundWorker1.CancellationPending) { estadoEntrada2 = ReadDigitalChannel(2); estadoEntrada3 = ReadDigitalChannel(3); if (estadoEntrada2) { this.btnSensor2.Invoke(new MethodInvoker(delegate() { btnSensor2.Enabled = estadoEntrada2; })); } else { this.btnSensor2.Invoke(new MethodInvoker(delegate() { btnSensor2.Enabled = estadoEntrada2; })); } if (estadoEntrada3) { this.btnSensor3.Invoke(new MethodInvoker(delegate() { btnSensor3.Enabled = estadoEntrada3; })); } else { this.btnSensor3.Invoke(new MethodInvoker(delegate() { btnSensor3.Enabled = estadoEntrada3; })); } while (estadoEntrada2 || estadoEntrada3) { pesoHardy = Hardy.pesohardy(ip); // agrego a la lista todos los pesos del pez para luego obtener el máximo en el ProgressChanged ListaPesos.Add(pesoHardy); this.lblPesoHardy.Invoke(new MethodInvoker(delegate() { lblPesoHardy.Text = pesoHardy.ToString(); })); if (pesoHardy < 0.1) { estado = false; } if (pesoHardy > 1 && estado == false) { if (ListaPesos.Count() > 1) { double ListPesMaxUltimo = ListaPesos.Last(); double listPesMaxPenultimo = ListaPesos.ElementAt(ListaPesos.Count - 2); if (listPesMaxPenultimo > ListPesMaxUltimo) { estado = true; backgroundWorker1.ReportProgress(1); } } } estadoEntrada2 = ReadDigitalChannel(2); estadoEntrada3 = ReadDigitalChannel(3); } } //timer1.Enabled = true; break; case -1: lblEstadoSenor.Text = "Card " + CardAddr.ToString() + " not found"; break; } }