Messenger

Libreria de Arduino
Descripcion

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.

Descargar Librería

Creación
Messenger(byte separator)

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();
Metodos
void attach(callbackFuntion)

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);
byte process(int serialData)

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.


							
							
byte available()

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.
								}						
							
							
Metodos de Lectura
int readInt()

Devuelve un elemento entero. Si el elemento no es un numero devuelve 0


							
							
long readLong()

Devuelve un elemento de tipo long, si el elemento no es un numero devuelve 0


							
							
char readChar()

Devuelve elementos cómo caracteres. Si el caracter forma parte de una palabra la palabra entera es eliminada del buffer.


							
							
Methodos para trabajar con String
void copyString(char* destino, byte tamañoMaximo)

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.


							
							
byte checkString(char* toCheck)

compara un elemento con la cadena almacenada. Si coinciden devuelve true y la elimina del buffer, si no coincide devuelve false y la almacena.


							
							
Ejemplo
								// 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 () );
								}
							
Plantilla Basada en la obra de © 2011 Ansimuz.