Пример #1
0
        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;
        }
Пример #2
0
        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;
            }
        }