GPS-Tracking-Velo

Dependencies:   MODSERIAL SDBlockDevice GPS

Forschungsstand und Theoretische Grundlage

Die Bestandteile der Hardware, die das Projekt gebraucht wird, bestehen aus drei Komponente ein Mikrocontroller Board, eine GPS Antenne und ein SIM Modul. GPS basiert auf Satelliten, die mit codierten Radiosignalen ständig ihre aktuelle Position und genaue Uhrzeit ausstrahlen. Aus den Signallaufzeiten können eine GPS Antenne ihre eigene Position und Geschwindigkeit berechnen. Diese GPS Antenne sollte die Daten der Objektposition aus Satelliten auf dem Board gespeichert werden. Diese Daten wurden noch weiter durch eine SIM Module nach GMS Turm und dann per SMS Nachrichten an Handy gesendet. Möglicherweise können diese Daten auch an Webanwendung nach der Sendung an GMS Turm geschickt werden.

https://os.mbed.com/media/uploads/QuangAnhLe/picture1.png

Committer:
QuangAnhLe
Date:
Thu Apr 18 15:17:23 2019 +0000
Revision:
3:eb739df911ef
Parent:
2:3d3d272d2df2
Child:
4:793221f865f6
SMS- erledig

Who changed what in which revision?

UserRevisionLine numberNew contents of line
QuangAnhLe 0:ee1ae011cba6 1 #include "mbed.h"
QuangAnhLe 1:2f617b92078b 2 #include "GPS.h"
QuangAnhLe 1:2f617b92078b 3 #include <iostream>
QuangAnhLe 1:2f617b92078b 4 #include <sstream>
QuangAnhLe 1:2f617b92078b 5 #include <bitset>
QuangAnhLe 1:2f617b92078b 6 #include <string>
QuangAnhLe 0:ee1ae011cba6 7 #include "FATFileSystem.h"
QuangAnhLe 0:ee1ae011cba6 8 //#include "HeapBlockDevice.h"
QuangAnhLe 0:ee1ae011cba6 9 #include "SDBlockDevice.h"
QuangAnhLe 0:ee1ae011cba6 10 #include <stdio.h>
QuangAnhLe 0:ee1ae011cba6 11 #include <errno.h>
QuangAnhLe 0:ee1ae011cba6 12
QuangAnhLe 0:ee1ae011cba6 13 //HeapBlockDevice bd(128 * 512, 512);
QuangAnhLe 0:ee1ae011cba6 14 //SDBlockDevice bd(PinName mosi, PinName miso, PinName sclk, PinName cs);
QuangAnhLe 0:ee1ae011cba6 15 SDBlockDevice bd(D11, D12, D13, D10);
QuangAnhLe 1:2f617b92078b 16 Serial pc(PA_2,PA_3);
QuangAnhLe 2:3d3d272d2df2 17 Serial SIM900(PA_9,PA_10); // (TX,RX)
QuangAnhLe 1:2f617b92078b 18 GPS gps (PA_11,PA_12);
QuangAnhLe 0:ee1ae011cba6 19
QuangAnhLe 3:eb739df911ef 20 const string GoogleChunk = "https://maps.google.com.au/maps?q="; // URL constant
QuangAnhLe 3:eb739df911ef 21 const string GoogleExtras = "&z=20"; // Zoom Level
QuangAnhLe 3:eb739df911ef 22 char GPRSbuffer[512];
QuangAnhLe 3:eb739df911ef 23 char NUMBER[14];
QuangAnhLe 3:eb739df911ef 24 string MESSAGE;
QuangAnhLe 3:eb739df911ef 25 int index;
QuangAnhLe 3:eb739df911ef 26 int i=0;
QuangAnhLe 3:eb739df911ef 27
QuangAnhLe 0:ee1ae011cba6 28 FATFileSystem fs("fs");
QuangAnhLe 2:3d3d272d2df2 29 string result;
QuangAnhLe 2:3d3d272d2df2 30 char x;
QuangAnhLe 0:ee1ae011cba6 31
QuangAnhLe 0:ee1ae011cba6 32 void return_error(int ret_val){
QuangAnhLe 0:ee1ae011cba6 33 if (ret_val)
QuangAnhLe 0:ee1ae011cba6 34 printf("Failure. %d\r\n", ret_val);
QuangAnhLe 0:ee1ae011cba6 35 else
QuangAnhLe 0:ee1ae011cba6 36 printf("done.\r\n");
QuangAnhLe 0:ee1ae011cba6 37 }
QuangAnhLe 1:2f617b92078b 38
QuangAnhLe 0:ee1ae011cba6 39 void errno_error(void* ret_val){
QuangAnhLe 0:ee1ae011cba6 40 if (ret_val == NULL)
QuangAnhLe 0:ee1ae011cba6 41 printf(" Failure. %d \r\n", errno);
QuangAnhLe 0:ee1ae011cba6 42 else
QuangAnhLe 0:ee1ae011cba6 43 printf(" done.\r\n");
QuangAnhLe 0:ee1ae011cba6 44 }
QuangAnhLe 2:3d3d272d2df2 45
QuangAnhLe 2:3d3d272d2df2 46 void clearString()
QuangAnhLe 2:3d3d272d2df2 47 {
QuangAnhLe 2:3d3d272d2df2 48 result.clear();
QuangAnhLe 2:3d3d272d2df2 49 }
QuangAnhLe 2:3d3d272d2df2 50
QuangAnhLe 2:3d3d272d2df2 51 void callback_rx() {
QuangAnhLe 2:3d3d272d2df2 52
QuangAnhLe 2:3d3d272d2df2 53 while (SIM900.readable()) {
QuangAnhLe 2:3d3d272d2df2 54 x = SIM900.getc();
QuangAnhLe 2:3d3d272d2df2 55 result += x;
QuangAnhLe 2:3d3d272d2df2 56 pc.putc(x); // print the answer from SIM900
QuangAnhLe 2:3d3d272d2df2 57
QuangAnhLe 2:3d3d272d2df2 58 }
QuangAnhLe 2:3d3d272d2df2 59 }
QuangAnhLe 2:3d3d272d2df2 60 void sendSMS()
QuangAnhLe 2:3d3d272d2df2 61 {
QuangAnhLe 2:3d3d272d2df2 62 clearString();
QuangAnhLe 2:3d3d272d2df2 63 SIM900.printf("AT+CMGF=1\r"); //at command for send sms
QuangAnhLe 2:3d3d272d2df2 64 wait_ms(1000);
QuangAnhLe 2:3d3d272d2df2 65 clearString();
QuangAnhLe 2:3d3d272d2df2 66 wait_ms(1000);
QuangAnhLe 2:3d3d272d2df2 67 SIM900.printf("AT+CMGS=");
QuangAnhLe 2:3d3d272d2df2 68 SIM900.putc('"');
QuangAnhLe 2:3d3d272d2df2 69 SIM900.printf("+4917645651571");
QuangAnhLe 2:3d3d272d2df2 70 SIM900.putc('"');
QuangAnhLe 2:3d3d272d2df2 71 SIM900.printf("\r");
QuangAnhLe 2:3d3d272d2df2 72 wait_ms(1000);
QuangAnhLe 3:eb739df911ef 73 //SIM900.printf("Latitude: %0.6f, Longitude: %0.6f,Altitude: %0.3f",gps.latitude,gps.longitude,gps.altitude);
QuangAnhLe 3:eb739df911ef 74 SIM900.printf("Find me at....\n %s%f,%f%s", GoogleChunk, gps.latitude, gps.longitude, GoogleExtras);
QuangAnhLe 2:3d3d272d2df2 75 wait_ms(1000);
QuangAnhLe 2:3d3d272d2df2 76 SIM900.putc(0x1A);
QuangAnhLe 3:eb739df911ef 77 wait_ms(30000);
QuangAnhLe 3:eb739df911ef 78 //clearString();
QuangAnhLe 3:eb739df911ef 79 // Set message mode to ASCII
QuangAnhLe 3:eb739df911ef 80 /*SIM900.printf("AT+CMGF=1\r\n");
QuangAnhLe 3:eb739df911ef 81 wait(1);
QuangAnhLe 3:eb739df911ef 82 //clearString();
QuangAnhLe 3:eb739df911ef 83 // Set the phone number
QuangAnhLe 3:eb739df911ef 84 SIM900.printf("AT+CMGS=\"%s\"\r\n", +4917645651571);
QuangAnhLe 3:eb739df911ef 85 wait(1);
QuangAnhLe 3:eb739df911ef 86 // Write out the GPS data in a message
QuangAnhLe 3:eb739df911ef 87 SIM900.printf("Latitude: %0.6f, Longitude: %0.6f,Altitude: %0.3f",gps.latitude,gps.longitude,gps.altitude);
QuangAnhLe 3:eb739df911ef 88 wait(1);
QuangAnhLe 3:eb739df911ef 89 // Send it...
QuangAnhLe 3:eb739df911ef 90 SIM900.putc(0x1A);
QuangAnhLe 3:eb739df911ef 91 wait(4);
QuangAnhLe 3:eb739df911ef 92 SIM900.printf("AT+CMGF=1\r\n");
QuangAnhLe 3:eb739df911ef 93 wait(1);
QuangAnhLe 3:eb739df911ef 94 SIM900.printf("AT+CMGS=\"%s\"\r\n", +4917645651571);
QuangAnhLe 3:eb739df911ef 95 wait(1);
QuangAnhLe 3:eb739df911ef 96 SIM900.printf("Find me at....\n %s%f,%f%s", GoogleChunk, gps.latitude, gps.longitude, GoogleExtras);
QuangAnhLe 3:eb739df911ef 97 wait(1);
QuangAnhLe 3:eb739df911ef 98 SIM900.putc(0x1A);
QuangAnhLe 3:eb739df911ef 99 wait(1);*/
QuangAnhLe 3:eb739df911ef 100 }
QuangAnhLe 3:eb739df911ef 101
QuangAnhLe 3:eb739df911ef 102 void parseSMS()
QuangAnhLe 3:eb739df911ef 103 {
QuangAnhLe 3:eb739df911ef 104 while(SIM900.readable())
QuangAnhLe 3:eb739df911ef 105 {
QuangAnhLe 3:eb739df911ef 106 // Assign it to 'c'
QuangAnhLe 3:eb739df911ef 107 char c = SIM900.getc();
QuangAnhLe 3:eb739df911ef 108 // Replace all returns and or line endings with money
QuangAnhLe 3:eb739df911ef 109 if(c == '\r' || c == '\n') c= '$';
QuangAnhLe 3:eb739df911ef 110 // Put it in the array
QuangAnhLe 3:eb739df911ef 111 GPRSbuffer[i] =c;
QuangAnhLe 3:eb739df911ef 112 // Repeat if possible
QuangAnhLe 3:eb739df911ef 113 i++;
QuangAnhLe 3:eb739df911ef 114
QuangAnhLe 3:eb739df911ef 115 }
QuangAnhLe 3:eb739df911ef 116 // Uncomment the following to debug
QuangAnhLe 3:eb739df911ef 117 // pc.printf("\nbuffer = %s", GPRSbuffer);
QuangAnhLe 3:eb739df911ef 118
QuangAnhLe 3:eb739df911ef 119 // If we get an SMS notification
QuangAnhLe 3:eb739df911ef 120 if (sscanf(GPRSbuffer,"$$+CMTI: \"SM\",%d", &index)>0)
QuangAnhLe 3:eb739df911ef 121 {
QuangAnhLe 3:eb739df911ef 122 pc.printf("\nSMS recieved @ index [%d]", index);
QuangAnhLe 3:eb739df911ef 123 memset(GPRSbuffer, '0', 511);
QuangAnhLe 3:eb739df911ef 124 i=0;
QuangAnhLe 3:eb739df911ef 125 pc.printf("\nOpening message...");
QuangAnhLe 3:eb739df911ef 126 // ask GPRS to read the message
QuangAnhLe 3:eb739df911ef 127 SIM900.printf("AT+CMGR=%d\r\n", index);
QuangAnhLe 3:eb739df911ef 128 }
QuangAnhLe 3:eb739df911ef 129 if (strncmp(GPRSbuffer, "$$+CMGR",7) == 0 ) // compared return value = 0 then it indicates str1 is equal to str2
QuangAnhLe 3:eb739df911ef 130 {
QuangAnhLe 3:eb739df911ef 131 // Get the number out
QuangAnhLe 3:eb739df911ef 132 char *n = strstr(GPRSbuffer,"+49"); // finds the first occurrence of the substring "+49" in the string GPRSbuffer +4917645651571
QuangAnhLe 3:eb739df911ef 133 strncpy(NUMBER, n, 14); // this funtion returns the final copy of the copied string
QuangAnhLe 3:eb739df911ef 134 char * pch;
QuangAnhLe 3:eb739df911ef 135 pch = strtok (GPRSbuffer, "$$"); // return a pointer to the first token found in the string. A null pointer is returned if there are no tokens left to retrieve
QuangAnhLe 3:eb739df911ef 136 pch = strtok (NULL, "$$");
QuangAnhLe 3:eb739df911ef 137 MESSAGE = pch;
QuangAnhLe 3:eb739df911ef 138 pc.printf("\nDone! ");
QuangAnhLe 3:eb739df911ef 139 // Send the location
QuangAnhLe 3:eb739df911ef 140 sendSMS();
QuangAnhLe 3:eb739df911ef 141 // Reset the GPRS buffer
QuangAnhLe 3:eb739df911ef 142 memset(GPRSbuffer, '0', 511);
QuangAnhLe 3:eb739df911ef 143 // Reset the char counter
QuangAnhLe 3:eb739df911ef 144 i = 0;
QuangAnhLe 3:eb739df911ef 145 }
QuangAnhLe 3:eb739df911ef 146 if (strncmp(GPRSbuffer, "$$+CMGS",7) == 0) {
QuangAnhLe 3:eb739df911ef 147 // Reset the GPRS buffer
QuangAnhLe 3:eb739df911ef 148 memset(GPRSbuffer, '0', 511);
QuangAnhLe 3:eb739df911ef 149 // Reset the char counter
QuangAnhLe 3:eb739df911ef 150 i = 0;
QuangAnhLe 3:eb739df911ef 151 }
QuangAnhLe 3:eb739df911ef 152 if (strncmp(GPRSbuffer, "$$RING",6) == 0) {
QuangAnhLe 3:eb739df911ef 153 SIM900.printf("ATH0\r\n");
QuangAnhLe 3:eb739df911ef 154 pc.printf("\nCall bounced!...");
QuangAnhLe 3:eb739df911ef 155 // Do the send SMS routine...
QuangAnhLe 3:eb739df911ef 156 sendSMS();
QuangAnhLe 3:eb739df911ef 157 // Reset the GPRS buffer
QuangAnhLe 3:eb739df911ef 158 memset(GPRSbuffer, '0', 511);
QuangAnhLe 3:eb739df911ef 159 // Reset the char counter
QuangAnhLe 3:eb739df911ef 160 i = 0;
QuangAnhLe 3:eb739df911ef 161 }
QuangAnhLe 3:eb739df911ef 162 pc.printf("\n\n\nWaiting for SMS or call...\n");
QuangAnhLe 3:eb739df911ef 163 pc.printf("\nThe last number was : %s", NUMBER);
QuangAnhLe 3:eb739df911ef 164 pc.printf("\nThe last message was : %s", MESSAGE);
QuangAnhLe 3:eb739df911ef 165 // Reset the GPRS buffer
QuangAnhLe 3:eb739df911ef 166 memset(GPRSbuffer, '0', 511);
QuangAnhLe 3:eb739df911ef 167 // Reset the char counter
QuangAnhLe 3:eb739df911ef 168 i = 0;
QuangAnhLe 2:3d3d272d2df2 169 }
QuangAnhLe 1:2f617b92078b 170
QuangAnhLe 0:ee1ae011cba6 171 int main() {
QuangAnhLe 2:3d3d272d2df2 172 /**/
QuangAnhLe 3:eb739df911ef 173 memset(GPRSbuffer, '0', 511);
QuangAnhLe 2:3d3d272d2df2 174 pc.printf("\r\n GSM 900 Test\n");
QuangAnhLe 3:eb739df911ef 175 //SIM900.attach(&callback_rx);
QuangAnhLe 2:3d3d272d2df2 176 SIM900.baud(9600);
QuangAnhLe 2:3d3d272d2df2 177 wait_ms(100);
QuangAnhLe 3:eb739df911ef 178 SIM900.printf("ATE0\r\n");
QuangAnhLe 3:eb739df911ef 179 pc.printf("\nGPRS echo [OFF]\n");
QuangAnhLe 3:eb739df911ef 180 wait(1);
QuangAnhLe 3:eb739df911ef 181 // Delete all messages on the sim card
QuangAnhLe 3:eb739df911ef 182 SIM900.printf("AT+CMGDA=\"DEL ALL\"\r\n");
QuangAnhLe 3:eb739df911ef 183 wait(1);
QuangAnhLe 3:eb739df911ef 184 pc.printf("\nMessages Cleared...\n");
QuangAnhLe 3:eb739df911ef 185 wait(1);
QuangAnhLe 3:eb739df911ef 186 //sendSMS();
QuangAnhLe 2:3d3d272d2df2 187 wait_ms(100);
QuangAnhLe 2:3d3d272d2df2 188 /**/
QuangAnhLe 0:ee1ae011cba6 189 int error = 0;
QuangAnhLe 0:ee1ae011cba6 190 printf("Welcome to the filesystem example.\r\n"
QuangAnhLe 0:ee1ae011cba6 191 "Formatting a FAT, RAM-backed filesystem. ");
QuangAnhLe 0:ee1ae011cba6 192 error = FATFileSystem::format(&bd);
QuangAnhLe 0:ee1ae011cba6 193 return_error(error);
QuangAnhLe 1:2f617b92078b 194
QuangAnhLe 0:ee1ae011cba6 195 printf("Mounting the filesystem on \"/fs\". ");
QuangAnhLe 0:ee1ae011cba6 196 error = fs.mount(&bd);
QuangAnhLe 0:ee1ae011cba6 197 return_error(error);
QuangAnhLe 1:2f617b92078b 198
QuangAnhLe 0:ee1ae011cba6 199 printf("Opening a new file, numbers.txt.");
QuangAnhLe 2:3d3d272d2df2 200 FILE* fd = fopen("/fs/numbers.txt", "a+");
QuangAnhLe 0:ee1ae011cba6 201 errno_error(fd);
QuangAnhLe 1:2f617b92078b 202
QuangAnhLe 2:3d3d272d2df2 203 //for (int i = 0; i < 20; i++){
QuangAnhLe 2:3d3d272d2df2 204 // printf("Writing decimal numbers to a file (%d/20)\r", i);
QuangAnhLe 2:3d3d272d2df2 205 //fprintf(fd, "%d\r\n", i);
QuangAnhLe 2:3d3d272d2df2 206 //}
QuangAnhLe 2:3d3d272d2df2 207 fprintf(fd,"Latitude, Longitude,Altitude,Speed in knots, Date, Time,Number of satellites being tracked, IDs of satellites ins use, Fix, Fix mode\r\n");
QuangAnhLe 1:2f617b92078b 208 //printf("Writing decimal numbers to a file (20/20) done.\r\n");
QuangAnhLe 1:2f617b92078b 209
QuangAnhLe 0:ee1ae011cba6 210 printf("Closing file.");
QuangAnhLe 0:ee1ae011cba6 211 fclose(fd);
QuangAnhLe 0:ee1ae011cba6 212 printf(" done.\r\n");
QuangAnhLe 1:2f617b92078b 213
QuangAnhLe 0:ee1ae011cba6 214 printf("Re-opening file read-only.");
QuangAnhLe 0:ee1ae011cba6 215 fd = fopen("/fs/numbers.txt", "r");
QuangAnhLe 0:ee1ae011cba6 216 errno_error(fd);
QuangAnhLe 1:2f617b92078b 217
QuangAnhLe 0:ee1ae011cba6 218 printf("Dumping file to screen.\r\n");
QuangAnhLe 0:ee1ae011cba6 219 char buff[16] = {0};
QuangAnhLe 0:ee1ae011cba6 220 while (!feof(fd)){
QuangAnhLe 0:ee1ae011cba6 221 int size = fread(&buff[0], 1, 15, fd);
QuangAnhLe 0:ee1ae011cba6 222 fwrite(&buff[0], 1, size, stdout);
QuangAnhLe 0:ee1ae011cba6 223 }
QuangAnhLe 0:ee1ae011cba6 224 printf("EOF.\r\n");
QuangAnhLe 1:2f617b92078b 225
QuangAnhLe 0:ee1ae011cba6 226 printf("Closing file.");
QuangAnhLe 0:ee1ae011cba6 227 fclose(fd);
QuangAnhLe 0:ee1ae011cba6 228 printf(" done.\r\n");
QuangAnhLe 1:2f617b92078b 229
QuangAnhLe 0:ee1ae011cba6 230 printf("Opening root directory.");
QuangAnhLe 0:ee1ae011cba6 231 DIR* dir = opendir("/fs/");
QuangAnhLe 0:ee1ae011cba6 232 errno_error(fd);
QuangAnhLe 1:2f617b92078b 233
QuangAnhLe 0:ee1ae011cba6 234 struct dirent* de;
QuangAnhLe 0:ee1ae011cba6 235 printf("Printing all filenames:\r\n");
QuangAnhLe 0:ee1ae011cba6 236 while((de = readdir(dir)) != NULL){
QuangAnhLe 0:ee1ae011cba6 237 printf(" %s\r\n", &(de->d_name)[0]);
QuangAnhLe 0:ee1ae011cba6 238 }
QuangAnhLe 1:2f617b92078b 239
QuangAnhLe 0:ee1ae011cba6 240 printf("Closing root directory. ");
QuangAnhLe 0:ee1ae011cba6 241 error = closedir(dir);
QuangAnhLe 0:ee1ae011cba6 242 return_error(error);
QuangAnhLe 0:ee1ae011cba6 243 printf("Filesystem Demo complete.\r\n");
QuangAnhLe 2:3d3d272d2df2 244 wait(2);
QuangAnhLe 1:2f617b92078b 245 while (true) {
QuangAnhLe 1:2f617b92078b 246 pc.printf("\n");
QuangAnhLe 1:2f617b92078b 247 wait(1);
QuangAnhLe 1:2f617b92078b 248 if(gps.sample()){
QuangAnhLe 1:2f617b92078b 249 float latitude = gps.latitude;
QuangAnhLe 1:2f617b92078b 250 float longitude = gps.longitude;
QuangAnhLe 1:2f617b92078b 251 float altitude = gps.altitude;
QuangAnhLe 2:3d3d272d2df2 252 //float direction =0.0;
QuangAnhLe 1:2f617b92078b 253 float utc = gps.utc+20000;
QuangAnhLe 1:2f617b92078b 254 //int sek=gps.sek;
QuangAnhLe 1:2f617b92078b 255 //int min=gps.min;
QuangAnhLe 1:2f617b92078b 256 //int hour=gps.hour;
QuangAnhLe 1:2f617b92078b 257 int sat_tracked=gps. sat_tracked;
QuangAnhLe 1:2f617b92078b 258 int fix=gps.fix;
QuangAnhLe 1:2f617b92078b 259 int fix_3d=gps.fix_3d;
QuangAnhLe 1:2f617b92078b 260 int id1=gps.id1;
QuangAnhLe 1:2f617b92078b 261 int id2=gps.id2;
QuangAnhLe 1:2f617b92078b 262 int id3=gps.id3;
QuangAnhLe 1:2f617b92078b 263 int id4=gps.id4;
QuangAnhLe 1:2f617b92078b 264 int id5=gps.id5;
QuangAnhLe 1:2f617b92078b 265 int id6=gps.id6;
QuangAnhLe 1:2f617b92078b 266 int id7=gps.id7;
QuangAnhLe 1:2f617b92078b 267 int id8=gps.id8;
QuangAnhLe 1:2f617b92078b 268 int id9=gps.id9;
QuangAnhLe 1:2f617b92078b 269 int id10=gps.id10;
QuangAnhLe 1:2f617b92078b 270 int id11=gps.id11;
QuangAnhLe 1:2f617b92078b 271 int id12=gps.id12;
QuangAnhLe 2:3d3d272d2df2 272 //double hdop=gps.hdop;
QuangAnhLe 2:3d3d272d2df2 273 //double pdop=gps.pdop;
QuangAnhLe 1:2f617b92078b 274 float speed=gps.speed;
QuangAnhLe 1:2f617b92078b 275 int date=gps.date;
QuangAnhLe 1:2f617b92078b 276 //char aut=gps.aut;
QuangAnhLe 1:2f617b92078b 277 //float vdop=gps.vdop;
QuangAnhLe 1:2f617b92078b 278 //int chek_data=gps.check_data;
QuangAnhLe 2:3d3d272d2df2 279 //pc.printf("Latitude, Longitude,Altitude, Direction, Speed in knots, Date, Time, Satellites in use, Satellites in view, IDs of satellites ins use, Fix, Fix mode, PDOP, HDOP\r\n");
QuangAnhLe 2:3d3d272d2df2 280 //pc.printf("%0.6f,%0.6f,%0.3f,%0.2f,%0.2f,%d,%0.0f,%d,",latitude,longitude,altitude,direction,speed,date,utc, sat_tracked);
QuangAnhLe 2:3d3d272d2df2 281 //pc.printf("%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d,",id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12);
QuangAnhLe 2:3d3d272d2df2 282 //pc.printf("%d,%d,%.2f,%.2f\r\n",fix,fix_3d,pdop,hdop);
QuangAnhLe 1:2f617b92078b 283 //pc.printf("%d",date);
QuangAnhLe 3:eb739df911ef 284
QuangAnhLe 3:eb739df911ef 285
QuangAnhLe 3:eb739df911ef 286
QuangAnhLe 3:eb739df911ef 287 /*pc.printf("Latitude: %0.6f\r\n",latitude);
QuangAnhLe 1:2f617b92078b 288 pc.printf("Longitude:%0.6f\r\n",longitude);
QuangAnhLe 1:2f617b92078b 289 pc.printf("Altitude: %0.3f\r\n",altitude);
QuangAnhLe 1:2f617b92078b 290 pc.printf("Speed in knots: %0.2f\r\n",speed);
QuangAnhLe 1:2f617b92078b 291 pc.printf("Date: %d\r\n",date);
QuangAnhLe 1:2f617b92078b 292 pc.printf("Time UTC: %0.0f\r\n",utc);
QuangAnhLe 1:2f617b92078b 293 pc.printf("Number of satellites being tracked: %d\r\n", sat_tracked);
QuangAnhLe 1:2f617b92078b 294 pc.printf("PRNs of satellites used for fix:\r\n");
QuangAnhLe 1:2f617b92078b 295 pc.printf("ID1:%d,ID2:%d,ID3:%d,ID4:%d,ID5:%d,ID6:%d\r\n",id1,id2,id3,id4,id5,id6);
QuangAnhLe 1:2f617b92078b 296 pc.printf("ID7:%d,ID8:%d,ID9:%d,ID10:%d,ID11:%d,ID12:%d\r\n",id7,id8,id9,id10,id11,id12);
QuangAnhLe 1:2f617b92078b 297 pc.printf("Fix quality: %d - value include 0=invalid; 1=GPS fix\r\n",fix);
QuangAnhLe 1:2f617b92078b 298 pc.printf("3D fix: %d - value include: 1 = no fix, 2 = 2D fix, 3 = 3D fix\r\n\n", fix_3d);
QuangAnhLe 3:eb739df911ef 299 pc.printf("****************************************************************\r\n");*/
QuangAnhLe 3:eb739df911ef 300
QuangAnhLe 1:2f617b92078b 301
QuangAnhLe 1:2f617b92078b 302 FILE* fd = fopen("/fs/numbers.txt", "a+");
QuangAnhLe 2:3d3d272d2df2 303 //errno_error(fd);
QuangAnhLe 2:3d3d272d2df2 304 if(fd != NULL)
QuangAnhLe 2:3d3d272d2df2 305 {
QuangAnhLe 2:3d3d272d2df2 306 printf("write file.\r\n");
QuangAnhLe 2:3d3d272d2df2 307 fprintf(fd,"%0.6f,%0.6f,%0.3f,%0.2f,%d,%0.0f,%d,%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d;%d,%d,%d\r\n",latitude, longitude, altitude, speed, date, utc, sat_tracked, id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12, fix,fix_3d);
QuangAnhLe 2:3d3d272d2df2 308 //fclose(fd);
QuangAnhLe 2:3d3d272d2df2 309 printf("Closing file.\r\n");
QuangAnhLe 2:3d3d272d2df2 310 fclose(fd);
QuangAnhLe 2:3d3d272d2df2 311 printf(" done.\r\n");
QuangAnhLe 2:3d3d272d2df2 312 }
QuangAnhLe 1:2f617b92078b 313
QuangAnhLe 2:3d3d272d2df2 314 //printf("Re-opening file read-only.");
QuangAnhLe 2:3d3d272d2df2 315 //fd = fopen("/fs/numbers.txt", "r");
QuangAnhLe 2:3d3d272d2df2 316 //errno_error(fd);
QuangAnhLe 2:3d3d272d2df2 317
QuangAnhLe 2:3d3d272d2df2 318 wait(1);
QuangAnhLe 3:eb739df911ef 319 //parseSMS();
QuangAnhLe 3:eb739df911ef 320 sendSMS();
QuangAnhLe 3:eb739df911ef 321 wait(1);
QuangAnhLe 2:3d3d272d2df2 322 //for (int i = 0; i < 20; i++){
QuangAnhLe 2:3d3d272d2df2 323 // printf("Writing decimal numbers to a file (%d/20)\r", i);
QuangAnhLe 2:3d3d272d2df2 324 //fprintf(fd, "%d\r\n", i);
QuangAnhLe 2:3d3d272d2df2 325 //}
QuangAnhLe 1:2f617b92078b 326 //fprintf(fd,"Latitude, Longitude,Altitude,Speed in knots, Date, Time,Number of satellites being tracked, IDs of satellites ins use, Fix, Fix mode,\r\n");
QuangAnhLe 2:3d3d272d2df2 327 //fprintf(fd,"%0.6f,%0.6f,%0.3f,%0.2f,%d,%0.0f,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",latitude, longitude, altitude, speed, date, utc, sat_tracked, id1,id2,id3,id4,id5,id6,id7,id8,id9,id10,id11,id12, fix,fix_3d);
QuangAnhLe 1:2f617b92078b 328 }
QuangAnhLe 2:3d3d272d2df2 329 }
QuangAnhLe 1:2f617b92078b 330 }