Exemplo n.º 1
0
static void
Main()
{
  const Waypoints way_points;

  InterfaceBlackboard blackboard;
  blackboard.SetComputerSettings().SetDefaults();
  blackboard.SetComputerSettings().polar.glide_polar_task = GlidePolar(fixed(1));
  blackboard.SetUISettings().SetDefaults();

  TaskBehaviour task_behaviour;
  task_behaviour.SetDefaults();

  TaskManager task_manager(task_behaviour, way_points);
  task_manager.SetGlidePolar(blackboard.GetComputerSettings().polar.glide_polar_task);

  GlideComputerTaskEvents task_events;
  task_manager.SetTaskEvents(task_events);

  Airspaces airspace_database;

  ProtectedTaskManager protected_task_manager(task_manager,
                                              blackboard.GetComputerSettings().task);

  LoadFiles(airspace_database);

  const TaskFactoryType task_type_default =
    blackboard.GetComputerSettings().task.task_type_default;
  OrderedTask *task =
    protected_task_manager.TaskCreateDefault(&way_points, task_type_default);
  if (task != nullptr) {
    protected_task_manager.TaskCommit(*task);
    delete task;
  }

  GlideComputer glide_computer(way_points, airspace_database,
                               protected_task_manager,
                               task_events);
  glide_computer.ReadComputerSettings(blackboard.GetComputerSettings());
  glide_computer.SetTerrain(terrain);
  glide_computer.SetContestIncremental(false);
  glide_computer.Initialise();

  LoadReplay(replay, glide_computer, blackboard);
  delete replay;

  SingleWindow main_window;
  main_window.Create(_T("RunAnalysis"),
                     {640, 480});

  dlgAnalysisShowModal(main_window, *look, blackboard, glide_computer,
                       &protected_task_manager,
                       &airspace_database,
                       terrain);

  delete terrain;
}
Exemplo n.º 2
0
static void
LoadReplay(DebugReplay *replay, GlideComputer &glide_computer,
           InterfaceBlackboard &blackboard)
{
  unsigned i = 0;
  while (replay->Next()) {
    const MoreData &basic = replay->Basic();

    glide_computer.ReadBlackboard(basic);
    glide_computer.ProcessGPS();

    if (++i == 8) {
      i = 0;
      glide_computer.ProcessIdle();
    }
  }

  glide_computer.ProcessExhaustive();

  blackboard.ReadBlackboardBasic(glide_computer.Basic());
  blackboard.ReadBlackboardCalculated(glide_computer.Calculated());
}
Exemplo n.º 3
0
 /**
  * Returns InterfaceBlackboard.Calculated (DERIVED_INFO) (read-only)
  * @return InterfaceBlackboard.Calculated
  */
 gcc_const
 static const DERIVED_INFO& Calculated() { return blackboard.Calculated(); }
Exemplo n.º 4
0
 /**
  * Returns InterfaceBlackboard.Basic (NMEA_INFO) (read-only)
  * @return InterfaceBlackboard.Basic
  */
 gcc_const
 static const NMEA_INFO& Basic() { return blackboard.Basic(); }
Exemplo n.º 5
0
 gcc_const
 static const SystemSettings& GetSystemSettings() {
   return blackboard.GetSystemSettings();
 }
Exemplo n.º 6
0
 /**
  * Returns the InterfaceBlackboard.SettingsComputer (read-write)
  * @return The InterfaceBlackboard.SettingsComputer
  */
 gcc_const
 static SETTINGS_COMPUTER& SetSettingsComputer()
 { return blackboard.SetSettingsComputer(); }
Exemplo n.º 7
0
 /**
  * Returns InterfaceBlackboard.Basic (NMEA_INFO) (read-only)
  * @return InterfaceBlackboard.Basic
  */
 gcc_const
 static const MoreData &Basic() { return blackboard.Basic(); }
Exemplo n.º 8
0
 static void ReadBlackboardBasic(const MoreData &nmea_info) {
   blackboard.ReadBlackboardBasic(nmea_info);
 }
Exemplo n.º 9
0
 static void BroadcastComputerSettingsUpdate() {
   blackboard.BroadcastComputerSettingsUpdate();
 }
Exemplo n.º 10
0
 static void BroadcastCalculatedUpdate() {
   blackboard.BroadcastCalculatedUpdate();
 }
Exemplo n.º 11
0
 static void BroadcastGPSUpdate() {
   blackboard.BroadcastGPSUpdate();
 }
Exemplo n.º 12
0
 static void RemoveListener(BlackboardListener &listener) {
   blackboard.RemoveListener(listener);
 }
Exemplo n.º 13
0
 static void AddListener(BlackboardListener &listener) {
   blackboard.AddListener(listener);
 }
