Dear Paul, It a bit hard becaue it would be really a lot of reading.
The date is generated by a GPS library.
I declare my variabel like this:
#include "gps.h"
GPSGSM gps;
// GPS
char coords[150];
char lon[15];
char lat[15];
char alt[15];
char time[20];
char vel[15];
and here is a function to get the coords
void getGPSfix(){
Serial.println(F(""));
Serial.println(F("GPS FIX"));
Serial.println(F("--------------"));
delay(5000);
//Get data from GPS
gps.getPar(lon,lat,alt,time,vel);
Serial.print(F("Long :"));
Serial.println(lon);
Serial.print(F("Lat :"));
Serial.println(lat);
Serial.print(F("Alt :"));
Serial.println(alt);
Serial.print(F("Time :"));
Serial.println(time); // This retunr me something like 20130617062400.345
Serial.print(F("Vel :"));
Serial.println(vel);
Serial.println(F(""));
}
Apparently we have to manager the string, but I do not know exactely how to delimeter the time
@Paul,
Is enoguth for you?
In the gps.cpp file, there is that fonction
char GPSGSM::getPar(char *str_long, char *str_lat, char *str_alt, char *str_time, char *str_speed)
{
char ret_val=0;
char *p_char;
char *p_char1;
gsm.SimpleWriteln("AT+CGPSINF=0");
gsm.WaitResp(5000, 100, "OK");
if(gsm.IsStringReceived("OK"))
ret_val=1;
//longitude
p_char = strchr((char *)(gsm.comm_buf),',');
p_char1 = p_char+1; //we are on the first char of longitude
p_char = strchr((char *)(p_char1), ',');
if (p_char != NULL) {
*p_char = 0;
}
strcpy(str_long, (char *)(p_char1));
// latitude
p_char++;
p_char1 = strchr((char *)(p_char), ',');
if (p_char1 != NULL) {
*p_char1 = 0;
}
strcpy(str_lat, (char *)(p_char));
// altitude
p_char1++;
p_char = strchr((char *)(p_char1), ',');
if (p_char != NULL) {
*p_char = 0;
}
strcpy(str_alt, (char *)(p_char1));
// UTC time
p_char++;
p_char1 = strchr((char *)(p_char), ',');
if (p_char1 != NULL) {
*p_char1 = 0;
}
strcpy(str_time, (char *)(p_char));
// TTFF
p_char1++;
p_char = strchr((char *)(p_char1), ',');
if (p_char != NULL) {
*p_char = 0;
}
// num
p_char++;
p_char1 = strchr((char *)(p_char), ',');
if (p_char1 != NULL) {
*p_char1 = 0;
}
// speed
p_char1++;
p_char = strchr((char *)(p_char1), ',');
if (p_char != NULL) {
*p_char = 0;
}
strcpy(str_speed, (char *)(p_char1));
return ret_val;
}
There is this part, as well.
// UTC time
p_char++;
p_char1 = strchr((char *)(p_char), ',');
if (p_char1 != NULL) {
*p_char1 = 0;
}
strcpy(str_time, (char *)(p_char));
I hope, I provided you enouhg information