Prototyping the Adaptable Emergency System on an C027 board.
Dependencies: C027_Support mbed
Fork of c027_prototyping by
sms_lib.cpp@6:58d48b90c9f7, 2014-09-30 (annotated)
- Committer:
- philemonf
- Date:
- Tue Sep 30 18:04:00 2014 +0000
- Revision:
- 6:58d48b90c9f7
- Parent:
- 5:6d0cdd715100
- Child:
- 10:b9ca12e9bb34
correct typos in sms_lib
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aroulin | 4:f1708f6ec905 | 1 | #include "MDM.h" |
aroulin | 4:f1708f6ec905 | 2 | |
aroulin | 4:f1708f6ec905 | 3 | #include "sms_lib.h" |
aroulin | 4:f1708f6ec905 | 4 | |
aroulin | 4:f1708f6ec905 | 5 | DigitalOut myled(LED); |
aroulin | 4:f1708f6ec905 | 6 | |
philemonf | 5:6d0cdd715100 | 7 | static MDMSerial *mdm; |
aroulin | 4:f1708f6ec905 | 8 | int init_sms_features(void) |
aroulin | 4:f1708f6ec905 | 9 | { |
philemonf | 5:6d0cdd715100 | 10 | mdm = new MDMSerial; |
philemonf | 5:6d0cdd715100 | 11 | |
aroulin | 4:f1708f6ec905 | 12 | static const char *SIMPIN = "5554"; |
aroulin | 4:f1708f6ec905 | 13 | |
aroulin | 4:f1708f6ec905 | 14 | MDMParser::DevStatus devStatus = {}; |
aroulin | 4:f1708f6ec905 | 15 | MDMParser::NetStatus netStatus = {}; |
philemonf | 6:58d48b90c9f7 | 16 | bool mdmOk = mdm->init(SIMPIN, &devStatus); |
philemonf | 6:58d48b90c9f7 | 17 | mdm->dumpDevStatus(&devStatus); |
aroulin | 4:f1708f6ec905 | 18 | |
aroulin | 4:f1708f6ec905 | 19 | if (mdmOk) { |
philemonf | 6:58d48b90c9f7 | 20 | mdmOk &= mdm->registerNet(&netStatus); |
philemonf | 6:58d48b90c9f7 | 21 | mdm->dumpNetStatus(&netStatus); |
aroulin | 4:f1708f6ec905 | 22 | } |
aroulin | 4:f1708f6ec905 | 23 | |
philemonf | 5:6d0cdd715100 | 24 | return mdmOk; |
philemonf | 5:6d0cdd715100 | 25 | } |
philemonf | 5:6d0cdd715100 | 26 | |
philemonf | 5:6d0cdd715100 | 27 | void close_sms_features(void) |
philemonf | 5:6d0cdd715100 | 28 | { |
philemonf | 5:6d0cdd715100 | 29 | if (mdm) { |
philemonf | 5:6d0cdd715100 | 30 | delete mdm; |
philemonf | 5:6d0cdd715100 | 31 | } |
philemonf | 5:6d0cdd715100 | 32 | } |
philemonf | 5:6d0cdd715100 | 33 | |
philemonf | 6:58d48b90c9f7 | 34 | int send_sms(struct sms_data_t *sms) |
philemonf | 5:6d0cdd715100 | 35 | { |
philemonf | 5:6d0cdd715100 | 36 | |
philemonf | 6:58d48b90c9f7 | 37 | if (!sms || !(sms->phone_num) || !(sms->msg_buf) || !mdm) { |
philemonf | 5:6d0cdd715100 | 38 | return 0; |
aroulin | 4:f1708f6ec905 | 39 | } |
philemonf | 5:6d0cdd715100 | 40 | |
philemonf | 5:6d0cdd715100 | 41 | return mdm->smsSend(sms->phone_num, sms->msg_buf); |
philemonf | 5:6d0cdd715100 | 42 | } |
philemonf | 5:6d0cdd715100 | 43 | |
philemonf | 5:6d0cdd715100 | 44 | |
philemonf | 6:58d48b90c9f7 | 45 | int read_sms(struct sms_data_t *sms) |
philemonf | 5:6d0cdd715100 | 46 | { |
philemonf | 6:58d48b90c9f7 | 47 | if (!sms || !(sms->phone_num) || !(sms->msg_buf) || !mdm) { |
philemonf | 5:6d0cdd715100 | 48 | return 0; |
philemonf | 5:6d0cdd715100 | 49 | } |
philemonf | 5:6d0cdd715100 | 50 | |
philemonf | 5:6d0cdd715100 | 51 | int ix[1]; |
philemonf | 6:58d48b90c9f7 | 52 | int numReceivedSMS = mdm->smsList("REC UNREAD", ix, 1); |
philemonf | 5:6d0cdd715100 | 53 | |
philemonf | 6:58d48b90c9f7 | 54 | if (numReceivedSMS > 1 && mdm->smsRead(ix[0], sms->phone_num, sms->msg_buf, sizeof(sms->msg_buf))) { |
philemonf | 6:58d48b90c9f7 | 55 | mdm->smsDelete(ix[0]); |
philemonf | 5:6d0cdd715100 | 56 | return 1; |
philemonf | 5:6d0cdd715100 | 57 | } |
philemonf | 5:6d0cdd715100 | 58 | |
philemonf | 5:6d0cdd715100 | 59 | return 0; |
aroulin | 4:f1708f6ec905 | 60 | } |