Code Monkey home page Code Monkey logo

jaero's Introduction

JAERO

build

A SatCom ACARS demodulator and decoder for the Aero standard written in C++ Qt

This program demodulates and decodes ACARS messages sent from satellites to Aeroplanes (SatCom ACARS) commonly used when Aeroplanes are beyond VHF range. Demodulation is performed using the soundcard. Such signals are typically around 1.5Ghz and can be received with a simple low gain antenna that can be home brewed in a few hours in conjunction with a cheap RTL-SDR dongle.

The 600 and 1200 bps SatCom ACARS signals are basically MSK like so the demodulator was forked from JMSK. The demodulator implements a coherent MSK demodulator type as seen at http://jontio.zapto.org/hda1/msk-demodulation2.html.

The 600 and 1200 bps demodulator uses the technique that treats the signal similar to OQPSK but with sine wave transitions rather than rectangular transitions. The BER (Bit Error Rate) versus EbNo (Energy per bit to Noise power density) performance in the presence of AWGN (Additive White Gaussian Noise) is the same as coherently demodulated differentially encoded BPSK. While designed for MSK it will also demodulate GMSK and some types of BPSK. The signal is supplied via the audio input of the computer’s soundcard. The software implements differential decoding hence the modulator must use differential encoding. The output of the demodulator can be directed to either a built-in console or to a UDP network port.

An OQPSK demodulator was added and supports the faster 8400bps and 10.5k Aero signals.

Both 1200 and 10.5k burst C-band signal demodulation (From plane to ground station) are supported.

C-Channel signals at 8400bps that are for voice can be demodulated.

Binaries

Precompiled binaries can be downloaded from Releases.

Directory structure

The JAERO directory is where the Qt pro file is for the main application. The udptextserver directory is a small demo application for receiving data sent from JAERO.

Compiling JAERO

Compiling JAERO requires the Qt framework. I would suggest using MSYS2 to install the Qt framework and the rest of the development environment. Qt Creator can be used to compile JAERO and comes with the Qt framework. At least version 5 of the Qt framework is required. I only use MinGW and GCC for building so don't know if MSVC works.

I've now added Windows and Linux build scripts. The Windows build script requires MSYS2, once installed run msys64 clone the repo then type ./ci-windows-build.sh. The Linux build script is for Debian based distros and will need to be changed for others; I have only tested it on some of the Ubuntu family (Ubuntu, Kubuntu and Lubuntu). For Linux type ./ci-linux-build.sh, it will install JAERO as a few packages so uninstalling should be clean. For Windows there is no fancy installer but rather just a folder with the dependencies and the exe file itself. The build will fail if any of the dependency folders already exist; so the scripts could still do with a bit more work. Currently the aim of the scripts is as a way of automatically building JAERO from a default system so I can easily make changes to the code and not have the hassle of build releases.

I've added a continuous integration script .github/workflows/ci-windows-build.yml that will get Gihub to build JAERO for both Windows and Ubuntu. Currently the script is triggered manually in the actions tab. I suspect some older computers, say ones that don't support AVX instructions may now not run the new releases created in this manor and will need building on the intended computer itself.

JAERO's dependencies will undoubtedly change over time, so I suspect eventually the build scripts will fail and will need fixing. Till then they work, but I have no idea how long they will work for.

Thanks

I'd like to thank everyone who has given their kind support for JAERO over the years. Thanks for Otti for getting the project started, John and Bev for setting up a worldwide large dish network, everyone who has donated, the people who have send feedback, people who use JAERO, Jeroen who done an excellent job programming new code for JAERO to bring some features that I’m sure will be appreciated by many, Tomasz for adding more ACARS message support, Corrosive for adding documentation, and the many other people who have written the libraries that JAERO uses.

Jonti 2021
https://jontio.zapto.org

jaero's People

Contributors

andermatt64 avatar jeroenbeijer avatar jontio avatar szpajder avatar vladisslav2011 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jaero's Issues

Demodulate offline recorded signals

Dear Jonti
Thanks for your attempts for writing JAERO. I find it amazing tool. I have one question. As I found, in your program sound card decodes the signals received from audio output of receiver. If we have offline recorded AERO signal, how we can demodulate and decode them? I search for a way to give recorded AERO signal to program.
Sincerely yours

REG field not populated on broadcast streams

Hi,

I seem to have an odd one where by the plane log REG field isn't being populated when tuned to the satellite broadcast stream channel.. all others are fine and work as expected.

