Clase GSMClient

Clase GMSClient La clase cliente crea clientes que pueden conectarse a los servidores y enviar y recibir datos.
GMSClient El cliente es la clase base para todas las llamadas basadas cliente GPRS. No se llama directamente, sino que invoca cada vez que se utiliza una función que depende de él.

FUNCIONES

ready
()
Descripción Obtiene el estado del último comando
Sintaxis client.ready()
Parámetros Ninguno
Retornos En el modo asíncrono, ready () devuelve 0 si el último comando se sigue ejecutando, 1 si tuvo éxito, y > 1 si hay un error. En el modo síncrono, devuelve 1 si el anterior comando fué ejecutado con éxito, y 0 si no lo tiene.
 _________________ ________________________________________________________________________________ 

connect()
Descripción Se conecta a una dirección IP y a un puerto especificado. El valor de retorno indica el éxito o el fracaso.
Sintaxis client.connect(ip, port)
Parámetros - IP: la dirección IP a la que el cliente se conectará (serie de 4 bytes)
- port: el puerto al que el cliente se conectará al (int)
Retornos boolean: Devuelve true si la conexión se realiza correctamente, false en caso contrario.
Ejemplo Ver al final
 _________________ ________________________________________________________________________________

beginWrite()
Descripción Le dice al cliente el servidor que está conectado para empezar a escribir en el.
Sintaxis client.beginWrite()
Parámetros Ninguno
Retornos Ninguno
_________________ ________________________________________________________________________________ 

Write()
Descripción Escribe datos en el servidor desde el cliente que está conectado a el.
Sintaxis - client.write(data)
- client.write(buffer)
- client.write(buffer, size)
Parámetros - data: el valor a escribir (byte or char)
- buffer : una matriz de satos (byte or char) a escribir
- size : tamaño del byffer a escribir (byte)
Retornos byte - write () devuelve el número de bytes escritos. No es necesario leer esto.
_________________ ________________________________________________________________________________ 

endWrite()
Descripción Detiene la escritura de datos a un servidor
Sintaxis client.endWrite()
Parámetros Ninguno
Retornos Ninguno
_________________  ________________________________________________________________________________ 

connected()
Descripción Devuelve si el cliente está conectado o no. Un cliente se considera conectado si la conexión se ha cerrado, pero todavía hay datos leídos.
Sintaxis client.connected()
Parámetros Ninguno
Retornos boolean - Devuelve true si el cliente está conectado, false si no lo está.
Ejemplo Ver al final
_________________   ________________________________________________________________________________

read()
Descripción Lee el siguiente byte recibido desde el servidor al cliente que está conectado a el (después de la última llamada a read()).read () hereda de la clase Stream.
Sintaxis client.read()
Parámetros Ninguno
Retornos int - El siguiente byte (o carácter), o -1 si no hay ninguno disponible.
Ejemplo Ver al final
_________________   ________________________________________________________________________________

available()
Descripción Devuelve el número de bytes disponibles para la lectura (es decir, la cantidad de datos que se ha escrito para el cliente por el servidor al que está conectado).
available () hereda de la clase
 Stream.
Sintaxis client.available()
Parámetros Ninguno
Retornos El número de bytes disponibles.
Ejemplo Ver al final
_________________   ________________________________________________________________________________

peek()
Descripción Devuelve el siguiente byte (carácter) de un mensaje borrándolo después del mensaje. Es decir, las llamadas sucesivas a PEEK () devolverá el mismo carácter, será como la siguiente llamada a read (). peek () hereda de la clase Stream.
Sintaxis client.peek()
Parámetros Ninguno
Retornos int - el siguiente byte en un mensaje entrante.
_________________   ________________________________________________________________________________

flush()
Descripción Descarta los bytes que se han escrito para el cliente, pero aún no leídos.
flush () hereda de la clase
 Stream.
Sintaxis client.flush()
Parámetros Ninguno
Retornos Ninguno
_________________   ________________________________________________________________________________

stop()
Descripción Se desconecta del servidor.
Sintaxis client.stop()
Parámetros Ninguno
Retornos Ninguno
Ejemplo Ver al final
_________________   ________________________________________________________________________________

Ejemplo
// Cliente Web

// Este programa se conecta a un sitio web a través de un escudo GSM.
//Específicamente, este ejemplo se descarga de la URL "http://arduino.cc/"
//y lo imprime en el monitor de serie.

// Circuito:
// * Escudo GSM conectado a un Arduino
// * Tarjeta SIM con un contrato de datos

// creado 8 Mar 2012
// por Tom Igoe

// http://arduino.cc/en/Tutorial/GSMExamplesWebClient

// bibliotecas
#include <GSM.h>

// Numero de PIN
#define PINNUMBER ""

// Datos APN
#define GPRS_APN       "GPRS_APN" // reemplace con su GPRS APN
#define GPRS_LOGIN     "login"    // reemplace con su nombre de usuario GPRS
#define GPRS_PASSWORD  "password" // reemplace con su password GPRS

// inicializa la biblioteca
GSMClient client;
GPRS gprs;
GSM gsmAccess;

// URL, ruta y puerto (por ejemplo: arduino.cc)
char server[] = "arduino.cc";
char path[] = "/";
int port = 80; // el puerto 80 es el puerto por defecto para HTTP

void setup()
{
  // inicializa la comunicacion serie
  Serial.begin(9600);
  Serial.println("Iniciando cliente web Arduino.");
  // estado de la conexion
  boolean notConnected = true;

  // Después de iniciar el módem con GSM.begin ()
  // Conectar el escudo a la red GPRS con el APN, nombre de usuario y contraseña
  while(notConnected)
  {
    if((gsmAccess.begin(PINNUMBER)==GSM_READY) &
    (gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD)==GPRS_READY))
      notConnected = false;
    else
    {
      Serial.println("No conectado");
      delay(1000);
    }
  }

  Serial.println("Conectando...");

  // si se obtiene una conexión, informa de vuelta a través del puerto serie:
  if (client.connect(server, port))
  {
    Serial.println(Cconectado");
    // Hace una peticion HTTP:
    client.print("CONSEGUIDO ");
    client.print(path);
    client.println(" HTTP/1.0");
    client.println();
  }
  else
  {
    // si o se consigue una conexion con el servidor:
    Serial.println("Conexion fallida");
  }
}

void loop()
{
// Si hay bytes entrantes disponibles
// desde el servidor, leerlos e imprimirlos:
  if (client.available())
  {
    char c = client.read();
    Serial.print(c);
  }

  // si el servidor se desconecta, detener al cliente:
  if (!client.available() && !client.connected())
  {
    Serial.println();
    Serial.println("Desconectando...");
    client.stop();

    // no hace nada mas

    for(;;)
      ;
  }
}

No hay comentarios:

Publicar un comentario