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;
}
}
}
fp->incrementLeg();
}
if (prev->contains(string("DepartureHold"))) {
- cerr << "Passing point DepartureHold" << endl;
+ //cerr << "Passing point DepartureHold" << endl;
scheduleForATCTowerDepartureControl(2);
}
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;
taxiFreq =
rec->getAircraft()->getTrafficRef()->getDepartureAirport()->
getDynamics()->getGroundFrequency(2);
+ towerFreq =
+ rec->getAircraft()->getTrafficRef()->getDepartureAirport()->
+ getDynamics()->getTowerFrequency(2);
receiver =
rec->getAircraft()->getTrafficRef()->getDepartureAirport()->
getName() + "-Ground";
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;
}
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);
}
* 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)
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 {
}
}
-
}
/**
}
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;
// 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);
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);
}
/**