Load ILS frequencies into Airport pages.
This commit is contained in:
parent
f6f5efe9f4
commit
42c0dd0b43
5 changed files with 52 additions and 10 deletions
|
@ -167,6 +167,19 @@ var AirportInfo =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Add any ILS frequencies as well
|
||||||
|
foreach(var rwy; sort(keys(apt_info.runways), string.icmp)) {
|
||||||
|
var rwy_info = apt_info.runways[rwy];
|
||||||
|
if (rwy_info.ils_frequency_mhz != nil) {
|
||||||
|
var label = "ILS " ~ rwy_info.id;
|
||||||
|
var freq = sprintf("%.3f", rwy_info.ils_frequency_mhz);
|
||||||
|
|
||||||
|
me.setTextElement("FreqLabel" ~ fcount, label);
|
||||||
|
me.setTextElement("Freq" ~ fcount, freq);
|
||||||
|
fcount += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while (fcount < 9) {
|
while (fcount < 9) {
|
||||||
# zero remaining comms channels
|
# zero remaining comms channels
|
||||||
me.setTextElement("FreqLabel" ~ fcount, "");
|
me.setTextElement("FreqLabel" ~ fcount, "");
|
||||||
|
|
|
@ -113,7 +113,7 @@ var AirportInfoController =
|
||||||
var select = me.page.handleEnter();
|
var select = me.page.handleEnter();
|
||||||
if (select.name == "AirportInfoID") me.setAirport(select.value);
|
if (select.name == "AirportInfoID") me.setAirport(select.value);
|
||||||
if (substr(select.name, 0, 15) == "AirportInfoFreq") {
|
if (substr(select.name, 0, 15) == "AirportInfoFreq") {
|
||||||
me.page.mfd.SurroundController.setStandbyComFreq(select.value);
|
me.page.mfd.SurroundController.setStandbyNavComFreq(select.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||||
|
|
|
@ -180,12 +180,14 @@ var NearestAirports =
|
||||||
}
|
}
|
||||||
|
|
||||||
var freqarray = [];
|
var freqarray = [];
|
||||||
|
|
||||||
|
# Add Comm Frequencies
|
||||||
var apt_comms = apt.comms();
|
var apt_comms = apt.comms();
|
||||||
if (size(apt_comms) > 0) {
|
if (size(apt_comms) > 0) {
|
||||||
# Airport has one or more frequencies assigned to it.
|
# Airport has one or more frequencies assigned to it.
|
||||||
var freqs = {};
|
var freqs = {};
|
||||||
foreach (var c; apt_comms) {
|
foreach (var c; apt_comms) {
|
||||||
freqs[c.ident] = sprintf("%.3f", c.frequency);;
|
freqs[c.ident] = sprintf("%.3f", c.frequency);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var c; sort(keys(freqs), string.icmp)) {
|
foreach (var c; sort(keys(freqs), string.icmp)) {
|
||||||
|
@ -193,6 +195,16 @@ var NearestAirports =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Add any ILS frequencies as well
|
||||||
|
foreach(var rwy; sort(keys(apt.runways), string.icmp)) {
|
||||||
|
var rwy_info = apt.runways[rwy];
|
||||||
|
if (rwy_info.ils_frequency_mhz != nil) {
|
||||||
|
var label = "ILS " ~ rwy_info.id;
|
||||||
|
var freq = sprintf("%.3f", rwy_info.ils_frequency_mhz);
|
||||||
|
append(freqarray, {FreqLabel: label, Freq: freq});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
me.freqSelect.setValues(freqarray);
|
me.freqSelect.setValues(freqarray);
|
||||||
|
|
||||||
# Approaches
|
# Approaches
|
||||||
|
|
|
@ -141,7 +141,7 @@ var NearestAirportsController =
|
||||||
# TODO Select the current COM frequency.
|
# TODO Select the current COM frequency.
|
||||||
var freq = me.page.getSelectedFreq();
|
var freq = me.page.getSelectedFreq();
|
||||||
if (freq != nil) {
|
if (freq != nil) {
|
||||||
me.page.mfd.SurroundController.setStandbyComFreq(freq);
|
me.page.mfd.SurroundController.setStandbyNavComFreq(freq);
|
||||||
}
|
}
|
||||||
return emesary.Transmitter.ReceiptStatus_Finished;
|
return emesary.Transmitter.ReceiptStatus_Finished;
|
||||||
}
|
}
|
||||||
|
|
|
@ -375,17 +375,34 @@ var SurroundController =
|
||||||
me.transmitter = nil;
|
me.transmitter = nil;
|
||||||
},
|
},
|
||||||
|
|
||||||
# Used by other pages to set the current standby COM frequency by pressing ENT
|
# Used by other pages to set the current standby NAV or COM frequency by pressing ENT
|
||||||
setStandbyComFreq : func(value) {
|
setStandbyNavComFreq : func(value) {
|
||||||
var data={};
|
var data={};
|
||||||
|
|
||||||
if (value > fg1000.MAX_COM_FREQ) return;
|
# Determine whether this is NAV or COM based on the frequency itself
|
||||||
if (value < fg1000.MIN_COM_FREQ) return;
|
|
||||||
|
|
||||||
if (me._comselected == 1) {
|
if (value < fg1000.MAX_NAV_FREQ) {
|
||||||
data["Comm1StandbyFreq"] = value;
|
# Nav frequency
|
||||||
|
if (value > fg1000.MAX_NAV_FREQ) return;
|
||||||
|
if (value < fg1000.MIN_NAV_FREQ) return;
|
||||||
|
|
||||||
|
# TODO: If we're in approach phase then this should update the Active
|
||||||
|
# frequency
|
||||||
|
if (me._navselected == 1) {
|
||||||
|
data["Nav1StandbyFreq"] = value;
|
||||||
|
} else {
|
||||||
|
data["Nav2StandbyFreq"] = value;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
data["Comm2StandbyFreq"] = value;
|
# COM frequency
|
||||||
|
if (value > fg1000.MAX_COM_FREQ) return;
|
||||||
|
if (value < fg1000.MIN_COM_FREQ) return;
|
||||||
|
|
||||||
|
if (me._comselected == 1) {
|
||||||
|
data["Comm1StandbyFreq"] = value;
|
||||||
|
} else {
|
||||||
|
data["Comm2StandbyFreq"] = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
me.sendNavComDataNotification(data);
|
me.sendNavComDataNotification(data);
|
||||||
|
|
Loading…
Reference in a new issue