ok gps fails to lock for long time hard coding seems ok

Dependencies:   EthernetInterface GPS NTPClient SimpleSMTPClient mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 
00002 
00003 #include "mbed.h"
00004 #include "GPS.h"
00005 #include "rtos.h"
00006 #include <string>
00007 #include "EthernetInterface.h"
00008 #include "NTPClient.h"
00009 #include "SimpleSMTPClient.h"
00010 
00011 using namespace std;
00012 
00013 const string GoogleChunk = "https://maps.google.com/?q=";   // URL constant
00014 const string GoogleExtras = "";                               // Zoom Level (0-20)
00015 char GPRSbuffer[512];
00016 char NUMBER[13];    
00017 string MESSAGE;
00018 int index;
00019 int i = 0;
00020 float   latitude;
00021 float   longitude;
00022 char    message[256];
00023 
00024 GPS gps(p9,p10);
00025 DigitalOut myled1(LED1);
00026 DigitalOut myled2(LED2);
00027 DigitalOut myled3(LED3);
00028 DigitalOut myled4(LED4);
00029 
00030 void led_thread(void const *argument)                                  
00031 {
00032     while (true) {
00033         DigitalOut leds[4] = {myled1, myled2, myled3, myled4};
00034         int pattern[6][4] = {{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1},{0,0,1,0},{0,1,0,0}};
00035         int i=0;
00036         while(1) {
00037             leds[0] = pattern[i][0];
00038             leds[1] = pattern[i][1];
00039             leds[2] = pattern[i][2];
00040             leds[3] = pattern[i][3];
00041             wait(0.2);
00042             i++;
00043             i == 6? i=0:0;
00044         }
00045     }
00046 }
00047 
00048 
00049 #define DOMAIN "comcast.net"
00050 #define SERVER "smtp.comcast.net"
00051 #define PORT "587" //25 or 587,465(OutBound Port25 Blocking )
00052 #define USER "avnisha"
00053 #define PWD "Bubbles1231"
00054 #define FROM_ADDRESS "avnisha@comcast.net"
00055 #define TO_ADDRESS "avnisha@comcast.net" 
00056 #define SUBJECT "Test Mail"
00057 
00058 int sms_setup()
00059 {
00060     EthernetInterface eth;
00061     char strTimeMsg[16];
00062 
00063     printf("Setting up SMS ...\n");
00064     eth.init();
00065     eth.connect();
00066     printf("Connected OK\n");
00067 
00068     // IP Address 
00069     
00070     printf("IP Address is %s\n", eth.getIPAddress());
00071     printf("%s", eth.getIPAddress());
00072 
00073     // NTP Client
00074     printf("NTP setTime...\n");
00075     NTPClient ntp;
00076     ntp.setTime("pool.ntp.org");
00077     
00078     time_t ctTime = time(NULL)+32400; // JST
00079     printf("\nTime is now (JST): %d %s\n", ctTime, ctime(&ctTime));
00080     strftime(strTimeMsg,16,"%y/%m/%d %H:%M",localtime(&ctTime)); 
00081     printf("[%s]",strTimeMsg);
00082     
00083     return 1;
00084 
00085 }
00086 
00087 int sms_send(char *message) {
00088 
00089     SimpleSMTPClient smtp;
00090     int ret;
00091     char msg[]="Hello SimpleSMTPClient ";
00092     
00093     smtp.setFromAddress(FROM_ADDRESS);
00094     smtp.setToAddress(TO_ADDRESS);
00095     smtp.setMessage(SUBJECT,msg);
00096     smtp.addMessage(message);
00097     
00098     //
00099     // send as SMS text 
00100     //
00101     
00102     smtp.setFromAddress(FROM_ADDRESS);
00103     smtp.setToAddress("5105794214@txt.att.net");                // MODIFY for carrier
00104     smtp.setMessage(SUBJECT,msg);
00105     smtp.addMessage(message);
00106   
00107     ret = smtp.sendmail(SERVER, USER, PWD, DOMAIN,PORT,SMTP_AUTH_PLAIN);
00108  
00109     if (ret) {
00110         printf("SMS Transmission Error\r\n");
00111     } else {
00112         printf("SMS Transmission OK\r\n");
00113     }
00114  
00115     return 0;
00116 
00117 }
00118 
00119 int getGPS() {
00120 
00121 #define CANNED
00122 #ifdef CANNED
00123     printf("CANNED GPS\n\r");
00124     longitude = -201;
00125     latitude = 37;
00126     return 1;
00127 #endif
00128     if(gps.sample()) {
00129         printf("I'm at %f, %f\n", gps.longitude, gps.latitude);
00130     } else {
00131         printf("Oh Dear! No lock :(\n");
00132         return 0;
00133     }
00134        
00135     longitude = gps.longitude;
00136     latitude = gps.latitude;
00137     return 1;
00138 }
00139 
00140 void sendGPS()
00141 {
00142   
00143     sprintf(message, "Find me at....\n %s%f,%f%s", GoogleChunk, latitude, longitude, GoogleExtras);
00144     sms_send(message);
00145     
00146 }
00147 
00148 
00149 int main()
00150 {
00151     
00152     //Thread thread(led_thread);
00153     
00154     printf("Send GPS SMS message\r\n");
00155     sms_setup();
00156     
00157     // Get in a while loop
00158     
00159     while (1) {
00160         if (getGPS()) {
00161             sendGPS();
00162         }
00163         
00164         wait(600);
00165     }
00166 }
00167 
00168