Paso 2: Lectura del puerto
readChar() int - devuelve el carácter siguiente desde el búfer de entrada
readByte() int – devuelve el siguiente byte del buffer de entrada
String readLine() – regresa todo hasta el carácter de nueva línea ('\n') en el búfer de entrada
cadena readExisting(), todo lo devuelve en el búfer de entrada
Cabe señalar que readChar() y readByte() volver enteros no caracteres y bytes respectivamente. Con el fin de convertirlos a sus tipos correspondientes, necesita convertir en sus tipos respectivos:
char nextChar = (char)mySerialPort.readChar();
nextByte byte = (byte)mySerialPort.readByte();
Los otros dos métodos son bastante autoexplicativos. En el siguiente paso: voy a ir un poco más en profundidad acerca de cómo íbamos sobre la lectura de un puerto.
* Nota técnica *
Cabe destacar que ReadLine(), ReadExisting() devuelve una cadena con sede fuera de bytes descodificadas desde el búfer de entrada. ¿Qué significa eso? Significa que por ejemplo si hemos recibido los bytes 0x48, 0x69 y 0x0A que los ser decodificados basado en la codificación de ASCII a 'H', 'I' y '\n'. Esto es significativo porque si queríamos que nuestro hardware para enviar el valor numérico de 65 (0 x 41), y se utilizó ReadExisting() e imprime el valor devuelto a una ventana de consola obtenemos una salida de "A" no "65" porque decodificado 0 x 41 y cambió a 'A'. Si desea leer el valor numérico real usted debe utilizar readByte() o readChar() puesto que retornan valores de enteros que no son decodificados. La clase SerialPort admite las codificaciones múltiples que no sea el ASCII valor predeterminado mediante la propiedad SerialPort.Encoding; hay un montón de información acerca de en el enlace en la introducción.