-
Notifications
You must be signed in to change notification settings - Fork 3
/
README
121 lines (76 loc) · 4 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
INTRODUCTION
The axgen tool is a command-line interface application and interactive shell
that assists the user in the generation of ASTERIX data blocks.
Data blocks are generated from records definitions, declared in the Lua
programming language.
DESCRIPTION
When invoked without parameters, axgen starts in interactive mode, presenting
the user with a short banner, followed by the prompt:
$ axgen
_____ ___ ___
/ _ \ | | | _____ _____ _____
| | > < | _ | -__| |
|___|___| |___|___| |___ |_____|__|__|
|_____|
ASTERIX generator (C) Copyright 2010-2011 Federico Renolfi, Argentina
Powered by:
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
>
Given the following definitions of monoradar service messages:
record1 = {
type = "north", -- north marker message record
arp = 4000, -- [ms] antenna rotation period
}
record2 = {
type = "sector", -- sector crossing message record
azimuth = 0, -- [degrees] (0 == north, 180 == south)
}
An ASTERIX data block of data category 34 is generated within the shell by:
> data = asterix.new(34)
> data:add(record1) -- append the "north" record to the data block
> data:add(record2) -- append the "sector" record to the data block
All the mandatory fields had been automatically completed by axgen.
In this example, data source identifiers are set to the value of global
variables asterix.sac and asterix.sic (both default to zero on program start).
Field Specification (FSPEC) fields are automatically calculated for both
records according to the presence (or absence) of optional data fields (as
arp in the north record).
Also, the data block length has been properly set.
The same can be achieved by the following alternative call to asterix.new():
> data = asterix.new(34, {type="north",arp=4000}, {type="sector",azimuth=0})
Finally, the generated data block may be inspected in by:
> print(data.cat) -- data category field (CAT)
34
> print(data.len) -- data block length field (LEN)
20
> print(data.raw) -- hex string representation of the data block
22 00 14 E8 00 00 01 15 D6 47 02 00 F0 00 00 02 15 D8 FD 00
REFERENCES
* ASTERIX page at Eurocontrol (http://www.eurocontrol.int/asterix/)
ASTERIX is the EUROCONTROL Standard for the exchange of Surveillance related
data.
The acronym stands for "All Purpose STructured Eurocontrol SuRveillance
Information EXchange".
ASTERIX provides a structured approach to a message format to be applied in
the exchange of surveillance related information for various applications.
Developed by the SuRveillance Data Exchange Task Force (RDE-TF) with its
multinational participation, it ensures a common data representation, thereby
facilitating the exchange of surveillance data in an international context.
Having started as a EUROCONTROL development, ASTERIX is now applied worldwide.
ASTERIX defines a structured approach to the encoding of surveillance data.
Categories group the information related to a specific application. They
consist of a number of data items which are defined in the ASTERIX documents
down to the bit-level.
* Lua.org - official site (http://www.lua.org/)
Lua is a powerful, fast, lightweight, embeddable scripting language.
Lua combines simple procedural syntax with powerful data description constructs
based on associative arrays and extensible semantics. Lua is dynamically typed,
runs by interpreting bytecode for a register-based virtual machine, and has
automatic memory management with incremental garbage collection, making it
ideal for configuration, scripting, and rapid prototyping.
DEPENDENCIES
* Lua 5.1 - (http://www.lua.org/)
GIT
To download the very latest source off the GIT server do this:
git clone git://github.com/frenolfi/axgen.git
(you'll get a directory named axgen created, filled with the source code)