class FGAIFlightPlan; // forward reference
class FGGroundNetwork; // forward reference
-//class FGAISchedule; // forward reference
class FGAIAircraft; // forward reference
/**************************************************************************************
int id, waitsForId;
int currentPos;
int leg;
+ int frequencyId;
int state;
+ bool allowTransmission;
time_t timer;
intVec intentions;
FGATCInstruction instruction;
string getRunway() { return runway; };
//void setCallSign(string clsgn) { callsign = clsgn; };
void setAircraft(FGAIAircraft *ref) { aircraft = ref;};
- void updateState() { state++;};
+ void updateState() { state++; allowTransmission=true; };
//string getCallSign() { return callsign; };
FGAIAircraft *getAircraft() { return aircraft;};
int getTime() { return timer; };
int getLeg() { return leg; };
void setTime(time_t time) { timer = time; };
+
+ bool pushBackAllowed();
+ bool allowTransmissions() { return allowTransmission; };
+ void suppressRepeatedTransmissions () { allowTransmission=false; };
+ void allowRepeatedTransmissions () { allowTransmission=true; };
+ void nextFrequency() { frequencyId++; };
+ int getNextFrequency() { return frequencyId; };
};
typedef vector<FGTrafficRecord> TrafficVector;
string formatATCFrequency3_2(int );
+ string genTransponderCode(string fltRules);
public:
typedef enum {
MSG_REQUEST_ENGINE_START,
MSG_PERMIT_ENGINE_START,
MSG_DENY_ENGINE_START,
- MSG_ACKNOWLEDGE_ENGINE_START } AtcMsgId;
+ MSG_ACKNOWLEDGE_ENGINE_START,
+ MSG_REQUEST_PUSHBACK_CLEARANCE,
+ MSG_PERMIT_PUSHBACK_CLEARANCE,
+ MSG_HOLD_PUSHBACK_CLEARANCE,
+ MSG_ACKNOWLEDGE_SWITCH_GROUND_FREQUENCY } AtcMsgId;
typedef enum {
ATC_AIR_TO_GROUND,
ATC_GROUND_TO_AIR } AtcMsgDir;