source: rtos_arduino/trunk/arduino_lib/libraries/GSM/src/GSM3ShieldV1BandManagement.cpp@ 136

Last change on this file since 136 was 136, checked in by ertl-honda, 8 years ago

ライブラリとOS及びベーシックなサンプルの追加.

File size: 1.5 KB
Line 
1#include <GSM3ShieldV1BandManagement.h>
2
3GSM3ShieldV1BandManagement::GSM3ShieldV1BandManagement(bool trace): modem(trace)
4{
5 quectelStrings[UNDEFINED]="";
6 quectelStrings[EGSM_MODE]="\"EGSM_MODE\"";
7 quectelStrings[DCS_MODE]="\"DCS_MODE\"";
8 quectelStrings[PCS_MODE]="\"PCS_MODE\"";
9 quectelStrings[EGSM_DCS_MODE]="\"EGSM_DCS_MODE\"";
10 quectelStrings[GSM850_PCS_MODE]="\"GSM850_PCS_MODE\"";
11 quectelStrings[GSM850_EGSM_DCS_PCS_MODE]="\"GSM850_EGSM_DCS_PCS_MODE\"";
12}
13
14GSM3_NetworkStatus_t GSM3ShieldV1BandManagement::begin()
15{
16 // check modem response
17 modem.begin();
18
19 // reset hardware
20 modem.restartModem();
21
22 return IDLE;
23}
24
25String GSM3ShieldV1BandManagement::getBand()
26{
27 String modemResponse=modem.writeModemCommand("AT+QBAND?", 2000);
28
29 for(GSM3GSMBand i=GSM850_EGSM_DCS_PCS_MODE;i>UNDEFINED;i=(GSM3GSMBand)((int)i-1))
30 {
31 if(modemResponse.indexOf(quectelStrings[i])>=0)
32 return quectelStrings[i];
33 }
34
35 Serial.print("Unrecognized modem answer:");
36 Serial.println(modemResponse);
37
38 return "";
39}
40
41bool GSM3ShieldV1BandManagement::setBand(String band)
42{
43 String command;
44 String modemResponse;
45 bool found=false;
46
47 command="AT+QBAND=";
48 for(GSM3GSMBand i=EGSM_MODE;((i<=GSM850_EGSM_DCS_PCS_MODE)&&(!found));i=(GSM3GSMBand)((int)i+1))
49 {
50 String aux=quectelStrings[i];
51 if(aux.indexOf(band)>=0)
52 {
53 command+=aux;
54 found=true;
55 }
56 }
57
58 if(!found)
59 return false;
60 // Quad-band takes an awful lot of time
61 modemResponse=modem.writeModemCommand(command, 15000);
62
63 if(modemResponse.indexOf("QBAND")>=0)
64 return true;
65 else
66 return false;
67}
Note: See TracBrowser for help on using the repository browser.