ACARSdec: Porovnání verzí

Z Poznámkový blok
Přejít na: navigace, hledání
(systemctl)
(systemctl)
 
(Není zobrazeno 32 mezilehlých verzí od stejného uživatele.)
Řádka 1: Řádka 1:
 
== Úvod ==
 
== Úvod ==
Jedná se o projekt, slučující více tecnologií do jednoho přehledu https://github.com/TLeconte/
+
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
Také je potřeba mít dle potřeby nainstalované ovladače [[RTLSDR | RTL-SDR ]]
+
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/TLeconte/acarsdec.git
+
cd
 +
  git clone https://github.com/f00b4r0/acarsdec.git
 
  cd acarsdec
 
  cd acarsdec
 +
mkdir build
 +
cd build
  
Pokud instalaci provádíme na raspberry, změníme v souboru CMakeLists.txt řádek add_compile_options('''-Ofast -march=native''' ) na add_compile_options('''-std=c++11''' )
+
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
mkdir build
+
  cmake .. -DCMAKE_C_FLAGS="-march=native"
cd build
 
  cmake .. -Drtl=ON
 
 
  make
 
  make
 
  sudo make install
 
  sudo make install
Řádka 32: Řádka 44:
 
  [Unit]
 
  [Unit]
 
  Description=ACARS
 
  Description=ACARS
  Documentation=https://github.com/TLeconte/acarsdec
+
  Documentation=https://github.com/f00b4r0/acarsdec
 
  After=network-online.target
 
  After=network-online.target
 
   
 
   
 
  [Service]
 
  [Service]
 
  Type=simple
 
  Type=simple
  EnvironmentFile=-/etc/default/acarsdec
+
  ExecStart=/etc/default/acarsdec
  ExecStart=acarsdec \"${OPTS} -g ${GAIN} -p ${PPM} -i ${STATIONID} -${FORMAT} ${SERVER} -r ${DEV} ${FREQ}\"
+
  RestartSec=5
 +
Restart=on-failure
 
   
 
   
 
  [Install]
 
  [Install]
Řádka 47: Řádka 60:
 
  sudo nano /etc/default/acarsdec
 
  sudo nano /etc/default/acarsdec
  
  #!/bin/sh
+
  #!/bin/bash
  # Defaul seting for acarsdec
+
  # Nastaveni pro acarsdec
  # ==========================
+
  # ----------------------
 
   
 
   
 
  # RTL dongle number or S/N
 
  # RTL dongle number or S/N
  DEV="2"
+
  DEV="0"
 
   
 
   
  # set rtl ppm frequency correction
+
  # Set rtl ppm frequency correction
  PPM="51"
+
  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="480"
+
  GAIN="48"
 
   
 
   
  # format send dat:
+
  # Station id used in acarsdec network format (for json output)
  #  n - planeplotter compatible format
+
STATIONID="TT-LKCM1-ACARS"
  #  N - acarsdec native format
+
  #  j - acarsdec json format
+
# Format pro specifikovani vystupu
  FORMAT="j"
+
#      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")
 
   
 
   
  # Send acars messages to addr:port via UDP
+
  # Other seting
  SERVER="feed.acars.io:5550"
+
#  -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'
 
   
 
   
  STATIONID="TT-LKCM1-ACARS"
+
  # 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"
 
   
 
   
  # VHF frequencies f1 and optionally f2 to f8 in Mhz
+
  # ----------------------------------------- end setting ------------------------------------
  #FREQ="130.825 130.850 131.525 131.550 131.725 131.825 131.850"
+
  # Jednoducha smycka pro spojeni jednotlivych vystupu
  FREQ="131.550 131.725 131.825"
+
for i in ${OUTPUT[@]};do
 +
    OUT="$OUT --output $i "
 +
  done
 
   
 
   
  # other seting
+
  # Vlastni spusteni prikazu ze vsemi parametry
  -v        : verbose
+
  acarsdec ${OPTS} -i ${STATIONID} -t 600 ${OUT}-g ${GAIN} -p ${PPM} --rtlsdr ${DEV} ${FREQ}
-A        : don't display uplink messages (ie : only aircraft messages)
+
 
  #  -o lv      : output format : 0 : no log, 1 : one line by msg, 2 : full (default), 3 : monitor mode, 4 : msg JSON, 5 : route JSON
+
  sudo chmod 775 /etc/default/acarsdec
  #  -l logfile : append log messages to logfile (Default : stdout).
+
  sudo chown $(users) /etc/default/acarsdec
  -H        : rotate log file once every hour
+
  sudo ln -s /etc/default/acarsdec ~/acarsdec.conf
#  -D        : rotate log file once every day
 
OPTS='-v -o 4'
 
  
 
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:

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

Odkazy