Exemplo n.º 14
0
 gcc_const
 static SystemSettings &SetSystemSettings() {
   return blackboard.SetSystemSettings();
 }
Exemplo n.º 15
0
 /**
  * Returns the InterfaceBlackboard.SettingsMap (read-write)
  * @return The InterfaceBlackboard.SettingsMap
  */
 gcc_const
 static SETTINGS_MAP& SetSettingsMap()
 { return blackboard.SetSettingsMap(); }
Exemplo n.º 16
0
 gcc_const
 static UISettings &SetUISettings() {
   return blackboard.SetUISettings();
 }
Exemplo n.º 17
0
 static void BroadcastUISettingsUpdate() {
   blackboard.BroadcastUISettingsUpdate();
 }
Exemplo n.º 18
0
 static void ReadBlackboardCalculated(const DerivedInfo& derived_info) {
   blackboard.ReadBlackboardCalculated(derived_info);
 }
Exemplo n.º 19
0
 /**
  * Returns the InterfaceBlackboard.ComputerSettings (read-only)
  * @return The InterfaceBlackboard.ComputerSettings
  */
 gcc_const
 static const ComputerSettings& GetComputerSettings()
 { return blackboard.GetComputerSettings(); }
Exemplo n.º 20
0
 /**
  * Returns InterfaceBlackboard.Calculated (DERIVED_INFO) (read-only)
  * @return InterfaceBlackboard.Calculated
  */
 gcc_const
 static const DerivedInfo& Calculated() { return blackboard.Calculated(); }
Exemplo n.º 21
0
 /**
  * Returns the InterfaceBlackboard.ComputerSettings (read-write)
  * @return The InterfaceBlackboard.ComputerSettings
  */
 gcc_const
 static ComputerSettings& SetComputerSettings()
 { return blackboard.SetComputerSettings(); }
Exemplo n.º 22
0
 gcc_const
 static const UISettings &GetUISettings() {
   return blackboard.GetUISettings();
 }
Exemplo n.º 23
0
 static void ReadBlackboardBasic(const NMEA_INFO& nmea_info) {
   blackboard.ReadBlackboardBasic(nmea_info);
 }
Exemplo n.º 24
0
 static void ReadBlackboardCalculated(const DERIVED_INFO& derived_info) {
   blackboard.ReadBlackboardCalculated(derived_info);
 }
Exemplo n.º 25
0
int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
#ifdef _WIN32_WCE
        LPWSTR lpCmdLine,
#else
        LPSTR lpCmdLine2,
#endif
        int nCmdShow)
#endif
{
#ifdef WIN32
  Args args(GetCommandLine(), "DRIVER FILE");
#else
  Args args(argc, argv, "DRIVER FILE");
#endif
  DebugReplay *replay = CreateDebugReplay(args);
  if (replay == NULL)
    return EXIT_FAILURE;

  args.ExpectEnd();

  InitialiseDataPath();
  Profile::SetFiles(_T(""));
  Profile::Load();

  const Waypoints way_points;

  InterfaceBlackboard blackboard;
  blackboard.SetComputerSettings().SetDefaults();

  GlideComputerTaskEvents task_events;
  TaskManager task_manager(way_points);
  task_manager.SetTaskEvents(task_events);

  Airspaces airspace_database;
  AirspaceWarningManager airspace_warning(airspace_database);

  ProtectedTaskManager protected_task_manager(task_manager,
                                              blackboard.GetComputerSettings().task);

  LoadFiles(airspace_database);

  GlideComputer glide_computer(way_points, airspace_database,
                               protected_task_manager,
                               task_events);
  glide_computer.SetTerrain(terrain);
  glide_computer.Initialise();
  glide_computer.ReadComputerSettings(blackboard.GetComputerSettings());

  ScreenGlobalInit screen_init;

  LoadReplay(replay, glide_computer, blackboard);
  delete replay;

#ifdef WIN32
  ResourceLoader::Init(hInstance);
#endif

  Layout::Initialize(640, 480);

  SingleWindow main_window;
  main_window.set(_T("STATIC"), _T("RunAnalysis"),
                  PixelRect{0, 0, 640, 480});

  Fonts::Initialize();

  dialog_settings.SetDefaults();

  Look *look = new Look();
  look->Initialise();
  look->InitialiseConfigured(blackboard.GetUISettings());

  SetXMLDialogLook(look->dialog);

  dialog_look = &look->dialog;

  main_window.show();

  dlgAnalysisShowModal(main_window, *look, blackboard, glide_computer,
                       &protected_task_manager,
                       &airspace_database,
                       terrain);

  delete look;
  Fonts::Deinitialize();

  delete terrain;

  DeinitialiseDataPath();

  return 0;
}