Updates ...
This commit is contained in:
parent
ef22db9c3a
commit
3802a0385f
2 changed files with 114 additions and 8 deletions
|
@ -58,12 +58,14 @@ int main( int argc, char **argv ) {
|
||||||
string airport, last_airport;
|
string airport, last_airport;
|
||||||
string line;
|
string line;
|
||||||
char tmp[256];
|
char tmp[256];
|
||||||
|
bool ready_to_go = true;
|
||||||
|
|
||||||
fglog().setLogLevels( FG_ALL, FG_DEBUG );
|
fglog().setLogLevels( FG_ALL, FG_DEBUG );
|
||||||
|
|
||||||
// parse arguments
|
// parse arguments
|
||||||
string work_dir = "";
|
string work_dir = "";
|
||||||
string input_file;
|
string input_file = "";
|
||||||
|
string start_id = "";
|
||||||
int arg_pos;
|
int arg_pos;
|
||||||
for (arg_pos = 1; arg_pos < argc; arg_pos++) {
|
for (arg_pos = 1; arg_pos < argc; arg_pos++) {
|
||||||
string arg = argv[arg_pos];
|
string arg = argv[arg_pos];
|
||||||
|
@ -71,12 +73,15 @@ int main( int argc, char **argv ) {
|
||||||
work_dir = arg.substr(7);
|
work_dir = arg.substr(7);
|
||||||
} else if ( arg.find("--input=") == 0 ) {
|
} else if ( arg.find("--input=") == 0 ) {
|
||||||
input_file = arg.substr(8);
|
input_file = arg.substr(8);
|
||||||
|
} else if ( arg.find("--start-id=") == 0 ) {
|
||||||
|
start_id = arg.substr(11);
|
||||||
|
ready_to_go = false;
|
||||||
} else if ( arg.find("--nudge=") == 0 ) {
|
} else if ( arg.find("--nudge=") == 0 ) {
|
||||||
nudge = atoi( arg.substr(8).c_str() );
|
nudge = atoi( arg.substr(8).c_str() );
|
||||||
} else {
|
} else {
|
||||||
FG_LOG( FG_GENERAL, FG_ALERT,
|
FG_LOG( FG_GENERAL, FG_ALERT,
|
||||||
"Usage " << argv[0] << " --input=<apt_file> "
|
"Usage " << argv[0] << " --input=<apt_file> "
|
||||||
<< "--work=<work_dir> [ --nudge=n ]" );
|
<< "--work=<work_dir> [ --start-id=abcd ] [ --nudge=n ]" );
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,10 +135,25 @@ int main( int argc, char **argv ) {
|
||||||
airport = line;
|
airport = line;
|
||||||
|
|
||||||
if ( last_airport.length() ) {
|
if ( last_airport.length() ) {
|
||||||
|
char ctmp, id[32];
|
||||||
|
sscanf( last_airport.c_str(), "%c %s", &ctmp, id );
|
||||||
|
cout << "Id portion = " << id << endl;
|
||||||
|
|
||||||
|
if ( start_id.length() && start_id == (string)id ) {
|
||||||
|
ready_to_go = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ready_to_go ) {
|
||||||
|
// check point our location
|
||||||
|
char command[256];
|
||||||
|
sprintf( command, "echo %s > last_apt", id );
|
||||||
|
system( command );
|
||||||
|
|
||||||
// process previous record
|
// process previous record
|
||||||
// process_airport(last_airport, runways_list, argv[2]);
|
// process_airport(last_airport, runways_list, argv[2]);
|
||||||
build_airport(last_airport, runways_list, work_dir);
|
build_airport(last_airport, runways_list, work_dir);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// clear runway list for start of next airport
|
// clear runway list for start of next airport
|
||||||
runways_list.clear();
|
runways_list.clear();
|
||||||
|
@ -153,10 +173,22 @@ int main( int argc, char **argv ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( last_airport.length() ) {
|
if ( last_airport.length() ) {
|
||||||
|
char ctmp, id[32];
|
||||||
|
sscanf( last_airport.c_str(), "%c %s", &ctmp, id );
|
||||||
|
cout << "Id portion = " << id << endl;
|
||||||
|
|
||||||
|
if ( start_id.length() && start_id == id ) {
|
||||||
|
ready_to_go = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ready_to_go ) {
|
||||||
// process previous record
|
// process previous record
|
||||||
// process_airport(last_airport, runways_list, argv[2]);
|
// process_airport(last_airport, runways_list, argv[2]);
|
||||||
build_airport(last_airport, runways_list, work_dir);
|
build_airport(last_airport, runways_list, work_dir);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cout << "[FINISHED CORRECTLY]" << endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
74
src/Airports/GenAirports/process.pl
Executable file
74
src/Airports/GenAirports/process.pl
Executable file
|
@ -0,0 +1,74 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# this is a sad testament to building your software off of other
|
||||||
|
# libraries that have bugs (or perhaps less than disired features.)
|
||||||
|
# Unfortunatley I don't know enough about the functionality they
|
||||||
|
# provide to go fix them. Maybe someday.
|
||||||
|
|
||||||
|
# At any rate. This script is a wrapper around the main airport
|
||||||
|
# generation utility. It run it until it finishes or crashes. If it
|
||||||
|
# finishes without saying, yup I'm all done, a crash is assumed. We
|
||||||
|
# re-run the airport generate from the crash point with a different
|
||||||
|
# nudge factor in a sorry attempt to work around the bug.
|
||||||
|
|
||||||
|
# yes, I know this is a really ugly hack, I apologize in advance to
|
||||||
|
# those who might have trouble running these tools on non-unix
|
||||||
|
# platforms, but I'm not sure what else to do at this point. If
|
||||||
|
# someone can fix the polygon clipping library so it doesn't leave
|
||||||
|
# tiny shards of polygons or cracks, I'd be very grateful.
|
||||||
|
|
||||||
|
# So here we go, children under 13 years of age should probably have
|
||||||
|
# parental supervision if playing with something this ugly.
|
||||||
|
|
||||||
|
|
||||||
|
# Edit the following values to set up your preferences:
|
||||||
|
|
||||||
|
$workdir = "./work";
|
||||||
|
# $inputfile = "./default.apt";
|
||||||
|
$inputfile = "default.apt";
|
||||||
|
$binary = "./genapts";
|
||||||
|
$startid = "";
|
||||||
|
|
||||||
|
# end of user configurable section
|
||||||
|
|
||||||
|
|
||||||
|
$done = 0;
|
||||||
|
$nudge = 0;
|
||||||
|
|
||||||
|
while ( ! $done ) {
|
||||||
|
|
||||||
|
# update the nudge value
|
||||||
|
$nudge += 5;
|
||||||
|
if ( $nudge > 20 ) {
|
||||||
|
$nudge = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
# launch the airport generator
|
||||||
|
|
||||||
|
$command = "$binary --input=$inputfile --work=$workdir --nudge=$nudge";
|
||||||
|
|
||||||
|
if ( $startid ne "" ) {
|
||||||
|
$command .= " --start-id=$startid";
|
||||||
|
}
|
||||||
|
|
||||||
|
print "Executing $command\n";
|
||||||
|
open( PIPE, "$command |" ) || die "Cannot run $command\n";
|
||||||
|
|
||||||
|
while ( <PIPE> ) {
|
||||||
|
if ( m/Id portion/ ) {
|
||||||
|
print $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( m/\[FINISHED CORRECTLY\]/ ) {
|
||||||
|
$done = 1;
|
||||||
|
print "FINISHED!\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
close ( PIPE );
|
||||||
|
|
||||||
|
if ( ! $done ) {
|
||||||
|
$startid = `cat last_apt`; chop( $startid );
|
||||||
|
print "Restarting at $startid.\n";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue