mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-04 10:24:02 +00:00
fix(voice): leave out an unreported altitude instead of saying 0 feet
select_nearest_aircraft passes altitudeM: null for an airborne contact without a barometric altitude (military rows from adsb.lol can lack alt_baro). The speech builder coerced it with Number(), and Number(null) is 0, so the reply said "..., 0 feet." and the voice card showed "Altitude 0 feet". Read the altitude only when it is a finite number, so an unknown one is left out as the builder already intends.
This commit is contained in:
1 parent
15de9d738c
commit
ea1b0d8d55
3 files changed
+19
-3
No files matched your search
@@ -5115,6 +5115,8 @@ and unreachable upstream (502/504) separately from road geometry.
|
|||||||
cannot race the nearest-aircraft query ahead of layer enablement. A healthy fallback feed is
|
cannot race the nearest-aircraft query ahead of layer enablement. A healthy fallback feed is
|
||||||
queried normally and its source is returned with the selection; fallback with
|
queried normally and its source is returned with the selection; fallback with
|
||||||
no airborne records remains an honest no-data result, not an enable failure.
|
no airborne records remains an honest no-data result, not an enable failure.
|
||||||
|
The spoken reply and the card leave out an altitude the feed did not report
|
||||||
|
rather than reading it as 0 feet.
|
||||||
- Voice treats the parent Context panel and Contacts as separate intents. An
|
- Voice treats the parent Context panel and Contacts as separate intents. An
|
||||||
explicit request to open Context expands only `global-context-panel`; it does
|
explicit request to open Context expands only `global-context-panel`; it does
|
||||||
not choose a mode. An explicit request to open Contacts expands that parent
|
not choose a mode. An explicit request to open Contacts expands that parent
|
||||||
|
|||||||
+3
-3
@@ -74,9 +74,9 @@ function listPhrase(items) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function feetRounded(meters) {
|
function feetRounded(meters) {
|
||||||
const value = Number(meters);
|
// A missing altitude is unknown, not sea level: Number(null) is 0.
|
||||||
return Number.isFinite(value)
|
return Number.isFinite(meters)
|
||||||
? Math.round((value * 3.28084) / 100) * 100
|
? Math.round((meters * 3.28084) / 100) * 100
|
||||||
: null;
|
: null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -217,6 +217,20 @@ test('nearest-aircraft results name the aircraft, distance and altitude briefly'
|
|||||||
assert.equal(stale.say, 'Selected AAL1, 3.3 km from Austin, stale.');
|
assert.equal(stale.say, 'Selected AAL1, 3.3 km from Austin, stale.');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('nearest-aircraft results leave out an altitude the feed did not report', () => {
|
||||||
|
// gevActions sends `altitudeM: null` for an airborne military contact
|
||||||
|
// without a barometric altitude; that is unknown, not sea level.
|
||||||
|
const unknown = envelope('select_nearest_aircraft', {
|
||||||
|
ok: true,
|
||||||
|
location: 'Ramstein',
|
||||||
|
layerId: 'military',
|
||||||
|
feed: { state: 'nominal' },
|
||||||
|
aircraft: { callsign: 'RCH123', altitudeM: null, distanceKm: 8.2 },
|
||||||
|
});
|
||||||
|
assert.equal(unknown.say, 'Selected RCH123, 8.2 km from Ramstein.');
|
||||||
|
assert.deepEqual(unknown.display.lines, ['8.2\u00a0km from Ramstein']);
|
||||||
|
});
|
||||||
|
|
||||||
test('frame_overhead keeps the essential scope audible and lists referents', () => {
|
test('frame_overhead keeps the essential scope audible and lists referents', () => {
|
||||||
const framed = envelope('frame_overhead', {
|
const framed = envelope('frame_overhead', {
|
||||||
ok: true,
|
ok: true,
|
||||||
|
|||||||
Reference in new issue
Block a user