diff options
Diffstat (limited to 'libraries/GSM/examples/Tools/BandManagement/BandManagement.ino')
-rw-r--r-- | libraries/GSM/examples/Tools/BandManagement/BandManagement.ino | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/libraries/GSM/examples/Tools/BandManagement/BandManagement.ino b/libraries/GSM/examples/Tools/BandManagement/BandManagement.ino new file mode 100644 index 0000000..84d8c71 --- /dev/null +++ b/libraries/GSM/examples/Tools/BandManagement/BandManagement.ino @@ -0,0 +1,120 @@ +/* + 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; +} + + + + + |