#include <simgear/misc/sgstream.hxx>
#include <simgear/misc/strutils.hxx>
#include <simgear/structure/exception.hxx>
+#include <simgear/bucket/newbucket.hxx>
#include <string>
#include "simple.hxx"
#include "runways.hxx"
#include "pavement.hxx"
-#include <ATCDCL/commlist.hxx>
+#if ENABLE_ATCDCL
+# include <ATCDCL/commlist.hxx>
+#else
+ #include <ATC/atcutils.hxx>
+#endif
#include <iostream>
last_apt_type("")
{}
+
+
void parseAPT(const string &aptdb_file, FGCommList *comm_list)
{
sg_gzifstream in( aptdb_file );
} else if ( line_id == 0 ) {
// ??
} else if ( line_id == 50 ) {
+
parseATISLine(comm_list, simgear::strutils::split(line));
+
} else if ( line_id >= 51 && line_id <= 56 ) {
// other frequency entries (ignore)
} else if ( line_id == 110 ) {
SGGeod pos(SGGeod::fromDegFt(lon, lat, last_apt_elev));
FGAirport* apt = new FGAirport(last_apt_id, pos, tower, last_apt_name, false,
fptypeFromRobinType(atoi(last_apt_type.c_str())));
-
apt->setRunwaysAndTaxiways(runways, taxiways, pavements);
}
pvt->addNode(pos, num == 113);
}
}
-
+
void parseATISLine(FGCommList *comm_list, const vector<string>& token)
{
if ( rwy_count <= 0 ) {
// 50 11770 AWOS 3
// This code parallels code found in "operator>>" in ATC.hxx;
// FIXME: unify the code.
+#if ENABLE_ATCDCL
ATCData a;
a.geod = SGGeod::fromDegFt(rwy_lon_accum / (double)rwy_count,
rwy_lat_accum / (double)rwy_count, last_apt_elev);
SGBucket bucket(a.geod);
int bucknum = bucket.gen_index();
comm_list->commlist_bck[bucknum].push_back(a);
+#else
+#endif
#if 0
SG_LOG( SG_GENERAL, SG_ALERT,
"Loaded ATIS/AWOS for airport: " << a.ident
<< " type: " << a.type );
#endif
}
+
};
+
// Load the airport data base from the specified aptdb file. The
// metar file is used to mark the airports as having metar available
// or not.
{
APTLoader ld;
-
ld.parseAPT(aptdb_file, comm_list);
-
//
// Load the metar.dat file and update apt db with stations that
// have metar data.