GPS_grupo8

Dependencies:   GPS7 mbed

Files at this revision

API Documentation at this revision

Comitter:
obifandres
Date:
Sun May 24 16:54:30 2015 +0000
Commit message:
GPS_Grupo8

Changed in this revision

GPS_G.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/GPS_G.lib	Sun May 24 16:54:30 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/tony63/code/GPS7/#8d7c7165ffe2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun May 24 16:54:30 2015 +0000
@@ -0,0 +1,221 @@
+#include "mbed.h"
+#include "stdio.h"
+#include "string.h"
+#include "GPS.h"
+#include "stdlib.h"
+ 
+ 
+Serial gsm(PTE0,PTE1);   // Se declaran puertos para la comunicacíón GSM
+Serial pc(USBTX,USBRX);  // Puerto seríal de la Freescale para el envio de datos
+GPS gps(PTE22, PTE23);
+ 
+
+char buf[100], bufm[18], tam[2], pdu[]=""; // Variables para almacenar las cadenas de caracteres
+char v1[]="";
+char v2[]="";
+char de[255];
+char ds[255];
+float chk,Long,Lat;
+int i,j,k,Lout,Lin;
+
+ 
+char trama[100]={"0791750330960007040AA1137356899000005150323123200A03C3B71C"}; // Definicion de la trama entrante PDU solo para pruebas
+char Link[]={"http://maps.google.com/?q="};                 // Trama base
+char ENV[]="0011000A9113735689900000AA";
+ 
+int main() {
+    // Configuración para la comunicacion con el celular
+    
+    gsm.baud(9600);                // Configuracion de los baudios
+    gsm.format(8,Serial::None,1);    
+    
+    pc.printf("Enviamos AT \n");
+    gsm.printf("AT\r\n");  
+    gsm.scanf("%s",buf);
+ 
+    wait(1);
+    
+     
+     gsm.printf("AT+CNMI=1,1\r\n");
+     pc.printf("AT+CNMI=1,1\r\n");
+     gsm.scanf("%s",buf);
+     gsm.scanf("%s",buf);
+     pc.printf(">%s\n",buf); 
+     wait(1); 
+    
+    
+     gsm.printf("AT+CPMS= \"SM\",\"SM\",\"SM\"\r\n");
+     pc.printf("AT+CPMS= \"SM\",\"SM\",\"SM\"\n");
+     gsm.scanf("%s",buf);
+     gsm.scanf("%s",buf);
+     gsm.scanf("%s",buf);
+     pc.printf(">%s\n",buf); 
+     wait(1); 
+ 
+        
+     gsm.printf("AT+CMGF=0\r\n");
+     pc.printf("AT+CMGF=0\r\n");
+     gsm.scanf("%s",buf);
+     gsm.scanf("%s",buf);
+     pc.printf(">%s\n",buf); 
+       
+     gsm.printf("CBST=0,0,1\r\n");
+     
+     
+    while(1) {
+    
+     pc.printf("\n Esperando Mensaje \n");     
+     gsm.scanf("%s",buf);
+     pc.printf("%s",buf);
+     i = strlen(buf);
+     if(i>3){ 
+       pc.printf("Llego un Mensaje \n"); 
+        gsm.printf("AT+CMGR=1 \r\n");  // Se lee el menjsae que ente en el indice 1.
+        gsm.scanf("%s",buf);
+        gsm.scanf("%s",buf);
+        gsm.scanf("%s",buf);
+        gsm.scanf("%s",buf);
+        pc.printf(">%s",buf);        //Mostrar la cadena en PDU del mensaje leido.
+        
+ 
+        i = strlen(buf);
+        
+       if(i==56){
+           pc.printf("\n LLego on");
+          
+           gsm.printf("AT+CMGD=1\r\n"); 
+           gsm.scanf("%s",buf);
+           pc.printf("\n%s\n",buf);
+             
+           }
+           
+       if(i==58){
+            pc.printf("\n LLego off");
+            
+             gsm.printf("AT+CMGD=1\r\n"); 
+             gsm.scanf("%s",buf);
+             pc.printf("\n%s\n",buf);
+            
+           }
+           
+       if(i==62){
+        
+      
+        gsm.baud(9600);
+        pc.printf("gsm.baud(9600)\n"); 
+ 
+    
+    gsm.format(8,Serial::None,1);
+    pc.printf("gsm.format(8,Serial::None,1)\n"); 
+ 
+    pc.printf("Enviamos AT\n");
+    gsm.printf("AT\r\n");  
+    gsm.scanf("%s",buf);
+    gsm.scanf("%s",buf);
+    pc.printf(">%s\n",buf);
+      
+    gsm.printf("AT+CMGR=1\r\n");  // Se lee el menjsae que ente en el indice 1.
+    pc.printf("AT+CMGR=1\r\n");
+    gsm.scanf("%s",buf);
+    gsm.scanf("%s",buf);
+    gsm.scanf("%s",buf);
+    gsm.scanf("%s",buf);
+    pc.printf(">%s\n",buf);
+    
+    
+    pc.printf("Esperando por coordenadas del GPS \n");
+           
+           while(1) {
+        i=0;
+        if(gps.sample()& i==0) {
+             
+             pc.printf("Toma de datos gps y concatenacion \n");
+            //Toma de datos del gps y concatenacion para armar los datos.
+        
+              Long=gps.longitude;
+              Lat=gps.latitude;    
+              sprintf(v1, "%f", Lat);
+              strcat(Link,v1);
+              strcat(Link,",");
+          
+               wait(3);
+              sprintf(v2, "%f", Long);
+              strcat(Link,v2);
+              strcat(de,Link);
+              pc.printf("%s\n",Link);
+                           
+                           
+            //Conversion  a formatdo PDU
+            
+         Lin=strlen(de);
+         
+         j=0;k=0;
+         for (i=0;i < Lin;i++){
+         ds[i]=de[i+k]>>j | de[i+k+1]<<(7-j);
+         if (ds[i]==0x00) {Lout=i; goto salir;}
+         j++;
+         if (j==7) {j=0;k++;} // se chequea que ya se acabaron los bits en un ciclo de conversion.
+         }
+ 
+         //--------------------------------------------------------------
+salir:   pc.printf("de\n");
+         for (i=0;i < Lin;i++){
+         pc.printf("%X",de[i]);
+         }
+         pc.printf("\n ds \n");
+         for (i=0;i<Lout;i++){
+         pc.printf("%02X",ds[i]&0x000000FF);
+         }
+         
+         pc.printf("\n Lout:%d,Lin:%d\r\n",Lout,strlen(de));
+                   
+                 
+          
+            // Enviamos el mensaje
+          
+            pc.printf("Comienza SMS \n");
+           
+             
+            gsm.printf("AT+CMGS=53\r\n");
+            pc.printf("\n AT+CMGS=53\r\n");
+            wait(0.5);
+           
+           gsm.printf("0011000A9113735689900000AA");
+            pc.printf("0011000A9113735689900000AA");
+           wait(0.5);
+           gsm.printf("%2X",Lout);
+           pc.printf("%2X",Lout);    
+          
+              
+            for (i=0;i < Lout;i++){
+             gsm.printf("%02X",ds[i]&0x000000FF);  
+             pc.printf("%02X",ds[i]&0x000000FF);
+             wait(0.3);       
+         } 
+            gsm.putc((char)0x1A);
+            
+            gsm.scanf("%s",buf);
+            gsm.scanf("%s",buf);
+           
+            pc.printf("\n enviando mensaje y leyendo modem %s \n",buf);
+            i=1;
+            gsm.printf("AT+CMGD=1\r\n"); 
+            pc.printf("\n sale del while para lectura de gps \n ");
+            gsm.scanf("%s",buf);
+            pc.printf(">%s",buf);
+            goto s;
+        } 
+        
+    
+    
+           }
+       
+    }// SMS
+    
+    s: 
+       gsm.scanf("%s",buf);
+       pc.printf("%s",buf);
+       
+    }   
+ }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun May 24 16:54:30 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/dbbf35b96557
\ No newline at end of file