]> git.mxchange.org Git - flightgear.git/commitdiff
Some fine tuning of the ATC messages related to ground to tower transfer.
authorDurk Talsma <durk@localhost.(none)>
Wed, 10 Aug 2011 19:39:28 +0000 (21:39 +0200)
committerDurk Talsma <durk@localhost.(none)>
Wed, 10 Aug 2011 19:39:28 +0000 (21:39 +0200)
Removal of obsolete debugging messages. Let's hope I caught them all.

src/AIModel/AIAircraft.cxx
src/ATC/atcdialog.cxx
src/ATC/trafficcontrol.cxx
src/ATC/trafficcontrol.hxx
src/Airports/groundnetwork.cxx

index e5c37c8c8a864f63c783507018a291677ad37c80..3791585ec8b8337833d0c8e37ae84708872b2248 100644 (file)
@@ -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);
     }
 
index 41de936af77ea510081734e9ecf4b25972b615cf..eb9533fbb692726b6d5b6aba720e5b75cff56635 100644 (file)
@@ -36,7 +36,7 @@
 FGATCDialogNew *currentATCDialog;
 
 static bool doATCDialog(const SGPropertyNode* arg) {
-        cerr << "Running doATCDialog" << endl;
+        //cerr << "Running doATCDialog" << endl;
        currentATCDialog->PopupDialog();
        return(true);
 }
index b80fcdefa052656a8b0f442eb9d09d32276beeca..8025fe6f7ba104d96a7f44df0968a2486965302a 100644 (file)
@@ -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);
     }
index 98e85d2205477da3c7404579a4b46a0c5ea52539..62e87007ef3b8f1ad8c470a53f7bdb8f9aef0dd9 100644 (file)
@@ -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;
index 3cd3148e56aca98871018bbfb5bf0ad6ac533695..a642a7768bedc6584a366618837dea9ffce40351 100644 (file)
@@ -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);
 } 
 
 /**