Example #1
0
        private void ConexionSerial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            CheckForIllegalCrossThreadCalls = false;
            //Lee una cadena de BYTES
            ConexionSerial.Read(datos, 0, 5);

            while (datos[index] != 65)
            {                                 //Este ciclo busca el bit se sincronia para evitar la lectura de bytes incompletos
                index            = index + 1; // utiliza un index para poder ubicarse a lo largo del byte
                datos[4 + index] = (byte)ConexionSerial.ReadByte();
            }
            if (datos[index] == 65 && datos[index + 1] == 67 && datos[index + 2] == 69)
            {     //Cuando el se encuentra con la lectura del byte correcto verifica uno a uno el estado de los bits
                  //if (datos[index + 4] == 0b11111111)
                  //{
                  //    lbconfirmacion.BackColor = Color.Gray;
                  //    lbconfirmacion.Text = "Correcto";

                //}

                //if (datos[index + 4] == 0b00000000)
                //{
                //    lbconfirmacion.BackColor = Color.Red;
                //    lbconfirmacion.Text = "Incorrecto";
                //}

                lbconfirmacion.Text = Convert.ToString(datos[index + 4]);

                //Bit LSB Entrada 1
                if ((datos[index + 3] & 0b00000001) == 0b00000001)
                {
                    D14in.BackColor = Color.Red;
                    D14in.ForeColor = Color.White;
                    D14in.Text      = "HIGH";
                }
                else
                {
                    D14in.BackColor = Color.Black;
                    D14in.ForeColor = Color.White;
                    D14in.Text      = "LOW";
                }

                //Bit Entrada 2
                if ((datos[index + 3] & 0b00000010) == 0b00000010)
                {
                    D15in.BackColor = Color.Red;
                    D15in.ForeColor = Color.White;
                    D15in.Text      = "HIGH";
                }
Example #2
0
        /*------------CONECTAR:  establece  o no una conexión----------------- */

        /*Se conecta y desconecta. Abre y cierra el puerto, visualmente los botones
         * cambian de apariencia */
        private void CONECTAR_DESCONECTAR_Click(object sender, EventArgs e)
        {
            try
            {
                // Para conectar. Evento que ocurre al presionar el boton para establecer conexion
                if (CONECTAR_DESCONECTAR.Text == "Conectar")
                {                                                              // Declaración de los parametros necerarios para la transmisión de datos
                    ConexionSerial.PortName  = PUERTO.Text;                    //Define el puerto. Adquiere el valor seleccionado en el combobox "PUERTO"
                    ConexionSerial.BaudRate  = Int32.Parse(VELOCIDAD.Text);    //Define la velocidad de transmisión. Adquiere el valor seleccionado en el combobox "VELOCIDAD"
                    ConexionSerial.Parity    = System.IO.Ports.Parity.None;    //Define la característica de  Pariedad = NONE
                    ConexionSerial.StopBits  = System.IO.Ports.StopBits.One;   //Define la característica de Bit de parada = ONE
                    ConexionSerial.DataBits  = 8;                              //Obtiene o establece la longitud estándar de los bits de datos por byte.
                    ConexionSerial.Handshake = System.IO.Ports.Handshake.None; // Handshake = none
                    ConexionSerial.Open();                                     //Se abre el puerto
                    Temporizado.Enabled = true;                                //Se habilita el timer [cada cuánto se hará un envio de paquete] Programado desde el entorno gráfico a 500 ms.

                    try
                    {
                        //Cambia la interfaz para desconectar
                        CONECTAR_DESCONECTAR.Text      = "Desconectar"; //Cambia el texto impreso en el botón de "Conexión/desconexión"
                        CONECTAR_DESCONECTAR.BackColor = Color.Red;     //Cambia el color del botón
                        BUSCA_PUERTO.Enabled           = false;         //Inhabilita el boton de busqueda de puertos.
                    }

                    catch (Exception exc)
                    {
                        MessageBox.Show(exc.Message.ToString()); //En caso de no poder conectar [ej. Puerto ocupado]
                    }
                }
                //Entra al dar click y que el boton tenga como texto "Desconectar"
                else if (CONECTAR_DESCONECTAR.Text == "Desconectar")
                {
                    Temporizado.Enabled = false;                 //Deshabilita el timer de transmisión de datos.
                    ConexionSerial.Close();                      //Cierra el puerto
                    CONECTAR_DESCONECTAR.Text      = "Conectar"; //Cambia el texto del botón
                    CONECTAR_DESCONECTAR.BackColor = Color.Lime; //Cambia el color del botón
                    BUSCA_PUERTO.Enabled           = true;       //Habilita de nuevo el botón de busqueda de puertos.
                    PUERTO.Text    = "Puertos COM";              //Regresa el combobox de puertos a su estado inicial
                    VELOCIDAD.Text = "Vel. Transmisión";         //Regresa el combobox de Velocidad a su estado inicial
                }
            }

            catch (Exception exc)
            {
                MessageBox.Show(exc.Message.ToString()); //En caso de no haber seleccionado las propiedades de transmisión (Puerto y velocidad)
            }
        }
Example #3
0
        /*Fin de seccion--------------------------------------------------------*/

        /*--------------------------CIERRE DEL FORM------------------------------*/
        private void FIRMATA_FormClosing(object sender, FormClosingEventArgs e)
        {
            ConexionSerial.Close(); // Al cerrar el form se asegura de cerrar el puerto serial
        }