Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AirControlX

AirControlX is a multi-threaded airport simulation and air traffic control management system written in C++11. It models real-time flight scheduling, runway assignment, and phase transitions using concurrent threads and synchronization primitives.

Features

  • Multi-threaded flight simulation with individual threads for each aircraft.
  • Centralized manager monitoring flight progress and thread lifecycles.
  • Priority-based scheduling queue prioritizing emergency and VIP flights.
  • Thread-safe runway access using POSIX mutexes and condition variables.
  • Phase-based simulation mapping flight states from holding and approach to landing, taxiing, and gate arrival/departure.
  • Speed restriction and violation tracking system with airline billing.

Project Structure

  • main.cpp: Entry point of the simulation that configures airlines and runs the manager.
  • CMakeLists.txt: Build configuration file.
  • src/: Core source files containing class declarations and inline implementations:
    • Aircraft.h: Defines flight properties, phase simulation, speed violation checks, and thread execution.
    • Airline.h: Represents airline entities, handles fleets, and manages billing.
    • FlightScheduler.h: Implements priority-queue based arrival/departure scheduling and re-ordering for emergencies or VIPs.
    • Runway.h: Manages runway state, access control, and usage compatibility rules.
    • Manager.h: Coordinates the overall simulation, starts threads, and manages runway requests.

Prerequisites

  • C++11 compatible compiler (such as GCC or Clang)
  • CMake 3.5 or higher
  • SFML 2.5 (graphics, window, and system components)
  • POSIX threads library (pthread)

Compilation and Build

To build the project using CMake:

  1. Create a build directory:

    mkdir build
    cd build
  2. Generate the build files:

    cmake ..
  3. Compile the project:

    make
  4. Run the executable:

    ./AirControlX

About

A multi-threaded air traffic control management system for real-time scheduling and runway assignment

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages