wei zou
/
Mbed_Shield_GPRS_Call_Up_Test
this is a test code for Mbed_Shield_GPRS_Call_Up_Test
main.cpp@0:c527f1f10d44, 2013-11-20 (annotated)
- 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?
User | Revision | Line number | New 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 | } |