visual approaches: direct the numbers, clearances from the downwind - #967
visual approaches: direct the numbers, clearances from the downwind#967nreisbeck wants to merge 1 commit into
Conversation
bed7e14 to
dadf7d4
Compare
|
hold for bug fix |
dadf7d4 to
5a53d8c
Compare
- DTN (LDTN/RDTN with a turn direction) sends the aircraft direct to the assigned approach runway's threshold; DTF direct to the arrival airport. spoken forms: "turn left direct the numbers", "proceed direct the field". works before or after a visual approach clearance. (mmp#880) - when the abeam projection onto the reference route is behind the aircraft (a downwind), a visual approach clearance now joins the route at a point downwind of the aircraft instead of refusing: it continues ahead, turns in to that fix, and flies the route inbound, per the suggestion in mmp#882. includes a regression test. - reword the synthesis-failure refusal: "we don't know runway X" now reads "we're not in position for the visual to runway X"; the old text implied a data problem when the issue is geometry
5a53d8c to
1352fa7
Compare
mmp
left a comment
There was a problem hiding this comment.
Sorry for not getting to this sooner. Looks generally good! A few comments below.
| WithName("right_direct_numbers"), WithPriority(14), | ||
| ) | ||
| registerSTTCommand( | ||
| "turn|proceed [direct] direct [to] the numbers", |
There was a problem hiding this comment.
Here and the next one has [direct] direct which seems redundant and above just has direct; I assume they should all be the same? IMHO [direct] is probably best as far as being a bit more forgiving, which is helpful with STT since the transcripts are often a little garbled.
| // === NAVIGATION COMMANDS === | ||
| // Direct the numbers / the field (must outrank the generic {fix} | ||
| // patterns so "the numbers" isn't fed to the fix matcher). | ||
| registerSTTCommand( |
There was a problem hiding this comment.
Please add entries in the "ATC Commands (Spoken)" section in website/index.html to document these.
|
|
||
| case 'L': | ||
| if len(command) >= 5 && command[1] == 'D' { | ||
| if command == "LDTN" { |
There was a problem hiding this comment.
Please add entries in the "ATC Commands (Keyboard)" section in website/index.html to document these. Also please add them to secondaryAcCommands in cmd/vice/ui.go so they're there in the app's help window.
| return av.MakeUnableIntent("unable. you haven't given us a runway") | ||
| } | ||
| wps := []av.Waypoint{ | ||
| {Fix: "_NUMBERS", Location: ap.Threshold}, |
There was a problem hiding this comment.
I think the Waypoint here should have Flags: av.WaypointFlagLand (so that the aircraft is deleted when it reaches this point or goes around if it's still goo high) as well as an altitude restriction based on the runway elevation and threshold crossing height, roughly
rwy := ...
alt := rwy.Elevation + rwy.ThresholdCrossingHeight
wp.SetAltitudeRestriction(MakeAtAltitudeRestriction(float32(alt)))
| // DirectAirport has the pilot proceed direct to the arrival airport | ||
| // ("proceed direct the field"). | ||
| func (nav *Nav) DirectAirport(turn av.TurnDirection, simTime Time, delayReduction time.Duration) av.CommandIntent { | ||
| wps := []av.Waypoint{nav.FlightState.ArrivalAirport} |
There was a problem hiding this comment.
(Same comment as above w.r.t. flags and altitude restriction.)
Two visual-approach improvements:
Direct the numbers / direct the field (Add support for "proceed|turn direct the numbers" (before or after visual approach clearance) #880):
DTN(andLDTN/RDTNwith a turn direction) sends the aircraft direct to the assigned approach runway's threshold;DTFdirect to the arrival airport. Spoken forms: "turn left direct the numbers", "proceed direct the field". Works before or after a visual approach clearance.Visual clearances from the downwind (Allow clearing aircraft on a downwind for a visual approach #882): when the abeam projection onto the reference route is behind the aircraft, the clearance now joins the route at a point downwind of the aircraft — it continues ahead, turns in to that fix, and flies the route inbound from there — rather than refusing. This follows the approach suggested in the issue.
Also rewords the synthesis-failure refusal from "we don't know runway X" (which reads as a data problem) to "we're not in position for the visual to runway X".
Fixes #880
Fixes #882