C027_Support library test
Dependencies: C027_Support
Dependents: C027_SupportTest_xively_location software_test_v1
Fork of Seeed_GPRS_Library_HelloWorld by
When running this example make sure you have:
- edited the SIM PIN, APN, USER and PASSWORD for you network operator
- have inserted a SIM card with enough credits
- the antennas connected
- have good reception (especially for GPS)
- installed the mbed CDC drivers if you run windows
- connected a terminal program, such as teraterm
The example will connect the modem to the network and attach it. I will place a post request to download a file from mbed website. It will do a USSD request and finally wait for incoming SMS. It will try to answer your SMS (try asking "where are you").
You should see a similar output in your preferred console program:
C027 Support Example Device Init Device Status: Device: SARA-G350 Power Save: Active SIM: Ready CCID: xxxxxxxxxxxxxxxxxxxxxxxxxxx IMEI: xxxxxxxxxxxxxxxxxxx IMSI: xxxxxxxxxxxxxxxxxxx Manufacturer: u-blox Model: SARA-G350 Version: 08.49 Network Check Network Status: Registration: Home Signal Strength: -87 dBm Operator: Swisscom Phone Number: +41xxxxxxxxxxx Network Join IP Address: xx.xx.xx.xx Socket Create Socket Connect Make a Http Post Request Socket Send Socket Recving Socket 0: 337 bytes pending Socket 0: 145 bytes pending Socket 0: closed by remote host Socket Recv "HTTP/1.1 200 OK Server: nginx/1.1.19 Date: Thu, 10 Apr 2014 13:09:02 GMT Content-Type: text/plain Connection: close Last-Modified: Fri, 27 Jul 2012 13:30:34 GMT Cache-Control: max-age=36000 Expires: Thu, 10 Apr 2014 20:43:53 GMT Vary: Accept-Encoding X-Mystery-Header: 260358892 X-be: web0_prod_sjc Age: 8709 Hello world! " Socket Close Socket Free Network Disconnect Send Ussd Command *#134# Got Ussd Answer: "UNKNOWN APPLICATION" Checking SMS and GPS GPS Location: 47.28xxx 8.56xxx GPS Location: 47.28xxx 8.56xxx ... GPS Location: 47.28xxx 8.56xxx GPS Location: 47.28xxx 8.56xxx Network Status: Registration: Home Signal Strength: -89 dBm Operator: Swisscom Phone Number: +41xxxxxxxxx GPS Location: 47.28xxx 8.56xxx GPS Location: 47.28xxx 8.56xxx ...
Diff: main.cpp
- Revision:
- 29:16f1037626e3
- Parent:
- 28:334263983fcd
- Child:
- 31:a07d0f76dc81
--- a/main.cpp Fri Dec 12 07:54:19 2014 +0000 +++ b/main.cpp Wed Nov 18 16:07:01 2015 +0000 @@ -31,6 +31,8 @@ #define PASSWORD NULL //------------------------------------------------------------------------------------ +//#define CELLOCATE + int main(void) { int ret; @@ -184,9 +186,25 @@ unsigned int i = 0xFFFFFFFF; const int wait = 100; bool abort = false; +#ifdef CELLOCATE + const int sensorMask = 3; // Hybrid: GNSS + CellLocate + const int timeoutMargin = 5; // seconds + const int submitPeriod = 60; // 1 minutes in seconds + const int targetAccuracy = 1; // meters + unsigned int j = submitPeriod * 1000/wait; + bool cellLocWait = false; + MDMParser::CellLocData loc; + + //Token can be released from u-blox site, when you got one replace "TOKEN" below + if (!mdm.cellLocSrvHttp("TOKEN")) + mdm.cellLocSrvUdp(); + mdm.cellLocConfigSensor(1); // Deep scan mode + //mdm.cellUnsolIndication(1); +#endif //DigitalOut led(LED1); while (!abort) { // led = !led; +#ifndef CELLOCATE while ((ret = gps.getMessage(buf, sizeof(buf))) > 0) { int len = LENGTH(ret); @@ -219,6 +237,27 @@ } } } +#endif +#ifdef CELLOCATE + if (mdmOk && (j++ == submitPeriod * 1000/wait)) { + j=0; + printf("CellLocate Request\r\n"); + mdm.cellLocRequest(sensorMask, submitPeriod-timeoutMargin, targetAccuracy); + cellLocWait = true; + } + if (cellLocWait && mdm.cellLocGet(&loc)){ + cellLocWait = false; + printf("CellLocate position received, sensor_used: %d, \r\n", loc.sensorUsed ); + printf(" latitude: %0.5f, longitude: %0.5f, altitute: %d\r\n", loc.latitue, loc.longitude, loc.altitutude); + if (loc.sensorUsed == 1) + printf(" uncertainty: %d, speed: %d, direction: %d, vertical_acc: %d, satellite used: %d \r\n", loc.uncertainty,loc.speed,loc.direction,loc.verticalAcc,loc.svUsed); + if (loc.sensorUsed == 1 || loc.sensorUsed == 2) + sprintf(link, "I am here!\n" + "https://maps.google.com/?q=%.5f,%.5f", loc.latitue, loc.longitude); + } + if (cellLocWait && (j%100 == 0 )) + printf("Waiting for CellLocate...\r\n"); +#endif if (mdmOk && (i++ == 5000/wait)) { i = 0; // check the network status