1
0
Fork 0

ATIS fixes from John Denker

This commit is contained in:
Dave Luff 2011-01-03 01:19:01 +00:00
parent 4428b7358c
commit 2cb67b06b7
3 changed files with 21 additions and 8 deletions

View file

@ -216,9 +216,12 @@ int FGATIS::GenTransmission(const int regen, const int special) {
using namespace lex; using namespace lex;
string BRK = ".\n"; string BRK = ".\n";
string PAUSE = " / ";
double tstamp = atof(fgGetString("sim/time/elapsed-sec")); double tstamp = atof(fgGetString("sim/time/elapsed-sec"));
int interval = ATIS ? ATIS_interval : 2*minute; // AWOS updated frequently int interval = _type == ATIS ?
ATIS_interval // ATIS updated hourly
: 2*minute; // AWOS updated more frequently
int sequence = current_commlist->GetAtisSequence(ident, int sequence = current_commlist->GetAtisSequence(ident,
tstamp, interval, special); tstamp, interval, special);
if (!regen && sequence > LTRS) { if (!regen && sequence > LTRS) {
@ -320,6 +323,9 @@ int FGATIS::GenTransmission(const int regen, const int special) {
transmission += " " + at + " " + ConvertNumToSpokenDigits(buf) + BRK; transmission += " " + at + " " + ConvertNumToSpokenDigits(buf) + BRK;
} }
// Sounds better with a pause in there:
transmission += PAUSE;
int did_some(0); int did_some(0);
int did_ceiling(0); int did_ceiling(0);
@ -431,21 +437,24 @@ int FGATIS::GenTransmission(const int regen, const int special) {
transmission += ConvertNumToSpokenDigits(buf) + BRK; transmission += ConvertNumToSpokenDigits(buf) + BRK;
if (_type == ATIS /* as opposed to AWOS */) { if (_type == ATIS /* as opposed to AWOS */) {
const FGAirport* apt = fgFindAirportID(ident); const FGAirport* apt = fgFindAirportID(ident);
assert(apt); if (apt) {
string rwy_no = apt->getActiveRunwayForUsage()->ident(); string rwy_no = apt->getActiveRunwayForUsage()->ident();
if(rwy_no != "NN") { if(rwy_no != "NN") {
transmission += Landing_and_departing_runway + " "; transmission += Landing_and_departing_runway + " ";
transmission += ConvertRwyNumToSpokenString(rwy_no) + BRK; transmission += ConvertRwyNumToSpokenString(rwy_no) + BRK;
#ifdef ATIS_TEST
if (msg_OK) { if (msg_OK) {
msg_time = cur_time; msg_time = cur_time;
//cout << "In atis.cxx, r.rwy_no: " << rwy_no cout << "In atis.cxx, r.rwy_no: " << rwy_no
// << " wind_dir: " << wind_dir << endl; << " wind_dir: " << wind_dir << endl;
} }
#endif
}
} }
transmission += On_initial_contact_advise_you_have_information + " "; transmission += On_initial_contact_advise_you_have_information + " ";
transmission += phonetic_seq_string; transmission += phonetic_seq_string;
transmission += "... " + BRK; transmission += "... " + BRK + PAUSE + PAUSE;
} }
#ifdef ATIS_TEST #ifdef ATIS_TEST
cout << "**** ATIS active on:"; cout << "**** ATIS active on:";
@ -474,7 +483,7 @@ int FGATIS::GenTransmission(const int regen, const int special) {
for (size_t where;;) { for (size_t where;;) {
where = transmission.find_first_of(":."); where = transmission.find_first_of(":.");
if (where == string::npos) break; if (where == string::npos) break;
transmission.replace(where, 1, " /_ "); transmission.replace(where, 1, PAUSE);
} }
return 1; return 1;
} }

View file

@ -34,9 +34,12 @@ Q(hundred)
Q(zero) Q(zero)
Q(Temperature) Q(Temperature)
Q(clear) Q(clear)
Q(isolated)
Q(few)
Q(scattered) Q(scattered)
Q(broken) Q(broken)
Q(overcast) Q(overcast)
Q(thin)
Q(Sky_condition) Q(Sky_condition)
Q(Ceiling) Q(Ceiling)
Q(minus) Q(minus)

View file

@ -3,6 +3,7 @@ REMAP(Rgnl, Regional)
REMAP(Co, County) REMAP(Co, County)
REMAP(Muni, Municipal) REMAP(Muni, Municipal)
REMAP(Mem, Memorial) REMAP(Mem, Memorial)
REMAP(Meml, Memorial)
REMAP(Apt, Airport) REMAP(Apt, Airport)
REMAP(Arpt, Airport) REMAP(Arpt, Airport)
REMAP(Fld, Field) REMAP(Fld, Field)