Getting Started


The AstSimulator tries to simulate flights and sensors the same way they behaive in real world. In one simulation scenario, there are some objects and they will interact with each other.

  • Space
  • Flight
  • Sensor
  • Time


Space is a three-dimensional area the flight and sensor work in. It is equivalent to the earth surface and the space above it. All points used in simulation must be in this space, one point can be referred as a WGS-84 coordinate (aka. longitude and latitude) plus a level.

It is not necessary to explicitly specify something like a working area, as the whole earth surface is implied in every simulation senario.


Flights or aircrafts fly in space.

Each flight has an internal fly model, which will control how the aircraft fly, including heading, speed, level, route, etc. Each flight will fly by its own, and can go to any point in space, it does't care if any sensor is "observing" it.

Currently, there are two types of fly model:


A sensor locates in space, and observes flights flying in its view.

There are different types of sensor, such as primary radar (PSR), conventional secondary radar (SSR), Mode-S secondary radar (Mode-S), automatic dependent surveillance - broadcast (ADS-B), multilateration (MLAT), each type has its very own characteristics. AstSimulator tries to simulate the behaviour of each type of sensor as in the real world.

Each sensor has a set of properties, such as location, SAC/SIC, coverage, silent cone, detection probability, so that two sensors of the same type can have a very different view of space and observes different flights.

Currently, there is one type of sensor:

Each sensor will generate standard ASTERIX output according to its observation of flights in its view, the category of ASTERIX depends on the sensor's type. Some sensor like ADS-B includes a property to choose which version of ASTERIX standard will be used.


Time makes flights and sensors move.

There are three different clocks in the simulator:

Simulation Clock

Simulation clock is used by flights in simulation scenario.

When a simulation starts to run, the simulation clock will start to run the same speed as the clock in real world. All flights in simulation scenario will calculate its "current" position and other fly vectors (heading, speed, level, ...) according to the "current" time in simulation clock.

User can change the speed of simulation clock to for example 5 times of real world clock. In this case, the flights in simulated world will still fly as their original speed, but from the real world observer's point of view, the flight is flying 5 times faster. Similarly, if you change the speed of simulation clock to 1/2 of real world clock, the flights will look like moving slower.

User can pause the running of simulation clock, in this case all flights will look like frozen in its position, until the simulation clock resumes.

User can even change the simulation clock moving backwards, in this case all flights will also look like moving backwards.

Running Clock

Running clock is used by sensors in simulation scenario.

Once a simulation starts to run, the running clock will start to run the same sapped as the clock in real world. User can not change the speed or pause/resume a running clock. The running clock will stop only when the whole simulation scenario is stopped.

Sensor will run in running clock, so that no matter how you change the simulation clock, the sensor will not be affected and keep on reporting flights with the same time period as in real world.

Real Clock

Real clock is UTC time in our real world.

When sensor generates an ASTERIX message, it will fill timestamp with current UTC time in real world. So that no matter when you start a simulation senario, and no matter how the simulation clock is modified, the timestamp in transmitted ASTERIX message is always the current UTC time.

This could help external system correctly handing the messages generated by AstSimulator. External system doesn't need to know anything of AstSimulator and can treat it as an ordinary surveillance data source. That's why you can use AstSimulator to test a real ATC system by mixing simulated flights with real flights.

AstSimulator tries to calculate correct UTC time from OS clock and OS time zone, if OS is not properly configured, the timestamp in generated ASTERIX messages could be wrong.

Main Window

The main window of AstSimulator is shown as below.

Main Window
As a GUI application, it composes of a main menu on top, a tool bar with different buttons below the main menu, a status bar on bottom, and a switchable list view in the center.

Main Toolbar

The main toolbar functions can be put into several groups.

Main Toolbar
Tool Button Function Group Description
Random Flight Control Create a random flight in simulation.
Orbit Flight Control Create an orbit flight in simulation.
ADS-B Sensor Control Create an ADS-B ground station in simulation.
Start Simulation Control Start a simulation scenario. Both simulation clock and running clock will start when this button is clicked.
Pause Simulation Control Pause or resume a simulation scenario. Only simulation clock will be paused when this button is clicked.
Stop Simulation Control Stop a simulation scenario. Both simulation clock and running clock will stop when this button is clicked.
Speed Simulation Control Change the speed of simulation clock.
Flight View Switch Switch to flight list view, all flights in simulation scenario will be shown in this view.
Sensor View Switch Switch to sensor list view, all sensors in simulation scenario will be shown in this view.
Output View Switch Switch to sensor output view, the sensor output will be displayed in this view.
Exit N/A Exit AstSimulator.

Status Bar

The status bar shows status information of the simulation.

Status Bar
Item Description Example
General Message Display general message of the application or simulation scenario “Simulation started.”
Simulation Clock Display current time of simulation clock “SIM 05:57:45”
Running Clock Display current time of running clock “RUN 12:45:07”
Real Clock Display UTC time of OS clock “UTC 23:01:57”


In the center of main window, it displays switchable view. There are three views.

The detail of each view will be described in corresponding sections.

Flight List View

All flights created in simulation scenario are listed in this view. The information will update during the simulation.

Flight List View

Sensor List View

All sensors defined in simulation scenario are listed in this view.

Sensor List View

Sensor Output View

The output of selected sensor is shown in this view, both as raw format and decoded format.

Sensor Output View