ACARSdec

Z Poznámkový blok
Verze z 2. 11. 2025, 16:53, kterou vytvořil Tydyt (diskuse | příspěvky) (systemctl)
Přejít na: navigace, hledání

Úvod

Aktuální verze V.4.xx od roku 2025 je na https://github.com/f00b4r0/acarsdec/.

Pro úplnost uvádím dřívější, již neaktuální projekty:

Příprava

Pokud jsme zatím nepotřebovali, je nutné doinstalovat nástroje pro git a následnou kompilaci:

sudo apt install git cmake

Pro podporu vstupních periférií a další možnosti je dále potřeba doinstalovat:

  • Ovladače RTL-SDR , pokud je ještě nemáme a chceme je použít nainstalujeme:
sudo apt-get install librtlsdr-dev rtl-sdr
  • Podporu formátu json na výstupu získáme instalací knihovnu cJSON
  • Podporu dekódování zpráv rozšíříme instalací knihovna libacars

Instalace

Vlastní projekt je k dispozici na gitu. Pro Raspberry je nutná jedna úprava. Stažení projektu:

cd
git clone https://github.com/f00b4r0/acarsdec.git
cd acarsdec
mkdir build
cd build

Pokud instalaci provádíme na Raspberry 32bit verzi, specifikujeme podle toho parametr pro cmake:

  • for PI 2B : -DCMAKE_C_FLAGS="-mcpu=cortex-a7 -mfpu=neon-vfpv4"
  • for PI 3B : -DCMAKE_C_FLAGS="-mcpu=cortex-a53 -mfpu=neon-fp-armv8"
  • for PI 4B : -DCMAKE_C_FLAGS="-mcpu=cortex-a72 -mfpu=neon-fp-armv8"

Následně můžeme pokračovat kompilaci

cmake .. -DCMAKE_C_FLAGS="-march=native"
make
sudo make install

Otestovani

Spusštění pro test

acarsdec -v -g 48 -p 51 -r 0 130.825 130.850 131.525 131.550 131.725 131.825 131.850

systemctl

Pro automatické spouštění je nutne nastavit službu

sudo systemctl edit --force --full acarsdec.service
[Unit]
Description=ACARS
Documentation=https://github.com/f00b4r0/acarsdec
After=network-online.target

[Service]
Type=simple
ExecStart=/etc/default/acarsdec
RestartSec=5
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=acarsdec.service

Také vytvořit konfigurační soubor. Samozřejmně nezapomeňte přenastavit hodnoty dle vaší lokalizace.

sudo nano /etc/default/acarsdec
#!/bin/bash
# Nastaveni pro acarsdec
# ----------------------

# RTL dongle number or S/N
DEV="0"

# Set rtl ppm frequency correction
PPM="-2"

# Set rtl preamp gain in tenth of db (ie -g 90 for +9db)..
# 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
# By default use maximum gain
GAIN="48"

# Station id used in acarsdec network format (for json output)
STATIONID="TT-LKCM1-ACARS"

# Format pro specifikovani vystupu
#      FORMAT:DESTINATION:PARAMS
#
#  kde FORMAT:
#      "oneline"   - Single line summary
#      "full":     - Full text decoding
#      "monitor":  - Live monitoring
#      "pp":       - PlanePlotter format
#      "native":   - Acarsdec native format
#      "json"      - Acarsdec JSON format           (mui byt nainstalovana libcjson)
#      "routejson" - Acarsdec Route JSON format     (mui byt nainstalovana libcjson)
#
#  kde DESTINATION:
#      "file"  - File (including stdout) output. PARAMS: path,rotate
#                PARAMS: path=   urcuje cestu na soubor pro ukladani dat, '-' nebo bez zadani se uklada na standartnim vystupu (obrazovce)
#                        rotate= umoznuje rotaci souboru, hourly/daily
#      "udp"   - UDP network output. PARAMS: host,port
#                PARAMS: host=  cilova url, nebo IP adresa kam se data posilaji
#                        port=  cilovy port (defaul 5555)
#      "mqtt"  - MQTT network output. PARAMS: uri, user, passwd, topic (mui byt nainstalovana podpora mqtt)
#
OUTPUT+=("oneline:file:path=-")
OUTPUT+=("json:udp:host=10.129.99.149,port=5550")
OUTPUT+=("json:udp:host=feed.acars.io,port=5550")

# Other seting
#  -A                     : don't output uplink messages (ie : only aircraft messages)
#  -b <filter>            : filter output by label (ex: -b "H1:Q0" : only output messages  with label H1 or Q0)
#  -e                     : don't output empty messages (ie : _d,Q0, etc ...)
#  -i <stationid>         : station id used in acarsdec network format (default: hostname)
#  -t <seconds>           : set forget time (TTL) to <seconds> for flight routes (affects monitor and routejson, default: 600)
#  --skip-reassembly      : disable reassembling fragmented ACARS messages
#  --statsd host=<myhost>,port=<1234>     : enable statsd reporting to host <myhost> on port <1234>
OPTS='-t 600'

# VHF frequencies f1 and optionally f2 to f8 in Mhz (Up to 16 channels may be simultaneously decoded)(specificke kmitocty: 129.525M 131.650M 131.075M)
FREQ="130.025 130.425 130.450 130.825 130.850 131.125 131.425 131.450 131.475 131.525 131.550 131.725 131.825 131.850"

# ----------------------------------------- end setting ------------------------------------
# Jednoducha smycka pro spojeni jednotlivych vystupu
for i in ${OUTPUT[@]};do
    OUT="$OUT --output $i "
done

# Vlastni spusteni prikazu ze vsemi parametry
# acarsdec [-A] [-b 'labels,..'] [-e] [-i station_id] [-t secs] [--statsd host=ip,port=1234] --output FORMAT:DESTINATION:PARAMS [--output ...] [--skip-reassembly] [ [rtlopts] <f1> [<f2> [...]] ]
acarsdec ${OPTS} -i ${STATIONID} -t 600 ${OUT}-g ${GAIN} -p ${PPM} --rtlsdr ${DEV} ${FREQ}
sudo chmod 775 /etc/default/acarsdec
sudo chown $(users) /etc/default/acarsdec
sudo ln -s /etc/default/acarsdec ~/acarsdec.conf

Nastaveni sluzby pro automaticke spustění po startu a následně spustíme

sudo systemctl enable acarsdec.service
sudo systemctl start acarsdec.service

Po spuštění služby můžeme sledovat co se dějě ...

journalctl -fe -u acarsdec

Poznamky

Prý na nové verzi Rasberry je problém z knihovou librtl. Doporučuje se ji přeinstalovat. Viz: https://github.com/wiedehopf/adsb-wiki/wiki/Replace-librtlsdr-on-Raspbian

Odkazy