Prototyping the Adaptable Emergency System on an C027 board.

Dependencies:   C027_Support mbed

Fork of c027_prototyping by Philémon Favrod

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?

UserRevisionLine numberNew 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 }