예제 #1
0
BOOL VLParseNMEA(PDeviceDescriptor_t d, TCHAR *String, NMEA_INFO *pGPS){
  (void)d;

  if (!NMEAParser::NMEAChecksum(String) || (pGPS == NULL)){
    return FALSE;
  }

  if(_tcsstr(String,TEXT("$PGCS,")) == String){
    return vl_PGCS1(d, &String[6], pGPS);
  }

  return FALSE;

}
예제 #2
0
BOOL B50ParseNMEA(PDeviceDescriptor_t d, TCHAR *String, NMEA_INFO *pGPS){
  (void)d;

  if(_tcsncmp(TEXT("$PBB50"), String, 6)==0)
    return PBB50(&String[7], pGPS);
  else
    if(_tcsncmp(TEXT("$PGCS"), String, 5)==0)
    {
      bBaroAvailable = true;
      return vl_PGCS1( d, &String[6], pGPS);
    }

  return FALSE;

}
예제 #3
0
파일: Parser.cpp 프로젝트: DRIZO/xcsoar
bool
VolksloggerDevice::ParseNMEA(const char *String, NMEAInfo &info)
{
  if (!VerifyNMEAChecksum(String))
    return false;

  NMEAInputLine line(String);
  char type[16];
  line.Read(type, 16);

  if (StringIsEqual(type, "$PGCS"))
    return vl_PGCS1(line, info);
  else
    return false;
}
예제 #4
0
bool
VolksloggerDevice::ParseNMEA(const char *String, NMEA_INFO *GPS_INFO,
                             bool enable_baro)
{
  if (!NMEAParser::NMEAChecksum(String))
    return false;

  NMEAInputLine line(String);
  char type[16];
  line.read(type, 16);

  if (strcmp(type, "$PGCS") == 0)
    return vl_PGCS1(line, GPS_INFO, enable_baro);
  else
    return false;
}