The broadcast stream is the one that lists the satellites positions and channel frequencies... could be a parsing bug?

Thx

JAERO crushing with libaeroambe

Hello,

JAERO with libaeroambe is crushing as soon as it lock on the signal with error bellow:

./JAERO: symbol lookup error: /usr/lib/x86_64-linux-gnu/libaeroambe.so: undefined symbol: mbe_processAmbe4800x3600Frame

OS is linux

Sry for the post

Hello, I have some troubles, I need 100mb I/Q.waw from inmarsat-c aero, for trying your programm. Thanks.

Update README titles

Great project!

To make the README headers/titles show correctly, please add a space between last # (hash) and first letter.

Installing Jaero on Pi3

Hi J,
Tried to follow your instructions
https://github.com/jontio/JAERO/wiki/c-band-on-pi

The version listed has been deleted and repalced with version 1.0.4.10

wget http://download.opensuse.org/repositories/home:/mnhauke:/sdr-devel/openSUSE_Leap_42.2_Ports/armv7hl/jaero-1.0.4.10-11.2.armv7hl.rpm

When downloaded the next step was

rpm2cpio jaero-1.0.4.10-11.2.armv7hl.rpm | cpio -idmv

I have a folder JAERO, inside this is bin and share.

The excecutable resides in bin (jaero)
`
But when I try to run the executable

jaero will not run.

Any help appreciated.

jaero

windeployqt "QM-Format error"

Github actions windeployqt.exe fails with QM-Format error when --no-translations is not enabled. It's a bug with windeployqt.exe and should be fixed with some future release.

Kubuntu 21.10 build issue

I tried to build JAERO on my kubuntu 21.10 system.

First, in ci-linux-build.sh, there is a change in packages:
qt5-default is no more avaliable.

I found a way here https://stackoverflow.com/questions/67373586/install-qt5-on-ubuntu-21-04

I modified the sh script to take this change in account.

Now I have a build issue while building JAERO.
Previous libs buit ok.

PACKAGE_NAME=jaero PACKAGE_VERSION=1.0.4.13-23-g3d92aea-dirty MAINTAINER=https://github.com/jontio PACKAGE_SOURCE=https://github.com/jontio/JAERO Info: creating stash file /home/nicolas/Applis/SDR/JAERO/JAERO/.qmake.stash /usr/lib/qt5/bin/uic mainwindow.ui -o ui_mainwindow.h /usr/lib/qt5/bin/uic gui_classes/settingsdialog.ui -o ui_settingsdialog.h /usr/lib/qt5/bin/uic gui_classes/planelog.ui -o ui_planelog.h g++ -c -pipe -std=c++11 -Wno-deprecated-copy -O3 -Wall -Wextra -D_REENTRANT -fPIC -DJAERO_VERSION=\"v1.0.4.13\" -D_USE_MATH_DEFINES -DGENERATE_TEST_OUTPUT_FILES -DMATLAB_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/matlab/\" -DTEST_OUTPUT_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/test_output/\" -DQCUSTOMPLOT_USE_LIBRARY -DQT_NO_DEBUG -DQT_MULTIMEDIA_LIB -DQT_SVG_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I. -I../../JFFT -I/usr/local/include/libacars-2 -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o testall.o tests/testall.cpp g++ -c -pipe -std=c++11 -Wno-deprecated-copy -O3 -Wall -Wextra -D_REENTRANT -fPIC -DJAERO_VERSION=\"v1.0.4.13\" -D_USE_MATH_DEFINES -DGENERATE_TEST_OUTPUT_FILES -DMATLAB_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/matlab/\" -DTEST_OUTPUT_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/test_output/\" -DQCUSTOMPLOT_USE_LIBRARY -DQT_NO_DEBUG -DQT_MULTIMEDIA_LIB -DQT_SVG_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I. -I../../JFFT -I/usr/local/include/libacars-2 -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o fftwrapper_tests.o tests/fftwrapper_tests.cpp g++ -c -pipe -std=c++11 -Wno-deprecated-copy -O3 -Wall -Wextra -D_REENTRANT -fPIC -DJAERO_VERSION=\"v1.0.4.13\" -D_USE_MATH_DEFINES -DGENERATE_TEST_OUTPUT_FILES -DMATLAB_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/matlab/\" -DTEST_OUTPUT_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/test_output/\" -DQCUSTOMPLOT_USE_LIBRARY -DQT_NO_DEBUG -DQT_MULTIMEDIA_LIB -DQT_SVG_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I. -I../../JFFT -I/usr/local/include/libacars-2 -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o fftrwrapper_tests.o tests/fftrwrapper_tests.cpp g++ -c -pipe -std=c++11 -Wno-deprecated-copy -O3 -Wall -Wextra -D_REENTRANT -fPIC -DJAERO_VERSION=\"v1.0.4.13\" -D_USE_MATH_DEFINES -DGENERATE_TEST_OUTPUT_FILES -DMATLAB_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/matlab/\" -DTEST_OUTPUT_PATH=\"/home/nicolas/Applis/SDR/JAERO/JAERO/test_output/\" -DQCUSTOMPLOT_USE_LIBRARY -DQT_NO_DEBUG -DQT_MULTIMEDIA_LIB -DQT_SVG_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_CORE_LIB -I. -I../../JFFT -I/usr/local/include/libacars-2 -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtMultimedia -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtPrintSupport -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o jfastfir_tests.o tests/jfastfir_tests.cpp tests/jfastfir_tests.cpp: In member function ‘virtual void TEST_GROUP_CppUTestGroupTest_JFastFir::teardown()’: tests/jfastfir_tests.cpp:26:34: error: ‘turnOnNewDeleteOverloads’ is not a member of ‘MemoryLeakWarningPlugin’ 26 | MemoryLeakWarningPlugin::turnOnNewDeleteOverloads(); | ^~~~~~~~~~~~~~~~~~~~~~~~ make: *** [Makefile:980 : jfastfir_tests.o] Erreur 1

UDP Outputs

FirstUDP related pushbutton (plug icon) works as expected pushing the decoded data out port 8765. The second pushbutton(1 and 0 icon) appears to do nothing with port 8765 whether set alone or with plug pushbutton. I have used wireshark to confirm.

Am I doing something wrong?

QAudioInput may sometimes hang

A few people have reported a strange bug where if using an audio input it looks like QAudioInput may occasionally hangs and JAERO gets no new audio buffers but rather just receives the same one over and over again...

image

image

I have been told...

the Windows power profile settings were a very large part of the problem. You must not let your computer even sleep the monitor or use the screen saver as one small example, there are also hard drive and CPU power settings that can mitigate this issue.

It happens on Windows but I don't know if it also happens on Linux or Mac.

Not sure if this issue is a problem with all programs using QAudioInput or just JAERO. If it's a systemic problem with QAudioInput then the issue should probably be logged with the Qt bugtracker. I look in https://bugreports.qt.io/browse/QTBUG-77449?jql=status%20in%20(Reported%2C%20%22Need%20More%20Info%22%2C%20Open%2C%20%22In%20Progress%22%2C%20Reopened%2C%20Resolved%2C%20Implemented%2C%20Withdrawn%2C%20Rejected%2C%20%22Waiting%203rd%20party%22%2C%20%22To%20Do%22%2C%20Blocked)%20AND%20text%20~%20%22QAudioInput%22 but could not see any mention of a bug like this that hasn't been resolved

workaround

Use the ZMQ input

possible solutions

Exchange QAudioInput for something like RTAudio

Use UTC instead of local time

Currently the Local Time is used for the log entries and to decide when to start a new log during midnight.
To be able to use the data from JAERO to complement the data from other sources (Mode-S, Acars, VDL2 and HFDL) or shared with other users it is necessary to use UTC.

Cheers,
Dick

ZMQ source from GNURadio

Is it possible to send the audio stream into JAERO from a ZMQ pub sink in GNURadio? Or is there another way to send data from GNURadio into JAERO?

I am currently sending some data from a pub sink and JAERO's FFT isn't showing anything at all.

automatic locking at c-channels not working

When new c-channels are activ, jaero often does not lock at them, i have to do it manually.
Once it locked at them, with manual help, it mostly does not loose the lock, even if a other channel overlaps it a bit. jeara shows EbNo of 12 db.

Plane Database redirection ignored

The default database url ( https://junzisun.com/adb/download ) has been moved and the redirection that is given is ignored by JAERO. Also no error message is given to the user to inform them that something has gone wrong.

Really JAERO should follow url redirections but it's probably easier just to change the default address to the new address of https://junzis.com/adb/download

The plane lookup address has also closed and there is no redirection so that's another problem. Currently the only working online lookup I know of is http://www.flightradar24.com/data/airplanes/{REG} and that uses REG not AES

Problem compiling libaerombe

Hey guys.

Im trying to compile JAERO, following the instructions on https://github.com/jontio/libaeroambe/wiki/Building_64-bit_binaries_for_Linux for Kubuntu 19.04 (i know - guide is for 18.04).

Im currently stuck on this error, when compiling libaerombe:

mbelib-master/test/test.cpp:1:10: fatal error: gtest/gtest.h: No such file or directory

Which I cannot find/resolve. I've also tried compiling Jaero with Qt Creator - this gets me stuck on "Unknown modules in QT: multimedia svg".

Not the easiest compile task I've seen ;) Any help/pointers..?

Resolve hostname in UDP stream.

In Settings -> ACARS window I would like to be able to add a hostname and port for data to be sent to.
At the moment only lP:port function.
Many people are running Jaero and feeding ACARS data to a central website. If the IP address changes all Jaeros need to be updated. Enabling Jaero to resolve the hostname would solve this issue.

Thanks for your work.

Database not being recognised

Hi Jonti,
I am having some problems understanding the plane database philosophy. I know the downloaded db is not your remit so I would like to understand the required format and location for the db.

At the moment when I go to Settings in JAERO and click the download button JAERO reports 1 database successfully downloaded but in fact nothing arrives in either my download folder or the JAERO db location specified in the Settings. If I go directly to https://junzisun.com/adb/download I can get a zip file that contains aircrafts_db.csv but extracting that into the JAERO directory doesn't help as I get an error "Database file aircrafts_dump.db missing. Download first." So if I rename that file aircrafts_dump.db I get this error "Error: file is not a database Unable to execute statement". If I open that file in a text editor these are the first few lines:

icao,regid,mdl,type,operator
004003,z-wpb,b732,Boeing 737-2N0,Air Zimbabwe
00400c,z-faa,b735,Boeing 737-55S,FlyAfrica
00400e,z-fab,b735,Boeing 737-55S,FlyAfrica
00400f,z-fje,a319,Airbus A319-131,Fastjet Zimbabwe

Can you advise me what I need to have or do to get a working database?

Cheers,
Michael
Palmerston North

Daily Log files

For continuous monitoring, the ability to automatically produce daily log files (one per day) would be good.

Automatic correction of bitstream polarity

It would be nice to have a method whereby if the bitstream was inverted that it could be corrected automatically. This would prevent the user from having to determine whether or not to use USB or LSB.

Add duplicate "output to udp" to support multiple programs

Currently only one output is available for outputting ACARS data to UDP. If multiple programs are wanting the data there will be a problem if they aren't all using SO_REUSEADDR when binding to the UDP port. adding two ports containing the same data would allow two programs to receive the data.

Compiling for 32 Bit But No Audio

I've compiled JAERO using msys2 (mingw-32) and QT Creator.

I manually compiled each dependency using mingw-32 including mbelib/aeroambe.
The software did compile and it locks signals just fine, it displays it has data and it logs to disk .ogg files but no audio is ever recovered.

I should also note that JAERO doesn't give an error when loading the aeroambe.dll

When I compile using QT Creator for JAERO I get the following

ERROR

The compiling of each dependency seems to be fine and I'm not sure where I went wrong.

I'm planning to use the software on a dedicated pc which unfortunately is x86 only.

Thank you for all your time and support. I hope you have a moment to help me, I've spent two weeks trying to figure out how to compile this stuff on windows and it's been a heck of a learning experience.

Demodulate offline recorded signals

Dear Jonti
Thanks for your attempts for writing JAERO. I find it amazing tool. I have one question. As I found, in your program sound card decodes the signals received from audio output of receiver. If we have offline recorded AERO signal, how we can demodulate and decode them? I search for a way to give recorded AERO signal to program.
Sincerely yours

Compilers MSVC + Qt-5.4

Add in DSP.h
#ifdef _MSC_VER

define M_E 2.7182818284590452354 /* e */

define M_LOG2E 1.4426950408889634074 /* log_2 e */

define M_LOG10E 0.43429448190325182765 /* log_10 e */

define M_LN2 0.69314718055994530942 /* log_e 2 */

define M_LN10 2.30258509299404568402 /* log_e 10 */

define M_PI 3.14159265358979323846 /* pi */

define M_PI_2 1.57079632679489661923 /* pi/2 */

define M_PI_4 0.78539816339744830962 /* pi/4 */

define M_1_PI 0.31830988618379067154 /* 1/pi */

define M_2_PI 0.63661977236758134308 /* 2/pi */

define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */

define M_SQRT2 1.41421356237309504880 /* sqrt(2) */

define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) /*

#endif // _MSC_VER

In aerol.h modifi
typedef enum ReturnResult
{
OK_Packet= 0x01,// 0b00000001,
OK_R_Packet= 0x03,// 0b00000011,
OK_T_Packet= 0x05,// 0b00000101,
Bad_Packet= 0x00,// 0b00000000,
Test_Failed= 0x20,// 0b00100000,
Nothing= 0x08,// 0b00001000,
FULL= 0x10,// 0b00010000
} ReturnResult;

Update version of libacars.

Libacars has undergone many improvements and updates.
The quality of the messages decoded by Jaero would be greatly increased by using the latest version.

Thanks for your consideration.

How to / Bandwith

Hi
I have 3 major Problems. One is there I found now how to send the Messages to PP for further analyse.

The 2nd is the Bandwidth for the Audio cut of way before the SDR. Its 192khz or what ever the standard is.
With the full Bandwidth I can run Multiple Channels with one Audio Channel. Now even with the Audio extension I get 3 instead of 5.

The 3rd Problem is the Setting File is store not in the Folder who the Software Run. That mean I cant run the Software after an Reboot Automatic since the would select all the same channel.
Thanks

Plane image displaying in log window

Hello,
I tried to have the planes image displayed in the log window but with no success. Tested with file in main Jaero folder and log files folder, but no image is shown.
Do we have to create a subfolder ?
Thanks.
Thibaut.

Problem running under Linux

For some strange reason I can not run JAERO 1.4.0.7 under Linux

(gdb) r
Starting program: /opt/linux/JAERO/JAERO/JAERO
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe9b65700 (LWP 3468)]
[New Thread 0x7fffe8f4f700 (LWP 3469)]
[New Thread 0x7fffcffff700 (LWP 3470)]
[New Thread 0x7fffcf7fe700 (LWP 3471)]
[New Thread 0x7fffceffd700 (LWP 3472)]
[New Thread 0x7fffce7fc700 (LWP 3473)]
[New Thread 0x7fffcdffb700 (LWP 3474)]
[New Thread 0x7fffcd7fa700 (LWP 3475)]

Thread 1 "JAERO" received signal SIGILL, Illegal instruction.
0x00007ffff7bd421f in fill_table () from /usr/local/lib/libcorrect.so

Enable logging of the messages in the top window

For investigative purposes it would be very useful if it were possible to log all entries that appear in the top window.
Currently I copy&paste the content of the top window on a regular basis.

Cheers,
Dick

Beep on C-Channel assignment message

I'm running windows v1.0.4.8. Although in the Settings I have unchecked the 'Beep on multi line text message', with this latest release I getting a beep every time a C-Channel assignment message is received.
e.g. 10:30:59 12-12-18 AES:4A81F8 GES:90 Receive Freq: 1546.19 Global Beam Transmit 1647.69

Could you provide an option to disable the beep.
Thanks
Stuart

Selecting soundcard device

It would be handy if there could be the option to select the soundcard in the settings dialog rather than just the default soundcard.

Plane log: Cant open SQL database

Hi Jonti,
When using the latest Windows package 1.0.4.13-18 a 'Cant open SQL database' message is displayed when using the Plane log window.

This worked fine using the 1.0.4.13-alpha package.

Finally it proved that replacing the content of the sqldrivers directory fixed the problem.
Not sure which driver is causing it, but I noticed that at the size of qsqlite.dll, although showing the same version 5.15.2.0, is very different 1.31 MB vs 154 KB.

Cheers,
Dick

include background information

hello,

your pages are hugely interesting, to the point you could consider including them as a documentation source for the program.

as example, I've forked and created a first page here: https://github.com/axd1967/JAERO/blob/contrib/doc/doc/README.md

an alternative could be the wiki, but the advantage of including the doc is that the doc can nicely evolve together with code evolutions, while the wiki - even if it is also a Git repository - is independent.

if you like the idea, I can add the other hda1/ pages and send you a pull request, or if you prefer, I will drop the fork.

maybe a few more suggestions? I guess you are aware of these, yet allow me to suggest them:

  • consider using this repo as your main page (instead of http://jontio.zapto.org/hda1/jaero.html); Git gives you the advantage that you can very easily - almost trivially - keep your own copy and the GitHub copy in sync. inconvenience of Markdown is maybe less nice page layout options. (and there is also github.io if you want a more website-like look.)
  • don't bother presenting download links (see bottom of your page) - just point visitors to https://github.com/jontio/JAERO/releases, where they can find release history, executables and source code (otherwise you also need to keep that download section on your page in sync too).

rgds

-alex-

(FYI, I use PyCharm as Markdown editor)

(and I wrote this before stumbling over your http://jontio.zapto.org/software-and-hardware/webpagesetup.html ;-) )

Photos of planes locally

Hi everyone, I have some pictures of planes in "C" of my PC with the name of the recordings. I entered the path of the "Photos" folder with {REG} at the end but I don't see any photos in Jaero. Registering the aircraft is the same as registering the photo name. Advice? thank you

Acars decode for cpdcl (ADS, CC1, AT1 etc.)

Hi,

i build a nodejs decoder for CPDLC/FANS messages. Is is possible to get some dumps for testing?

Is JAERO able to output the data via UDP/TCP?

Examples:

ADS

------- ACARS MESSAGE BLOCK ----------
{
    messages: {
        A: {
            mode: 'C',
            address: '9V-SKA',
            ack: '!',
            label: 'B6',
            block_identifier: '5',
            message: '/BNECAYA.ADS.9V-SKA13E7F45B52A1064CD6E41D9EA6',
            ts: Tue, 17 May 2016 19:24:31 GMT,
            message_sequence_number: 'J26A',
            flight_id: 'SQ0221'
        }
    },
    sequenceError: false,
    startError: false,
    end: true,
    blockId: 'J26',
    addr: '9V-SKA',
    label: 'B6',
    created: Tue, 17 May 2016 19:24:31 GMT,
    updated: Tue, 17 May 2016 19:24:31 GMT,
    flight_id: 'SQ0221'
}
>>>>>>> DECODED ADS MESSAGE >>>>>>>>
[
    {
        id: 19,
        description: 'Altitude Range Change Event',
        data: {
            ADS Contract Request Number: 231,
            lat: -33.81385803222656,
            lon: 149.5246124267578,
            alt: 25804,
            sec_since_hour: 1465,
            fom: {
                TCAS Health: 1,
                level: 6,
                nav_redundancy: '> 1 unit operating',
                accuracy: '< 0.25 nautical mile',
                reason: 'Consistent with RNAV with GPS'
            }
        }
    }
]
<<<<<<< ADS END <<<<<<<<<<<<<<<<<<<<

CPDLC

------- ACARS MESSAGE BLOCK ----------
{
    messages: {
        E: {
            mode: '2',
            address: '9M-MTD',
            ack: '!',
            label: 'AA',
            block_identifier: 'E',
            message: '/BNECAYA.AT1.9M-MTD220E9CA82CCD9B34F626\015\n',
            ts: Sun, 29 May 2016 03:41:51 GMT
        }
    },
    sequenceError: false,
    startError: true,
    end: true,
    blockId: 'AA',
    addr: '9M-MTD',
    label: 'AA',
    created: Sun, 29 May 2016 03:41:51 GMT,
    updated: Sun, 29 May 2016 03:41:51 GMT
}
>>>>>>> DECODED CPDLC MESSAGE >>>>>>>>
{
    _header: {
        _value: {
            Msgidentificationnumber: { _name: 'INTEGER', _value: 4 },
            Timestamp: {
                _value: {
                    Hour: { _name: 'INTEGER', _value: 3 },
                    Minutes: { _name: 'INTEGER', _value: 41 },
                    Seconds: { _name: 'INTEGER', _value: 50 }
                }
            }
        }
    },
    _message: {
        _id: 160,
        _descr: 'NEXT DATA AUTHORITY [icaofacilitydesignation]',
        _value: {
            icaofacilitydesignation: { _name: 'IA5String', _value: 'YMMM' }
        }
    },
    _messageseq: undefined
}
<<<<<<< CPDLC END <<<<<<<<<<<<<<<<<<<<

How to compile JAERO on MacOS

I managed to build JAERO on MacOS. There were a few problems in a process, that I would like do describe here.

Here is how I did it.

  1. Download QT and QTCreator (open source versions): https://www.qt.io/download-qt-installer This will take a while.
  2. Download the source code of latest JAERO release https://github.com/jontio/JAERO/releases Personally I used https://github.com/jontio/JAERO/archive/v1.0.4.11.zip
  3. Extract the archive
  4. Edit JAERO.pro file, around line 38 add:
INCLUDEPATH += ../libacars-1.1.0/src
LIBS += -L/usr/local/lib

Also remove the following files from SOURCES list to avoid "duplicate symbol" errors:

../libacars-1.1.0/src/examples/decode_arinc.c \
../libacars-1.1.0/src/examples/adsc_get_position.c \
../libacars-1.1.0/src/examples/cpdlc_get_position.c \
../libacars-1.1.0/src/examples/media_advisory.c \

Finally, comment this line because you don't have this directory (it's outside of the archive):

# LIBACARS_PATH =$$PWD/../../libacars
  1. libcorrect should be installed, otherwise linker will not find it:
cd ../libcorrect
mkdir build
cd build
cmake .. -Wno-dev
make && make install
cd ../../JAERO
  1. libvorbis can be installed using Homebrew:
brew install libvorbis
  1. Run:
/Users/eax/Qt//5.12.6/clang_64/bin/qmake
make all
  1. Move JAERO.app to Applications

jaero screenshot

The application starts and seems to work, although I don't have an antenna yet to properly test it. The most difficult and time consuming part was to download QTCreator. If anyone is looking for a MacOS build: https://afiskon.ru/s/JAERO-1.0.4.11-MacOS-x64-build-by-afiskon.zip

Identification for ACARS and ADS-C network streams?

We are using some JAERO feeds to send data to airframes.io (see https://app.airframes.io/about) which is working well. I'd like to thank you for making JAERO because it has made this possible.

I would like to request two features:

  1. feed identification

As feeders to the site are user-centric, the only way we can currently identify a JAERO feed is by it's source IP address. This is problematic when the source feeder's internet provider changes their IP address. Other feeder software, such as acarsdec/vdlm2dec, will include a user-configurable field, such as ident so that they can pass us their "identification". This allows us to not really focus on the IP address as the source of identification.

  1. ACARS format enhancements

Right now the format that is sent for the ACARS is not very parsable. It is very difficult to properly extract the data so that further processing can be done. Can we have either enhancements to this format sent (say, in JSON), or perhaps a whole new output type that can send the ACARS data as JSON?

Please, add LICENSE

Without a LICENSE file it's not clear under which license the source code is distributed. From what I know (I'm not a lawyer) in some countries you might be responsible for any harm that your software may do unless license says otherwise.

Build failed with Qt 5.12.5

I am try to build jaero for Fedora and it is failed with this errors:

../downloadmanager.cpp: In member function 'void DownloadManager::startNextDownload()':
../downloadmanager.cpp:96:119: error: format not a string literal and no format arguments [-Werror=format-security]
   96 |         qDebug(qPrintable(((QString)"").sprintf("%d/%d files downloaded successfully\n", downloadedCount, totalCount)));
      |                                                                                                                       ^
../downloadmanager.cpp:137:36: error: format not a string literal and no format arguments [-Werror=format-security]
  137 |                                  )));
      |                                    ^
../downloadmanager.cpp: In member function 'void DownloadManager::downloadFinished()':
../downloadmanager.cpp:191:36: error: format not a string literal and no format arguments [-Werror=format-security]
  191 |                                  )));
      |                                    ^

How to solve it?

Network latency every 10 seconds

After setting up Spy Server, I realised that there was no network connection every 10 seconds.
Ping test showed that precisely every 10 seconds the network connection stops responding, this became very obvious when trying to stream of course.

I then captured about a minute of data in Wireshark and in Procmon and correlated the data to find the application makes some sort of network request every 10 seconds.
I isolated it via the time stamps to this specific operation:

QueryNameInformationFile C:\Windows\System32\rpcrt4.dll

0 FLTMGR.SYS FltDecodeParameters + 0x193c 0xfffff8056ead66fc C:\WINDOWS\System32\drivers\FLTMGR.SYS
1 FLTMGR.SYS FltDecodeParameters + 0x14dc 0xfffff8056ead629c C:\WINDOWS\System32\drivers\FLTMGR.SYS
2 FLTMGR.SYS FltDecodeParameters + 0x5f4 0xfffff8056ead53b4 C:\WINDOWS\System32\drivers\FLTMGR.SYS
3 FLTMGR.SYS FltDecodeParameters + 0x3ee 0xfffff8056ead51ae C:\WINDOWS\System32\drivers\FLTMGR.SYS
4 ntoskrnl.exe IofCallDriver + 0x59 0xfffff800bcd24e69 C:\WINDOWS\system32\ntoskrnl.exe
5 ntoskrnl.exe CmCallbackGetKeyObjectIDEx + 0x21d 0xfffff800bd1731fd C:\WINDOWS\system32\ntoskrnl.exe
6 ntoskrnl.exe CmCallbackGetKeyObjectIDEx + 0x3f0 0xfffff800bd1733d0 C:\WINDOWS\system32\ntoskrnl.exe
7 ntoskrnl.exe CmCallbackGetKeyObjectIDEx + 0x786 0xfffff800bd173766 C:\WINDOWS\system32\ntoskrnl.exe
8 ntoskrnl.exe SeQuerySecurityDescriptorInfo + 0x1375 0xfffff800bd174db5 C:\WINDOWS\system32\ntoskrnl.exe
9 ntoskrnl.exe NtAllocateVirtualMemory + 0x1d51 0xfffff800bd18d2f1 C:\WINDOWS\system32\ntoskrnl.exe
10 ntoskrnl.exe NtAllocateVirtualMemory + 0x14b1 0xfffff800bd18ca51 C:\WINDOWS\system32\ntoskrnl.exe
11 ntoskrnl.exe setjmpex + 0x6f63 0xfffff800bce46743 C:\WINDOWS\system32\ntoskrnl.exe
12 ntoskrnl.exe KeSynchronizeExecution + 0x2940 0xfffff800bce39aa0 C:\WINDOWS\system32\ntoskrnl.exe
13 ntoskrnl.exe FsRtlKernelFsControlFile + 0x862 0xfffff800bd2276b2 C:\WINDOWS\system32\ntoskrnl.exe
14 ntoskrnl.exe NtSetInformationProcess + 0x5937 0xfffff800bd1d2a27 C:\WINDOWS\system32\ntoskrnl.exe
15 ntoskrnl.exe NtSetInformationProcess + 0x4df0 0xfffff800bd1d1ee0 C:\WINDOWS\system32\ntoskrnl.exe
16 ntoskrnl.exe setjmpex + 0x6f63 0xfffff800bce46743 C:\WINDOWS\system32\ntoskrnl.exe
17 ntdll.dll NtQueueApcThreadEx + 0x14 0x7ffe77a5d534 C:\WINDOWS\SYSTEM32\ntdll.dll
18 RPCRT4.dll NdrServerCallNdr64 + 0x1ae 0x7ffe75ac4d0e C:\WINDOWS\System32\RPCRT4.dll
19 RPCRT4.dll RpcServerInqCallAttributesW + 0xaaad 0x7ffe75afc3fd C:\WINDOWS\System32\RPCRT4.dll
20 RPCRT4.dll RpcServerInqCallAttributesW + 0x71b8 0x7ffe75af8b08 C:\WINDOWS\System32\RPCRT4.dll
21 RPCRT4.dll NdrFixedArrayBufferSize + 0x215 0x7ffe75b24465 C:\WINDOWS\System32\RPCRT4.dll
22 RPCRT4.dll RpcServerInqCallAttributesW + 0xabb5 0x7ffe75afc505 C:\WINDOWS\System32\RPCRT4.dll
23 RPCRT4.dll RpcStringBindingComposeW + 0x532d 0x7ffe75ad818d C:\WINDOWS\System32\RPCRT4.dll
24 RPCRT4.dll I_RpcSend + 0x248 0x7ffe75add158 C:\WINDOWS\System32\RPCRT4.dll
25 ntdll.dll RtlReleaseSRWLockExclusive + 0x19ae 0x7ffe779e7c9e C:\WINDOWS\SYSTEM32\ntdll.dll
26 ntdll.dll RtlReleaseSRWLockExclusive + 0x298 0x7ffe779e6588 C:\WINDOWS\SYSTEM32\ntdll.dll
27 KERNEL32.DLL BaseThreadInitThunk + 0x14 0x7ffe74e63034 C:\WINDOWS\System32\KERNEL32.DLL
28 ntdll.dll RtlUserThreadStart + 0x21 0x7ffe77a33691 C:\WINDOWS\SYSTEM32\ntdll.dll

I wondered if you had any idea of what is causing this and the resolution please? I am still investigating myself so will update if I have further findings.

And of course, thanks for the amazing application :-)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.