- if ((state == 0) && available) {
- if (now > startTime) {
- //cerr << "Transmitting startup msg" << endl;
- transmit(&(*i), MSG_ANNOUNCE_ENGINE_START, ATC_AIR_TO_GROUND);
- i->updateState();
- lastTransmission = now;
- available = false;
- }
- }
- if ((state == 1) && available) {
- if (now > startTime + 60) {
- transmit(&(*i), MSG_REQUEST_ENGINE_START, ATC_AIR_TO_GROUND);
- i->updateState();
- lastTransmission = now;
- available = false;
- }
- }
- if ((state == 2) && available) {
- if (now > startTime + 80) {
- transmit(&(*i), MSG_PERMIT_ENGINE_START, ATC_GROUND_TO_AIR);
- i->updateState();
- lastTransmission = now;
- available = false;
- }
- }
- if ((state == 3) && available) {
- if (now > startTime + 100) {
- transmit(&(*i), MSG_ACKNOWLEDGE_ENGINE_START,
- ATC_AIR_TO_GROUND);
- i->updateState();
- lastTransmission = now;
- available = false;
- }
- }
- // Note: The next four stages are only necessesary when Startup control is
- // on a different frequency, compared to ground control
- if ((state == 4) && available) {
- if (now > startTime + 130) {
- transmit(&(*i), MSG_ACKNOWLEDGE_SWITCH_GROUND_FREQUENCY,
- ATC_AIR_TO_GROUND);
- i->updateState();
- i->nextFrequency();
- lastTransmission = now;
- available = false;
- }
- }
- if ((state == 5) && available) {
- if (now > startTime + 140) {
- transmit(&(*i), MSG_INITIATE_CONTACT, ATC_AIR_TO_GROUND);
- i->updateState();
- lastTransmission = now;
- available = false;
- }
- }
- if ((state == 6) && available) {
- if (now > startTime + 150) {
- transmit(&(*i), MSG_ACKNOWLEDGE_INITIATE_CONTACT,
- ATC_GROUND_TO_AIR);
- i->updateState();
- lastTransmission = now;
- available = false;
- }
+ checkTransmissionState(0, now, (startTime + 0 ), i, MSG_ANNOUNCE_ENGINE_START, ATC_AIR_TO_GROUND);
+ checkTransmissionState(1, now, (startTime + 60 ), i, MSG_REQUEST_ENGINE_START, ATC_AIR_TO_GROUND);
+ checkTransmissionState(2, now, (startTime + 80 ), i, MSG_PERMIT_ENGINE_START, ATC_GROUND_TO_AIR);
+ checkTransmissionState(3, now, (startTime + 100), i, MSG_ACKNOWLEDGE_ENGINE_START, ATC_AIR_TO_GROUND);
+ if (checkTransmissionState(4, now, (startTime + 130), i, MSG_ACKNOWLEDGE_SWITCH_GROUND_FREQUENCY, ATC_AIR_TO_GROUND)) {
+ i->nextFrequency();