Gestion de banda

Este ejemplo es parte de las herramientas suministradas para gestionar el escudo GSM y muestra cómo utilizar la Biblioteca GSM para gestionar la banda del modem GSM conectado.

Vea la página http://www.worldtimezone.com/gsm.html para obtener información general de la banda GSM. Las configuraciones regionales típicas son:

Europa, África, Oriente Medio: E-GSM (900) + DCS (1800)
EE.UU., Canadá, América del Sur: GSM (850) + PCS (1900)
México: PCS (1900)
Brasil: GSM (850) + E-GSM (900) + DCS (1800) + PCS (1900)

Hardware necesitado


Este programa, para el escudo Arduino GSM, comprueba la banda configurada actualmente en el módem y le permite cambiarla.



// Gestion de banda
 
// Este programa, para el escudo Arduino GSM, comprueba la banda actualmente 
// configurada en el módem y le permite cambiarla. 

// Por favor, visite la página http://www.worldtimezone.com/gsm.html 

// Configuraciones habituales: 
// Europa, África, Oriente Medio: E-GSM (900) + DCS (1800) 
// EE.UU., Canadá, América del Sur: GSM (850) + PCS (1900) 
// México: PCS (1900) 
// Brasil: GSM (850) + E-GSM (900) + DCS (1800) + PCS (1900) 

// Circuito: 
// * Escudo GSM 

// Creado 12 de junio de 2012 por Javier Zorzano, Scott Fitzgerald 

// Este ejemplo es de dominio público. 

// bibliotecas
#include <GSM.h>

// initializa la instancia biblioteca
GSMBand band;

void setup() {
  // inicializa las comunicaciones serie y espera a que se abra el puerto:
  Serial.begin(9600);
  while (!Serial) {
    ; // espera a que el puerto serie se conecte. Necesario para Leonardo solamente
  }

  // El gestor de banda comienza reiniciandi el  modem
  Serial.println("Reiniciando el modem...");
  band.begin();
  Serial.println("Modem reiniciado.");

};


void loop() {
  // Obtiene la banda actual
  String bandName = band.getBand(); // Obtiene e imprime el nombre de la banda
  Serial.print("Banda actual:");
  Serial.println(bandName);
  Serial.println("¿Quiere cambiar la banda?");
  String newBandName;
  newBandName = askUser();
  // Avisar al usuario de lo que vamos a hacer ...
  Serial.print("\nConfigurando la banda ");
  Serial.println(newBandName);
  // Cambia la banda
  boolean operationSuccess;
  operationSuccess = band.setBand(newBandName);
  // Avisa al usuario de que el cambio ha sido OK
  if (operationSuccess) {
    Serial.println("Conseguido");
  } else {
    Serial.println("Error mientras se cambiaba la banda");
  }

  if (operationSuccess) {
    while (true);
  }
}

// Esta función ofrece al usuario diferentes opciones
// por medio de la interfaz de serie
// el usuario selecciona una
String askUser() {
  String newBand;
  Serial.println("Seleccionar la banda:");
  // Print the different options
  Serial.println("1 : E-GSM(900)");
  Serial.println("2 : DCS(1800)");
  Serial.println("3 : PCS(1900)");
  Serial.println("4 : E-GSM(900)+DCS(1800) ex: Europa");
  Serial.println("5 : GSM(850)+PCS(1900) Ex: USA, Sudamerica.");
  Serial.println("6 : GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900)");

  // Buffer de entrada vacio
  while (Serial.available()) {
    Serial.read();
  }

  // Espera una respuesta, basta con ver el primer carácter
  while (!Serial.available());
  char c = Serial.read();
  if (c == '1') {
    newBand = GSM_MODE_EGSM;
  } else if (c == '2') {
    newBand = GSM_MODE_DCS;
  } else if (c == '3') {
    newBand = GSM_MODE_PCS;
  } else if (c == '4') {
    newBand = GSM_MODE_EGSM_DCS;
  } else if (c == '5') {
    newBand = GSM_MODE_GSM850_PCS;
  } else if (c == '6') {
    newBand = GSM_MODE_GSM850_EGSM_DCS_PCS;
  } else {
    newBand = "GSM_MODE_UNDEFINED";
  }
  return newBand;










No hay comentarios:

Publicar un comentario