G1000: deepen VNAV/PFD — V-DEV & VS-TGT chevrons, GPS phase, designated toggle

- PFD VNAV: magenta flight-plan target altitude on the alt scale (S.110), V DEV
  deviation scale + chevron (left, shown in VNAV when not on an ILS), VS TGT
  chevron on the VSI (S.113)
- GPS phase annunciation is now dynamic: APR (approach leg) / TERM (<30 nm to
  destination) / ENR, instead of a fixed label
- flight-plan ALT can be toggled designated(blue) <-> reference(white) by clicking
  the cell (S.106); only designated altitudes drive the VNAV profile
- setPlan now preserves the dsgn/appr waypoint flags across the shared plan
- AFCS vertical mode labelled VPTH (manual) instead of VNV

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-02 12:07:06 +02:00
parent 053d362245
commit 6738e6085b
5 changed files with 52 additions and 14 deletions
+8 -2
View File
@@ -74,7 +74,7 @@ export default function FplPage({ xp, full = false, onClose }) {
for (let i = Math.max(1, active); i < wps.length; i++) {
c += distNm({ lat: pl, lon: po }, wps[i]); pl = wps[i].lat; po = wps[i].lon;
const t = num(wps[i].alt);
if (t > 0 && t < alt - 50) {
if (t > 0 && t < alt - 50 && (wps[i].dsgn ?? true)) {
const tan = Math.tan((3 * Math.PI) / 180);
const vsTgt = -gs * tan * 101.27;
const vsReq = c > 0 ? (t - alt) / (c / gs * 60) : 0;
@@ -106,7 +106,13 @@ export default function FplPage({ xp, full = false, onClose }) {
<span className="r-dtk">{dtk == null ? '___' : `${String(dtk).padStart(3, '0')}°`}</span>
<span className="r-dis">{orig ? '—' : d.toFixed(1)}</span>
<span className="r-cum">{orig ? '—' : cum.toFixed(0)}</span>
<span className={`r-alt ${w.alt ? 'dsgn' : ''}`}>{w.alt ? `${w.alt}FT` : '_____'}</span>
<span className={`r-alt ${w.alt ? ((w.dsgn ?? true) ? 'dsgn' : 'refr') : ''}`}
title={w.alt ? 'Klick: Designated ↔ Reference' : ''}
onClick={(e) => {
e.stopPropagation(); if (!w.alt) return;
const next = wps.map((x, j) => (j === i ? { ...x, dsgn: !(x.dsgn ?? true) } : x));
fp.set({ name: 'ACTIVE', waypoints: next, activeLeg: flightPlan.activeLeg ?? 1 });
}}>{w.alt ? `${w.alt}FT` : '_____'}</span>
<button className="r-del" onClick={(e) => { e.stopPropagation(); fp.remove(i); }}></button>
</div>
))}