Shows how to send and receive SMS messages using a Vodafone USB dongle.
Dependencies: VodafoneUSBModem mbed-rtos mbed
main.cpp@0:675760d79fa5, 2012-11-08 (annotated)
- Committer:
- ashleymills
- Date:
- Thu Nov 08 17:19:31 2012 +0000
- Revision:
- 0:675760d79fa5
- Child:
- 1:38c9e35517ea
Initial commit of SMS basics prog.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ashleymills | 0:675760d79fa5 | 1 | #include "mbed.h" |
ashleymills | 0:675760d79fa5 | 2 | #include "VodafoneUSBModem.h" |
ashleymills | 0:675760d79fa5 | 3 | |
ashleymills | 0:675760d79fa5 | 4 | #define TEST_NUMBER "07825608771" |
ashleymills | 0:675760d79fa5 | 5 | #define MAX_SMS_LEN 256 |
ashleymills | 0:675760d79fa5 | 6 | |
ashleymills | 0:675760d79fa5 | 7 | int main() { |
ashleymills | 0:675760d79fa5 | 8 | // construct serial object for console monitor |
ashleymills | 0:675760d79fa5 | 9 | Serial pc(USBTX, USBRX); |
ashleymills | 0:675760d79fa5 | 10 | pc.baud(115200); |
ashleymills | 0:675760d79fa5 | 11 | |
ashleymills | 0:675760d79fa5 | 12 | // construct modem object |
ashleymills | 0:675760d79fa5 | 13 | VodafoneUSBModem modem; |
ashleymills | 0:675760d79fa5 | 14 | |
ashleymills | 0:675760d79fa5 | 15 | // locals |
ashleymills | 0:675760d79fa5 | 16 | size_t smCount = 0; |
ashleymills | 0:675760d79fa5 | 17 | char numBuffer[32], msgBuffer[256]; |
ashleymills | 0:675760d79fa5 | 18 | |
ashleymills | 0:675760d79fa5 | 19 | // send a wake-up SMS |
ashleymills | 0:675760d79fa5 | 20 | pc.printf("Sending test SMS to %s\r\n",TEST_NUMBER); |
ashleymills | 0:675760d79fa5 | 21 | if(modem.sendSM(TEST_NUMBER,"Hello!")!=0) { |
ashleymills | 0:675760d79fa5 | 22 | pc.printf("Error sending test SMS!\r\n"); |
ashleymills | 0:675760d79fa5 | 23 | } |
ashleymills | 0:675760d79fa5 | 24 | |
ashleymills | 0:675760d79fa5 | 25 | // loop forever printing received SMSs |
ashleymills | 0:675760d79fa5 | 26 | while(1) { |
ashleymills | 0:675760d79fa5 | 27 | |
ashleymills | 0:675760d79fa5 | 28 | // get SM count |
ashleymills | 0:675760d79fa5 | 29 | if(modem.getSMCount(&smCount)!=0) { |
ashleymills | 0:675760d79fa5 | 30 | pc.printf("Error receiving SMS count!\r\n"); |
ashleymills | 0:675760d79fa5 | 31 | continue; |
ashleymills | 0:675760d79fa5 | 32 | } |
ashleymills | 0:675760d79fa5 | 33 | |
ashleymills | 0:675760d79fa5 | 34 | // if SMS in mailbox |
ashleymills | 0:675760d79fa5 | 35 | if(smCount>0) { |
ashleymills | 0:675760d79fa5 | 36 | |
ashleymills | 0:675760d79fa5 | 37 | // get SMS and sender |
ashleymills | 0:675760d79fa5 | 38 | if(modem.getSM(numBuffer,msgBuffer,MAX_SMS_LEN)!=0) { |
ashleymills | 0:675760d79fa5 | 39 | pc.printf("Error retrieving SMS from mailbox!\r\n"); |
ashleymills | 0:675760d79fa5 | 40 | continue; |
ashleymills | 0:675760d79fa5 | 41 | } |
ashleymills | 0:675760d79fa5 | 42 | |
ashleymills | 0:675760d79fa5 | 43 | // print SMS and sender |
ashleymills | 0:675760d79fa5 | 44 | pc.printf("SMS: \"%s\", From: \"%s\"\r\n",msgBuffer,numBuffer); |
ashleymills | 0:675760d79fa5 | 45 | |
ashleymills | 0:675760d79fa5 | 46 | } |
ashleymills | 0:675760d79fa5 | 47 | |
ashleymills | 0:675760d79fa5 | 48 | // wait 1 second |
ashleymills | 0:675760d79fa5 | 49 | Thread::wait(1000); |
ashleymills | 0:675760d79fa5 | 50 | } |
ashleymills | 0:675760d79fa5 | 51 | } |