Final Code 12/19/2015

Dependencies:   Chemical_Sensor_DMA GPRS DPG_FINAL MBed_Adafruit-GPS-Library SDFileSystem Socket mbed

Revision:
23:0ce1f69ea710
Parent:
22:f46576c40722
diff -r f46576c40722 -r 0ce1f69ea710 GPRS/modem/modem.cpp
--- a/GPRS/modem/modem.cpp	Sat Dec 19 21:48:00 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-/*
-  modem.cpp
-  2014 Copyright (c) Seeed Technology Inc.  All right reserved.
-
-  Author:lawliet zou(lawliet.zou@gmail.com)
-  2014-2-24
-
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 of the License, or (at your option) any later version.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
-
-#include "modem.h"
-//Serial pc(USBTX,USBRX);
-extern SDFileSystem sd; //MOSI, MISO, SCLK, SSEL. Tested on K64F, correct pins.
-AnalogIn LM35(PTB2);
-// added by Noah Milam
-void Modem::gprs_response()
-{
-    printf("\nlistening for client\n");
-    char buffer[100];
-    int count = 0;
-   
-    mkdir("/sd/mydir", 0777); // makes directory if needed
-    FILE *fp = fopen("/sd/mydir/chemData.csv", "w"); // creats new file to write
-    fprintf(fp,"phone Number,chem data, latitude,longitude\n"); // writes in a header for the table
-    fclose(fp); // closes file
-    
-    while(1)
-    { if(serialModem.readable()) {
-             
-            while(serialModem.readable()) {
-                char c = serialModem.getc();
-                buffer[count++] = c;
-                //pc.puts(&c);
-                if(count == 64) break;
-            }
-            
-            if(buffer[0] != '\0'){
-                buffer[count] = '\0';
-                FILE *fp = fopen("/sd/mydir/chemicalData.csv", "a"); // opens file to append it
-                fprintf(fp,"%s\n",buffer);//writes to file
-                fclose(fp); // closes file
-            
-                printf("%s \n",buffer); 
-                for(int i = 0; i < count+2; i++) {
-                    buffer[i] = NULL;
-                }
-            }
-            count = 0;
-        }
-    }
-}
-
-void Modem::wait_for_sms(){
-    printf("waiting for message\n");
-    while(1){
-        if(serialModem.readable()){
-            return;
-        }    
-    }
-}
-void Modem::get_message(){
-    char tempStr[30];
-    int count= 0;
-    int line_count = 0;
-    for(int i= 0;i < strlen(IPAdd);i++){
-            if(line_count == 3){
-                tempStr[count++] = IPAdd[i];    
-            }
-            if(IPAdd[i] == '\n'){
-                line_count++;
-            }
-    } 
-    tempStr[count - 2] = '\0';
-    count++;
-    strncpy(IPAdd, tempStr, count);
-   printf("IP Addr > %s \n", IPAdd);
-   printf("text size > %d\n",strlen(IPAdd));
- } 
-void Modem::storeResp(){
-    char buffer[100];
-     int count = 0;
-     timeCnt.start();
-     while(timeCnt.read() < 5)
-     {  
-       while(serialModem.readable()) {
-            char c = serialModem.getc();
-                buffer[count++] = c;
-        }
-    }
-    timeCnt.stop();
-    timeCnt.reset();
-    buffer[count] = '\0';
-
-     strncpy(IPAdd, buffer, count);
-    printf("original>> %s",IPAdd);
-   printf("size of text > %d",strlen(IPAdd));
-    count = 0;
-    get_message();
-}   
-
-char* Modem::get_server_IP(){
-    return IPAdd;
-}
-//end added by Noah Milam
-char Modem::readByte(void)
-{
-    return serialModem.getc();
-}
-
-bool Modem::readable()
-{
-    return serialModem.readable();
-}
-
-int Modem::readBuffer(char *buffer,int count, unsigned int timeOut)
-{
-    int i = 0;
-    timeCnt.start();
-    while(1) {
-        while (serialModem.readable()) {
-            char c = serialModem.getc();
-            buffer[i++] = c;
-            if(i >= count)break;
-        }
-        if(i >= count)break;
-        if(timeCnt.read() > timeOut) {
-            timeCnt.stop();
-            timeCnt.reset();
-            break;
-        }
-    }
-    return 0;
-}
-
-void Modem::cleanBuffer(char *buffer, int count)
-{
-    for(int i=0; i < count; i++) {
-        buffer[i] = '\0';
-    }
-}
-
-void Modem::sendCmd(const char* cmd)
-{
-    serialModem.puts(cmd);
-}
-void Modem::sendCmdResp(const char* cmd)
-{
-    serialModem.puts(cmd);
-    getResp();
-}
-void Modem::getResp()
-{
-   char buffer[1000];
-     int count = 0;
-     timeCnt.start();
-     while(timeCnt.read() < 5)
-     { while(serialModem.readable()) {
-            char c = serialModem.getc();
-            buffer[count++] = c;
-            }
-        }
-       timeCnt.stop();
-       timeCnt.reset();
-       buffer[count] = '\0';
-       printf("Response:--%s--\r\n",buffer);
-        for(int i = 0; i < count+2; i++) {
-                buffer[i] = NULL;
-            }
-            count = 0;
-}
-
-
-void Modem::sendATTest(void)
-{
-    sendCmdAndWaitForResp("AT\r\n","OK",DEFAULT_TIMEOUT,CMD);
-}
-
-bool Modem::respCmp(const char *resp, unsigned int len, unsigned int timeout)
-{
-    int sum=0;
-    timeCnt.start();
-
-    while(1) {
-        if(serialModem.readable()) {
-            char c = serialModem.getc();
-            sum = (c==resp[sum]) ? sum+1 : 0;
-            if(sum == len)break;
-        }
-        if(timeCnt.read() > timeout) {
-            timeCnt.stop();
-            timeCnt.reset();
-            return false;
-        }
-    }
-    timeCnt.stop();
-    timeCnt.reset();
-
-    return true;
-}
-
-int Modem::waitForResp(const char *resp, unsigned int timeout,DataType type)
-{
-    int len = strlen(resp);
-    int sum=0;
-    timeCnt.start();
-
-    while(1) {
-        if(serialModem.readable()) {
-            char c = serialModem.getc();         
-            sum = (c==resp[sum]) ? sum+1 : 0;
-            if(sum == len)break;
-        }
-        if(timeCnt.read() > timeout) {
-            timeCnt.stop();
-            timeCnt.reset();
-            return -1;
-        }
-    }
-    
-    timeCnt.stop();
-    timeCnt.reset();
-    
-    if(type == CMD) {
-        while(serialModem.readable()) {
-            char c = serialModem.getc();
-        }
-        
-    }
-    return 0;
-}
-
-int Modem::sendCmdAndWaitForResp(const char* data, const char *resp, unsigned timeout,DataType type)
-{
-    sendCmd(data);
-    int response = waitForResp(resp,timeout,type);
-    printf("Response: --%s--\r\n", resp);
-    return response;
-}