aboutsummaryrefslogtreecommitdiff
path: root/libraries/GSM/examples/Tools/BandManagement
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@bug.st>2013-04-03 13:51:04 +0200
committerCristian Maglie <c.maglie@bug.st>2013-04-03 13:51:04 +0200
commitee90e68e86dd61d86f5d17b69080338328765b22 (patch)
treee620c0edc2690ab789b665e567910640597aa6fe /libraries/GSM/examples/Tools/BandManagement
parent0ecdc5ebc96ad4c7c548c438a03d9ce00679db8b (diff)
parentf50c307be280dc6ece9e70c43b301c1db36291a0 (diff)
Merged 1.0.5
Merge remote-tracking branch 'arduino/master' into ide-1.5.x Conflicts: app/src/processing/app/Base.java build/shared/revisions.txt hardware/arduino/avr/cores/arduino/malloc.c hardware/arduino/cores/arduino/avr-libc/malloc.c hardware/arduino/cores/arduino/malloc.c todo.txt
Diffstat (limited to 'libraries/GSM/examples/Tools/BandManagement')
-rw-r--r--libraries/GSM/examples/Tools/BandManagement/BandManagement.ino120
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;
+}
+
+
+
+
+