-
Notifications
You must be signed in to change notification settings - Fork 3
/
message.proto
302 lines (254 loc) · 9.57 KB
/
message.proto
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
syntax = "proto3";
package airtrack;
option go_package = "github.com/afk11/airtrack/pkg/pb";
// Source contains information about which receiver produced the message
message Source {
// SourceType - enumeration of types of message producers
enum SourceType {
AdsbExchange = 0;
BeastServer = 1;
}
// Name - name of the producer. ADSB Exchange is 'adsbx'.
// Beast Servers use the name from the config entry.
string Name = 1;
// Type - type of producer that produced this message
SourceType Type = 2;
};
// Signal contains signal strength information about the received message
message Signal {
// Rssi - signal strength
double Rssi = 1;
};
// AircraftInfo represents an entry in the readsb database, containing
// information about the aircraft
message AircraftInfo {
// Registration - assigned registration for the aircraft.
string Registration = 1;
// TypeCode - identifies the type of aircraft
string TypeCode = 2;
// F
string F = 3;
// Description - brief description of the aircraft type for humans
string Description = 4;
}
// Operator represents an entry in the readsb operators database, and
// contains information about the operator of the current flight.
message Operator {
// Name - name of the operator
string Name = 1;
// CountryName - where the operator is based
string CountryName = 2;
// R
string R = 3;
}
// Message - a payload produced by one of our receivers
message Message {
// Source identifies the receiver which produced the message
Source Source = 1;
// Signal contains information about the signal strength. Only
// set for BEAST messages currently.
Signal Signal = 2;
// Icao - 6 character hex identifier for aircraft
string Icao = 10;
// Squawk - a 4 digit octal squawk code (as a string)
string Squawk = 11;
// CallSign - aircrafts flight ID/callsign
string CallSign = 12;
// AltitudeGeometric - geometric altitude
string AltitudeGeometric = 13;
// AltitudeBarometric - barometric altitude
string AltitudeBarometric = 14;
// Latitude - latitude coordinate
string Latitude = 20;
// Longitude - longitude coordinate
string Longitude = 21;
// IsOnGround is '1' if the aircraft is on ground, '0' otherwise
bool IsOnGround = 30;
// VerticalRateGeometric - change in altitude by ft per minute (UNITS??)
int64 VerticalRateGeometric = 40;
// HaveVerticalRateGeometric - whether VerticalRateGeometric is set
bool HaveVerticalRateGeometric = 41;
// VerticalRateBarometric - change in altitude by ft per minute (UNITS??)
int64 VerticalRateBarometric = 45;
// HaveVerticalRateBarometric - whether VerticalRateBarometric is set
bool HaveVerticalRateBarometric = 46;
string Track = 50;
double MagneticHeading = 51;
bool HaveMagneticHeading = 52;
double TrueHeading = 53;
bool HaveTrueHeading = 54;
// HaveFmsAltitude - used to indicate that FmsAltitude is set
bool HaveFmsAltitude = 60;
// FmsAltitude - the target altitude set on the aircrafts navigation
int64 FmsAltitude = 61;
// HaveNavHeading - used to indicate that NavHeading is set
bool HaveNavHeading = 65;
// NavHeading - heading set in navigation
double NavHeading = 66;
// HaveNavQNH indicates whether NavQNH is set
bool HaveNavQNH = 67;
// NavQNH - altimeter setting (QFE or QNH/QNE), millibars
double NavQNH = 68;
// HaveCategory - used to indicate that Category is set
bool HaveCategory = 70;
// Category - type of the transponder
string Category = 71;
// GroundSpeed - speed in knots
string GroundSpeed = 90;
// HaveTrueAirSpeed indicates whether TrueAirSpeed is set
bool HaveTrueAirSpeed = 91;
// TrueAirSpeed is the true airspeed in knots
// todo: units?
uint64 TrueAirSpeed = 92;
// HaveIndicatedAirSpeed indicates whether IndicatedAirSpeed is set
bool HaveIndicatedAirSpeed = 93;
// IndicatedAirSpeed is the true airspeed in knots
// todo: units?
uint64 IndicatedAirSpeed = 94;
// HaveMach indicates whether Mach is set
bool HaveMach = 95;
// Mach is the airspeed in mach
double Mach = 96;
// HaveRoll indicates whether Roll is set
bool HaveRoll = 97;
// The roll angle in degrees (negative is left roll),
double Roll = 98;
// NavModes - bitmap of NavModes
uint32 NavModes = 99;
// ADSBVersion - ADS-B Version Number 0, 1, 2 (3-7 are reserved) (2.2.3.2.7.5)
int64 ADSBVersion = 100;
// HaveNACP indicates whether NACV is set
bool HaveNACP = 101;
// NACP: Navigation Accuracy for Position (2.2.5.1.35)
uint32 NACP = 102;
// HaveNACV indicates whether NACV is set
bool HaveNACV = 103;
// NACV: Navigation Accuracy for Velocity (2.2.5.1.19)
uint32 NACV = 104;
// HaveNICBaro indicates whether NICBaro is set
bool HaveNICBaro = 105;
// NICBaro: Navigation Integrity Category for Barometric Altitude (2.2.5.1.35)
uint32 NICBaro = 106;
// HaveSIL indicates whether SIL is set
bool HaveSIL = 107;
// SIL: Source Integity Level (2.2.5.1.40)
uint32 SIL = 108;
// SILType: interpretation of SIL: unknown, perhour, persample
uint32 SILType = 109;
}
// State contains general information about a sighting.
message State {
// 6 character hex identifier for aircraft
string Icao = 1;
// Contains aircraft registration, type, and description of the aircraft
AircraftInfo Info = 2;
// OperatorCode is a three letter code which references the operator for
// this flight. The field is not empty if the callsign begins with three
// letters followed by a number.
string OperatorCode = 3;
// Operator information contains the name of the operator and its country.
// It will only be set if the `OperatorCode` is found in the database.
Operator Operator = 4;
// LastSignal contains the signal strength from the last message.
Signal LastSignal = 5;
// barometric altitude in feet
bool HaveAltitudeBarometric = 10;
int64 AltitudeBarometric = 11;
// geometric altitude in feet
bool HaveAltitudeGeometric = 12;
int64 AltitudeGeometric = 13;
// HaveLocation - used to indicate whether Latitude and Longitude are set.
bool HaveLocation = 20;
// Latitude
double Latitude = 21;
// Longitude
double Longitude = 22;
// HaveCallsign - indicates whether Callsign is set.
bool HaveCallsign = 30;
// Callsign or flight identifier
string CallSign = 31;
// HaveSquawk - indicates whether Squawk is set.
bool HaveSquawk = 40;
// Squawk - 4 digit octal number (as string)
string Squawk = 41;
// HaveCountry - indicates whether Country and CountryCode fields are set.
bool HaveCountry = 50;
// CountryCode - Aircraft registration country determined by ICAO Country Allocation
// CountryCode is ISO3166 2 letter code
string CountryCode = 51;
// Country is the long country name
string Country = 52;
// IsOnGround tracks whether the aircraft is on ground or in the air.
bool IsOnGround = 60;
// HaveNavQNH indicates whether NavQNH is set
bool HaveNavQNH = 61;
// NavQNH - altimeter setting (QFE or QNH/QNE), millibars
double NavQNH = 62;
// HaveVerticalRateBarometric indicates whether VerticalRateBarometric is set.
bool HaveVerticalRateBarometric = 70;
// VerticalRateBarometric - barometric change in vertical rate (+/-) in feet per minute
int64 VerticalRateBarometric = 71;
// HaveVerticalRateGeometric indicates whether VerticalRateGeometric is set.
bool HaveVerticalRateGeometric = 75;
// VerticalRateGeometric - geometric change in vertical rate (+/-) in feet per minute
int64 VerticalRateGeometric = 76;
// HaveTrack indicates whether Track is set.
bool HaveTrack = 80;
double Track = 81;
// HaveFmsAltitude indicates whether FmsAltitude is set.
bool HaveFmsAltitude = 85;
// FmsAltitude - the target altitude set on navigation instruments
int64 FmsAltitude = 86;
// HaveNavHeading indicates whether NavHeading is set.
bool HaveNavHeading = 87;
// NavHeading - the heading set in navigation
double NavHeading = 88;
// HaveGroundSpeed indicates whether GroundSpeed is set.
bool HaveGroundSpeed = 90;
// GroundSpeed - the ground speed in knots
double GroundSpeed = 91;
// HaveTrueAirSpeed indicates whether TrueAirSpeed is set
bool HaveTrueAirSpeed = 92;
// TrueAirSpeed is the true airspeed in knots
// todo: units?
uint64 TrueAirSpeed = 93;
// HaveIndicatedAirSpeed indicates whether IndicatedAirSpeed is set
bool HaveIndicatedAirSpeed = 94;
// IndicatedAirSpeed is the true airspeed in knots
// todo: units?
uint64 IndicatedAirSpeed = 95;
// HaveMach indicates whether Mach is set
bool HaveMach = 96;
// Mach is the airspeed in mach
double Mach = 97;
// NavModes - bitmap of NavModes
uint32 NavModes = 99;
// HaveCategory indicates whether Category is set.
bool HaveCategory = 100;
// Category - the transponder type
string Category = 101;
// HaveRoll indicates whether Roll is set
bool HaveRoll = 105;
// The roll angle in degrees (negative is left roll),
double Roll = 106;
// ADSBVersion - ADS-B Version Number 0, 1, 2 (3-7 are reserved) (2.2.3.2.7.5)
int64 ADSBVersion = 107;
// HaveNACP indicates whether NACV is set
bool HaveNACP = 108;
// NACP: Navigation Accuracy for Position (2.2.5.1.35)
uint32 NACP = 109;
// HaveNACV indicates whether NACV is set
bool HaveNACV = 110;
// NACV: Navigation Accuracy for Velocity (2.2.5.1.19)
uint32 NACV = 111;
// HaveNICBaro indicates whether NICBaro is set
bool HaveNICBaro = 112;
// NICBaro: Navigation Integrity Category for Barometric Altitude (2.2.5.1.35)
uint32 NICBaro = 113;
// HaveSIL indicates whether SIL is set
bool HaveSIL = 114;
// SIL: Source Integity Level (2.2.5.1.40)
uint32 SIL = 115;
// SILType: interpretation of SIL: unknown, perhour, persample
uint32 SILType = 116;
}