Beispiel #1
0
bool
DebugReplayIGC::Next()
{
    last_basic = computed_basic;

    const char *line;
    while ((line = reader->ReadLine()) != NULL) {
        if (line[0] == 'B') {
            IGCFix fix;
            if (IGCParseFix(line, extensions, fix)) {
                CopyFromFix(fix);

                Compute();
                return true;
            }
        } else if (line[0] == 'H') {
            BrokenDate date;
            if (memcmp(line, "HFDTE", 5) == 0 &&
                    IGCParseDateRecord(line, date)) {
                (BrokenDate &)raw_basic.date_time_utc = date;
                raw_basic.time_available.Clear();
            }
        } else if (line[0] == 'I') {
            IGCParseExtensions(line, extensions);
        }
    }

    if (computed_basic.time_available)
        flying_computer.Finish(calculated.flight, computed_basic.time);

    return false;
}
Beispiel #2
0
bool
DebugReplayIGC::Next()
{
  last_basic = basic;
  last_calculated = calculated;

  const char *line;
  while ((line = reader->read()) != NULL) {
    if (line[0] == 'B') {
      IGCFix fix;
      if (IGCParseFix(line, extensions, fix) && fix.gps_valid) {
        CopyFromFix(fix);

        Compute();
        return true;
      }
    } else if (line[0] == 'H') {
      BrokenDate date;
      if (memcmp(line, "HFDTE", 5) == 0 &&
          IGCParseDateRecord(line, date)) {
        (BrokenDate &)basic.date_time_utc = date;
        basic.date_available = true;
      }
    } else if (line[0] == 'I') {
      IGCParseExtensions(line, extensions);
    }
  }

  return false;
}
Beispiel #3
0
bool
DebugReplayIGC::Next()
{
  last_basic = basic;
  last_calculated = calculated;

  const char *line;
  while ((line = reader->read()) != NULL) {
    if (line[0] == 'B') {
      IGCFix fix;
      if (IGCParseFix(line, fix)) {
        CopyFromFix(fix);

        Compute();
        return true;
      }
    }
  }

  return false;
}