Some fine tuning of the ATC messages related to ground to tower transfer.
Removal of obsolete debugging messages. Let's hope I caught them all.
This commit is contained in:
parent
b603344d69
commit
552aa5419f
5 changed files with 78 additions and 12 deletions
|
@ -570,7 +570,7 @@ void FGAIAircraft::scheduleForATCTowerDepartureControl(int state) {
|
|||
towerController->announcePosition(getID(), fp, fp->getCurrentWaypoint()->getRouteIndex(),
|
||||
_getLatitude(), _getLongitude(), hdg, speed, altitude_ft,
|
||||
trafficRef->getRadius(), leg, this);
|
||||
cerr << "Scheduling " << trafficRef->getCallSign() << " for takeoff " << endl;
|
||||
//cerr << "Scheduling " << trafficRef->getCallSign() << " for takeoff " << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -815,7 +815,7 @@ bool FGAIAircraft::handleAirportEndPoints(FGAIWaypoint* prev, time_t now) {
|
|||
fp->incrementLeg();
|
||||
}
|
||||
if (prev->contains(string("DepartureHold"))) {
|
||||
cerr << "Passing point DepartureHold" << endl;
|
||||
//cerr << "Passing point DepartureHold" << endl;
|
||||
scheduleForATCTowerDepartureControl(2);
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
FGATCDialogNew *currentATCDialog;
|
||||
|
||||
static bool doATCDialog(const SGPropertyNode* arg) {
|
||||
cerr << "Running doATCDialog" << endl;
|
||||
//cerr << "Running doATCDialog" << endl;
|
||||
currentATCDialog->PopupDialog();
|
||||
return(true);
|
||||
}
|
||||
|
|
|
@ -502,10 +502,12 @@ void FGATCController::transmit(FGTrafficRecord * rec, AtcMsgId msgId,
|
|||
string sender, receiver;
|
||||
int stationFreq = 0;
|
||||
int taxiFreq = 0;
|
||||
int towerFreq = 0;
|
||||
int freqId = 0;
|
||||
string atisInformation;
|
||||
string text;
|
||||
string taxiFreqStr;
|
||||
string towerFreqStr;
|
||||
double heading = 0;
|
||||
string activeRunway;
|
||||
string fltType;
|
||||
|
@ -534,6 +536,9 @@ void FGATCController::transmit(FGTrafficRecord * rec, AtcMsgId msgId,
|
|||
taxiFreq =
|
||||
rec->getAircraft()->getTrafficRef()->getDepartureAirport()->
|
||||
getDynamics()->getGroundFrequency(2);
|
||||
towerFreq =
|
||||
rec->getAircraft()->getTrafficRef()->getDepartureAirport()->
|
||||
getDynamics()->getTowerFrequency(2);
|
||||
receiver =
|
||||
rec->getAircraft()->getTrafficRef()->getDepartureAirport()->
|
||||
getName() + "-Ground";
|
||||
|
@ -673,7 +678,37 @@ void FGATCController::transmit(FGTrafficRecord * rec, AtcMsgId msgId,
|
|||
case MSG_ACKNOWLEDGE_RESUME_TAXI:
|
||||
text = receiver + ". Continuing Taxi. " + sender;
|
||||
break;
|
||||
case MSG_REPORT_RUNWAY_HOLD_SHORT:
|
||||
activeRunway = rec->getAircraft()->GetFlightPlan()->getRunway();
|
||||
//activeRunway = "test";
|
||||
text = receiver + ". Holding short runway "
|
||||
+ activeRunway
|
||||
+ ". " + sender;
|
||||
//text = "test1";
|
||||
//cerr << "1 Currently at leg " << rec->getLeg() << endl;
|
||||
break;
|
||||
case MSG_ACKNOWLEDGE_REPORT_RUNWAY_HOLD_SHORT:
|
||||
activeRunway = rec->getAircraft()->GetFlightPlan()->getRunway();
|
||||
text = receiver + "Roger. Holding short runway "
|
||||
// + activeRunway
|
||||
+ ". " + sender;
|
||||
//text = "test2";
|
||||
//cerr << "2 Currently at leg " << rec->getLeg() << endl;
|
||||
break;
|
||||
case MSG_SWITCH_TOWER_FREQUENCY:
|
||||
towerFreqStr = formatATCFrequency3_2(towerFreq);
|
||||
text = receiver + "Contact Tower at " + towerFreqStr + ". " + sender;
|
||||
//text = "test3";
|
||||
//cerr << "3 Currently at leg " << rec->getLeg() << endl;
|
||||
break;
|
||||
case MSG_ACKNOWLEDGE_SWITCH_TOWER_FREQUENCY:
|
||||
towerFreqStr = formatATCFrequency3_2(towerFreq);
|
||||
text = receiver + "Roger, switching to tower at " + towerFreqStr + ". " + sender;
|
||||
//text = "test4";
|
||||
//cerr << "4 Currently at leg " << rec->getLeg() << endl;
|
||||
break;
|
||||
default:
|
||||
//text = "test3";
|
||||
text = text + sender + ". Transmitting unknown Message";
|
||||
break;
|
||||
}
|
||||
|
@ -795,7 +830,7 @@ void FGTowerController::announcePosition(int id,
|
|||
rwy->addToDepartureCue(ref);
|
||||
}
|
||||
|
||||
cerr << ref->getTrafficRef()->getCallSign() << " You are number " << rwy->getDepartureCueSize() << " for takeoff " << endl;
|
||||
//cerr << ref->getTrafficRef()->getCallSign() << " You are number " << rwy->getDepartureCueSize() << " for takeoff " << endl;
|
||||
} else {
|
||||
i->setPositionAndHeading(lat, lon, heading, speed, alt);
|
||||
}
|
||||
|
|
|
@ -273,7 +273,13 @@ public:
|
|||
MSG_HOLD_POSITION,
|
||||
MSG_ACKNOWLEDGE_HOLD_POSITION,
|
||||
MSG_RESUME_TAXI,
|
||||
MSG_ACKNOWLEDGE_RESUME_TAXI } AtcMsgId;
|
||||
MSG_ACKNOWLEDGE_RESUME_TAXI,
|
||||
MSG_REPORT_RUNWAY_HOLD_SHORT,
|
||||
MSG_ACKNOWLEDGE_REPORT_RUNWAY_HOLD_SHORT,
|
||||
MSG_SWITCH_TOWER_FREQUENCY,
|
||||
MSG_ACKNOWLEDGE_SWITCH_TOWER_FREQUENCY
|
||||
} AtcMsgId;
|
||||
|
||||
typedef enum {
|
||||
ATC_AIR_TO_GROUND,
|
||||
ATC_GROUND_TO_AIR } AtcMsgDir;
|
||||
|
|
|
@ -541,8 +541,12 @@ void FGGroundNetwork::signOff(int id)
|
|||
* 1 = "Acknowledge "Hold position
|
||||
* 2 = "Acknowledge "Resume taxi".
|
||||
* 3 = "Issue TaxiClearance"
|
||||
* 4 = =Acknowledge Taxi Clearance"
|
||||
*
|
||||
* 4 = Acknowledge Taxi Clearance"
|
||||
* 5 = Post acknowlegde taxiclearance: Start taxiing
|
||||
* 6 = Report runway
|
||||
* 7 = Acknowledge report runway
|
||||
* 8 = Switch tower frequency
|
||||
* 9 = Acknowledge switch tower frequency
|
||||
*************************************************************************************************************************/
|
||||
bool FGGroundNetwork::checkTransmissionState(int minState, int maxState, TrafficVectorIterator i, time_t now, AtcMsgId msgId,
|
||||
AtcMsgDir msgDir)
|
||||
|
@ -556,7 +560,7 @@ bool FGGroundNetwork::checkTransmissionState(int minState, int maxState, Traffic
|
|||
if (n == 0) {
|
||||
trans_num->setIntValue(-1);
|
||||
// PopupCallback(n);
|
||||
cerr << "Selected transmission message " << n << endl;
|
||||
//cerr << "Selected transmission message " << n << endl;
|
||||
FGATCManager *atc = (FGATCManager*) globals->get_subsystem("atc");
|
||||
atc->getATCDialog()->removeEntry(1);
|
||||
} else {
|
||||
|
@ -648,7 +652,6 @@ void FGGroundNetwork::updateAircraftInformation(int id, double lat, double lon,
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -914,14 +917,14 @@ void FGGroundNetwork::checkHoldPosition(int id, double lat,
|
|||
}
|
||||
if (current->getState() == 0) {
|
||||
if ((origStatus != currStatus) && available) {
|
||||
cerr << "Issueing hold short instrudtion " << currStatus << " " << available << endl;
|
||||
//cerr << "Issueing hold short instrudtion " << currStatus << " " << available << endl;
|
||||
if (currStatus == true) { // No has a hold short instruction
|
||||
transmit(&(*current), MSG_HOLD_POSITION, ATC_GROUND_TO_AIR, true);
|
||||
cerr << "Transmittin hold short instrudtion " << currStatus << " " << available << endl;
|
||||
//cerr << "Transmittin hold short instrudtion " << currStatus << " " << available << endl;
|
||||
current->setState(1);
|
||||
} else {
|
||||
transmit(&(*current), MSG_RESUME_TAXI, ATC_GROUND_TO_AIR, true);
|
||||
cerr << "Transmittig resume instrudtion " << currStatus << " " << available << endl;
|
||||
//cerr << "Transmittig resume instrudtion " << currStatus << " " << available << endl;
|
||||
current->setState(2);
|
||||
}
|
||||
lastTransmission = now;
|
||||
|
@ -930,7 +933,13 @@ void FGGroundNetwork::checkHoldPosition(int id, double lat,
|
|||
// So set back to original status
|
||||
//cerr << "Current state " << current->getState() << endl;
|
||||
}
|
||||
|
||||
}
|
||||
// 6 = Report runway
|
||||
// 7 = Acknowledge report runway
|
||||
// 8 = Switch tower frequency
|
||||
//9 = Acknowledge switch tower frequency
|
||||
|
||||
//int state = current->getState();
|
||||
if (checkTransmissionState(1,1, current, now, MSG_ACKNOWLEDGE_HOLD_POSITION, ATC_AIR_TO_GROUND)) {
|
||||
current->setState(0);
|
||||
|
@ -940,6 +949,22 @@ void FGGroundNetwork::checkHoldPosition(int id, double lat,
|
|||
current->setState(0);
|
||||
current->setHoldPosition(false);
|
||||
}
|
||||
if (current->getAircraft()->getTakeOffStatus() && (current->getState() == 0)) {
|
||||
//cerr << "Scheduling " << current->getAircraft()->getCallSign() << " for hold short" << endl;
|
||||
current->setState(6);
|
||||
}
|
||||
if (checkTransmissionState(6,6, current, now, MSG_REPORT_RUNWAY_HOLD_SHORT, ATC_AIR_TO_GROUND)) {
|
||||
}
|
||||
if (checkTransmissionState(7,7, current, now, MSG_ACKNOWLEDGE_REPORT_RUNWAY_HOLD_SHORT, ATC_GROUND_TO_AIR)) {
|
||||
}
|
||||
if (checkTransmissionState(8,8, current, now, MSG_SWITCH_TOWER_FREQUENCY, ATC_GROUND_TO_AIR)) {
|
||||
}
|
||||
if (checkTransmissionState(9,9, current, now, MSG_ACKNOWLEDGE_SWITCH_TOWER_FREQUENCY, ATC_AIR_TO_GROUND)) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
//current->setState(0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue