Esempio n. 1
0
int main(int argc, char **argv)
{
    Args args(argc, argv, "DRIVER INFILE OUTFILE");
    DebugReplay *replay = CreateDebugReplay(args);
    if (replay == NULL)
        return EXIT_FAILURE;

    const char *output_file = args.ExpectNext();
    args.ExpectEnd();

    while (!replay->Basic().time_available)
        if (!replay->Next())
            return 0;

    const TCHAR *driver_name = _T("Unknown");

    PathName igc_path(output_file);
    IGCWriter writer(igc_path, replay->Basic());
    writer.WriteHeader(replay->Basic().date_time_utc, _T("Manfred Mustermann"),
                       _T("Ventus"), _T("D-1234"),
                       _T("MM"), _T("Foo"), driver_name);

    GPSClock log_clock(fixed(1));
    while (replay->Next())
        if (log_clock.check_advance(replay->Basic().time))
            writer.LogPoint(replay->Basic());

    writer.Flush();

    return EXIT_SUCCESS;
}
Esempio n. 2
0
int main(int argc, char **argv)
{
  if (argc != 3) {
    fprintf(stderr, "Usage: %s DRIVER FILE.IGC\n"
            "Where DRIVER is one of:\n", argv[0]);

    const TCHAR *name;
    for (unsigned i = 0; (name = devRegisterGetName(i)) != NULL; ++i)
      _ftprintf(stderr, _T("\t%s\n"), name);

    return 1;
  }

  PathName driver_name(argv[1]);
  device.Driver = devGetDriver(driver_name);
  if (device.Driver == NULL) {
    fprintf(stderr, "No such driver: %s\n", argv[1]);
    return 1;
  }

  NullPort port(*(Port::Handler *)NULL);
  device.Com = &port;
  device.enable_baro = true;

  if (!device.Open()) {
    fprintf(stderr, "Failed to open driver: %s\n", argv[1]);
    return 1;
  }

  char buffer[1024];
  for (unsigned i = 0; i < 10 &&
         fgets(buffer, sizeof(buffer), stdin) != NULL; ++i)
    device.LineReceived(buffer);

  PathName igc_path(argv[2]);
  IGCWriter writer(igc_path, device_blackboard.Basic());
  writer.header(device_blackboard.Basic().DateTime,
                _T("Manfred Mustermann"), _T("Ventus"),
                _T("D-1234"), _T("Foo"), driver_name);

  GPSClock log_clock(fixed(1));
  while (fgets(buffer, sizeof(buffer), stdin) != NULL) {
    device.LineReceived(buffer);

    if (log_clock.check_advance(device_blackboard.Basic().Time))
      writer.LogPoint(device_blackboard.Basic());
  }
}