mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-12 23:08:52 +01:00
121 lines
2.7 KiB
C++
121 lines
2.7 KiB
C++
/*
|
||
Band Management
|
||
|
||
This sketch, for the Arduino GSM shield, checks the band
|
||
currently configured in the modem and allows you to change
|
||
it.
|
||
|
||
Please check http://www.worldtimezone.com/gsm.html
|
||
Usual configurations:
|
||
Europe, Africa, Middle East: E-GSM(900)+DCS(1800)
|
||
USA, Canada, South America: GSM(850)+PCS(1900)
|
||
Mexico: PCS(1900)
|
||
Brazil: GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900)
|
||
|
||
|
||
Circuit:
|
||
* GSM shield
|
||
|
||
created 12 June 2012
|
||
by Javier Zorzano, Scott Fitzgerald
|
||
|
||
This example is in the public domain.
|
||
*/
|
||
|
||
// libraries
|
||
#include <GSM.h>
|
||
|
||
// initialize the library instance
|
||
GSMBand band;
|
||
|
||
void setup()
|
||
{
|
||
// initialize serial communications and wait for port to open:
|
||
Serial.begin(9600);
|
||
while (!Serial) {
|
||
; // wait for serial port to connect. Needed for Leonardo only
|
||
}
|
||
|
||
// Beginning the band manager restarts the modem
|
||
Serial.println("Restarting modem...");
|
||
band.begin();
|
||
Serial.println("Modem restarted.");
|
||
|
||
};
|
||
|
||
|
||
void loop()
|
||
{
|
||
// Get current band
|
||
String bandName = band.getBand(); // Get and print band name
|
||
Serial.print("Current band:");
|
||
Serial.println(bandName);
|
||
Serial.println("Want to change the band you’re on?");
|
||
String newBandName;
|
||
newBandName = askUser();
|
||
// Tell the user what we are about to do…
|
||
Serial.print("\nConfiguring band ");
|
||
Serial.println(newBandName);
|
||
// Change the band
|
||
boolean operationSuccess;
|
||
operationSuccess = band.setBand(newBandName);
|
||
// Tell the user if the operation was OK
|
||
if (operationSuccess)
|
||
{
|
||
Serial.println("Success");
|
||
}
|
||
else
|
||
{
|
||
Serial.println("Error while changing band");
|
||
}
|
||
|
||
if (operationSuccess)
|
||
{
|
||
while (true);
|
||
}
|
||
}
|
||
|
||
// This function offers the user different options
|
||
// through the Serial interface
|
||
// The user selects one
|
||
String askUser()
|
||
{
|
||
String newBand;
|
||
Serial.println("Select band:");
|
||
// 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: Europe");
|
||
Serial.println("5 : GSM(850)+PCS(1900) Ex: USA, South Am.");
|
||
Serial.println("6 : GSM(850)+E-GSM(900)+DCS(1800)+PCS(1900)");
|
||
|
||
// Empty the incoming buffer
|
||
while (Serial.available())
|
||
Serial.read();
|
||
|
||
// Wait for an answer, just look at the first character
|
||
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;
|
||
}
|
||
|
||
|
||
|
||
|
||
|