none
Reconocer una letra en el puerto serie RRS feed

  • Pregunta

  • Hola:

    Esta pregunta es por parte de un amigo.

    Se trata de recibir carácteres de la tabla ASSCI. Por ejemplo, si un programa detecta la letra A mayúscula, la interfaz salga un mensaje Mesage.Box por poner un ejemplo de dicha letra recibida. Son 8 letras por ejemplo: A, B, C, D, E, F, G y H. Si en el puerto serie le entra cualquier caracter o letra o números que no conozca, se ignora. Hay un manual por aquí .

    Si es podible, con el lenguaje C#, también me vale con Visual Basic .net.

    Descargar proyecto completo Visual C# 2008 del puerto serie y funciona. La contraseña del .zip es D.P.E.

    He hecho un prototipo fallido por cortocircuito, cuando compre los componentes lo volveré hacer y mejor.

    Saludo.


    http://electronica-pic.blogspot.com
    miércoles, 16 de febrero de 2011 18:22

Respuestas

  • Aqui tienes Metaconta,

            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                char[] charNum;
                if (textBox1.Text.Length > 0)
                {
                    string Str = textBox1.Text;
                    charNum = Str.ToCharArray();
                    switch ((int)charNum[0])
                    {
                        case 65:    // 'A'
                        case 66:    // 'B'
                        case 67:    // 'C'
                        case 68:    // 'D'
                        case 69:    // 'E'
                        case 70:    // 'F'
                            MessageBox.Show("Mayuscula" + charNum[0]);
                            break;
                        case 97:    // 'a'
                        case 98:    // 'b'
                        case 99:    // 'c'
                        case 100:   // 'd'
                        case 101:   // 'e'
                        case 102:   // 'f'
                            MessageBox.Show("Minuscula" + charNum[0]);
                            break;
                    }
                }
            }
    Saludos,
    Pep Lluis,

    MVP - Visual Developer
    • Marcado como respuesta Metaconta sábado, 12 de marzo de 2011 13:38
    lunes, 28 de febrero de 2011 12:25
    Moderador

Todas las respuestas

  • ¿Y qué es lo que preguntas? Si es cómo leer ASCII desde un SerialPort de .NET tienes que leer un byte (tipo de dato de C# byte). En C# los caracteres son de 16 bits...
    MVP Visual C++ - Visita mi blog sobre desarrollo: http://geeks.ms/blogs/rfog/
    jueves, 17 de febrero de 2011 20:03
  • Buenas:

    Pregunto que al detectar un byte de netrada por ejemplo la letra "t" y la "T" qu ehaga una cosa o otra.

    - Si ha detectado una t.
         - Visualiza el mensaje: "Ha detectado una t minúscula".
    - Si ha detectado una T.
         - Visualiza el mensaje: "Ha detectado una T mayúscula".

    Como entrada de un botón:

        private void button_t_Click(object sender, EventArgs e)
        {
          byte[] mBuffer = new byte[1];
          mBuffer[0] = 0x74; //ASCII letra "t".
          serialPort1.Write(mBuffer, 0, mBuffer.Length);
        }
    

    En el puerto serie del otro PC le entra una t.

    ¿Cómo hago para detectarla y hacer el algoritmo explicado arriba?

    Un ejemplo que se no que no está bien hecho, es para que se entienda lo que busco.

          string letra_t = "t";
          string letra_T = "T";
    
          if (letra_t == "entrada de datos")
            {
              MessageBox.Show("Ha detectado una t minúscula");
            }
    
          if (letra_T == "entrada de datos")
            {
              MessageBox.Show("Ha detectado una T mayúscula");
            }
    

    Saludo.


    http://electronica-pic.blogspot.com
    viernes, 18 de febrero de 2011 7:42
  • Aqui tienes Metaconta,

            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                char[] charNum;
                if (textBox1.Text.Length > 0)
                {
                    string Str = textBox1.Text;
                    charNum = Str.ToCharArray();
                    switch ((int)charNum[0])
                    {
                        case 65:    // 'A'
                        case 66:    // 'B'
                        case 67:    // 'C'
                        case 68:    // 'D'
                        case 69:    // 'E'
                        case 70:    // 'F'
                            MessageBox.Show("Mayuscula" + charNum[0]);
                            break;
                        case 97:    // 'a'
                        case 98:    // 'b'
                        case 99:    // 'c'
                        case 100:   // 'd'
                        case 101:   // 'e'
                        case 102:   // 'f'
                            MessageBox.Show("Minuscula" + charNum[0]);
                            break;
                    }
                }
            }
    Saludos,
    Pep Lluis,

    MVP - Visual Developer
    • Marcado como respuesta Metaconta sábado, 12 de marzo de 2011 13:38
    lunes, 28 de febrero de 2011 12:25
    Moderador