this is a test code for Mbed_Shield_GPRS_Call_Up_Test

Dependencies:   mbed

Committer:
lawliet
Date:
Wed Nov 20 08:55:24 2013 +0000
Revision:
0:c527f1f10d44
Initial Version Of Mbed Shield GPRS Call up Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lawliet 0:c527f1f10d44 1 #include "mbed.h"
lawliet 0:c527f1f10d44 2
lawliet 0:c527f1f10d44 3 Serial gprs(p28,p27); //Hardware Serial
lawliet 0:c527f1f10d44 4 //Serial gprs(p9,p10); //Software Serial
lawliet 0:c527f1f10d44 5 Serial pc(USBTX,USBRX);
lawliet 0:c527f1f10d44 6
lawliet 0:c527f1f10d44 7 Timer timeCnt;
lawliet 0:c527f1f10d44 8
lawliet 0:c527f1f10d44 9 int waitForResp(char *resp, int timeout)
lawliet 0:c527f1f10d44 10 {
lawliet 0:c527f1f10d44 11 int len = strlen(resp);
lawliet 0:c527f1f10d44 12 int sum=0;
lawliet 0:c527f1f10d44 13 timeCnt.start();
lawliet 0:c527f1f10d44 14
lawliet 0:c527f1f10d44 15 while(1) {
lawliet 0:c527f1f10d44 16 if(gprs.readable()) {
lawliet 0:c527f1f10d44 17 char c = gprs.getc();
lawliet 0:c527f1f10d44 18 sum = (c==resp[sum]) ? sum+1 : 0;
lawliet 0:c527f1f10d44 19 if(sum == len)break;
lawliet 0:c527f1f10d44 20 }
lawliet 0:c527f1f10d44 21 if(timeCnt.read() > timeout) { // time out
lawliet 0:c527f1f10d44 22 timeCnt.stop();
lawliet 0:c527f1f10d44 23 timeCnt.reset();
lawliet 0:c527f1f10d44 24 pc.printf("Error:time out");
lawliet 0:c527f1f10d44 25 return -1;
lawliet 0:c527f1f10d44 26 }
lawliet 0:c527f1f10d44 27 }
lawliet 0:c527f1f10d44 28 timeCnt.stop(); // stop timer
lawliet 0:c527f1f10d44 29 timeCnt.reset(); // clear timer
lawliet 0:c527f1f10d44 30 while(gprs.readable()) { // display the other thing..
lawliet 0:c527f1f10d44 31 char c = gprs.getc();
lawliet 0:c527f1f10d44 32 }
lawliet 0:c527f1f10d44 33
lawliet 0:c527f1f10d44 34 return 0;
lawliet 0:c527f1f10d44 35 }
lawliet 0:c527f1f10d44 36
lawliet 0:c527f1f10d44 37 int sendCmdAndWaitForResp(char *cmd, char *resp, int timeout)
lawliet 0:c527f1f10d44 38 {
lawliet 0:c527f1f10d44 39 gprs.puts(cmd);
lawliet 0:c527f1f10d44 40 return waitForResp(resp,timeout);
lawliet 0:c527f1f10d44 41 }
lawliet 0:c527f1f10d44 42
lawliet 0:c527f1f10d44 43 int callUp(char *number)
lawliet 0:c527f1f10d44 44 {
lawliet 0:c527f1f10d44 45 if(0 != sendCmdAndWaitForResp("AT+COLP=1\r\n","OK",5)) {
lawliet 0:c527f1f10d44 46 pc.printf("Error:COLP");
lawliet 0:c527f1f10d44 47 return -1;
lawliet 0:c527f1f10d44 48 }
lawliet 0:c527f1f10d44 49 wait(1);
lawliet 0:c527f1f10d44 50 gprs.printf("\r\nATD%s;\r\n",number);
lawliet 0:c527f1f10d44 51 return 0;
lawliet 0:c527f1f10d44 52 }
lawliet 0:c527f1f10d44 53
lawliet 0:c527f1f10d44 54 int main()
lawliet 0:c527f1f10d44 55 {
lawliet 0:c527f1f10d44 56 pc.baud(19200);
lawliet 0:c527f1f10d44 57 gprs.baud(19200);
lawliet 0:c527f1f10d44 58
lawliet 0:c527f1f10d44 59 for(int i = 0; i < 5; i++) {
lawliet 0:c527f1f10d44 60 wait(1);
lawliet 0:c527f1f10d44 61 printf("wait\n");
lawliet 0:c527f1f10d44 62 }
lawliet 0:c527f1f10d44 63 callUp("139****7382");
lawliet 0:c527f1f10d44 64 while(1);
lawliet 0:c527f1f10d44 65 }