void InfoBoxContentAltitudeQFE::Update(InfoBoxWindow &infobox) { const NMEA_INFO &basic = CommonInterface::Basic(); TCHAR sTmp[32]; if (!basic.GPSAltitudeAvailable) { infobox.SetInvalid(); return; } fixed Value = basic.GPSAltitude; const Waypoint* home_waypoint = way_points.find_home(); if (home_waypoint) Value -= home_waypoint->Altitude; // Set Value Units::FormatUserAltitude(Value, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(Value, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentAltitudeAGL::Update(InfoBoxWindow &infobox) { const DERIVED_INFO &calculated = CommonInterface::Calculated(); TCHAR sTmp[32]; if (!calculated.AltitudeAGLValid) { infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(calculated.AltitudeAGL, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(calculated.AltitudeAGL, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); // Set Color (red/black) infobox.SetColor(calculated.AltitudeAGL < XCSoarInterface::SettingsComputer().route_planner.safety_height_terrain ? 1 : 0); }
void InfoBoxContentTeamDistance::Update(InfoBoxWindow &infobox) { if (!XCSoarInterface::SettingsComputer().TeammateCodeValid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserDistance(XCSoarInterface::Calculated().TeammateRange, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); // Set Comment if (!XCSoarInterface::SettingsComputer().TeamFlarmIdTarget.defined()) infobox.SetComment(_T("---")); else if (!string_is_empty(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget)) infobox.SetComment(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget); else infobox.SetComment(_T("???")); if (XCSoarInterface::Basic().flarm.FindTraffic( XCSoarInterface::SettingsComputer().TeamFlarmIdTarget) != NULL) infobox.SetColorBottom(2); else infobox.SetColorBottom(1); }
void InfoBoxContentAltitudeBaro::Update(InfoBoxWindow &infobox) { const NMEAInfo &basic = CommonInterface::Basic(); TCHAR sTmp[32]; if (!basic.baro_altitude_available) { infobox.SetInvalid(); if (basic.pressure_altitude_available) infobox.SetComment(_("no QNH")); return; } // Set Value Units::FormatUserAltitude(basic.baro_altitude, sTmp, ARRAY_SIZE(sTmp), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(basic.baro_altitude, sTmp, ARRAY_SIZE(sTmp)); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentAltitudeQFE::Update(InfoBoxWindow &infobox) { const NMEAInfo &basic = CommonInterface::Basic(); TCHAR sTmp[32]; if (!basic.gps_altitude_available) { infobox.SetInvalid(); return; } fixed Value = basic.gps_altitude; const Waypoint *home_waypoint = way_points.GetHome(); if (home_waypoint) Value -= home_waypoint->altitude; // Set Value Units::FormatUserAltitude(Value, sTmp, ARRAY_SIZE(sTmp), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(Value, sTmp, ARRAY_SIZE(sTmp)); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentAltitudeAGL::Update(InfoBoxWindow &infobox) { TCHAR sTmp[32]; if (!XCSoarInterface::Calculated().TerrainValid) { infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(XCSoarInterface::Basic().AltitudeAGL, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(XCSoarInterface::Basic().AltitudeAGL, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); if (XCSoarInterface::Basic().AltitudeAGL < XCSoarInterface::SettingsComputer().safety_height_terrain) // red infobox.SetColor(1); else infobox.SetColor(0); }
void InfoBoxContentAltitudeBaro::Update(InfoBoxWindow &infobox) { const NMEA_INFO &basic = CommonInterface::Basic(); TCHAR sTmp[32]; if (!basic.BaroAltitudeAvailable) { infobox.SetInvalid(); if (basic.PressureAltitudeAvailable) infobox.SetComment(_("no QNH")); return; } // Set Value Units::FormatUserAltitude(basic.BaroAltitude, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(basic.BaroAltitude, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentAltitudeAGL::Update(InfoBoxWindow &infobox) { const DerivedInfo &calculated = CommonInterface::Calculated(); TCHAR sTmp[32]; if (!calculated.altitude_agl_valid) { infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(calculated.altitude_agl, sTmp, ARRAY_SIZE(sTmp), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(calculated.altitude_agl, sTmp, ARRAY_SIZE(sTmp)); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); // Set Color (red/black) infobox.SetColor(calculated.altitude_agl < XCSoarInterface::SettingsComputer().task.route_planner.safety_height_terrain ? 1 : 0); }
static void SetVSpeed(InfoBoxWindow &infobox, fixed value) { TCHAR buffer[32]; Units::FormatUserVSpeed(value, buffer, 32, false); infobox.SetValue(buffer[0] == _T('+') ? buffer + 1 : buffer); infobox.SetValueUnit(Units::Current.VerticalSpeedUnit); }
void InfoBoxContentHomeDistance::Update(InfoBoxWindow &infobox) { const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; // Set Value TCHAR tmp[32]; Units::FormatUserDistance(common_stats.vector_home.Distance, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); infobox.SetComment(common_stats.vector_home.Bearing); }
void InfoBoxContentTaskSpeedInstant::Update(InfoBoxWindow &infobox) { const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid) { infobox.SetInvalid(); return; } // Set Value SetValueFromFixed(infobox, _T("%2.0f"), Units::ToUserTaskSpeed(task_stats.get_pirker_speed())); // Set Unit infobox.SetValueUnit(Units::Current.TaskSpeedUnit); }
void InfoBoxContentThermalLastGain::Update(InfoBoxWindow &infobox) { const OneClimbInfo &thermal = CommonInterface::Calculated().last_thermal; if (!thermal.IsDefined()) { infobox.SetInvalid(); return; } // Set Value TCHAR sTmp[32]; Units::FormatUserAltitude(thermal.gain, sTmp, 32, false); infobox.SetValue(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentTaskAASpeedMin::Update(InfoBoxWindow &infobox) { const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid || !positive(common_stats.aat_speed_min)) { infobox.SetInvalid(); return; } // Set Value SetValueFromFixed(infobox, _T("%2.0f"), Units::ToUserTaskSpeed(common_stats.aat_speed_min)); // Set Unit infobox.SetValueUnit(Units::Current.TaskSpeedUnit); }
void InfoBoxContentAltitudeGPS::Update(InfoBoxWindow &infobox) { TCHAR sTmp[32]; // Set Value Units::FormatUserAltitude(XCSoarInterface::Basic().GPSAltitude, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(XCSoarInterface::Basic().GPSAltitude, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }
void InfoBoxContentOLC::Update(InfoBoxWindow &infobox) { if (!XCSoarInterface::SettingsComputer().enable_olc) { infobox.SetInvalid(); return; } const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; // Set Value TCHAR tmp[32]; Units::FormatUserDistance(common_stats.distance_olc, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); }
void InfoBoxContentTaskAADistanceMin::Update(InfoBoxWindow &infobox) { const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserDistance(task_stats.distance_min, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); }
void InfoBoxContentFinalAltitudeRequire::Update(InfoBoxWindow &infobox) { const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserAltitude(task_stats.total.solution_remaining.AltitudeRequired, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }
void InfoBoxContentTaskSpeedAchieved::Update(InfoBoxWindow &infobox) { const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; _stprintf(tmp, _T("%2.0f"), (double)Units::ToUserTaskSpeed(task_stats.total.travelled.get_speed())); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::TaskSpeedUnit); }
void InfoBoxContentNextDistance::Update(InfoBoxWindow &infobox) { const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserDistance(task_stats.current_leg.solution_remaining.Vector.Distance, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); }
void InfoBoxContentWindSpeed::Update(InfoBoxWindow &infobox) { const DerivedInfo &info = CommonInterface::Calculated(); if (!info.wind_available) { infobox.SetInvalid(); return; } // Set Value SetValueFromFixed(infobox, _T("%2.0f"), Units::ToUserWindSpeed(info.wind.norm)); // Set Unit infobox.SetValueUnit(Units::Current.WindSpeedUnit); // Set Comment infobox.SetComment(info.wind.bearing, _T("T")); }
void InfoBoxContentTaskAASpeedMin::Update(InfoBoxWindow &infobox) { const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid || !positive(common_stats.aat_speed_min)) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; _stprintf(tmp, _T("%2.0f"), (double)Units::ToUserTaskSpeed( common_stats.aat_speed_min)); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::TaskSpeedUnit); }
void InfoBoxContentNextAltitudeRequire::Update(InfoBoxWindow &infobox) { // pilots want this to be assuming terminal flight to this wp const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; if (!task_stats.task_valid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserAltitude(XCSoarInterface::Calculated().common_stats.next_solution.AltitudeRequired, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }
void InfoBoxContentNextAltitudeArrival::Update(InfoBoxWindow &infobox) { // pilots want this to be assuming terminal flight to this wp const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; const GlideResult next_solution = XCSoarInterface::Calculated().common_stats.next_solution; if (!task_stats.task_valid || !next_solution.glide_reachable(true)) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; fixed alt = XCSoarInterface::Basic().NavAltitude-next_solution.HeightGlide; Units::FormatUserAltitude(alt, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }
void InfoBoxContentFinalDistance::Update(InfoBoxWindow &infobox) { if (!XCSoarInterface::Calculated().task_stats.task_valid) { infobox.SetInvalid(); return; } const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; // Set Value TCHAR tmp[32]; Units::FormatUserDistance(common_stats.task_finished ? task_stats.current_leg.solution_remaining.Vector.Distance : task_stats.total.remaining.get_distance(), tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); }
void InfoBoxContentOLC::Update(InfoBoxWindow &infobox) { const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; if (!XCSoarInterface::SettingsComputer().enable_olc || common_stats.olc.score < fixed_one) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserDistance(common_stats.olc.distance, tmp, 32, false); infobox.SetValue(tmp); _stprintf(tmp, _T("%.1f pts"), (double)common_stats.olc.score); infobox.SetComment(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); }
void InfoBoxContentAltitudeBaro::Update(InfoBoxWindow &infobox) { TCHAR sTmp[32]; if (!XCSoarInterface::Basic().BaroAltitudeAvailable) { infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(XCSoarInterface::Basic().BaroAltitude, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(XCSoarInterface::Basic().BaroAltitude, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }
void InfoBoxContentTerrainHeight::Update(InfoBoxWindow &infobox) { TCHAR sTmp[32]; if (!XCSoarInterface::Calculated().TerrainValid) { infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(XCSoarInterface::Calculated().TerrainAlt, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(XCSoarInterface::Calculated().TerrainAlt, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }
void InfoBoxContentTerrainHeight::Update(InfoBoxWindow &infobox) { const DERIVED_INFO &calculated = CommonInterface::Calculated(); TCHAR sTmp[32]; if (!calculated.TerrainValid){ infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(calculated.TerrainAlt, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(calculated.TerrainAlt, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentTerrainHeight::Update(InfoBoxWindow &infobox) { const DerivedInfo &calculated = CommonInterface::Calculated(); TCHAR sTmp[32]; if (!calculated.terrain_valid){ infobox.SetInvalid(); return; } // Set Value Units::FormatUserAltitude(calculated.terrain_altitude, sTmp, ARRAY_SIZE(sTmp), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(calculated.terrain_altitude, sTmp, ARRAY_SIZE(sTmp)); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::Current.AltitudeUnit); }
void InfoBoxContentAltitudeQFE::Update(InfoBoxWindow &infobox) { TCHAR sTmp[32]; fixed Value = XCSoarInterface::Basic().GPSAltitude; const Waypoint* home_waypoint = way_points.find_home(); if (home_waypoint) Value -= home_waypoint->Altitude; // Set Value Units::FormatUserAltitude(Value, sTmp, sizeof(sTmp) / sizeof(sTmp[0]), false); infobox.SetValue(sTmp); // Set Comment Units::FormatAlternateUserAltitude(Value, sTmp, sizeof(sTmp) / sizeof(sTmp[0])); infobox.SetComment(sTmp); // Set Unit infobox.SetValueUnit(Units::AltitudeUnit); }