La libreria Messenger contiene un conjunto de herramientas que facilitan trabajar con mensajes en caracteres ASCII. Almacena los caracteres en un buffer hasta que recibe un retorno de carro(CR). Cuando esto ocurre se considera que el mensaje esta completo.
Se utiliza para crear un objeto de la clase messenger para poder utilizar todos sus metodos. Si no se especifica ningún byte separador en el parentesis, por fececto se utiliza el espacio en blanco.
Messenger message = Messenger();
Se define la función a la que llamaremos una vez tengamos el mensaje completo.
//cuando el mensaje esta listo llamamos a una funcion que hemos llamado "mensajePreparado()"; message.attach(mensajePreparado);
Devuelve cierto si tenemos un mensaje completo y disponible. Los elementos de este mensaje pueden leerse utilizando los metodos de lectura. Esto debe hacerte tan pronto cómo tenemos el mensaje listo para ser usado, ya que cada llamada a process() borra los mensajes anteriores.
Devuelve cierto si hay elementos de un mensajes disponibles. Antes de usar este metodo es necesario llamar a process() para asegurarnos de tener un mensaje completo con el que trabajar.
//bucle controlado por el metodo available while ( message.available() ) { //mientras tengamos mensajes disponibles se ejecutará este bucle. }
Devuelve un elemento entero. Si el elemento no es un numero devuelve 0
Devuelve un elemento de tipo long, si el elemento no es un numero devuelve 0
Devuelve elementos cómo caracteres. Si el caracter forma parte de una palabra la palabra entera es eliminada del buffer.
Copia una cadena de String en la posición del array especificado cómo destino. El parametro tamañoMaximo se usa para definir cual es el tamaño máximo de dicho array y evitar desrbodamientos. Una vez copiada, la cadena es eliminada del buffer de Messenger.
compara un elemento con la cadena almacenada. Si coinciden devuelve true y la elimina del buffer, si no coincide devuelve false y la almacena.
// This example sets all the values of the digital pins with a list through a callback function #include// Instantiate Messenger object with the default separator (the space character) Messenger message = Messenger(); // Create the callback function void messageReady() { int pin = 0; // Loop through all the available elements of the message while ( message.available() ) { // Set the pin as determined by the message digitalWrite( pin, message.readInt() ); pin=pin+1; } } void setup() { // Initiate Serial Communication Serial.begin(115200); // Attach the callback function to the Messenger message.attach(messageReady); } void loop() { // The following line is the most effective way of using Serial and Messenger's callback while ( Serial.available() ) message.process(Serial.read () ); }