/Designs/Data_loggers/GPSRL04A/SW/Datalogger/Datalogger.ino
58,9 → 58,7
}
Serial.println("card initialized.");
 
dataString = "";
ReadGPRMC();
 
ReadGPS();
// filename = dataString.substring(0,5) + dataString.substring(dataString.length()-5,dataString.length()) + filename;
int len = dataString.length()-1;
filename = dataString.substring(len-2,len) + dataString.substring(len-4,len-2) + dataString.substring(len-6,len-4) + dataString.substring(0,2) + ".CSV ";
68,10 → 66,8
 
void loop()
{
dataString = "";
ReadGPRMC();
ReadGPGGA();
ReadGPS();
 
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(20); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
115,10 → 111,9
}
 
 
void ReadGPRMC()
void ReadGPS()
{
// $GPRMC,091451.00,A,4915.64143,N,01441.50397,E,0.053,,090215,,,A*74
 
dataString = "";
coll = 0;
while(1)
152,42 → 147,7
}
 
 
void ReadGPGGA()
{
// $GPGGA,091451.00,4915.64143,N,01441.50397,E,1,09,0.90,443.2,M,44.0,M,,*50
 
coll = 0;
while(1)
{
// get incoming byte:
while (!Serial.available());
if (Serial.read() != '$') continue;
while (!Serial.available());
if (Serial.read() != 'G') continue;
while (!Serial.available());
if (Serial.read() != 'P') continue;
while (!Serial.available());
if (Serial.read() != 'G') continue;
while (!Serial.available());
if (Serial.read() != 'G') continue;
while (!Serial.available());
if (Serial.read() != 'A') continue;
while (!Serial.available());
if (Serial.read() != ',') continue;
break;
}
do
{
while (!Serial.available());
inChar = (char)Serial.read();
if (inChar == ',') coll++;
if (coll > 4) dataString += inChar;
}
while (coll < 12);
}