Пример #1
0
 private void BtnAbrirCerrar_Click_1(object sender, EventArgs e)//OK
 {
     if (PuertoSerie.IsOpen)
     {
         PuertoSerie.DiscardInBuffer();
         PuertoSerie.Close();
         BtnAbrirCerrar.Text = "Abrir Puerto";
         Calibrar.Enabled    = false;
     }
     else
     {
         try
         {
             PuertoSerie.PortName = CboPuertoSerie.SelectedItem.ToString();
             PuertoSerie.Open();
             Calibrar.Enabled    = true;
             BtnAbrirCerrar.Text = "Cerrar Puerto";
         }
         catch (UnauthorizedAccessException ex)
         {
             MessageBox.Show("El puerto " + CboPuertoSerie.SelectedItem + " está ocupado.");
         }
         catch (Exception ex)
         {
             MessageBox.Show("El puerto " + CboPuertoSerie.SelectedItem + " no se ha podido abrir satisfactoriamente.");
         }
     }
 }
Пример #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            PuertoSerie.Close();
            Form3 form3 = new Form3(PuertoSerie.PortName);

            form3.ShowDialog();
            PuertoSerie.Open();
        }
Пример #3
0
 public void EnviarDatoxPuerto(byte[] datos)
 {
     if (!PuertoSerie.IsOpen)
     {
         PuertoSerie.Open();
     }
     PuertoSerie.Write(datos, 0, datos.Length);
 }
Пример #4
0
        private void frmSesion_FormClosed(object sender, FormClosedEventArgs e)
        {
            PuertoSerie.Close();
            CerrarSesion cs = new CerrarSesion(principal);

            principal.finSesion();
            this.Dispose();
            cs.Show();
        }
Пример #5
0
        private void regresarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            PuertoSerie.Close();
            CerrarSesion cs = new CerrarSesion(principal);

            principal.finSesion();
            this.Dispose();
            cs.Show();
        }
Пример #6
0
 // Envio de datos
 public void Enviar(string caracteres)//OK
 {
     if (PuertoSerie.IsOpen)
     {
         PuertoSerie.Write(caracteres);
     }
     else
     {
         MessageBox.Show("Abrir el puerto para mandar el dato \" " + caracteres + "\"");
     }
 }
Пример #7
0
        // Guarda caracteres en readBuffer
        public void Recibir()
        {
            String estado = "";

            estado = PuertoSerie.ReadExisting();
            switch (estado[0])
            {
            case 'M':      // - Lo primero que envía el micro

                estadoMecha = "";
                indexMecha++;
                EnviarMecha((Mecha)listaMechas[indexMecha]);     // - Ya envia correctamente
                break;

            case 'A':
                /*if (primerAjuste)
                 * {
                 *  primerAjuste = false;
                 *  Enviar("A");
                 * }
                 * Enviar(esquinas[numEsquina++]);
                 * if (numEsquina == 4)
                 *  numEsquina = 0;*/
                if (numEsquina < 4)
                {
                    if (primerAjuste)
                    {
                        primerAjuste = false;
                        Enviar("A");
                    }
                    Enviar(esquinas[numEsquina++].cadena);
                }
                else if (numEsquina++ == 4)
                {
                    Enviar(extremoMin.xy);
                }
                else
                {
                    Enviar(extremoMax.xy);
                    numEsquina = 0;
                }
                break;

            case 'F':        // - Lo tercero que envía el micro
                Enviar("*"); // - Agregado, da orden de inicio de perforación
                break;

            case 'P':        // - Orden de perforación
                Enviar("P"); // - El primer agujero de perforación se envía como "PX+xxxxxxY+xxxxxxx"
                Enviar(((Agujero)listaAgujeros[indexAgujero]).xy);
                indexAgujero++;
                break;

            case '*':
                if (indexAgujero + 1 == listaAgujeros.Count)
                {
                    Enviar(((Agujero)listaAgujeros[indexAgujero]).xy);
                    Enviar("F");
                    fin = true;
                    break;
                }
                if (estadoMecha != "esperaMecha" && fin == false)
                {
                    Enviar(((Agujero)listaAgujeros[indexAgujero]).xy);
                    if (indexAgujero + 1 < listaAgujeros.Count)
                    {
                        if (((Agujero)listaAgujeros[indexAgujero]).mecha.diametro != ((Agujero)listaAgujeros[indexAgujero + 1]).mecha.diametro)
                        {
                            Enviar("P");
                            estadoMecha = "esperaMecha";
                        }
                    }
                    indexAgujero++;
                }
                break;

            case 'O':
                Enviar("*");
                primerAjuste = true;
                break;
            }
        }
