28.01.2026
ACARS ağı iletilerinin (ARINC 618/620 uygulamaları) çözümlemesi için JavaScript ve Python tabanlı ortak bir kütüphane. JSON spec dosyası üzerinden çalışır ve her iki dil için de aynı çözümleme mantığını kullanır.
Ibosoft ATC sistemi içerisinde bu kütüphane kullanılmaktadır. https://atc.ibosoft.net.tr
Özellikler:
- JavaScript ve Python desteği
- Ortak spec dosyası (ibosoft-acars-spec.json)
- ARINC 618/620 ileti formatlarını destekler
- Uplink ve downlink iletileri
- Yapılandırılabilir (config.json)
Desteklenen ACARS İleti Label'lar:
Henüz tüm labeller desteklenmemektedir. Diğer labeller ileride eklenecektir. Şu anlık desteklenen labellar şunlardır:
- Uplink: 51, 52, :;, RA, SQ
- Downlink: 00, 51, 52, 57, 5V, HX, Q0, Q1, Q2, Q3, Q7, QA, QB, QC, QD, QE, QF, QG, QH, QK, QL, QM, QN, QP, QQ, QR, QS, QT, RB, SA, _DEL
NOT: Yazılımda kısıtlamalardan dolayı
_DELlabeli yerine_dkullanılmıştır. (DELASCII DEL karakteridir, 0x7F).
Label kullanımları, ileti formatları ve detaylı API dokümantasyonu için API Manual.md dosyasına bakınız.
Data Link Yazılımlarımız:
- ACARS Viewer
- ACARS Backend
- ACARS Decoding Library
- ACARS Tester
For more information about aviation communication and data link systems: https://egitim.ibosoft.net.tr/
For abbreviations used in the project, see: Ibosoft Abbreviations Database
Lisans:
Bu proje Elastic License 2.0 ile lisanslanmıştır.
Kaynak kodu herkese açıktır. Kişisel ve ticari projelerde kullanım serbesttir. Kod üzerinde değişiklik yapılabilir; ancak projenin kendisi veya değiştirilmiş hâlleri, açık izin alınmadan yeniden paylaşılamaz, yayımlanamaz veya bir servis olarak sunulamaz.
A common library for JavaScript and Python for decoding ACARS network messages (ARINC 618/620 applications). Works through a JSON spec file and uses the same decoding logic for both languages.
This library is used within the Ibosoft ATC system. https://atc.ibosoft.net.tr
Features:
- JavaScript and Python support
- Common spec file (ibosoft-acars-spec.json)
- Supports ARINC 618/620 message formats
- Uplink and downlink messages
- Configurable (config.json)
Supported ACARS Message Labels:
Not all labels are supported yet. Other labels will be added in the future. Currently supported labels are:
- Uplink: 51, 52, :;, RA, SQ
- Downlink: 00, 51, 52, 57, 5V, HX, Q0, Q1, Q2, Q3, Q7, QA, QB, QC, QD, QE, QF, QG, QH, QK, QL, QM, QN, QP, QQ, QR, QS, QT, RB, SA, _DEL
NOTE: Due to software limitations,
_dis used instead of the_DELlabel. (DELis the ASCII DEL character, 0x7F).
For label usage, message formats, and detailed API documentation, see the API Manual.md file.
Our Data Link Software Series:
- ACARS Viewer
- ACARS Backend
- ACARS Decoding Library
- ACARS Tester
For more information about aviation communication and data link systems: https://egitim.ibosoft.net.tr/
For abbreviations used in the project, see: Ibosoft Abbreviations Database
License:
This project is licensed under Elastic License 2.0.
The source code is publicly available. Use in personal and commercial projects is free. The code can be modified; however, the project itself or its modified versions cannot be redistributed, published, or offered as a service without explicit permission.
- Python: Python 3.x
- JavaScript: Modern tarayıcı veya Node.js
Kütüphane dosyalarını projenize kopyalayın:
- Python:
ibosoft-acars-library.py - JavaScript:
ibosoft-acars-library.js - Spec dosyası:
ibosoft-acars-spec.json(zorunlu) - Config dosyası:
config.json(isteğe bağlı) - Biçim listesi:
label-list.csv(zorunlu) - TEI kodları:
tei-codes.json(Şu anlık kullanımı yok.)
Python:
from ibosoft_acars_library import iboDecodeAcarsMsg
result = iboDecodeAcarsMsg("dn", "Q2", "F45ABC123IBOIBO8U,0214,LTAI,0226,LTFM,0239")
print(result)JavaScript:
const result = iboDecodeAcarsMsg("dn", "Q2", "F45ABC123IBOIBO8U,0214,LTAI,0226,LTFM,0239");
console.log(result);Parametreler:
Direction: İleti yönü -"up"(uplink) veya"dn"(downlink)Label: ACARS label (2 karakter, ASCII)Message: İleti içeriği (ASCII)
Dönüş değerleri:
invalid-label: Label desteklenmiyor veya ASCII değilinvalid-data: Veri geçersiz (uzunluk aralığı dışı, ASCII olmayan, spec eksik, API Manual.md dosyasına bakınız.)- Çözümlenmiş çıktı: İleti formatı ve decode edilmiş satırlar
label-list.csv:
Bu dosya, ARINC 620-7 standartında belirtilen label'ları içerir. Bu listedeki Label, biçim ismi, ileti yönü, çözülebilirlik bilgisi kütüphane tarafından kullanılır. Bunun haricinde kendi yazılımlarınızda ihtiyaç duyabileceğiniz ek bilgiler de yer almaktadır. Bu CSV dosyasını, kendi yazılımlarınızda, kütüphaneden bağımsız olarak iletilerin sınıflandırılması vb. amaçlarla kullanabilirsiniz.
- CSV dosyasının sütunları şu şekildedir:
direction,label,decodability,mfi,name,description
- Sütunların açıklamaları:
direction: İleti yönü -up(uplink) veyadn(downlink)label: ACARS label (2 karakter veya özel karakterler, ASCII)decodability: Çözülebilirlik durumu -decodable(çözülebilir),non-decodable(çözülemiyor),reserved(ARINC 620'de belirtildiği üzere ayrılmış, işlevsiz Label),not-used(ARINC 620'de belirtildiği üzere kullanılmıyor, işlevsiz Label)mfi: MFI (Message Function Identifier) desteği -trueveyafalsename: İleti format ismi (ARINC 620 ile birebir)description: Label açıklaması (Şu anlık boş bırakılmıştır.)
Örnek Çözümleme:
# Uplink Squitter örneği
result = iboDecodeAcarsMsg("up", "SQ", "02XAAYTLTAI13654N03048EB136975/ARINC")Çıktı:
Message Format: Uplink Squitter
Decode:
Version: 2
Datalink Service Provider: ARINC
IATA Station ID: AYT
ICAO Station ID: LTAI
Station Number ID: 1
Latitude: 3654N
Longitude: 03048E
Alternate Service(s) Name: VDL Mode 2 AOA and ATN
Alternate Service(s) Freq: 136975 kHz
Free Text: ARINC
{
"parseDownlinkSequence": true,
"parseFlightIdentifier": true
}parseDownlinkSequence: Downlink iletilerinde 4 karakterlik Downlink Sequence Number'ı parse et (varsayılan: true)- İlgili Dowlink Biçimi, Downlink Sequence Number içeriyorsa geçerlidir. Kapalıysa çözümlenmez ve iletinin ilk 4 karakteri eksik vaysayılır.
parseFlightIdentifier: 6 karakterlik Flight Identifier'ı parse et (varsayılan: true)- İlgili Downlink Biçimi, Flight Identifier içeriyorsa geçerlidir. Kapalıysa çözümlenmez ve iletinin ilk 6 karakteri eksik vaysayılır. Bu ayar kapalı fakat Downlink Sequence Number ayarı etkinse Downlink Sequence Number'dan sonraki 6 karakter eksik vaysayılır.
NOT: ARINC 618/620'de belirtildiği üzere, çoğu Dowlink iletisinin ilk 4 karakteri Downlink Sequence Number, sonraki 6 karakteri Flight Identifier'dir. Bazı çözümleme veya yönlendirme yazılımları (acarsdec, vdlm2dec, acars_router vb.) Downlink Sequence Number ve/veya Flight Identifier'ı iletiden kaldırıp ayrı olarak iletir. Bu durumda bu ayarları kapatmanız gerekebilir.
Detaylı API dokümantasyonu, ileti formatları, alan açıklamaları ve tüm desteklenen label'ların kullanımı için API Manual.md dosyasına bakınız.
acars-decoding-library/
├── ibosoft-acars-library.py # Python kütüphanesi
├── ibosoft-acars-library.js # JavaScript kütüphanesi
├── ibosoft-acars-spec.json # İleti formatları spec dosyası (zorunlu)
├── config.json # Yapılandırma dosyası (isteğe bağlı)
├── label-list.csv # Biçim listesi (zorunlu)
├── tei-codes.json # TEI kod listesi (Şu anlık kullanımı yok.)
├── acars-py-test.py # Python test dosyası
├── acars-js-test.html # JavaScript test dosyası
├── API Manual.md # Detaylı API dokümantasyonu
├── LICENSE # Lisans dosyası
└── README.md # Bu dosya
- Python: Python 3.x
- JavaScript: Modern browser or Node.js
Copy the library files to your project:
- Python:
ibosoft-acars-library.py - JavaScript:
ibosoft-acars-library.js - Spec file:
ibosoft-acars-spec.json(required) - Config file:
config.json(optional) - Format list:
label-list.csv(required) - TEI codes:
tei-codes.json(Currently not used.)
Python:
from ibosoft_acars_library import iboDecodeAcarsMsg
result = iboDecodeAcarsMsg("dn", "Q2", "F45ABC123IBOIBO8U,0214,LTAI,0226,LTFM,0239")
print(result)JavaScript:
const result = iboDecodeAcarsMsg("dn", "Q2", "F45ABC123IBOIBO8U,0214,LTAI,0226,LTFM,0239");
console.log(result);Example Decoding:
# Uplink Squitter example
result = iboDecodeAcarsMsg("up", "SQ", "02XAAYTLTAI13654N03048EB136975/ARINC")Output:
Message Format: Uplink Squitter
Decode:
Version: 2
Datalink Service Provider: ARINC
IATA Station ID: AYT
ICAO Station ID: LTAI
Station Number ID: 1
Latitude: 3654N
Longitude: 03048E
Alternate Service(s) Name: VDL Mode 2 AOA and ATN
Alternate Service(s) Freq: 136975 kHz
Free Text: ARINC
Parameters:
Direction: Message direction -"up"(uplink) or"dn"(downlink)Label: ACARS label (2 characters, ASCII)Message: Message content (ASCII)
Return values:
invalid-label: Label not supported or not ASCIIinvalid-data: Data invalid (out of bounds length, non-ASCII, missing spec, see API Manual.md)- Decoded output: Message format and decoded lines
label-list.csv:
This file contains the labels specified in the ARINC 620-7 standard. The label, format name, message direction, and decodability information in this list are used by the library. Apart from this, there is also additional information that you may need in your own software. You can use this CSV file in your own software independently from the library for purposes such as message classification.
- CSV file columns are as follows:
direction,label,decodability,mfi,name,description
- Column descriptions:
direction: Message direction -up(uplink) ordn(downlink)label: ACARS label (2 characters or special characters, ASCII)decodability: Decodability status -decodable(decodable),non-decodable(not decodable),reserved(reserved as specified in ARINC 620, non-functional label),not-used(not used as specified in ARINC 620, non-functional label)mfi: MFI (Message Function Identifier) support -trueorfalsename: Message format name (one-to-one with ARINC 620)description: Label description (Currently left blank.)
{
"parseDownlinkSequence": true,
"parseFlightIdentifier": true
}parseDownlinkSequence: Parse 4-character Downlink Sequence Number in downlink messages (default: true)- Valid if the related Downlink Format contains Downlink Sequence Number. If disabled, it will not be parsed and the first 4 characters of the message are assumed to be missing.
parseFlightIdentifier: Parse 6-character Flight Identifier (default: true)- Valid if the related Downlink Format contains Flight Identifier. If disabled, it will not be parsed and the first 6 characters of the message are assumed to be missing. If this setting is disabled but Downlink Sequence Number setting is enabled, the 6 characters after Downlink Sequence Number are assumed to be missing.
NOTE: As specified in ARINC 618/620, the first 4 characters of most Downlink messages are Downlink Sequence Number, and the next 6 characters are Flight Identifier. Some decoding or routing software (acarsdec, vdlm2dec, acars_router, etc.) removes Downlink Sequence Number and/or Flight Identifier from the message and transmits them separately. In this case, you may need to disable these settings.
For detailed API documentation, message formats, field descriptions, and usage of all supported labels, see the API Manual.md file.
acars-decoding-library/
├── ibosoft-acars-library.py # Python library
├── ibosoft-acars-library.js # JavaScript library
├── ibosoft-acars-spec.json # Message formats spec file (required)
├── config.json # Configuration file (optional)
├── label-list.csv # Format list (required)
├── tei-codes.json # TEI code list (Currently not used.)
├── acars-py-test.py # Python test file
├── acars-js-test.html # JavaScript test file
├── API Manual.md # Detailed API documentation
├── LICENSE # License file
└── README.md # This file