Пример #1
0
void
ChartProjection::Set(const PixelRect &rc, const TaskManager &task_manager,
                     const GeoPoint &fallback_loc)
{
  const AbstractTask *task = task_manager.GetActiveTask();
  if (task != NULL)
    Set(rc, *task, fallback_loc);
  else
    Set(rc, fallback_loc, fixed_zero);
}
Пример #2
0
void
PrintHelper::taskmanager_print(const TaskManager &task,
                               const AircraftState &state)
{
    switch (task.GetMode()) {
    case TaskType::NONE:
        break;

    case TaskType::ABORT:
        aborttask_print(*(const AbortTask *)task.GetActiveTask(), state);
        break;

    case TaskType::GOTO:
        gototask_print(*(const GotoTask *)task.GetActiveTask(), state);
        break;

    case TaskType::ORDERED:
        orderedtask_print(task.GetOrderedTask(), state);
        break;
    }
}
Пример #3
0
void
task_report(const TaskManager &task_manager, const char *text)
{
    AircraftState ac;
    if (verbose) {
        printf("%s",text);

        const AbstractTask *task = task_manager.GetActiveTask();
        if (task != NULL) {
            switch (task->GetType()) {
            case TaskType::NONE:
                printf("# task is none\n");
                break;

            case TaskType::ORDERED:
                printf("# task is ordered\n");
                task_manager.GetFactory().UpdateGeometry();
                break;

            case TaskType::ABORT:
                printf("# task is abort\n");
                break;

            case TaskType::GOTO:
                printf("# task is goto\n");
                break;
            }

            TaskPointVisitorPrint tpv;
            task->AcceptTaskPointVisitor(tpv);
            printf("# - dist nominal %g\n",
                   (double)task->GetStats().distance_nominal);

            if (task->GetType() == TaskType::ORDERED &&
                    task->GetStats().distance_max > task->GetStats().distance_min) {
                printf("# - dist max %g\n", (double)task->GetStats().distance_max);
                printf("# - dist min %g\n", (double)task->GetStats().distance_min);
            }
        }

        PrintHelper::taskmanager_print(task_manager, ac);
    }
    if (interactive>1) {
        WaitPrompt();
    }
}