Prototyping the Adaptable Emergency System on an C027 board.

Dependencies:   C027_Support mbed

Fork of c027_prototyping by Philémon Favrod

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers sms_lib.cpp Source File

sms_lib.cpp

00001 #include "sms_lib.h"
00002 
00003 DigitalOut myled(LED);
00004 
00005 static MDMSerial *mdm;
00006 
00007 int init_sms_features(MDMSerial *_mdm, char* SIMPIN)
00008 {
00009     mdm = _mdm;
00010     
00011     MDMParser::DevStatus devStatus = {};
00012     MDMParser::NetStatus netStatus = {};
00013     bool mdmOk = mdm->init(SIMPIN, &devStatus);
00014     mdm->dumpDevStatus(&devStatus);
00015     
00016     if (mdmOk) {
00017         mdmOk &= mdm->registerNet(&netStatus);
00018         mdm->dumpNetStatus(&netStatus);
00019     }
00020     
00021     return mdmOk;
00022 }
00023 
00024 int send_sms(struct sms_data_t *sms)
00025 {
00026     
00027     if (!sms || !(sms->phone_num) || !(sms->msg_buf) || !mdm) {
00028         return 0;
00029     }
00030     
00031     return mdm->smsSend(sms->phone_num, sms->msg_buf);
00032 }
00033 
00034 
00035 int read_sms(struct sms_data_t *sms)
00036 {
00037     if (!sms || !(sms->phone_num) || !(sms->msg_buf) || !mdm) {
00038         return 0;
00039     }
00040     
00041     int ix[1];
00042     int numReceivedSMS = mdm->smsList("REC UNREAD", ix, 1);
00043     
00044     if (numReceivedSMS >= 1 && mdm->smsRead(ix[0], sms->phone_num, sms->msg_buf, sizeof(sms->msg_buf))) {
00045         mdm->smsDelete(ix[0]);
00046         return 1;
00047     }
00048     
00049     return 0;
00050 }