Acarsclient

acarsd is a free ACARS decoder for Linux and Windows. It attempts to decode ACARS transmissions in real-time using soundcards. A server offers access to the database of received ACARS transmissions.

My plans were to write an Android application that gives access to ACARS databases and also informs about new ACARS transmissions. Anyhow I found out that there are no Java client implementations available. Luckily the transfer protocol is documented rather well, so I started to write a Java client that is able to communicate with an acarsd server.

Project Status

  • Language: Java
  • Category: Library, Communication
  • Estimated Completion: 60%

Location

You can find the source code in the Subversion repository:

svn co http://svn.shredzone.org/trunk/scrapbook/acarsclient/

Current Status

The communication is quite completed. The only thing that is still missing is the support of uncompressed binary packages (AS_BINARY).

A small test application connects to an acarsd server, starts the login procedure and initiates a search for an airline code. The transmissions from the server are decoded and printed to stdout.

There should be a common transmission manager, consisting of three threads. One thread manages the transmission queue and sends commands to the server. A second thread manages the receive queue. A third thread watches the transmission queue, and if the last transmission was a certain couple of seconds ago, it sends a heartbeat (AS_HEART) command. If there is no incoming traffic for a certain number of seconds, it assumes that the connection is broken.

Comments

During development I found out that the original acarsd project has been neglected. During the time I was writing the client, the project's wiki was constantly unavailable, so I had to look for the documentation at archive.org. A lot of servers in the official server list did not have proper URLs or were offline/unreachable. It seems like the acarsd.org web site is the best way to access the ACARS database.