ACARSdec: Porovnání verzí
(→systemctl) |
(→systemctl) |
||
| (Není zobrazeno 29 mezilehlých verzí od stejného uživatele.) | |||
| Řádka 1: | Řádka 1: | ||
== Úvod == | == Ú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: | ||
| + | * acarsdec V.2.x: https://github.com/ngreatorex/acarsdec - neaktuální | ||
| + | * acarsdec V.3.x: https://github.com/TLeconte/acarsdec - ukončen (slučoval několik technologií) | ||
== Příprava == | == Příprava == | ||
| − | Pokud jsme zatím nepotřebovali, je nutné doinstalovat: | + | Pokud jsme zatím nepotřebovali, je nutné doinstalovat nástroje pro git a následnou kompilaci: |
| − | sudo apt install cmake | + | sudo apt install git cmake |
| − | + | Pro podporu vstupních periférií a další možnosti je dále potřeba doinstalovat: | |
| + | * Ovladače [[RTLSDR | 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 [[ libcJSON | cJSON ]] | ||
| + | * Podporu '''dekódování zpráv''' rozšíříme instalací knihovna [[ libacars ]] | ||
== Instalace == | == Instalace == | ||
Vlastní projekt je k dispozici na gitu. Pro Raspberry je nutná jedna úprava. | Vlastní projekt je k dispozici na gitu. Pro Raspberry je nutná jedna úprava. | ||
Stažení projektu: | Stažení projektu: | ||
| − | git clone https://github.com/ | + | cd |
| + | git clone https://github.com/f00b4r0/acarsdec.git | ||
cd acarsdec | cd acarsdec | ||
| + | mkdir build | ||
| + | cd build | ||
| − | Pokud instalaci provádíme na | + | 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 | Následně můžeme pokračovat kompilaci | ||
| − | + | cmake .. -DCMAKE_C_FLAGS="-march=native" | |
| − | |||
| − | cmake .. - | ||
make | make | ||
sudo make install | sudo make install | ||
| Řádka 32: | Řádka 44: | ||
[Unit] | [Unit] | ||
Description=ACARS | Description=ACARS | ||
| − | Documentation=https://github.com/ | + | Documentation=https://github.com/f00b4r0/acarsdec |
After=network-online.target | After=network-online.target | ||
[Service] | [Service] | ||
Type=simple | Type=simple | ||
| − | + | ExecStart=/etc/default/acarsdec | |
| − | + | RestartSec=5 | |
| + | Restart=on-failure | ||
[Install] | [Install] | ||
| Řádka 47: | Řádka 60: | ||
sudo nano /etc/default/acarsdec | sudo nano /etc/default/acarsdec | ||
| − | #!/bin/ | + | #!/bin/bash |
| − | # | + | # Nastaveni pro acarsdec |
| − | # | + | # ---------------------- |
# RTL dongle number or S/N | # RTL dongle number or S/N | ||
| Řádka 55: | Řádka 68: | ||
# Set rtl ppm frequency correction | # Set rtl ppm frequency correction | ||
| − | PPM=" | + | PPM="-2" |
# Set rtl preamp gain in tenth of db (ie -g 90 for +9db).. | # 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 | # By default use maximum gain | ||
| − | GAIN=" | + | GAIN="48" |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
# Station id used in acarsdec network format (for json output) | # Station id used in acarsdec network format (for json output) | ||
STATIONID="TT-LKCM1-ACARS" | 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 | # Other seting | ||
| − | + | # -A : don't output uplink messages (ie : only aircraft messages) | |
| − | # -A | + | # -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 |
| − | OPTS | + | # --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 ${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 | Nastaveni sluzby pro automaticke spustění po startu a následně spustíme | ||
Aktuální verze z 2. 11. 2025, 17:24
Ú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:
- acarsdec V.2.x: https://github.com/ngreatorex/acarsdec - neaktuální
- acarsdec V.3.x: https://github.com/TLeconte/acarsdec - ukončen (slučoval několik technologií)
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 ${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