- Notifications
You must be signed in to change notification settings - Fork1
An ARINC 424 parser and model that allows you to explore aeronautical data in an object-oriented way.
License
malstraem/arinc424.net
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Warning
work in progress and target on ver. 23 of the specification (with backward compatibility to 18)
if you see any issues testing the library on real world data, please report it
any reviews and PRs are welcome
This is a long-term research and proof of concept to provide a model and reader for the globally usedARINC 424
aircraft navigation data using metaprogramming.
While theARINC 424
specification describes entities with 132-byte fixed-length strings, this library createsa database object model via building entities using reflection and runtime compilation.
Most terms are converted according to the specification into associated enumerations or numeric values on the fly.
In addition, relationships between entities are established after the building stage.
In practice, this allows you to explore and manipulate the tree-like representation ofARINC 424
database.
Seedocs to know how specification is mapped.
First, you need to create runtime compiled metadata. This describes how strings will be parsedand entities created based onsupplement.
varmeta=Meta424.Create(Supplement.V20);
So you can try to get navigationdata from the stringsleavingbuilds with diagnostics(bad coded fields, missing links, etc) and skipped strings that don't match entity types.
vardata=Data424.Create(meta,strings,outvarinvalid,outvarskipped);
- .NET 9 SDK
dotnet build
The project actively uses the Roslyn API to generate converters of specification terms to internal types. Use a suitable IDE to view the generated code.