I made a GPS library for decoding NMEA protocol

I am using the afss version posted here: http://forums.ladyada.net/viewtopic.php?f=25&t=8351

One reason that the error rate may be higher then expected is the circuitous connectivity in my test rig. The GPS was connected to the arduino via a pair of xbee modules. One xbee is connected to the GPS at 4800 baud, the other is connected to the Arduino afss input at 9600 baud.

Strange, I tried connecting the GPS directly to the Arduino and am no longer getting the encode method returning true so newdata is always false and dump is never called.

If I modify feedgps to the following, I do get the sentences printed out:

bool feedgps()
{
  while (afss.available())
  {
    char c = afss.read();
    Serial.print(c);
    if (gps.encode(c) )
//    if (gps.encode(afss.read()))
      return true;
  }
  return false;
}

Fwiw, here is some of the output from that code:

$GPGSV,2,1,08,11,70,142,40,14,22,041,00,17,40,300,00,19,12,162,00*79

$GPGSV,2,2,08,20,66,238,00,23,18,181,36,28,13,257,00,32,83,087,00*72

$GPRMC,143727,V,5133.1094,N,00010.4425,W,000.0,331.5,210109,,,N*7F

$GPGGA,143728,5133.1094,N,00010.4425,W,0,00,,-00000.0,M,047.3,M,,*67

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

Not sure what is going on, I may have to put some debugging in the encode method.

edit: I just tried it again with the xbee and its no longer working with that. Its a real rats nest of wires here so the problems may have nothing to do with the code. I am going to clean everthing up and try it again - but want get back to this till much later today.