Hi all,
I have a problem with this function... The dumpingData() function is repeated several times and the SerialPrint gives me back the variables i parsed the string into.
Now I have a problem, every Time the Serial Out gives me back one further letter...
for example:
I send:
$GPSDAT,210102,V,50.773305,N,06.091255,E,000.0,000.0,00.0,02,*
it gives me back
$
210102
V
blablabla... which is correct
and the next time i receive
G //why is this a G???? I want the $ back
210102
V
blablabla
and then
P //why is this a P???? I want the $ back
210102
V
blablabla
Any idea how to fix that? when i pass the , i just receive rubbish..
best regards,
hendrik
char buf[65];
void dumpingData()
{
while (stringComplete == false)
{
if (Serial.available() >0)
{
char c = Serial.read();
buf[idx++] = c;
buf[idx] = 0; // terminator...
stringComplete = (c == '*');
}
}
char *ptr=NULL;
ptr=strtok(buf,",");
if (NULL!=ptr)
{
gpsdatin=*ptr; // ptr points to $
Serial.print(gpsdatin);
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
timein=atof(ptr);
Serial.print(timein); //ptr points to timein
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
validin=*ptr;
Serial.print(validin);
Serial.println();// ptr points to validin or Not validin
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
latin = atof(ptr);
Serial.print(latin,6); // ptr points to latin
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
NSin = *ptr;
Serial.print(NSin); // ptr points to N/S
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
lonin = atof(ptr);
Serial.print(lonin,6); // ptr points to lonin
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
EWin = *ptr;
Serial.print(EWin); // ptr points to EWin
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
speedin = atof(ptr);
Serial.print(speedin); // ptr points to speedin
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
headingin = atof(ptr);
Serial.print(headingin); // ptr points to headingin
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
altitudein = atof(ptr);
Serial.print(altitudein); // ptr points to altitudein
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
satin = atof(ptr);
Serial.print(satin); // ptr points to #satin
Serial.println();
}
if ( NULL != (ptr=strtok(NULL,",")) )
{
endstring=*ptr; // ptr points to *
Serial.print(endstring);
Serial.println();
}
*ptr=NULL;
stringComplete = false;
buf[0] = '\0';
}