tester

Fork of GPRSInterface by -deleted-

Files at this revision

API Documentation at this revision

Comitter:
noahmilam
Date:
Fri Sep 25 03:35:58 2015 +0000
Parent:
9:5afc5b4e2df8
Commit message:
first commit

Changed in this revision

GPRS/GPRS.cpp Show annotated file Show diff for this revision Revisions of this file
GPRS/GPRS.h Show annotated file Show diff for this revision Revisions of this file
GPRS/modem/modem.cpp Show annotated file Show diff for this revision Revisions of this file
GPRS/modem/modem.h Show annotated file Show diff for this revision Revisions of this file
GPRSInterface.h Show annotated file Show diff for this revision Revisions of this file
diff -r 5afc5b4e2df8 -r 698c04e25c6b GPRS/GPRS.cpp
--- a/GPRS/GPRS.cpp	Fri Jul 25 10:42:42 2014 +0000
+++ b/GPRS/GPRS.cpp	Fri Sep 25 03:35:58 2015 +0000
@@ -42,7 +42,47 @@
     }
     return checkSIMStatus();
 }
+// added by Noah Milam
+void GPRS::start_server()
+{     
+     sendCmdResp("AT+CGATT?\r\n");
+     
+     sendCmdResp("AT+CIPSERVER=1,\"1234\"\r\n");
+     wait_for_sms();
+     store_response();
+     listen_server();
+}
+void GPRS::listen_server()
+{
+    gprs_response();
+}
+    
+void GPRS::send_SMS(char* IPAdress)
+{
+    printf("sending at command\n");
+    sendCmdAndWaitForResp("AT+CMGF=1\r\n","OK",DEFAULT_TIMEOUT,CMD);
+    wait(2);
+     //printf("\032\n");
+    sendCmdAndWaitForResp("AT+CMGS=\"+14358306480\"\r\n",">",DEFAULT_TIMEOUT,CMD);
+    printf("sent at cmgf\n");
+    wait(2);
+    //printf("032");
+    sendCmd(IPAdress); // sends the address 
+    sendCmd("\x1a");  // this is like pressing control - z to end the send command
+    wait(10);  // giving the send enough time to do its thing
+    printf("should have been received");
+}
 
+void GPRS::read_SMS()
+{
+ wait(1);
+    sendCmd("AT+CMGF=1\r\n");
+    wait(2);
+    sendCmd("AT+CMGL=\"ALL\"\r\n");
+    store_response();    
+}
+
+// end of what Noah Milam added
 bool GPRS::checkSIMStatus(void)
 {
     char gprsBuffer[32];
diff -r 5afc5b4e2df8 -r 698c04e25c6b GPRS/GPRS.h
--- a/GPRS/GPRS.h	Fri Jul 25 10:42:42 2014 +0000
+++ b/GPRS/GPRS.h	Fri Sep 25 03:35:58 2015 +0000
@@ -62,7 +62,13 @@
      * 	@return true if connected, false otherwise
      */
     bool join(void);
-
+	// added by Noah Milam
+	void start_server();
+	void send_SMS(char*);
+	void read_SMS();
+	void listen_server();
+	
+	// end of what Noah Milam added
     /** Disconnect the GPRS module from the network
      * 	@returns true if successful
      */
@@ -142,10 +148,10 @@
     int new_socket();
     uint16_t new_port();
     uint32_t _ip;
-
+	bool preInit();
 protected:
 
-    bool preInit();
+    
     bool checkSIMStatus(void);
     uint32_t str_to_ip(const char* str);
     static GPRS* inst;
diff -r 5afc5b4e2df8 -r 698c04e25c6b GPRS/modem/modem.cpp
--- a/GPRS/modem/modem.cpp	Fri Jul 25 10:42:42 2014 +0000
+++ b/GPRS/modem/modem.cpp	Fri Sep 25 03:35:58 2015 +0000
@@ -21,7 +21,51 @@
 */
 
 #include "modem.h"
+//Serial pc(USBTX,USBRX);
+SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "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;
+            }
+        }
+        if(buffer[0] != '\0'){
+            buffer[count] = '\0';
+            FILE *fp = fopen("/sd/mydir/chemData.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;
+        }    
+    }
+}
+//end added by Noah Milam
 char Modem::readByte(void)
 {
     return serialModem.getc();
@@ -63,7 +107,45 @@
 {
     serialModem.puts(cmd);
 }
+void Modem::sendCmdResp(const char* cmd)
+{
+    serialModem.puts(cmd);
+    getResp();
+}
+void Modem::getResp()
+{
+   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';
+       printf("%s \n",buffer);
+        for(int i = 0; i < count+2; i++) {
+                buffer[i] = NULL;
+            }
+            count = 0;
+}
 
+void Modem::store_response()
+{
+    timeCnt.start();
+     while(timeCnt.read() < 20)
+     { while(serialModem.readable()) 
+        {
+            char c = serialModem.getc();
+            printf(&c);
+        }
+    }
+    timeCnt.stop();
+    timeCnt.reset();
+}
 void Modem::sendATTest(void)
 {
     sendCmdAndWaitForResp("AT\r\n","OK",DEFAULT_TIMEOUT,CMD);
diff -r 5afc5b4e2df8 -r 698c04e25c6b GPRS/modem/modem.h
--- a/GPRS/modem/modem.h	Fri Jul 25 10:42:42 2014 +0000
+++ b/GPRS/modem/modem.h	Fri Sep 25 03:35:58 2015 +0000
@@ -24,7 +24,7 @@
 #define __MODEM_H__
 
 #include "mbed.h"
-
+#include "SDFileSystem.h"
 #define DEFAULT_TIMEOUT   	5
 
 enum DataType {
@@ -47,7 +47,13 @@
     Modem(PinName tx, PinName rx, int baudRate) : serialModem(tx, rx) {
         serialModem.baud(baudRate);
     };
-	
+    // added by Noah Milam
+    void sendCmdResp(const char*);
+	void getResp();
+	void gprs_response();
+	void store_response();
+	void wait_for_sms();
+	//
 	Serial serialModem;
 protected:
     /** Power on Modem
diff -r 5afc5b4e2df8 -r 698c04e25c6b GPRSInterface.h
--- a/GPRSInterface.h	Fri Jul 25 10:42:42 2014 +0000
+++ b/GPRSInterface.h	Fri Sep 25 03:35:58 2015 +0000
@@ -63,7 +63,9 @@
      *  @returns ip address
      */
     char* getIPAddress();
-
+    
+    
+    bool checkOK();
 private:
 
     char ip_string[20];