Пример #8
0
        private void PuertoSerie_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            string Linea = "", sublinea = "";

            Linea = PuertoSerie.ReadLine();
            Boolean ban = true;

            if (!Linea.Equals("") && Linea.Length > 1)
            {
                for (int i = 1; i < Linea.Length - 1; i++)
                {
                    if (!char.IsDigit(Linea.ElementAt(i)))
                    {
                        ban = false;
                    }
                }
            }
            else
            {
                ban = false;
            }
            if (!ban)
            {
                ban = true;
            }
            //Corazon
            else if (Linea.StartsWith("A"))
            {
                for (int i = 1; i < Linea.Length; i++)
                {
                    if (Char.IsDigit(Linea.ElementAt(i)))
                    {
                        sublinea += Linea.ElementAt(i);
                    }
                    else
                    {
                        break;
                    }
                }
                signal = Convert.ToInt32(sublinea);
                graficarPulso();
            }
            //temperatura
            else if (Linea.StartsWith("B"))
            {
                for (int i = 1; i < Linea.Length; i++)
                {
                    if (Char.IsDigit(Linea.ElementAt(i)))
                    {
                        sublinea += Linea.ElementAt(i);
                    }
                    else
                    {
                        break;
                    }
                }
                tbTemperatura.Clear();
                tbTemperatura.AppendText(sublinea + " C");
                tempC = Convert.ToInt32(sublinea);
                if (tempC > 40)
                {
                    col = Color.Red;
                }
                else if (tempC < 28)
                {
                    col = Color.DarkBlue;
                }
                else
                {
                    col = Color.DarkGreen;
                }
                nt = true;
                graficarTermometro();
                timerOpcional();
                principal.temp.Add(tempC);
            }
            //PH
            else if (Linea.StartsWith("C"))
            {
                for (int i = 1; i < Linea.Length; i++)
                {
                    if (Char.IsDigit(Linea.ElementAt(i)))
                    {
                        sublinea += Linea.ElementAt(i);
                    }
                    else
                    {
                        break;
                    }
                }
                setLevel(Convert.ToInt32(sublinea));
                principal.ph.Add(Convert.ToInt32(sublinea));
            }
            //Movimiento
            else if (Linea.StartsWith("D"))
            {
                for (int i = 1; i < Linea.Length; i++)
                {
                    if (Char.IsDigit(Linea.ElementAt(i)))
                    {
                        sublinea += Linea.ElementAt(i);
                    }
                    else
                    {
                        break;
                    }
                }
                MOV = Convert.ToInt32(sublinea);
                principal.mov.Add(Convert.ToInt32(sublinea));
                if (MOV < 100)
                {
                    btnMov.BackColor = Color.Red;
                }
                else
                {
                    btnMov.BackColor = Color.Green;
                }
            }
            //Flexibilidad
            else if (Linea.StartsWith("E"))
            {
                for (int i = 1; i < Linea.Length; i++)
                {
                    if (Char.IsDigit(Linea.ElementAt(i)))
                    {
                        sublinea += Linea.ElementAt(i);
                    }
                    else
                    {
                        break;
                    }
                }
                txtFlex.Clear();
                txtFlex.AppendText(sublinea);
                principal.flexibilidad.Add(Convert.ToInt32(sublinea));
            }
            //Humedad
            else if (Linea.StartsWith("F"))
            {
                for (int i = 1; i < Linea.Length; i++)
                {
                    if (Char.IsDigit(Linea.ElementAt(i)))
                    {
                        sublinea += Linea.ElementAt(i);
                    }
                    else
                    {
                        break;
                    }
                }
                txtHumedad.Clear();
                txtHumedad.AppendText(sublinea);
                setProgressBarLEvel(Convert.ToInt32(sublinea));
                principal.humedad.Add(Convert.ToInt32(sublinea));
            }
            sublinea = "";
        }