2 * SBAS L1 protocol dissection.
4 * By Timo Warns <timo.warns@gmail.com>
5 * Copyright 2023 Timo Warns
7 * Wireshark - Network traffic analyzer
8 * By Gerald Combs <gerald@unicom.net>
9 * Copyright 1998 Gerald Combs
11 * SPDX-License-Identifier: GPL-2.0-or-later
16 #include <epan/expert.h>
17 #include <epan/packet.h>
20 #include <epan/unit_strings.h>
22 #include <wsutil/array.h>
23 #include <wsutil/utf8_entities.h>
25 #include "packet-ubx.h"
26 #include "packet-sbas_l1.h"
29 * Dissects navigation messages of the Satellite Based Augmentation System
30 * (SBAS) sent on L1 frequency as defined by ICAO Annex 10, Vol I.
33 // SBAS L1 preamble values
34 #define SBAS_L1_PREAMBLE_1 0x53
35 #define SBAS_L1_PREAMBLE_2 0x9a
36 #define SBAS_L1_PREAMBLE_3 0xc6
38 // User Range Accuracy mapping
39 // see ICAO Annex 10, Vol I, Table B-26
40 static const value_string URA
[] = {
59 // SBAS service provider identifier mapping
60 // see ICAO Annex 10, Vol I, Table B-27
61 static const value_string SBAS_SPID
[] = {
69 // see ICAO Annex 10, Vol I, Table B-29
70 const value_string UDREI_EVALUATION
[] = {
71 {0, "0.0520 m" UTF8_SUPERSCRIPT_TWO
},
72 {1, "0.0924 m" UTF8_SUPERSCRIPT_TWO
},
73 {2, "0.1444 m" UTF8_SUPERSCRIPT_TWO
},
74 {3, "0.2830 m" UTF8_SUPERSCRIPT_TWO
},
75 {4, "0.4678 m" UTF8_SUPERSCRIPT_TWO
},
76 {5, "0.8315 m" UTF8_SUPERSCRIPT_TWO
},
77 {6, "1.2992 m" UTF8_SUPERSCRIPT_TWO
},
78 {7, "1.8709 m" UTF8_SUPERSCRIPT_TWO
},
79 {8, "2.5465 m" UTF8_SUPERSCRIPT_TWO
},
80 {9, "3.3260 m" UTF8_SUPERSCRIPT_TWO
},
81 {10, "5.1968 m" UTF8_SUPERSCRIPT_TWO
},
82 {11, "20.7870 m" UTF8_SUPERSCRIPT_TWO
},
83 {12, "230.9661 m" UTF8_SUPERSCRIPT_TWO
},
84 {13, "2078.695 m" UTF8_SUPERSCRIPT_TWO
},
85 {14, "Not Monitored"},
91 // see ICAO Annex 10, Vol I, Table B-33
92 static const value_string GIVEI_EVALUATION
[] = {
93 {0, "0.0084 m" UTF8_SUPERSCRIPT_TWO
},
94 {1, "0.0333 m" UTF8_SUPERSCRIPT_TWO
},
95 {2, "0.0749 m" UTF8_SUPERSCRIPT_TWO
},
96 {3, "0.1331 m" UTF8_SUPERSCRIPT_TWO
},
97 {4, "0.2079 m" UTF8_SUPERSCRIPT_TWO
},
98 {5, "0.2994 m" UTF8_SUPERSCRIPT_TWO
},
99 {6, "0.4075 m" UTF8_SUPERSCRIPT_TWO
},
100 {7, "0.5322 m" UTF8_SUPERSCRIPT_TWO
},
101 {8, "0.6735 m" UTF8_SUPERSCRIPT_TWO
},
102 {9, "0.8315 m" UTF8_SUPERSCRIPT_TWO
},
103 {10, "1.1974 m" UTF8_SUPERSCRIPT_TWO
},
104 {11, "1.8709 m" UTF8_SUPERSCRIPT_TWO
},
105 {12, "3.3260 m" UTF8_SUPERSCRIPT_TWO
},
106 {13, "20.787 m" UTF8_SUPERSCRIPT_TWO
},
107 {14, "187.0826 m" UTF8_SUPERSCRIPT_TWO
},
108 {15, "Not Monitored"},
112 // Mapping for fast correction degradation factor
113 // see ICAO Annex 10, Vol I, Table B-34
114 static const value_string DEGRADATION_FACTOR_INDICATOR
[] = {
115 {0, "0.0 mm/s" UTF8_SUPERSCRIPT_TWO
},
116 {1, "0.05 mm/s" UTF8_SUPERSCRIPT_TWO
},
117 {2, "0.09 mm/s" UTF8_SUPERSCRIPT_TWO
},
118 {3, "0.12 mm/s" UTF8_SUPERSCRIPT_TWO
},
119 {4, "0.15 mm/s" UTF8_SUPERSCRIPT_TWO
},
120 {5, "0.20 mm/s" UTF8_SUPERSCRIPT_TWO
},
121 {6, "0.30 mm/s" UTF8_SUPERSCRIPT_TWO
},
122 {7, "0.45 mm/s" UTF8_SUPERSCRIPT_TWO
},
123 {8, "0.60 mm/s" UTF8_SUPERSCRIPT_TWO
},
124 {9, "0.90 mm/s" UTF8_SUPERSCRIPT_TWO
},
125 {10, "1.50 mm/s" UTF8_SUPERSCRIPT_TWO
},
126 {11, "2.10 mm/s" UTF8_SUPERSCRIPT_TWO
},
127 {12, "2.70 mm/s" UTF8_SUPERSCRIPT_TWO
},
128 {13, "3.30 mm/s" UTF8_SUPERSCRIPT_TWO
},
129 {14, "4.60 mm/s" UTF8_SUPERSCRIPT_TWO
},
130 {15, "5.80 mm/s" UTF8_SUPERSCRIPT_TWO
},
134 // Mapping for delta UDRE indicator
135 // see ICAO Annex 10, Vol I, Table B-36
136 static const value_string DELTA_UDRE_INDICATOR
[] = {
156 // Mapping for region shape
157 // see ICAO Annex 10, Vol I, Section 3.5.4.9
158 static const val64_string REGION_SHAPE
[] = {
164 // table for SBAS L1 CRC24Q computation
165 static const uint32_t CRC24Q_TBL
[] = {
166 0x000000, 0x864CFB, 0x8AD50D, 0x0C99F6, 0x93E6E1, 0x15AA1A, 0x1933EC, 0x9F7F17,
167 0xA18139, 0x27CDC2, 0x2B5434, 0xAD18CF, 0x3267D8, 0xB42B23, 0xB8B2D5, 0x3EFE2E,
168 0xC54E89, 0x430272, 0x4F9B84, 0xC9D77F, 0x56A868, 0xD0E493, 0xDC7D65, 0x5A319E,
169 0x64CFB0, 0xE2834B, 0xEE1ABD, 0x685646, 0xF72951, 0x7165AA, 0x7DFC5C, 0xFBB0A7,
170 0x0CD1E9, 0x8A9D12, 0x8604E4, 0x00481F, 0x9F3708, 0x197BF3, 0x15E205, 0x93AEFE,
171 0xAD50D0, 0x2B1C2B, 0x2785DD, 0xA1C926, 0x3EB631, 0xB8FACA, 0xB4633C, 0x322FC7,
172 0xC99F60, 0x4FD39B, 0x434A6D, 0xC50696, 0x5A7981, 0xDC357A, 0xD0AC8C, 0x56E077,
173 0x681E59, 0xEE52A2, 0xE2CB54, 0x6487AF, 0xFBF8B8, 0x7DB443, 0x712DB5, 0xF7614E,
174 0x19A3D2, 0x9FEF29, 0x9376DF, 0x153A24, 0x8A4533, 0x0C09C8, 0x00903E, 0x86DCC5,
175 0xB822EB, 0x3E6E10, 0x32F7E6, 0xB4BB1D, 0x2BC40A, 0xAD88F1, 0xA11107, 0x275DFC,
176 0xDCED5B, 0x5AA1A0, 0x563856, 0xD074AD, 0x4F0BBA, 0xC94741, 0xC5DEB7, 0x43924C,
177 0x7D6C62, 0xFB2099, 0xF7B96F, 0x71F594, 0xEE8A83, 0x68C678, 0x645F8E, 0xE21375,
178 0x15723B, 0x933EC0, 0x9FA736, 0x19EBCD, 0x8694DA, 0x00D821, 0x0C41D7, 0x8A0D2C,
179 0xB4F302, 0x32BFF9, 0x3E260F, 0xB86AF4, 0x2715E3, 0xA15918, 0xADC0EE, 0x2B8C15,
180 0xD03CB2, 0x567049, 0x5AE9BF, 0xDCA544, 0x43DA53, 0xC596A8, 0xC90F5E, 0x4F43A5,
181 0x71BD8B, 0xF7F170, 0xFB6886, 0x7D247D, 0xE25B6A, 0x641791, 0x688E67, 0xEEC29C,
182 0x3347A4, 0xB50B5F, 0xB992A9, 0x3FDE52, 0xA0A145, 0x26EDBE, 0x2A7448, 0xAC38B3,
183 0x92C69D, 0x148A66, 0x181390, 0x9E5F6B, 0x01207C, 0x876C87, 0x8BF571, 0x0DB98A,
184 0xF6092D, 0x7045D6, 0x7CDC20, 0xFA90DB, 0x65EFCC, 0xE3A337, 0xEF3AC1, 0x69763A,
185 0x578814, 0xD1C4EF, 0xDD5D19, 0x5B11E2, 0xC46EF5, 0x42220E, 0x4EBBF8, 0xC8F703,
186 0x3F964D, 0xB9DAB6, 0xB54340, 0x330FBB, 0xAC70AC, 0x2A3C57, 0x26A5A1, 0xA0E95A,
187 0x9E1774, 0x185B8F, 0x14C279, 0x928E82, 0x0DF195, 0x8BBD6E, 0x872498, 0x016863,
188 0xFAD8C4, 0x7C943F, 0x700DC9, 0xF64132, 0x693E25, 0xEF72DE, 0xE3EB28, 0x65A7D3,
189 0x5B59FD, 0xDD1506, 0xD18CF0, 0x57C00B, 0xC8BF1C, 0x4EF3E7, 0x426A11, 0xC426EA,
190 0x2AE476, 0xACA88D, 0xA0317B, 0x267D80, 0xB90297, 0x3F4E6C, 0x33D79A, 0xB59B61,
191 0x8B654F, 0x0D29B4, 0x01B042, 0x87FCB9, 0x1883AE, 0x9ECF55, 0x9256A3, 0x141A58,
192 0xEFAAFF, 0x69E604, 0x657FF2, 0xE33309, 0x7C4C1E, 0xFA00E5, 0xF69913, 0x70D5E8,
193 0x4E2BC6, 0xC8673D, 0xC4FECB, 0x42B230, 0xDDCD27, 0x5B81DC, 0x57182A, 0xD154D1,
194 0x26359F, 0xA07964, 0xACE092, 0x2AAC69, 0xB5D37E, 0x339F85, 0x3F0673, 0xB94A88,
195 0x87B4A6, 0x01F85D, 0x0D61AB, 0x8B2D50, 0x145247, 0x921EBC, 0x9E874A, 0x18CBB1,
196 0xE37B16, 0x6537ED, 0x69AE1B, 0xEFE2E0, 0x709DF7, 0xF6D10C, 0xFA48FA, 0x7C0401,
197 0x42FA2F, 0xC4B6D4, 0xC82F22, 0x4E63D9, 0xD11CCE, 0x575035, 0x5BC9C3, 0xDD8538
200 /* Initialize the protocol and registered fields */
201 static int proto_sbas_l1
;
203 // see ICAO Annex 10, Vol I, Appendix B, Section 3.5.3
204 static int hf_sbas_l1_preamble
;
205 static int hf_sbas_l1_mt
;
206 static int hf_sbas_l1_chksum
;
208 static int hf_sbas_l1_mt0
;
209 static int hf_sbas_l1_mt0_spare_1
;
210 static int hf_sbas_l1_mt0_spare_2
;
211 static int hf_sbas_l1_mt0_spare_3
;
213 // see ICAO Annex 10, Vol I, Table B-38
214 static int hf_sbas_l1_mt1
;
215 static int hf_sbas_l1_mt1_prn_mask_gps
;
216 static int hf_sbas_l1_mt1_prn_mask_glonass
;
217 static int hf_sbas_l1_mt1_prn_mask_spare_1
;
218 static int hf_sbas_l1_mt1_prn_mask_sbas
;
219 static int hf_sbas_l1_mt1_prn_mask_spare_2
;
220 static int hf_sbas_l1_mt1_iodp
;
222 // see ICAO Annex 10, Vol I, Table B-39
223 static int hf_sbas_l1_mt2
;
224 static int hf_sbas_l1_mt2_iodf_2
;
225 static int hf_sbas_l1_mt2_iodp
;
226 static int hf_sbas_l1_mt2_fc_1
;
227 static int hf_sbas_l1_mt2_fc_2
;
228 static int hf_sbas_l1_mt2_fc_3
;
229 static int hf_sbas_l1_mt2_fc_4
;
230 static int hf_sbas_l1_mt2_fc_5
;
231 static int hf_sbas_l1_mt2_fc_6
;
232 static int hf_sbas_l1_mt2_fc_7
;
233 static int hf_sbas_l1_mt2_fc_8
;
234 static int hf_sbas_l1_mt2_fc_9
;
235 static int hf_sbas_l1_mt2_fc_10
;
236 static int hf_sbas_l1_mt2_fc_11
;
237 static int hf_sbas_l1_mt2_fc_12
;
238 static int hf_sbas_l1_mt2_fc_13
;
239 static int hf_sbas_l1_mt2_udrei_1
;
240 static int hf_sbas_l1_mt2_udrei_2
;
241 static int hf_sbas_l1_mt2_udrei_3
;
242 static int hf_sbas_l1_mt2_udrei_4
;
243 static int hf_sbas_l1_mt2_udrei_5
;
244 static int hf_sbas_l1_mt2_udrei_6
;
245 static int hf_sbas_l1_mt2_udrei_7
;
246 static int hf_sbas_l1_mt2_udrei_8
;
247 static int hf_sbas_l1_mt2_udrei_9
;
248 static int hf_sbas_l1_mt2_udrei_10
;
249 static int hf_sbas_l1_mt2_udrei_11
;
250 static int hf_sbas_l1_mt2_udrei_12
;
251 static int hf_sbas_l1_mt2_udrei_13
;
253 // see ICAO Annex 10, Vol I, Table B-39
254 static int hf_sbas_l1_mt3
;
255 static int hf_sbas_l1_mt3_iodf_3
;
256 static int hf_sbas_l1_mt3_iodp
;
257 static int hf_sbas_l1_mt3_fc_14
;
258 static int hf_sbas_l1_mt3_fc_15
;
259 static int hf_sbas_l1_mt3_fc_16
;
260 static int hf_sbas_l1_mt3_fc_17
;
261 static int hf_sbas_l1_mt3_fc_18
;
262 static int hf_sbas_l1_mt3_fc_19
;
263 static int hf_sbas_l1_mt3_fc_20
;
264 static int hf_sbas_l1_mt3_fc_21
;
265 static int hf_sbas_l1_mt3_fc_22
;
266 static int hf_sbas_l1_mt3_fc_23
;
267 static int hf_sbas_l1_mt3_fc_24
;
268 static int hf_sbas_l1_mt3_fc_25
;
269 static int hf_sbas_l1_mt3_fc_26
;
270 static int hf_sbas_l1_mt3_udrei_14
;
271 static int hf_sbas_l1_mt3_udrei_15
;
272 static int hf_sbas_l1_mt3_udrei_16
;
273 static int hf_sbas_l1_mt3_udrei_17
;
274 static int hf_sbas_l1_mt3_udrei_18
;
275 static int hf_sbas_l1_mt3_udrei_19
;
276 static int hf_sbas_l1_mt3_udrei_20
;
277 static int hf_sbas_l1_mt3_udrei_21
;
278 static int hf_sbas_l1_mt3_udrei_22
;
279 static int hf_sbas_l1_mt3_udrei_23
;
280 static int hf_sbas_l1_mt3_udrei_24
;
281 static int hf_sbas_l1_mt3_udrei_25
;
282 static int hf_sbas_l1_mt3_udrei_26
;
284 // see ICAO Annex 10, Vol I, Table B-39
285 static int hf_sbas_l1_mt4
;
286 static int hf_sbas_l1_mt4_iodf_4
;
287 static int hf_sbas_l1_mt4_iodp
;
288 static int hf_sbas_l1_mt4_fc_27
;
289 static int hf_sbas_l1_mt4_fc_28
;
290 static int hf_sbas_l1_mt4_fc_29
;
291 static int hf_sbas_l1_mt4_fc_30
;
292 static int hf_sbas_l1_mt4_fc_31
;
293 static int hf_sbas_l1_mt4_fc_32
;
294 static int hf_sbas_l1_mt4_fc_33
;
295 static int hf_sbas_l1_mt4_fc_34
;
296 static int hf_sbas_l1_mt4_fc_35
;
297 static int hf_sbas_l1_mt4_fc_36
;
298 static int hf_sbas_l1_mt4_fc_37
;
299 static int hf_sbas_l1_mt4_fc_38
;
300 static int hf_sbas_l1_mt4_fc_39
;
301 static int hf_sbas_l1_mt4_udrei_27
;
302 static int hf_sbas_l1_mt4_udrei_28
;
303 static int hf_sbas_l1_mt4_udrei_29
;
304 static int hf_sbas_l1_mt4_udrei_30
;
305 static int hf_sbas_l1_mt4_udrei_31
;
306 static int hf_sbas_l1_mt4_udrei_32
;
307 static int hf_sbas_l1_mt4_udrei_33
;
308 static int hf_sbas_l1_mt4_udrei_34
;
309 static int hf_sbas_l1_mt4_udrei_35
;
310 static int hf_sbas_l1_mt4_udrei_36
;
311 static int hf_sbas_l1_mt4_udrei_37
;
312 static int hf_sbas_l1_mt4_udrei_38
;
313 static int hf_sbas_l1_mt4_udrei_39
;
315 // see ICAO Annex 10, Vol I, Table B-39
316 static int hf_sbas_l1_mt5
;
317 static int hf_sbas_l1_mt5_iodf_5
;
318 static int hf_sbas_l1_mt5_iodp
;
319 static int hf_sbas_l1_mt5_fc_40
;
320 static int hf_sbas_l1_mt5_fc_41
;
321 static int hf_sbas_l1_mt5_fc_42
;
322 static int hf_sbas_l1_mt5_fc_43
;
323 static int hf_sbas_l1_mt5_fc_44
;
324 static int hf_sbas_l1_mt5_fc_45
;
325 static int hf_sbas_l1_mt5_fc_46
;
326 static int hf_sbas_l1_mt5_fc_47
;
327 static int hf_sbas_l1_mt5_fc_48
;
328 static int hf_sbas_l1_mt5_fc_49
;
329 static int hf_sbas_l1_mt5_fc_50
;
330 static int hf_sbas_l1_mt5_fc_51
;
331 static int hf_sbas_l1_mt5_fc_52
;
332 static int hf_sbas_l1_mt5_udrei_40
;
333 static int hf_sbas_l1_mt5_udrei_41
;
334 static int hf_sbas_l1_mt5_udrei_42
;
335 static int hf_sbas_l1_mt5_udrei_43
;
336 static int hf_sbas_l1_mt5_udrei_44
;
337 static int hf_sbas_l1_mt5_udrei_45
;
338 static int hf_sbas_l1_mt5_udrei_46
;
339 static int hf_sbas_l1_mt5_udrei_47
;
340 static int hf_sbas_l1_mt5_udrei_48
;
341 static int hf_sbas_l1_mt5_udrei_49
;
342 static int hf_sbas_l1_mt5_udrei_50
;
343 static int hf_sbas_l1_mt5_udrei_51
;
344 static int hf_sbas_l1_mt5_udrei_52
;
346 // see ICAO Annex 10, Vol I, Table B-40
347 static int hf_sbas_l1_mt6
;
348 static int hf_sbas_l1_mt6_iodf_2
;
349 static int hf_sbas_l1_mt6_iodf_3
;
350 static int hf_sbas_l1_mt6_iodf_4
;
351 static int hf_sbas_l1_mt6_iodf_5
;
352 static int hf_sbas_l1_mt6_udrei_1
;
353 static int hf_sbas_l1_mt6_udrei_2
;
354 static int hf_sbas_l1_mt6_udrei_3
;
355 static int hf_sbas_l1_mt6_udrei_4
;
356 static int hf_sbas_l1_mt6_udrei_5
;
357 static int hf_sbas_l1_mt6_udrei_6
;
358 static int hf_sbas_l1_mt6_udrei_7
;
359 static int hf_sbas_l1_mt6_udrei_8
;
360 static int hf_sbas_l1_mt6_udrei_9
;
361 static int hf_sbas_l1_mt6_udrei_10
;
362 static int hf_sbas_l1_mt6_udrei_11
;
363 static int hf_sbas_l1_mt6_udrei_12
;
364 static int hf_sbas_l1_mt6_udrei_13
;
365 static int hf_sbas_l1_mt6_udrei_14
;
366 static int hf_sbas_l1_mt6_udrei_15
;
367 static int hf_sbas_l1_mt6_udrei_16
;
368 static int hf_sbas_l1_mt6_udrei_17
;
369 static int hf_sbas_l1_mt6_udrei_18
;
370 static int hf_sbas_l1_mt6_udrei_19
;
371 static int hf_sbas_l1_mt6_udrei_20
;
372 static int hf_sbas_l1_mt6_udrei_21
;
373 static int hf_sbas_l1_mt6_udrei_22
;
374 static int hf_sbas_l1_mt6_udrei_23
;
375 static int hf_sbas_l1_mt6_udrei_24
;
376 static int hf_sbas_l1_mt6_udrei_25
;
377 static int hf_sbas_l1_mt6_udrei_26
;
378 static int hf_sbas_l1_mt6_udrei_27
;
379 static int hf_sbas_l1_mt6_udrei_28
;
380 static int hf_sbas_l1_mt6_udrei_29
;
381 static int hf_sbas_l1_mt6_udrei_30
;
382 static int hf_sbas_l1_mt6_udrei_31
;
383 static int hf_sbas_l1_mt6_udrei_32
;
384 static int hf_sbas_l1_mt6_udrei_33
;
385 static int hf_sbas_l1_mt6_udrei_34
;
386 static int hf_sbas_l1_mt6_udrei_35
;
387 static int hf_sbas_l1_mt6_udrei_36
;
388 static int hf_sbas_l1_mt6_udrei_37
;
389 static int hf_sbas_l1_mt6_udrei_38
;
390 static int hf_sbas_l1_mt6_udrei_39
;
391 static int hf_sbas_l1_mt6_udrei_40
;
392 static int hf_sbas_l1_mt6_udrei_41
;
393 static int hf_sbas_l1_mt6_udrei_42
;
394 static int hf_sbas_l1_mt6_udrei_43
;
395 static int hf_sbas_l1_mt6_udrei_44
;
396 static int hf_sbas_l1_mt6_udrei_45
;
397 static int hf_sbas_l1_mt6_udrei_46
;
398 static int hf_sbas_l1_mt6_udrei_47
;
399 static int hf_sbas_l1_mt6_udrei_48
;
400 static int hf_sbas_l1_mt6_udrei_49
;
401 static int hf_sbas_l1_mt6_udrei_50
;
402 static int hf_sbas_l1_mt6_udrei_51
;
404 // see ICAO Annex 10, Vol I, Table B-41
405 static int hf_sbas_l1_mt7
;
406 static int hf_sbas_l1_mt7_t_lat
;
407 static int hf_sbas_l1_mt7_iodp
;
408 static int hf_sbas_l1_mt7_spare
;
409 static int hf_sbas_l1_mt7_ai_1
;
410 static int hf_sbas_l1_mt7_ai_2
;
411 static int hf_sbas_l1_mt7_ai_3
;
412 static int hf_sbas_l1_mt7_ai_4
;
413 static int hf_sbas_l1_mt7_ai_5
;
414 static int hf_sbas_l1_mt7_ai_6
;
415 static int hf_sbas_l1_mt7_ai_7
;
416 static int hf_sbas_l1_mt7_ai_8
;
417 static int hf_sbas_l1_mt7_ai_9
;
418 static int hf_sbas_l1_mt7_ai_10
;
419 static int hf_sbas_l1_mt7_ai_11
;
420 static int hf_sbas_l1_mt7_ai_12
;
421 static int hf_sbas_l1_mt7_ai_13
;
422 static int hf_sbas_l1_mt7_ai_14
;
423 static int hf_sbas_l1_mt7_ai_15
;
424 static int hf_sbas_l1_mt7_ai_16
;
425 static int hf_sbas_l1_mt7_ai_17
;
426 static int hf_sbas_l1_mt7_ai_18
;
427 static int hf_sbas_l1_mt7_ai_19
;
428 static int hf_sbas_l1_mt7_ai_20
;
429 static int hf_sbas_l1_mt7_ai_21
;
430 static int hf_sbas_l1_mt7_ai_22
;
431 static int hf_sbas_l1_mt7_ai_23
;
432 static int hf_sbas_l1_mt7_ai_24
;
433 static int hf_sbas_l1_mt7_ai_25
;
434 static int hf_sbas_l1_mt7_ai_26
;
435 static int hf_sbas_l1_mt7_ai_27
;
436 static int hf_sbas_l1_mt7_ai_28
;
437 static int hf_sbas_l1_mt7_ai_29
;
438 static int hf_sbas_l1_mt7_ai_30
;
439 static int hf_sbas_l1_mt7_ai_31
;
440 static int hf_sbas_l1_mt7_ai_32
;
441 static int hf_sbas_l1_mt7_ai_33
;
442 static int hf_sbas_l1_mt7_ai_34
;
443 static int hf_sbas_l1_mt7_ai_35
;
444 static int hf_sbas_l1_mt7_ai_36
;
445 static int hf_sbas_l1_mt7_ai_37
;
446 static int hf_sbas_l1_mt7_ai_38
;
447 static int hf_sbas_l1_mt7_ai_39
;
448 static int hf_sbas_l1_mt7_ai_40
;
449 static int hf_sbas_l1_mt7_ai_41
;
450 static int hf_sbas_l1_mt7_ai_42
;
451 static int hf_sbas_l1_mt7_ai_43
;
452 static int hf_sbas_l1_mt7_ai_44
;
453 static int hf_sbas_l1_mt7_ai_45
;
454 static int hf_sbas_l1_mt7_ai_46
;
455 static int hf_sbas_l1_mt7_ai_47
;
456 static int hf_sbas_l1_mt7_ai_48
;
457 static int hf_sbas_l1_mt7_ai_49
;
458 static int hf_sbas_l1_mt7_ai_50
;
459 static int hf_sbas_l1_mt7_ai_51
;
461 // see ICAO Annex 10, Vol I, Table B-42
462 static int hf_sbas_l1_mt9
;
463 static int hf_sbas_l1_mt9_reserved
;
464 static int hf_sbas_l1_mt9_t_0_geo
;
465 static int hf_sbas_l1_mt9_ura
;
466 static int hf_sbas_l1_mt9_x_g
;
467 static int hf_sbas_l1_mt9_y_g
;
468 static int hf_sbas_l1_mt9_z_g
;
469 static int hf_sbas_l1_mt9_x_g_vel
;
470 static int hf_sbas_l1_mt9_y_g_vel
;
471 static int hf_sbas_l1_mt9_z_g_vel
;
472 static int hf_sbas_l1_mt9_x_g_acc
;
473 static int hf_sbas_l1_mt9_y_g_acc
;
474 static int hf_sbas_l1_mt9_z_g_acc
;
475 static int hf_sbas_l1_mt9_a_gf0
;
476 static int hf_sbas_l1_mt9_a_gf1
;
478 // see ICAO Annex 10, Vol I, Table B-45
479 static int hf_sbas_l1_mt17
;
480 static int hf_sbas_l1_mt17_reserved
;
481 static int hf_sbas_l1_mt17_prn
;
482 static int hf_sbas_l1_mt17_health_and_status
;
483 static int hf_sbas_l1_mt17_health_and_status_spid
;
484 static int hf_sbas_l1_mt17_health_and_status_spare
;
485 static int hf_sbas_l1_mt17_health_and_status_sat_status_basic_corrections
;
486 static int hf_sbas_l1_mt17_health_and_status_precision_corrections
;
487 static int hf_sbas_l1_mt17_health_and_status_ranging
;
488 static int hf_sbas_l1_mt17_x_ga
;
489 static int hf_sbas_l1_mt17_y_ga
;
490 static int hf_sbas_l1_mt17_z_ga
;
491 static int hf_sbas_l1_mt17_x_ga_vel
;
492 static int hf_sbas_l1_mt17_y_ga_vel
;
493 static int hf_sbas_l1_mt17_z_ga_vel
;
494 static int hf_sbas_l1_mt17_t_a
;
496 static int * const sbas_l1_mt17_health_and_status_fields
[] = {
497 &hf_sbas_l1_mt17_health_and_status_spid
,
498 &hf_sbas_l1_mt17_health_and_status_spare
,
499 &hf_sbas_l1_mt17_health_and_status_sat_status_basic_corrections
,
500 &hf_sbas_l1_mt17_health_and_status_precision_corrections
,
501 &hf_sbas_l1_mt17_health_and_status_ranging
,
505 // see ICAO Annex 10, Vol I, Table B-46
506 static int hf_sbas_l1_mt18
;
507 static int hf_sbas_l1_mt18_nr_igp_bands
;
508 static int hf_sbas_l1_mt18_igp_band_id
;
509 static int hf_sbas_l1_mt18_iodi_k
;
510 static int hf_sbas_l1_mt18_igp_mask_180w
;
511 static int hf_sbas_l1_mt18_igp_mask_175w
;
512 static int hf_sbas_l1_mt18_igp_mask_170w
;
513 static int hf_sbas_l1_mt18_igp_mask_165w
;
514 static int hf_sbas_l1_mt18_igp_mask_160w
;
515 static int hf_sbas_l1_mt18_igp_mask_155w
;
516 static int hf_sbas_l1_mt18_igp_mask_150w
;
517 static int hf_sbas_l1_mt18_igp_mask_145w
;
518 static int hf_sbas_l1_mt18_igp_mask_140w
;
519 static int hf_sbas_l1_mt18_igp_mask_135w
;
520 static int hf_sbas_l1_mt18_igp_mask_130w
;
521 static int hf_sbas_l1_mt18_igp_mask_125w
;
522 static int hf_sbas_l1_mt18_igp_mask_120w
;
523 static int hf_sbas_l1_mt18_igp_mask_115w
;
524 static int hf_sbas_l1_mt18_igp_mask_110w
;
525 static int hf_sbas_l1_mt18_igp_mask_105w
;
526 static int hf_sbas_l1_mt18_igp_mask_100w
;
527 static int hf_sbas_l1_mt18_igp_mask_95w
;
528 static int hf_sbas_l1_mt18_igp_mask_90w
;
529 static int hf_sbas_l1_mt18_igp_mask_85w
;
530 static int hf_sbas_l1_mt18_igp_mask_80w
;
531 static int hf_sbas_l1_mt18_igp_mask_75w
;
532 static int hf_sbas_l1_mt18_igp_mask_70w
;
533 static int hf_sbas_l1_mt18_igp_mask_65w
;
534 static int hf_sbas_l1_mt18_igp_mask_60w
;
535 static int hf_sbas_l1_mt18_igp_mask_55w
;
536 static int hf_sbas_l1_mt18_igp_mask_50w
;
537 static int hf_sbas_l1_mt18_igp_mask_45w
;
538 static int hf_sbas_l1_mt18_igp_mask_40w
;
539 static int hf_sbas_l1_mt18_igp_mask_35w
;
540 static int hf_sbas_l1_mt18_igp_mask_30w
;
541 static int hf_sbas_l1_mt18_igp_mask_25w
;
542 static int hf_sbas_l1_mt18_igp_mask_20w
;
543 static int hf_sbas_l1_mt18_igp_mask_15w
;
544 static int hf_sbas_l1_mt18_igp_mask_10w
;
545 static int hf_sbas_l1_mt18_igp_mask_5w
;
546 static int hf_sbas_l1_mt18_igp_mask_0
;
547 static int hf_sbas_l1_mt18_igp_mask_5e
;
548 static int hf_sbas_l1_mt18_igp_mask_10e
;
549 static int hf_sbas_l1_mt18_igp_mask_15e
;
550 static int hf_sbas_l1_mt18_igp_mask_20e
;
551 static int hf_sbas_l1_mt18_igp_mask_25e
;
552 static int hf_sbas_l1_mt18_igp_mask_30e
;
553 static int hf_sbas_l1_mt18_igp_mask_35e
;
554 static int hf_sbas_l1_mt18_igp_mask_40e
;
555 static int hf_sbas_l1_mt18_igp_mask_45e
;
556 static int hf_sbas_l1_mt18_igp_mask_50e
;
557 static int hf_sbas_l1_mt18_igp_mask_55e
;
558 static int hf_sbas_l1_mt18_igp_mask_60e
;
559 static int hf_sbas_l1_mt18_igp_mask_65e
;
560 static int hf_sbas_l1_mt18_igp_mask_70e
;
561 static int hf_sbas_l1_mt18_igp_mask_75e
;
562 static int hf_sbas_l1_mt18_igp_mask_80e
;
563 static int hf_sbas_l1_mt18_igp_mask_85e
;
564 static int hf_sbas_l1_mt18_igp_mask_90e
;
565 static int hf_sbas_l1_mt18_igp_mask_95e
;
566 static int hf_sbas_l1_mt18_igp_mask_100e
;
567 static int hf_sbas_l1_mt18_igp_mask_105e
;
568 static int hf_sbas_l1_mt18_igp_mask_110e
;
569 static int hf_sbas_l1_mt18_igp_mask_115e
;
570 static int hf_sbas_l1_mt18_igp_mask_120e
;
571 static int hf_sbas_l1_mt18_igp_mask_125e
;
572 static int hf_sbas_l1_mt18_igp_mask_130e
;
573 static int hf_sbas_l1_mt18_igp_mask_135e
;
574 static int hf_sbas_l1_mt18_igp_mask_140e
;
575 static int hf_sbas_l1_mt18_igp_mask_145e
;
576 static int hf_sbas_l1_mt18_igp_mask_150e
;
577 static int hf_sbas_l1_mt18_igp_mask_155e
;
578 static int hf_sbas_l1_mt18_igp_mask_160e
;
579 static int hf_sbas_l1_mt18_igp_mask_165e
;
580 static int hf_sbas_l1_mt18_igp_mask_170e
;
581 static int hf_sbas_l1_mt18_igp_mask_175e
;
582 static int hf_sbas_l1_mt18_igp_mask_60n_1
;
583 static int hf_sbas_l1_mt18_igp_mask_60n_2
;
584 static int hf_sbas_l1_mt18_igp_mask_65n
;
585 static int hf_sbas_l1_mt18_igp_mask_70n
;
586 static int hf_sbas_l1_mt18_igp_mask_75n
;
587 static int hf_sbas_l1_mt18_igp_mask_85n
;
588 static int hf_sbas_l1_mt18_igp_mask_60s_1
;
589 static int hf_sbas_l1_mt18_igp_mask_60s_2
;
590 static int hf_sbas_l1_mt18_igp_mask_65s
;
591 static int hf_sbas_l1_mt18_igp_mask_70s
;
592 static int hf_sbas_l1_mt18_igp_mask_75s
;
593 static int hf_sbas_l1_mt18_igp_mask_85s
;
594 static int hf_sbas_l1_mt18_spare
;
596 // see ICAO Annex 10, Vol I, Table B-47
597 static int hf_sbas_l1_mt24
;
598 static int hf_sbas_l1_mt24_fc_i1
;
599 static int hf_sbas_l1_mt24_fc_i2
;
600 static int hf_sbas_l1_mt24_fc_i3
;
601 static int hf_sbas_l1_mt24_fc_i4
;
602 static int hf_sbas_l1_mt24_fc_i5
;
603 static int hf_sbas_l1_mt24_fc_i6
;
604 static int hf_sbas_l1_mt24_udrei_i1
;
605 static int hf_sbas_l1_mt24_udrei_i2
;
606 static int hf_sbas_l1_mt24_udrei_i3
;
607 static int hf_sbas_l1_mt24_udrei_i4
;
608 static int hf_sbas_l1_mt24_udrei_i5
;
609 static int hf_sbas_l1_mt24_udrei_i6
;
610 static int hf_sbas_l1_mt24_iodp
;
611 static int hf_sbas_l1_mt24_fc_type
;
612 static int hf_sbas_l1_mt24_iodf_j
;
613 static int hf_sbas_l1_mt24_spare
;
614 static int hf_sbas_l1_mt24_velocity_code
;
615 static int hf_sbas_l1_mt24_v0_prn_mask_nr_1
;
616 static int hf_sbas_l1_mt24_v0_iod_1
;
617 static int hf_sbas_l1_mt24_v0_delta_x_1
;
618 static int hf_sbas_l1_mt24_v0_delta_y_1
;
619 static int hf_sbas_l1_mt24_v0_delta_z_1
;
620 static int hf_sbas_l1_mt24_v0_delta_a_1_f0
;
621 static int hf_sbas_l1_mt24_v0_prn_mask_nr_2
;
622 static int hf_sbas_l1_mt24_v0_iod_2
;
623 static int hf_sbas_l1_mt24_v0_delta_x_2
;
624 static int hf_sbas_l1_mt24_v0_delta_y_2
;
625 static int hf_sbas_l1_mt24_v0_delta_z_2
;
626 static int hf_sbas_l1_mt24_v0_delta_a_2_f0
;
627 static int hf_sbas_l1_mt24_v0_iodp
;
628 static int hf_sbas_l1_mt24_v0_spare
;
629 static int hf_sbas_l1_mt24_v1_prn_mask_nr
;
630 static int hf_sbas_l1_mt24_v1_iod
;
631 static int hf_sbas_l1_mt24_v1_delta_x
;
632 static int hf_sbas_l1_mt24_v1_delta_y
;
633 static int hf_sbas_l1_mt24_v1_delta_z
;
634 static int hf_sbas_l1_mt24_v1_delta_a_f0
;
635 static int hf_sbas_l1_mt24_v1_delta_x_vel
;
636 static int hf_sbas_l1_mt24_v1_delta_y_vel
;
637 static int hf_sbas_l1_mt24_v1_delta_z_vel
;
638 static int hf_sbas_l1_mt24_v1_delta_a_f1
;
639 static int hf_sbas_l1_mt24_v1_t_lt
;
640 static int hf_sbas_l1_mt24_v1_iodp
;
642 // see ICAO Annex 10, Vol I, Table B-48
643 static int hf_sbas_l1_mt25
;
644 static int hf_sbas_l1_mt25_h1_velocity_code
;
645 static int hf_sbas_l1_mt25_h1_v0_prn_mask_nr_1
;
646 static int hf_sbas_l1_mt25_h1_v0_iod_1
;
647 static int hf_sbas_l1_mt25_h1_v0_delta_x_1
;
648 static int hf_sbas_l1_mt25_h1_v0_delta_y_1
;
649 static int hf_sbas_l1_mt25_h1_v0_delta_z_1
;
650 static int hf_sbas_l1_mt25_h1_v0_delta_a_1_f0
;
651 static int hf_sbas_l1_mt25_h1_v0_prn_mask_nr_2
;
652 static int hf_sbas_l1_mt25_h1_v0_iod_2
;
653 static int hf_sbas_l1_mt25_h1_v0_delta_x_2
;
654 static int hf_sbas_l1_mt25_h1_v0_delta_y_2
;
655 static int hf_sbas_l1_mt25_h1_v0_delta_z_2
;
656 static int hf_sbas_l1_mt25_h1_v0_delta_a_2_f0
;
657 static int hf_sbas_l1_mt25_h1_v0_iodp
;
658 static int hf_sbas_l1_mt25_h1_v0_spare
;
659 static int hf_sbas_l1_mt25_h1_v1_prn_mask_nr
;
660 static int hf_sbas_l1_mt25_h1_v1_iod
;
661 static int hf_sbas_l1_mt25_h1_v1_delta_x
;
662 static int hf_sbas_l1_mt25_h1_v1_delta_y
;
663 static int hf_sbas_l1_mt25_h1_v1_delta_z
;
664 static int hf_sbas_l1_mt25_h1_v1_delta_a_f0
;
665 static int hf_sbas_l1_mt25_h1_v1_delta_x_vel
;
666 static int hf_sbas_l1_mt25_h1_v1_delta_y_vel
;
667 static int hf_sbas_l1_mt25_h1_v1_delta_z_vel
;
668 static int hf_sbas_l1_mt25_h1_v1_delta_a_f1
;
669 static int hf_sbas_l1_mt25_h1_v1_t_lt
;
670 static int hf_sbas_l1_mt25_h1_v1_iodp
;
671 static int hf_sbas_l1_mt25_h2_velocity_code
;
672 static int hf_sbas_l1_mt25_h2_v0_prn_mask_nr_1
;
673 static int hf_sbas_l1_mt25_h2_v0_iod_1
;
674 static int hf_sbas_l1_mt25_h2_v0_delta_x_1
;
675 static int hf_sbas_l1_mt25_h2_v0_delta_y_1
;
676 static int hf_sbas_l1_mt25_h2_v0_delta_z_1
;
677 static int hf_sbas_l1_mt25_h2_v0_delta_a_1_f0
;
678 static int hf_sbas_l1_mt25_h2_v0_prn_mask_nr_2
;
679 static int hf_sbas_l1_mt25_h2_v0_iod_2
;
680 static int hf_sbas_l1_mt25_h2_v0_delta_x_2
;
681 static int hf_sbas_l1_mt25_h2_v0_delta_y_2
;
682 static int hf_sbas_l1_mt25_h2_v0_delta_z_2
;
683 static int hf_sbas_l1_mt25_h2_v0_delta_a_2_f0
;
684 static int hf_sbas_l1_mt25_h2_v0_iodp
;
685 static int hf_sbas_l1_mt25_h2_v0_spare
;
686 static int hf_sbas_l1_mt25_h2_v1_prn_mask_nr
;
687 static int hf_sbas_l1_mt25_h2_v1_iod
;
688 static int hf_sbas_l1_mt25_h2_v1_delta_x
;
689 static int hf_sbas_l1_mt25_h2_v1_delta_y
;
690 static int hf_sbas_l1_mt25_h2_v1_delta_z
;
691 static int hf_sbas_l1_mt25_h2_v1_delta_a_f0
;
692 static int hf_sbas_l1_mt25_h2_v1_delta_x_vel
;
693 static int hf_sbas_l1_mt25_h2_v1_delta_y_vel
;
694 static int hf_sbas_l1_mt25_h2_v1_delta_z_vel
;
695 static int hf_sbas_l1_mt25_h2_v1_delta_a_f1
;
696 static int hf_sbas_l1_mt25_h2_v1_t_lt
;
697 static int hf_sbas_l1_mt25_h2_v1_iodp
;
699 // see ICAO Annex 10, Vol I, Table B-50
700 static int hf_sbas_l1_mt26
;
701 static int hf_sbas_l1_mt26_igp_band_id
;
702 static int hf_sbas_l1_mt26_igp_block_id
;
703 static int hf_sbas_l1_mt26_igp_vertical_delay_est_1
;
704 static int hf_sbas_l1_mt26_givei_1
;
705 static int hf_sbas_l1_mt26_igp_vertical_delay_est_2
;
706 static int hf_sbas_l1_mt26_givei_2
;
707 static int hf_sbas_l1_mt26_igp_vertical_delay_est_3
;
708 static int hf_sbas_l1_mt26_givei_3
;
709 static int hf_sbas_l1_mt26_igp_vertical_delay_est_4
;
710 static int hf_sbas_l1_mt26_givei_4
;
711 static int hf_sbas_l1_mt26_igp_vertical_delay_est_5
;
712 static int hf_sbas_l1_mt26_givei_5
;
713 static int hf_sbas_l1_mt26_igp_vertical_delay_est_6
;
714 static int hf_sbas_l1_mt26_givei_6
;
715 static int hf_sbas_l1_mt26_igp_vertical_delay_est_7
;
716 static int hf_sbas_l1_mt26_givei_7
;
717 static int hf_sbas_l1_mt26_igp_vertical_delay_est_8
;
718 static int hf_sbas_l1_mt26_givei_8
;
719 static int hf_sbas_l1_mt26_igp_vertical_delay_est_9
;
720 static int hf_sbas_l1_mt26_givei_9
;
721 static int hf_sbas_l1_mt26_igp_vertical_delay_est_10
;
722 static int hf_sbas_l1_mt26_givei_10
;
723 static int hf_sbas_l1_mt26_igp_vertical_delay_est_11
;
724 static int hf_sbas_l1_mt26_givei_11
;
725 static int hf_sbas_l1_mt26_igp_vertical_delay_est_12
;
726 static int hf_sbas_l1_mt26_givei_12
;
727 static int hf_sbas_l1_mt26_igp_vertical_delay_est_13
;
728 static int hf_sbas_l1_mt26_givei_13
;
729 static int hf_sbas_l1_mt26_igp_vertical_delay_est_14
;
730 static int hf_sbas_l1_mt26_givei_14
;
731 static int hf_sbas_l1_mt26_igp_vertical_delay_est_15
;
732 static int hf_sbas_l1_mt26_givei_15
;
733 static int hf_sbas_l1_mt26_iodi_k
;
734 static int hf_sbas_l1_mt26_spare
;
736 // see ICAO Annex 10, Vol I, Table B-51
737 static int hf_sbas_l1_mt27
;
738 static int hf_sbas_l1_mt27_iods
;
739 static int hf_sbas_l1_mt27_num_svc_msgs
;
740 static int hf_sbas_l1_mt27_svc_msg_num
;
741 static int hf_sbas_l1_mt27_num_regions
;
742 static int hf_sbas_l1_mt27_prio_code
;
743 static int hf_sbas_l1_mt27_dudre_in
;
744 static int hf_sbas_l1_mt27_dudre_out
;
745 static int hf_sbas_l1_mt27_region
[5];
746 static int hf_sbas_l1_mt27_region_c1_lat
[5];
747 static int hf_sbas_l1_mt27_region_c1_lon
[5];
748 static int hf_sbas_l1_mt27_region_c2_lat
[5];
749 static int hf_sbas_l1_mt27_region_c2_lon
[5];
750 static int hf_sbas_l1_mt27_region_shape
[5];
751 static int hf_sbas_l1_mt27_spare
;
753 static int * const sbas_l1_mt27_region_fields
[][6] = {
755 &hf_sbas_l1_mt27_region_c1_lat
[0],
756 &hf_sbas_l1_mt27_region_c1_lon
[0],
757 &hf_sbas_l1_mt27_region_c2_lat
[0],
758 &hf_sbas_l1_mt27_region_c2_lon
[0],
759 &hf_sbas_l1_mt27_region_shape
[0],
763 &hf_sbas_l1_mt27_region_c1_lat
[1],
764 &hf_sbas_l1_mt27_region_c1_lon
[1],
765 &hf_sbas_l1_mt27_region_c2_lat
[1],
766 &hf_sbas_l1_mt27_region_c2_lon
[1],
767 &hf_sbas_l1_mt27_region_shape
[1],
771 &hf_sbas_l1_mt27_region_c1_lat
[2],
772 &hf_sbas_l1_mt27_region_c1_lon
[2],
773 &hf_sbas_l1_mt27_region_c2_lat
[2],
774 &hf_sbas_l1_mt27_region_c2_lon
[2],
775 &hf_sbas_l1_mt27_region_shape
[2],
779 &hf_sbas_l1_mt27_region_c1_lat
[3],
780 &hf_sbas_l1_mt27_region_c1_lon
[3],
781 &hf_sbas_l1_mt27_region_c2_lat
[3],
782 &hf_sbas_l1_mt27_region_c2_lon
[3],
783 &hf_sbas_l1_mt27_region_shape
[3],
787 &hf_sbas_l1_mt27_region_c1_lat
[4],
788 &hf_sbas_l1_mt27_region_c1_lon
[4],
789 &hf_sbas_l1_mt27_region_c2_lat
[4],
790 &hf_sbas_l1_mt27_region_c2_lon
[4],
791 &hf_sbas_l1_mt27_region_shape
[4],
796 // see ICAO Annex 10, Vol I, Table B-52
797 static int hf_sbas_l1_mt63
;
798 static int hf_sbas_l1_mt63_spare_1
;
799 static int hf_sbas_l1_mt63_spare_2
;
800 static int hf_sbas_l1_mt63_spare_3
;
802 static dissector_table_t sbas_l1_mt_dissector_table
;
804 static expert_field ei_sbas_l1_preamble
;
805 static expert_field ei_sbas_l1_mt0
;
806 static expert_field ei_sbas_l1_crc
;
807 static expert_field ei_sbas_l1_mt26_igp_band_id
;
808 static expert_field ei_sbas_l1_mt26_igp_block_id
;
810 static int ett_sbas_l1
;
811 static int ett_sbas_l1_mt0
;
812 static int ett_sbas_l1_mt1
;
813 static int ett_sbas_l1_mt2
;
814 static int ett_sbas_l1_mt3
;
815 static int ett_sbas_l1_mt4
;
816 static int ett_sbas_l1_mt5
;
817 static int ett_sbas_l1_mt6
;
818 static int ett_sbas_l1_mt7
;
819 static int ett_sbas_l1_mt9
;
820 static int ett_sbas_l1_mt17
;
821 static int ett_sbas_l1_mt17_prn_data
[3];
822 static int ett_sbas_l1_mt17_health_and_status
;
823 static int ett_sbas_l1_mt18
;
824 static int ett_sbas_l1_mt24
;
825 static int ett_sbas_l1_mt25
;
826 static int ett_sbas_l1_mt26
;
827 static int ett_sbas_l1_mt27
;
828 static int ett_sbas_l1_mt27_region
[5];
829 static int ett_sbas_l1_mt63
;
831 // compute the CRC24Q checksum for an SBAS L1 nav msg
832 // see ICAO Annex 10, Vol I, Appendix B, Section 3.5.3.5
833 static uint32_t sbas_crc24q(const uint8_t *data
) {
836 // source byte and bit level index
841 // At byte level, nav msg needs to be right aligned.
842 // So, pretend that 6 bits (with value zero) have been processed.
845 // process 226 bits nav msg (= 28 bytes + 2 bits)
846 while ((s8
< 28) || (s8
== 28 && s1
> 5)) {
848 // get next bit from nav msg
849 s
= (data
[s8
] >> s1
) & 0x01;
857 crc
=((crc
<<8) & 0xffffff) ^ CRC24Q_TBL
[(crc
>>16) ^ d
];
865 // move to next byte if the last bit of current one was processed.
878 /* Format GEO position (X or Y axis) with 2600m resolution */
879 static void fmt_geo_xy_position(char *label
, int32_t c
) {
880 snprintf(label
, ITEM_LABEL_LENGTH
, "%d m", c
* 2600);
883 /* Format GEO position (X or Y axis) with 0.08m resolution */
884 static void fmt_geo_xy_position2(char *label
, int64_t c
) {
887 snprintf(label
, ITEM_LABEL_LENGTH
, "%" PRId64
".%02" PRId64
"m", c
/ 100, c
% 100);
890 snprintf(label
, ITEM_LABEL_LENGTH
, "-%" PRId64
".%02" PRId64
"m", -c
/ 100, -c
% 100);
894 /* Format GEO position (Z axis) with 26000m resolution */
895 static void fmt_geo_z_position(char *label
, int32_t c
) {
896 snprintf(label
, ITEM_LABEL_LENGTH
, "%d m", c
* 26000);
899 /* Format GEO position (z axis) with 0.4m resolution */
900 static void fmt_geo_z_position2(char *label
, int64_t c
) {
903 snprintf(label
, ITEM_LABEL_LENGTH
, "%" PRId64
".%01" PRId64
"m", c
/ 10, c
% 10);
906 snprintf(label
, ITEM_LABEL_LENGTH
, "-%" PRId64
".%01" PRId64
"m", -c
/ 10, -c
% 10);
910 /* Format GEO velocity (X or Y axis) with 10m/s resolution */
911 static void fmt_geo_xy_velocity(char *label
, int32_t c
) {
912 snprintf(label
, ITEM_LABEL_LENGTH
, "%d m/s", c
* 10);
915 /* Format GEO velocity (X or Y axis) with 0.000625m/s resolution */
916 static void fmt_geo_xy_velocity2(char *label
, int32_t c
) {
919 snprintf(label
, ITEM_LABEL_LENGTH
, "%d.%06d m/s", c
/ 1000000, c
% 1000000);
922 snprintf(label
, ITEM_LABEL_LENGTH
, "-%d.%06d m/s", -c
/ 1000000, -c
% 1000000);
926 /* Format GEO velocity (Z axis) with 60m/s resolution */
927 static void fmt_geo_z_velocity(char *label
, int32_t c
) {
928 snprintf(label
, ITEM_LABEL_LENGTH
, "%d m/s", c
* 60);
931 /* Format GEO velocity (Z axis) with 0.004m/s resolution */
932 static void fmt_geo_z_velocity2(char *label
, int32_t c
) {
935 snprintf(label
, ITEM_LABEL_LENGTH
, "%d.%03d m/s", c
/ 1000, c
% 1000);
938 snprintf(label
, ITEM_LABEL_LENGTH
, "-%d.%03d m/s", -c
/ 1000, -c
% 1000);
942 /* Format GEO acceleration (X or Y axis) with 0.0000125m/s^2 resolution */
943 static void fmt_geo_xy_acceleration(char *label
, int32_t c
) {
946 snprintf(label
, ITEM_LABEL_LENGTH
, "%d.%07d m/s", c
/ 10000000, c
% 10000000);
949 snprintf(label
, ITEM_LABEL_LENGTH
, "-%d.%07d m/s", -c
/ 10000000, -c
% 10000000);
953 /* Format GEO acceleration (Z axis) with 0.0000625m/s^2 resolution */
954 static void fmt_geo_z_acceleration(char *label
, int32_t c
) {
957 snprintf(label
, ITEM_LABEL_LENGTH
, "%d.%07d m/s", c
/ 10000000, c
% 10000000);
960 snprintf(label
, ITEM_LABEL_LENGTH
, "-%d.%07d m/s", -c
/ 10000000, -c
% 10000000);
964 /* Format time of almanac with 64s resolution */
965 static void fmt_time_of_almanac(char *label
, uint32_t c
) {
967 snprintf(label
, ITEM_LABEL_LENGTH
, "%us (%02u:%02u:%02u)", c
, c
/ 3600, (c
/ 60) % 60, c
% 60);
970 /* Format clock corrections */
971 static void fmt_clock_correction(char *label
, int32_t c
) {
972 snprintf(label
, ITEM_LABEL_LENGTH
, "%d * 2^-31 s", c
);
975 /* Format corrections with 0.125m resolution */
976 static void fmt_correction_125m(char *label
, int32_t c
) {
979 snprintf(label
, ITEM_LABEL_LENGTH
, "%d.%03dm", c
/ 1000, c
% 1000);
982 snprintf(label
, ITEM_LABEL_LENGTH
, "-%d.%03dm", -c
/ 1000, -c
% 1000);
986 /* Format velocity corrections with 2^-11 m/s resolution */
987 static void fmt_velo_correction(char *label
, int32_t c
) {
988 int64_t temp
= c
* INT64_C(48828125);
990 snprintf(label
, ITEM_LABEL_LENGTH
, " %" PRId64
".%011" PRId64
"m/s", temp
/ 100000000000, temp
% 100000000000);
993 snprintf(label
, ITEM_LABEL_LENGTH
, "-%" PRId64
".%011" PRId64
"m/s", -temp
/ 100000000000, -temp
% 100000000000);
997 /* Format clock rate corrections with 2^-39 s/s resolution */
998 static void fmt_clk_rate_correction(char *label
, int32_t c
) {
999 snprintf(label
, ITEM_LABEL_LENGTH
, "%d * 2^-39s/s", c
);
1002 /* Format clock rate corrections with 2^-40 s/s resolution */
1003 static void fmt_clk_rate_correction2(char *label
, int32_t c
) {
1004 snprintf(label
, ITEM_LABEL_LENGTH
, "%d * 2^-40s/s", c
);
1007 /* Format time of applicability with 16s resolution */
1008 static void fmt_time_of_applicability(char *label
, uint32_t c
) {
1010 snprintf(label
, ITEM_LABEL_LENGTH
, "%us (%02u:%02u:%02u)", c
, c
/ 3600, (c
/ 60) % 60, c
% 60);
1013 /* Format MT27 service message number data */
1014 static void fmt_num_svc_msg(char *label
, uint32_t c
) {
1016 snprintf(label
, ITEM_LABEL_LENGTH
, "%u", c
);
1019 /* Dissect SBAS L1 message */
1020 static int dissect_sbas_l1(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1022 uint32_t preamble
, mt
, cmp_crc
;
1024 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1");
1025 col_clear(pinfo
->cinfo
, COL_INFO
);
1027 proto_item
*ti
= proto_tree_add_item(tree
, proto_sbas_l1
, tvb
, 0, 32, ENC_NA
);
1028 proto_tree
*sbas_l1_tree
= proto_item_add_subtree(ti
, ett_sbas_l1
);
1031 proto_item
* pi_preamble
= proto_tree_add_item_ret_uint(
1032 sbas_l1_tree
, hf_sbas_l1_preamble
,
1033 tvb
, 0, 1, ENC_BIG_ENDIAN
,
1035 if (preamble
!= SBAS_L1_PREAMBLE_1
&&
1036 preamble
!= SBAS_L1_PREAMBLE_2
&&
1037 preamble
!= SBAS_L1_PREAMBLE_3
) {
1038 expert_add_info_format(pinfo
, pi_preamble
, &ei_sbas_l1_preamble
,
1039 "Erroneous preamble");
1043 proto_item
* pi_mt
= proto_tree_add_item_ret_uint(
1044 sbas_l1_tree
, hf_sbas_l1_mt
,
1045 tvb
, 1, 1, ENC_BIG_ENDIAN
,
1047 if (mt
== 0) { // flag "Do Not Use" MT0 messages
1048 expert_add_info(pinfo
, pi_mt
, &ei_sbas_l1_mt0
);
1052 cmp_crc
= sbas_crc24q((uint8_t *)tvb_memdup(pinfo
->pool
, tvb
, 0, 29));
1053 proto_tree_add_checksum(sbas_l1_tree
, tvb
, 28, hf_sbas_l1_chksum
, -1,
1054 &ei_sbas_l1_crc
, NULL
, cmp_crc
, ENC_BIG_ENDIAN
, PROTO_CHECKSUM_VERIFY
);
1056 // try to dissect MT data
1057 next_tvb
= tvb_new_subset_length(tvb
, 1, 28);
1058 if (!dissector_try_uint(sbas_l1_mt_dissector_table
, mt
, next_tvb
, pinfo
, tree
)) {
1059 call_data_dissector(next_tvb
, pinfo
, tree
);
1062 return tvb_captured_length(tvb
);
1065 /* Dissect SBAS L1 MT 0 */
1066 static int dissect_sbas_l1_mt0(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1067 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT0");
1068 col_clear(pinfo
->cinfo
, COL_INFO
);
1070 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt0
, tvb
, 0, 32, ENC_NA
);
1071 proto_tree
*sbas_l1_mt0_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt0
);
1073 proto_tree_add_item(sbas_l1_mt0_tree
, hf_sbas_l1_mt0_spare_1
, tvb
, 0, 1, ENC_NA
);
1074 proto_tree_add_item(sbas_l1_mt0_tree
, hf_sbas_l1_mt0_spare_2
, tvb
, 1, 26, ENC_NA
);
1075 proto_tree_add_item(sbas_l1_mt0_tree
, hf_sbas_l1_mt0_spare_3
, tvb
, 27, 1, ENC_NA
);
1077 return tvb_captured_length(tvb
);
1080 /* Dissect SBAS L1 MT 1 */
1081 static int dissect_sbas_l1_mt1(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1082 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT1");
1083 col_clear(pinfo
->cinfo
, COL_INFO
);
1085 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt1
, tvb
, 0, 32, ENC_NA
);
1086 proto_tree
*sbas_l1_mt1_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt1
);
1088 proto_tree_add_item(sbas_l1_mt1_tree
, hf_sbas_l1_mt1_prn_mask_gps
, tvb
, 0, 8, ENC_BIG_ENDIAN
);
1089 proto_tree_add_item(sbas_l1_mt1_tree
, hf_sbas_l1_mt1_prn_mask_glonass
, tvb
, 5, 8, ENC_BIG_ENDIAN
);
1090 proto_tree_add_item(sbas_l1_mt1_tree
, hf_sbas_l1_mt1_prn_mask_spare_1
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1091 proto_tree_add_item(sbas_l1_mt1_tree
, hf_sbas_l1_mt1_prn_mask_sbas
, tvb
, 15, 8, ENC_BIG_ENDIAN
);
1092 proto_tree_add_item(sbas_l1_mt1_tree
, hf_sbas_l1_mt1_prn_mask_spare_2
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1093 proto_tree_add_item(sbas_l1_mt1_tree
, hf_sbas_l1_mt1_iodp
, tvb
, 27, 1, ENC_NA
);
1095 return tvb_captured_length(tvb
);
1098 /* Dissect SBAS L1 MT 2 */
1099 static int dissect_sbas_l1_mt2(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1100 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT2");
1101 col_clear(pinfo
->cinfo
, COL_INFO
);
1103 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt2
, tvb
, 0, 32, ENC_NA
);
1104 proto_tree
*sbas_l1_mt2_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt2
);
1106 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_iodf_2
, tvb
, 0, 1, ENC_NA
);
1107 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_iodp
, tvb
, 1, 1, ENC_NA
);
1108 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_1
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1109 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_2
, tvb
, 2, 4, ENC_BIG_ENDIAN
);
1110 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_3
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1111 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_4
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
1112 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_5
, tvb
, 7, 4, ENC_BIG_ENDIAN
);
1113 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_6
, tvb
, 8, 4, ENC_BIG_ENDIAN
);
1114 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_7
, tvb
, 10, 4, ENC_BIG_ENDIAN
);
1115 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_8
, tvb
, 11, 4, ENC_BIG_ENDIAN
);
1116 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_9
, tvb
, 13, 4, ENC_BIG_ENDIAN
);
1117 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_10
, tvb
, 14, 4, ENC_BIG_ENDIAN
);
1118 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_11
, tvb
, 16, 4, ENC_BIG_ENDIAN
);
1119 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_12
, tvb
, 17, 4, ENC_BIG_ENDIAN
);
1120 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_fc_13
, tvb
, 19, 4, ENC_BIG_ENDIAN
);
1121 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_1
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1122 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_2
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1123 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_3
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1124 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_4
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1125 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_5
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1126 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_6
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1127 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_7
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1128 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_8
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1129 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_9
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1130 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_10
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1131 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_11
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1132 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_12
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1133 proto_tree_add_item(sbas_l1_mt2_tree
, hf_sbas_l1_mt2_udrei_13
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1135 return tvb_captured_length(tvb
);
1138 /* Dissect SBAS L1 MT 3 */
1139 static int dissect_sbas_l1_mt3(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1140 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT3");
1141 col_clear(pinfo
->cinfo
, COL_INFO
);
1143 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt3
, tvb
, 0, 32, ENC_NA
);
1144 proto_tree
*sbas_l1_mt3_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt3
);
1146 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_iodf_3
, tvb
, 0, 1, ENC_NA
);
1147 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_iodp
, tvb
, 1, 1, ENC_NA
);
1148 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_14
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1149 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_15
, tvb
, 2, 4, ENC_BIG_ENDIAN
);
1150 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_16
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1151 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_17
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
1152 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_18
, tvb
, 7, 4, ENC_BIG_ENDIAN
);
1153 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_19
, tvb
, 8, 4, ENC_BIG_ENDIAN
);
1154 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_20
, tvb
, 10, 4, ENC_BIG_ENDIAN
);
1155 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_21
, tvb
, 11, 4, ENC_BIG_ENDIAN
);
1156 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_22
, tvb
, 13, 4, ENC_BIG_ENDIAN
);
1157 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_23
, tvb
, 14, 4, ENC_BIG_ENDIAN
);
1158 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_24
, tvb
, 16, 4, ENC_BIG_ENDIAN
);
1159 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_25
, tvb
, 17, 4, ENC_BIG_ENDIAN
);
1160 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_fc_26
, tvb
, 19, 4, ENC_BIG_ENDIAN
);
1161 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_14
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1162 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_15
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1163 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_16
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1164 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_17
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1165 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_18
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1166 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_19
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1167 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_20
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1168 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_21
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1169 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_22
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1170 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_23
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1171 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_24
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1172 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_25
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1173 proto_tree_add_item(sbas_l1_mt3_tree
, hf_sbas_l1_mt3_udrei_26
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1175 return tvb_captured_length(tvb
);
1178 /* Dissect SBAS L1 MT 4 */
1179 static int dissect_sbas_l1_mt4(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1180 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT4");
1181 col_clear(pinfo
->cinfo
, COL_INFO
);
1183 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt4
, tvb
, 0, 32, ENC_NA
);
1184 proto_tree
*sbas_l1_mt4_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt4
);
1186 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_iodf_4
, tvb
, 0, 1, ENC_NA
);
1187 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_iodp
, tvb
, 1, 1, ENC_NA
);
1188 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_27
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1189 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_28
, tvb
, 2, 4, ENC_BIG_ENDIAN
);
1190 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_29
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1191 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_30
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
1192 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_31
, tvb
, 7, 4, ENC_BIG_ENDIAN
);
1193 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_32
, tvb
, 8, 4, ENC_BIG_ENDIAN
);
1194 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_33
, tvb
, 10, 4, ENC_BIG_ENDIAN
);
1195 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_34
, tvb
, 11, 4, ENC_BIG_ENDIAN
);
1196 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_35
, tvb
, 13, 4, ENC_BIG_ENDIAN
);
1197 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_36
, tvb
, 14, 4, ENC_BIG_ENDIAN
);
1198 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_37
, tvb
, 16, 4, ENC_BIG_ENDIAN
);
1199 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_38
, tvb
, 17, 4, ENC_BIG_ENDIAN
);
1200 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_fc_39
, tvb
, 19, 4, ENC_BIG_ENDIAN
);
1201 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_27
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1202 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_28
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1203 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_29
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1204 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_30
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1205 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_31
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1206 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_32
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1207 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_33
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1208 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_34
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1209 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_35
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1210 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_36
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1211 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_37
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1212 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_38
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1213 proto_tree_add_item(sbas_l1_mt4_tree
, hf_sbas_l1_mt4_udrei_39
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1215 return tvb_captured_length(tvb
);
1218 /* Dissect SBAS L1 MT 5 */
1219 static int dissect_sbas_l1_mt5(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1220 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT5");
1221 col_clear(pinfo
->cinfo
, COL_INFO
);
1223 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt5
, tvb
, 0, 32, ENC_NA
);
1224 proto_tree
*sbas_l1_mt5_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt5
);
1226 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_iodf_5
, tvb
, 0, 1, ENC_NA
);
1227 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_iodp
, tvb
, 1, 1, ENC_NA
);
1228 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_40
, tvb
, 1, 4, ENC_BIG_ENDIAN
);
1229 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_41
, tvb
, 2, 4, ENC_BIG_ENDIAN
);
1230 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_42
, tvb
, 4, 4, ENC_BIG_ENDIAN
);
1231 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_43
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
1232 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_44
, tvb
, 7, 4, ENC_BIG_ENDIAN
);
1233 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_45
, tvb
, 8, 4, ENC_BIG_ENDIAN
);
1234 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_46
, tvb
, 10, 4, ENC_BIG_ENDIAN
);
1235 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_47
, tvb
, 11, 4, ENC_BIG_ENDIAN
);
1236 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_48
, tvb
, 13, 4, ENC_BIG_ENDIAN
);
1237 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_49
, tvb
, 14, 4, ENC_BIG_ENDIAN
);
1238 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_50
, tvb
, 16, 4, ENC_BIG_ENDIAN
);
1239 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_51
, tvb
, 17, 4, ENC_BIG_ENDIAN
);
1240 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_fc_52
, tvb
, 19, 4, ENC_BIG_ENDIAN
);
1241 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_40
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1242 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_41
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1243 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_42
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1244 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_43
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1245 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_44
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1246 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_45
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1247 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_46
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1248 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_47
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1249 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_48
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1250 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_49
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1251 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_50
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1252 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_51
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1253 proto_tree_add_item(sbas_l1_mt5_tree
, hf_sbas_l1_mt5_udrei_52
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1255 return tvb_captured_length(tvb
);
1258 /* Dissect SBAS L1 MT 6 */
1259 static int dissect_sbas_l1_mt6(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1260 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT6");
1261 col_clear(pinfo
->cinfo
, COL_INFO
);
1263 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt6
, tvb
, 0, 32, ENC_NA
);
1264 proto_tree
*sbas_l1_mt6_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt6
);
1267 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_iodf_2
, tvb
, 0, 1, ENC_NA
);
1268 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_iodf_3
, tvb
, 1, 1, ENC_NA
);
1269 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_iodf_4
, tvb
, 1, 1, ENC_NA
);
1270 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_iodf_5
, tvb
, 1, 1, ENC_NA
);
1273 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_1
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1274 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_2
, tvb
, 2, 2, ENC_BIG_ENDIAN
);
1275 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_3
, tvb
, 2, 2, ENC_BIG_ENDIAN
);
1276 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_4
, tvb
, 3, 2, ENC_BIG_ENDIAN
);
1277 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_5
, tvb
, 3, 2, ENC_BIG_ENDIAN
);
1278 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_6
, tvb
, 4, 2, ENC_BIG_ENDIAN
);
1279 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_7
, tvb
, 4, 2, ENC_BIG_ENDIAN
);
1280 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_8
, tvb
, 5, 2, ENC_BIG_ENDIAN
);
1281 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_9
, tvb
, 5, 2, ENC_BIG_ENDIAN
);
1282 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_10
, tvb
, 6, 2, ENC_BIG_ENDIAN
);
1283 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_11
, tvb
, 6, 2, ENC_BIG_ENDIAN
);
1284 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_12
, tvb
, 7, 2, ENC_BIG_ENDIAN
);
1285 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_13
, tvb
, 7, 2, ENC_BIG_ENDIAN
);
1286 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_14
, tvb
, 8, 2, ENC_BIG_ENDIAN
);
1287 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_15
, tvb
, 8, 2, ENC_BIG_ENDIAN
);
1288 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_16
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1289 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_17
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1290 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_18
, tvb
, 10, 2, ENC_BIG_ENDIAN
);
1291 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_19
, tvb
, 10, 2, ENC_BIG_ENDIAN
);
1292 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_20
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1293 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_21
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1294 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_22
, tvb
, 12, 2, ENC_BIG_ENDIAN
);
1295 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_23
, tvb
, 12, 2, ENC_BIG_ENDIAN
);
1296 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_24
, tvb
, 13, 2, ENC_BIG_ENDIAN
);
1297 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_25
, tvb
, 13, 2, ENC_BIG_ENDIAN
);
1298 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_26
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1299 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_27
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1300 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_28
, tvb
, 15, 2, ENC_BIG_ENDIAN
);
1301 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_29
, tvb
, 15, 2, ENC_BIG_ENDIAN
);
1302 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_30
, tvb
, 16, 2, ENC_BIG_ENDIAN
);
1303 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_31
, tvb
, 16, 2, ENC_BIG_ENDIAN
);
1304 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_32
, tvb
, 17, 2, ENC_BIG_ENDIAN
);
1305 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_33
, tvb
, 17, 2, ENC_BIG_ENDIAN
);
1306 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_34
, tvb
, 18, 2, ENC_BIG_ENDIAN
);
1307 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_35
, tvb
, 18, 2, ENC_BIG_ENDIAN
);
1308 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_36
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1309 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_37
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1310 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_38
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1311 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_39
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1312 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_40
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1313 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_41
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1314 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_42
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1315 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_43
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1316 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_44
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1317 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_45
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1318 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_46
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1319 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_47
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1320 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_48
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1321 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_49
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1322 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_50
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1323 proto_tree_add_item(sbas_l1_mt6_tree
, hf_sbas_l1_mt6_udrei_51
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1325 return tvb_captured_length(tvb
);
1328 /* Dissect SBAS L1 MT 7 */
1329 static int dissect_sbas_l1_mt7(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1330 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT7");
1331 col_clear(pinfo
->cinfo
, COL_INFO
);
1333 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt7
, tvb
, 0, 32, ENC_NA
);
1334 proto_tree
*sbas_l1_mt7_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt7
);
1336 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_t_lat
, tvb
, 0, 2, ENC_BIG_ENDIAN
);
1337 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_iodp
, tvb
, 1, 1, ENC_NA
);
1338 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_spare
, tvb
, 1, 1, ENC_NA
);
1340 // Degradation factor indicator ai_i
1341 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_1
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1342 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_2
, tvb
, 2, 2, ENC_BIG_ENDIAN
);
1343 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_3
, tvb
, 2, 2, ENC_BIG_ENDIAN
);
1344 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_4
, tvb
, 3, 2, ENC_BIG_ENDIAN
);
1345 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_5
, tvb
, 3, 2, ENC_BIG_ENDIAN
);
1346 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_6
, tvb
, 4, 2, ENC_BIG_ENDIAN
);
1347 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_7
, tvb
, 4, 2, ENC_BIG_ENDIAN
);
1348 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_8
, tvb
, 5, 2, ENC_BIG_ENDIAN
);
1349 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_9
, tvb
, 5, 2, ENC_BIG_ENDIAN
);
1350 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_10
, tvb
, 6, 2, ENC_BIG_ENDIAN
);
1351 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_11
, tvb
, 6, 2, ENC_BIG_ENDIAN
);
1352 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_12
, tvb
, 7, 2, ENC_BIG_ENDIAN
);
1353 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_13
, tvb
, 7, 2, ENC_BIG_ENDIAN
);
1354 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_14
, tvb
, 8, 2, ENC_BIG_ENDIAN
);
1355 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_15
, tvb
, 8, 2, ENC_BIG_ENDIAN
);
1356 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_16
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1357 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_17
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1358 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_18
, tvb
, 10, 2, ENC_BIG_ENDIAN
);
1359 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_19
, tvb
, 10, 2, ENC_BIG_ENDIAN
);
1360 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_20
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1361 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_21
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1362 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_22
, tvb
, 12, 2, ENC_BIG_ENDIAN
);
1363 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_23
, tvb
, 12, 2, ENC_BIG_ENDIAN
);
1364 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_24
, tvb
, 13, 2, ENC_BIG_ENDIAN
);
1365 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_25
, tvb
, 13, 2, ENC_BIG_ENDIAN
);
1366 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_26
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1367 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_27
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1368 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_28
, tvb
, 15, 2, ENC_BIG_ENDIAN
);
1369 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_29
, tvb
, 15, 2, ENC_BIG_ENDIAN
);
1370 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_30
, tvb
, 16, 2, ENC_BIG_ENDIAN
);
1371 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_31
, tvb
, 16, 2, ENC_BIG_ENDIAN
);
1372 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_32
, tvb
, 17, 2, ENC_BIG_ENDIAN
);
1373 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_33
, tvb
, 17, 2, ENC_BIG_ENDIAN
);
1374 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_34
, tvb
, 18, 2, ENC_BIG_ENDIAN
);
1375 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_35
, tvb
, 18, 2, ENC_BIG_ENDIAN
);
1376 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_36
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1377 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_37
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1378 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_38
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1379 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_39
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1380 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_40
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1381 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_41
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1382 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_42
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1383 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_43
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1384 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_44
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1385 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_45
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1386 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_46
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1387 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_47
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1388 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_48
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1389 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_49
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1390 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_50
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1391 proto_tree_add_item(sbas_l1_mt7_tree
, hf_sbas_l1_mt7_ai_51
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1393 return tvb_captured_length(tvb
);
1396 /* Dissect SBAS L1 MT 9 */
1397 static int dissect_sbas_l1_mt9(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1398 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT9");
1399 col_clear(pinfo
->cinfo
, COL_INFO
);
1401 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt9
, tvb
, 0, 32, ENC_NA
);
1402 proto_tree
*sbas_l1_mt9_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt9
);
1404 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_reserved
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1405 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_t_0_geo
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1406 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_ura
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1407 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_x_g
, tvb
, 3, 8, ENC_BIG_ENDIAN
);
1408 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_y_g
, tvb
, 7, 8, ENC_BIG_ENDIAN
);
1409 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_z_g
, tvb
, 11, 8, ENC_BIG_ENDIAN
);
1410 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_x_g_vel
, tvb
, 14, 4, ENC_BIG_ENDIAN
);
1411 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_y_g_vel
, tvb
, 16, 4, ENC_BIG_ENDIAN
);
1412 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_z_g_vel
, tvb
, 18, 4, ENC_BIG_ENDIAN
);
1413 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_x_g_acc
, tvb
, 21, 4, ENC_BIG_ENDIAN
);
1414 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_y_g_acc
, tvb
, 21, 4, ENC_BIG_ENDIAN
);
1415 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_z_g_acc
, tvb
, 21, 4, ENC_BIG_ENDIAN
);
1416 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_a_gf0
, tvb
, 24, 4, ENC_BIG_ENDIAN
);
1417 proto_tree_add_item(sbas_l1_mt9_tree
, hf_sbas_l1_mt9_a_gf1
, tvb
, 24, 4, ENC_BIG_ENDIAN
);
1419 return tvb_captured_length(tvb
);
1422 /* Dissect SBAS L1 MT 17 */
1423 static int dissect_sbas_l1_mt17(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1427 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT17");
1428 col_clear(pinfo
->cinfo
, COL_INFO
);
1430 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt17
, tvb
, 0, 32, ENC_NA
);
1431 proto_tree
*sbas_l1_mt17_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt17
);
1433 // dissect data for each of 3 PRNs
1434 for (i
= 0; i
< 3; i
++) {
1435 prn_tvb
= tvb_new_octet_aligned(tvb
, 6 + i
*67, 67);
1437 add_new_data_source(pinfo
, prn_tvb
, "PRN data");
1439 uint16_t prn
= (tvb_get_uint16(prn_tvb
, 0, ENC_BIG_ENDIAN
) >> 6) & 0xff;
1441 proto_tree
*prn_tree
= proto_tree_add_subtree_format(sbas_l1_mt17_tree
, tvb
, (6 + i
* 67) / 8, (i
== 0) ? 10 : 9, ett_sbas_l1_mt17_prn_data
[i
], NULL
, "PRN %u", prn
);
1443 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_reserved
, prn_tvb
, 0, 1, ENC_NA
);
1444 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_prn
, prn_tvb
, 0, 2, ENC_BIG_ENDIAN
);
1446 proto_tree_add_bitmask(prn_tree
, prn_tvb
, 1, hf_sbas_l1_mt17_health_and_status
, ett_sbas_l1_mt17_health_and_status
, sbas_l1_mt17_health_and_status_fields
, ENC_NA
);
1448 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_x_ga
, prn_tvb
, 2, 4, ENC_BIG_ENDIAN
);
1449 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_y_ga
, prn_tvb
, 4, 4, ENC_BIG_ENDIAN
);
1450 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_z_ga
, prn_tvb
, 4, 4, ENC_BIG_ENDIAN
);
1451 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_x_ga_vel
, prn_tvb
, 4, 4, ENC_BIG_ENDIAN
);
1452 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_y_ga_vel
, prn_tvb
, 4, 4, ENC_BIG_ENDIAN
);
1453 proto_tree_add_item(prn_tree
, hf_sbas_l1_mt17_z_ga_vel
, prn_tvb
, 5, 4, ENC_BIG_ENDIAN
);
1457 proto_tree_add_item(sbas_l1_mt17_tree
, hf_sbas_l1_mt17_t_a
, tvb
, 24, 4, ENC_BIG_ENDIAN
);
1459 return tvb_captured_length(tvb
);
1462 /* Dissect SBAS L1 MT 18 */
1463 static int dissect_sbas_l1_mt18(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1466 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT18");
1467 col_clear(pinfo
->cinfo
, COL_INFO
);
1469 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt18
, tvb
, 0, 32, ENC_NA
);
1470 proto_tree
*sbas_l1_mt18_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt18
);
1472 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_nr_igp_bands
, tvb
, 0, 2, ENC_BIG_ENDIAN
);
1473 proto_tree_add_item_ret_uint(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_band_id
, tvb
, 0, 2, ENC_BIG_ENDIAN
, &band_id
);
1474 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_iodi_k
, tvb
, 0, 2, ENC_BIG_ENDIAN
);
1477 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_180w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1478 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_175w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1479 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_170w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1480 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_165w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1481 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_160w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1482 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_155w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1483 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_150w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1484 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_145w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1486 else if (band_id
== 1) {
1487 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_140w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1488 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_135w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1489 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_130w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1490 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_125w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1491 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_120w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1492 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_115w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1493 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_110w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1494 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_105w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1496 else if (band_id
== 2) {
1497 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_100w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1498 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_95w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1499 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_90w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1500 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_85w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1501 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_80w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1502 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_75w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1503 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_70w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1504 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_65w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1506 else if (band_id
== 3) {
1507 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_60w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1508 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_55w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1509 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_50w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1510 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_45w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1511 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_40w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1512 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_35w
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1513 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_30w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1514 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_25w
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1516 else if (band_id
== 4) {
1517 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_20w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1518 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_15w
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1519 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_10w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1520 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_5w
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1521 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_0
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1522 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_5e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1523 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_10e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1524 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_15e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1526 else if (band_id
== 5) {
1527 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_20e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1528 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_25e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1529 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_30e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1530 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_35e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1531 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_40e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1532 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_45e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1533 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_50e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1534 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_55e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1536 else if (band_id
== 6) {
1537 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_60e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1538 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_65e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1539 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_70e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1540 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_75e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1541 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_80e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1542 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_85e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1543 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_90e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1544 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_95e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1546 else if (band_id
== 7) {
1547 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_100e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1548 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_105e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1549 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_110e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1550 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_115e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1551 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_120e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1552 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_125e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1553 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_130e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1554 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_135e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1556 else if (band_id
== 8) {
1557 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_140e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1558 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_145e
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1559 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_150e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1560 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_155e
, tvb
, 8, 8, ENC_BIG_ENDIAN
);
1561 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_160e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1562 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_165e
, tvb
, 14, 8, ENC_BIG_ENDIAN
);
1563 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_170e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1564 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_175e
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1566 else if (band_id
== 9) {
1567 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_60n_1
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1568 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_60n_2
, tvb
, 3, 8, ENC_BIG_ENDIAN
);
1569 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_65n
, tvb
, 11, 8, ENC_BIG_ENDIAN
);
1570 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_70n
, tvb
, 12, 8, ENC_BIG_ENDIAN
);
1571 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_75n
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1572 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_85n
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1574 else if (band_id
== 10) {
1575 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_60s_1
, tvb
, 2, 8, ENC_BIG_ENDIAN
);
1576 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_60s_2
, tvb
, 3, 8, ENC_BIG_ENDIAN
);
1577 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_65s
, tvb
, 11, 8, ENC_BIG_ENDIAN
);
1578 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_70s
, tvb
, 12, 8, ENC_BIG_ENDIAN
);
1579 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_75s
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1580 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_igp_mask_85s
, tvb
, 20, 8, ENC_BIG_ENDIAN
);
1583 proto_tree_add_item(sbas_l1_mt18_tree
, hf_sbas_l1_mt18_spare
, tvb
, 27, 1, ENC_NA
);
1585 return tvb_captured_length(tvb
);
1588 /* Dissect SBAS L1 MT 24 */
1589 static int dissect_sbas_l1_mt24(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1590 uint32_t velocity_code
;
1592 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT24");
1593 col_clear(pinfo
->cinfo
, COL_INFO
);
1595 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt24
, tvb
, 0, 32, ENC_NA
);
1596 proto_tree
*sbas_l1_mt24_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt24
);
1598 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_i1
, tvb
, 0, 4, ENC_BIG_ENDIAN
);
1599 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_i2
, tvb
, 2, 4, ENC_BIG_ENDIAN
);
1600 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_i3
, tvb
, 3, 4, ENC_BIG_ENDIAN
);
1601 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_i4
, tvb
, 5, 4, ENC_BIG_ENDIAN
);
1602 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_i5
, tvb
, 6, 4, ENC_BIG_ENDIAN
);
1603 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_i6
, tvb
, 8, 4, ENC_BIG_ENDIAN
);
1604 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_udrei_i1
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1605 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_udrei_i2
, tvb
, 10, 2, ENC_BIG_ENDIAN
);
1606 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_udrei_i3
, tvb
, 10, 2, ENC_BIG_ENDIAN
);
1607 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_udrei_i4
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1608 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_udrei_i5
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1609 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_udrei_i6
, tvb
, 12, 2, ENC_BIG_ENDIAN
);
1610 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_iodp
, tvb
, 12, 1, ENC_NA
);
1611 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_fc_type
, tvb
, 13, 1, ENC_NA
);
1612 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_iodf_j
, tvb
, 13, 1, ENC_NA
);
1613 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_spare
, tvb
, 13, 1, ENC_NA
);
1615 proto_tree_add_item_ret_uint(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_velocity_code
, tvb
, 14, 1, ENC_NA
, &velocity_code
);
1617 if (velocity_code
== 0) {
1618 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_prn_mask_nr_1
, tvb
, 14, 1, ENC_NA
);
1619 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_iod_1
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1620 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_x_1
, tvb
, 15, 2, ENC_BIG_ENDIAN
);
1621 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_y_1
, tvb
, 17, 2, ENC_BIG_ENDIAN
);
1622 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_z_1
, tvb
, 18, 2, ENC_BIG_ENDIAN
);
1623 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_a_1_f0
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1625 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_prn_mask_nr_2
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1626 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_iod_2
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1627 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_x_2
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1628 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_y_2
, tvb
, 23, 2, ENC_BIG_ENDIAN
);
1629 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_z_2
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1630 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_delta_a_2_f0
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1631 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_iodp
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1632 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v0_spare
, tvb
, 27, 1, ENC_NA
);
1635 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_prn_mask_nr
, tvb
, 14, 1, ENC_NA
);
1636 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_iod
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1637 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_x
, tvb
, 15, 4, ENC_BIG_ENDIAN
);
1638 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_y
, tvb
, 17, 4, ENC_BIG_ENDIAN
);
1639 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_z
, tvb
, 18, 4, ENC_BIG_ENDIAN
);
1640 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_a_f0
, tvb
, 20, 4, ENC_BIG_ENDIAN
);
1641 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_x_vel
, tvb
, 21, 4, ENC_BIG_ENDIAN
);
1642 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_y_vel
, tvb
, 22, 4, ENC_BIG_ENDIAN
);
1643 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_z_vel
, tvb
, 23, 4, ENC_BIG_ENDIAN
);
1644 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_delta_a_f1
, tvb
, 24, 4, ENC_BIG_ENDIAN
);
1645 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_t_lt
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1646 proto_tree_add_item(sbas_l1_mt24_tree
, hf_sbas_l1_mt24_v1_iodp
, tvb
, 27, 1, ENC_NA
);
1649 return tvb_captured_length(tvb
);
1652 /* Dissect SBAS L1 MT 25 */
1653 static int dissect_sbas_l1_mt25(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1654 uint32_t velocity_code
;
1656 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT25");
1657 col_clear(pinfo
->cinfo
, COL_INFO
);
1659 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt25
, tvb
, 0, 32, ENC_NA
);
1660 proto_tree
*sbas_l1_mt25_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt25
);
1662 // first half message
1663 proto_tree_add_item_ret_uint(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_velocity_code
,
1664 tvb
, 0, 1, ENC_NA
, &velocity_code
);
1665 if (velocity_code
== 0) {
1666 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_prn_mask_nr_1
,
1667 tvb
, 0, 2, ENC_BIG_ENDIAN
);
1668 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_iod_1
,
1669 tvb
, 1, 2, ENC_BIG_ENDIAN
);
1670 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_x_1
,
1671 tvb
, 2, 2, ENC_BIG_ENDIAN
);
1672 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_y_1
,
1673 tvb
, 3, 2, ENC_BIG_ENDIAN
);
1674 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_z_1
,
1675 tvb
, 4, 2, ENC_BIG_ENDIAN
);
1676 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_a_1_f0
,
1677 tvb
, 6, 2, ENC_BIG_ENDIAN
);
1679 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_prn_mask_nr_2
,
1681 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_iod_2
,
1683 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_x_2
,
1684 tvb
, 9, 2, ENC_BIG_ENDIAN
);
1685 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_y_2
,
1686 tvb
, 10, 2, ENC_BIG_ENDIAN
);
1687 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_z_2
,
1688 tvb
, 11, 2, ENC_BIG_ENDIAN
);
1689 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_delta_a_2_f0
,
1690 tvb
, 12, 2, ENC_BIG_ENDIAN
);
1691 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_iodp
,
1692 tvb
, 13, 1, ENC_NA
);
1693 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v0_spare
,
1694 tvb
, 13, 1, ENC_NA
);
1696 else { // velocity_code == 1
1697 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_prn_mask_nr
,
1698 tvb
, 0, 2, ENC_BIG_ENDIAN
);
1699 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_iod
,
1700 tvb
, 1, 2, ENC_BIG_ENDIAN
);
1701 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_x
,
1702 tvb
, 2, 4, ENC_BIG_ENDIAN
);
1703 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_y
,
1704 tvb
, 4, 4, ENC_BIG_ENDIAN
);
1705 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_z
,
1706 tvb
, 5, 4, ENC_BIG_ENDIAN
);
1707 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_a_f0
,
1708 tvb
, 6, 4, ENC_BIG_ENDIAN
);
1709 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_x_vel
,
1710 tvb
, 8, 4, ENC_BIG_ENDIAN
);
1711 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_y_vel
,
1712 tvb
, 9, 4, ENC_BIG_ENDIAN
);
1713 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_z_vel
,
1714 tvb
, 10, 4, ENC_BIG_ENDIAN
);
1715 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_delta_a_f1
,
1716 tvb
, 11, 4, ENC_BIG_ENDIAN
);
1717 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_t_lt
,
1718 tvb
, 12, 2, ENC_BIG_ENDIAN
);
1719 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h1_v1_iodp
,
1720 tvb
, 13, 1, ENC_NA
);
1723 // second half message
1724 proto_tree_add_item_ret_uint(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_velocity_code
,
1725 tvb
, 14, 1, ENC_NA
, &velocity_code
);
1726 if (velocity_code
== 0) {
1727 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_prn_mask_nr_1
,
1728 tvb
, 14, 1, ENC_NA
);
1729 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_iod_1
,
1730 tvb
, 14, 2, ENC_BIG_ENDIAN
);
1731 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_x_1
,
1732 tvb
, 15, 2, ENC_BIG_ENDIAN
);
1733 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_y_1
,
1734 tvb
, 17, 2, ENC_BIG_ENDIAN
);
1735 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_z_1
,
1736 tvb
, 18, 2, ENC_BIG_ENDIAN
);
1737 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_a_1_f0
,
1738 tvb
, 19, 2, ENC_BIG_ENDIAN
);
1740 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_prn_mask_nr_2
,
1741 tvb
, 20, 2, ENC_BIG_ENDIAN
);
1742 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_iod_2
,
1743 tvb
, 21, 2, ENC_BIG_ENDIAN
);
1744 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_x_2
,
1745 tvb
, 22, 2, ENC_BIG_ENDIAN
);
1746 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_y_2
,
1747 tvb
, 23, 2, ENC_BIG_ENDIAN
);
1748 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_z_2
,
1749 tvb
, 24, 2, ENC_BIG_ENDIAN
);
1750 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_delta_a_2_f0
,
1751 tvb
, 25, 2, ENC_BIG_ENDIAN
);
1752 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_iodp
,
1753 tvb
, 26, 2, ENC_BIG_ENDIAN
);
1754 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v0_spare
,
1755 tvb
, 27, 1, ENC_NA
);
1757 else { // velocity_code == 1
1758 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_prn_mask_nr
,
1759 tvb
, 14, 1, ENC_NA
);
1760 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_iod
,
1761 tvb
, 14, 2, ENC_BIG_ENDIAN
);
1762 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_x
,
1763 tvb
, 15, 4, ENC_BIG_ENDIAN
);
1764 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_y
,
1765 tvb
, 17, 4, ENC_BIG_ENDIAN
);
1766 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_z
,
1767 tvb
, 18, 4, ENC_BIG_ENDIAN
);
1768 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_a_f0
,
1769 tvb
, 20, 4, ENC_BIG_ENDIAN
);
1770 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_x_vel
,
1771 tvb
, 21, 4, ENC_BIG_ENDIAN
);
1772 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_y_vel
,
1773 tvb
, 22, 4, ENC_BIG_ENDIAN
);
1774 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_z_vel
,
1775 tvb
, 23, 4, ENC_BIG_ENDIAN
);
1776 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_delta_a_f1
,
1777 tvb
, 24, 4, ENC_BIG_ENDIAN
);
1778 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_t_lt
,
1779 tvb
, 25, 2, ENC_BIG_ENDIAN
);
1780 proto_tree_add_item(sbas_l1_mt25_tree
, hf_sbas_l1_mt25_h2_v1_iodp
,
1781 tvb
, 27, 1, ENC_NA
);
1784 return tvb_captured_length(tvb
);
1787 /* Dissect SBAS L1 MT 26 */
1788 static int dissect_sbas_l1_mt26(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1789 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT26");
1790 col_clear(pinfo
->cinfo
, COL_INFO
);
1792 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt26
, tvb
, 0, 32, ENC_NA
);
1793 proto_tree
*sbas_l1_mt26_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt26
);
1795 uint32_t igp_band_id
;
1796 proto_item
* pi_igp_band_id
= proto_tree_add_item_ret_uint(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_band_id
,
1797 tvb
, 0, 2, ENC_BIG_ENDIAN
, &igp_band_id
);
1798 if (igp_band_id
> 10) {
1799 expert_add_info_format(pinfo
, pi_igp_band_id
, &ei_sbas_l1_mt26_igp_band_id
, "Invalid IGP Band Identifier");
1802 uint32_t igp_block_id
;
1803 proto_item
* pi_igp_block_id
= proto_tree_add_item_ret_uint(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_block_id
,
1804 tvb
, 1, 1, ENC_NA
, &igp_block_id
);
1805 if (igp_block_id
> 13) {
1806 expert_add_info_format(pinfo
, pi_igp_block_id
, &ei_sbas_l1_mt26_igp_block_id
, "Invalid IGP Block Identifier");
1809 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_1
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1810 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_1
, tvb
, 2, 2, ENC_BIG_ENDIAN
);
1811 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_2
, tvb
, 3, 2, ENC_BIG_ENDIAN
);
1812 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_2
, tvb
, 4, 2, ENC_BIG_ENDIAN
);
1813 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_3
, tvb
, 5, 2, ENC_BIG_ENDIAN
);
1814 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_3
, tvb
, 6, 2, ENC_BIG_ENDIAN
);
1815 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_4
, tvb
, 6, 2, ENC_BIG_ENDIAN
);
1816 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_4
, tvb
, 7, 2, ENC_BIG_ENDIAN
);
1817 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_5
, tvb
, 8, 2, ENC_BIG_ENDIAN
);
1818 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_5
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1819 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_6
, tvb
, 9, 2, ENC_BIG_ENDIAN
);
1820 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_6
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1821 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_7
, tvb
, 11, 2, ENC_BIG_ENDIAN
);
1822 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_7
, tvb
, 12, 2, ENC_BIG_ENDIAN
);
1823 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_8
, tvb
, 13, 2, ENC_BIG_ENDIAN
);
1824 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_8
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1825 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_9
, tvb
, 14, 2, ENC_BIG_ENDIAN
);
1826 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_9
, tvb
, 15, 2, ENC_BIG_ENDIAN
);
1827 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_10
, tvb
, 16, 2, ENC_BIG_ENDIAN
);
1828 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_10
, tvb
, 17, 2, ENC_BIG_ENDIAN
);
1829 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_11
, tvb
, 18, 2, ENC_BIG_ENDIAN
);
1830 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_11
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1831 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_12
, tvb
, 19, 2, ENC_BIG_ENDIAN
);
1832 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_12
, tvb
, 20, 2, ENC_BIG_ENDIAN
);
1833 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_13
, tvb
, 21, 2, ENC_BIG_ENDIAN
);
1834 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_13
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1835 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_14
, tvb
, 22, 2, ENC_BIG_ENDIAN
);
1836 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_14
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1837 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_igp_vertical_delay_est_15
, tvb
, 24, 2, ENC_BIG_ENDIAN
);
1838 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_givei_15
, tvb
, 25, 2, ENC_BIG_ENDIAN
);
1839 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_iodi_k
, tvb
, 26, 1, ENC_NA
);
1840 proto_tree_add_item(sbas_l1_mt26_tree
, hf_sbas_l1_mt26_spare
, tvb
, 26, 2, ENC_BIG_ENDIAN
);
1842 return tvb_captured_length(tvb
);
1845 /* Dissect SBAS L1 MT 27 */
1846 static int dissect_sbas_l1_mt27(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1847 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT27");
1848 col_clear(pinfo
->cinfo
, COL_INFO
);
1850 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt27
, tvb
, 0, 32, ENC_NA
);
1851 proto_tree
*sbas_l1_mt27_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt27
);
1853 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_iods
, tvb
, 0, 2, ENC_BIG_ENDIAN
);
1854 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_num_svc_msgs
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1855 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_svc_msg_num
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1856 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_num_regions
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1857 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_prio_code
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1858 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_dudre_in
, tvb
, 1, 2, ENC_BIG_ENDIAN
);
1859 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_dudre_out
, tvb
, 3, 2, ENC_BIG_ENDIAN
);
1861 proto_tree_add_bitmask(sbas_l1_mt27_tree
, tvb
, 3, hf_sbas_l1_mt27_region
[0], ett_sbas_l1_mt27_region
[0], sbas_l1_mt27_region_fields
[0], ENC_BIG_ENDIAN
);
1862 proto_tree_add_bitmask(sbas_l1_mt27_tree
, tvb
, 7, hf_sbas_l1_mt27_region
[1], ett_sbas_l1_mt27_region
[1], sbas_l1_mt27_region_fields
[1], ENC_BIG_ENDIAN
);
1863 proto_tree_add_bitmask(sbas_l1_mt27_tree
, tvb
, 12, hf_sbas_l1_mt27_region
[2], ett_sbas_l1_mt27_region
[2], sbas_l1_mt27_region_fields
[2], ENC_BIG_ENDIAN
);
1864 proto_tree_add_bitmask(sbas_l1_mt27_tree
, tvb
, 16, hf_sbas_l1_mt27_region
[3], ett_sbas_l1_mt27_region
[3], sbas_l1_mt27_region_fields
[3], ENC_BIG_ENDIAN
);
1865 proto_tree_add_bitmask(sbas_l1_mt27_tree
, tvb
, 20, hf_sbas_l1_mt27_region
[4], ett_sbas_l1_mt27_region
[4], sbas_l1_mt27_region_fields
[4], ENC_BIG_ENDIAN
);
1867 proto_tree_add_item(sbas_l1_mt27_tree
, hf_sbas_l1_mt27_spare
, tvb
, 24, 4, ENC_BIG_ENDIAN
);
1869 return tvb_captured_length(tvb
);
1872 /* Dissect SBAS L1 MT 63 */
1873 static int dissect_sbas_l1_mt63(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
) {
1874 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "SBAS L1 MT63");
1875 col_clear(pinfo
->cinfo
, COL_INFO
);
1877 proto_item
*ti
= proto_tree_add_item(tree
, hf_sbas_l1_mt63
, tvb
, 0, 32, ENC_NA
);
1878 proto_tree
*sbas_l1_mt63_tree
= proto_item_add_subtree(ti
, ett_sbas_l1_mt63
);
1880 proto_tree_add_item(sbas_l1_mt63_tree
, hf_sbas_l1_mt63_spare_1
, tvb
, 0, 1, ENC_NA
);
1881 proto_tree_add_item(sbas_l1_mt63_tree
, hf_sbas_l1_mt63_spare_2
, tvb
, 1, 26, ENC_NA
);
1882 proto_tree_add_item(sbas_l1_mt63_tree
, hf_sbas_l1_mt63_spare_3
, tvb
, 27, 1, ENC_NA
);
1884 return tvb_captured_length(tvb
);
1887 void proto_register_sbas_l1(void) {
1889 static hf_register_info hf
[] = {
1890 {&hf_sbas_l1_preamble
, {"Preamble", "sbas_l1.preamble", FT_UINT8
, BASE_HEX
, NULL
, 0xff, NULL
, HFILL
}},
1891 {&hf_sbas_l1_mt
, {"Message Type", "sbas_l1.mt" , FT_UINT8
, BASE_DEC
, NULL
, 0xfc, NULL
, HFILL
}},
1892 {&hf_sbas_l1_chksum
, {"Checksum", "sbas_l1.chksum" , FT_UINT32
, BASE_HEX
, NULL
, 0x3fffffc0, NULL
, HFILL
}},
1895 {&hf_sbas_l1_mt0
, {"MT0", "sbas_l1.mt0", FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}},
1896 {&hf_sbas_l1_mt0_spare_1
, {"Spare 1", "sbas_l1.mt0.spare_1", FT_UINT8
, BASE_HEX
, NULL
, 0x03, NULL
, HFILL
}},
1897 {&hf_sbas_l1_mt0_spare_2
, {"Spare 2", "sbas_l1.mt0.spare_2", FT_BYTES
, SEP_SPACE
, NULL
, 0x00, NULL
, HFILL
}},
1898 {&hf_sbas_l1_mt0_spare_3
, {"Spare 3", "sbas_l1.mt0.spare_3", FT_UINT8
, BASE_HEX
, NULL
, 0xc0, NULL
, HFILL
}},
1901 {&hf_sbas_l1_mt1
, {"MT1", "sbas_l1.mt1", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
1902 {&hf_sbas_l1_mt1_prn_mask_gps
, {"PRN Mask GPS", "sbas_l1.mt1.prn_mask_gps", FT_UINT64
, BASE_HEX
, NULL
, UINT64_C(0x03ffffffffe00000), NULL
, HFILL
}},
1903 {&hf_sbas_l1_mt1_prn_mask_glonass
, {"PRN Mask Glonass", "sbas_l1.mt1.prn_mask_glonass", FT_UINT64
, BASE_HEX
, NULL
, UINT64_C(0x1fffffe000000000), NULL
, HFILL
}},
1904 {&hf_sbas_l1_mt1_prn_mask_spare_1
, {"PRN Mask spare", "sbas_l1.mt1.prn_mask_spare_1", FT_UINT64
, BASE_HEX
, NULL
, UINT64_C(0x1ffffffffffffff8), NULL
, HFILL
}},
1905 {&hf_sbas_l1_mt1_prn_mask_sbas
, {"PRN Mask SBAS", "sbas_l1.mt1.prn_mask_sbas", FT_UINT64
, BASE_HEX
, NULL
, UINT64_C(0x07fffffffff00000), NULL
, HFILL
}},
1906 {&hf_sbas_l1_mt1_prn_mask_spare_2
, {"PRN Mask spare", "sbas_l1.mt1.prn_mask_spare_2", FT_UINT64
, BASE_HEX
, NULL
, UINT64_C(0x0fffffffffffff00), NULL
, HFILL
}},
1907 {&hf_sbas_l1_mt1_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt1.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
1910 {&hf_sbas_l1_mt2
, {"MT2", "sbas_l1.mt2", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
1911 {&hf_sbas_l1_mt2_iodf_2
, {"Issue of Data - Fast Correction (IODF_2)", "sbas_l1.mt2.iodf_2", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
1912 {&hf_sbas_l1_mt2_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt2.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
1913 {&hf_sbas_l1_mt2_fc_1
, {"Fast Correction Satellite 1 (FC_1)", "sbas_l1.mt2.fc_1", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1914 {&hf_sbas_l1_mt2_fc_2
, {"Fast Correction Satellite 2 (FC_2)", "sbas_l1.mt2.fc_2", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1915 {&hf_sbas_l1_mt2_fc_3
, {"Fast Correction Satellite 3 (FC_3)", "sbas_l1.mt2.fc_3", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1916 {&hf_sbas_l1_mt2_fc_4
, {"Fast Correction Satellite 4 (FC_4)", "sbas_l1.mt2.fc_4", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1917 {&hf_sbas_l1_mt2_fc_5
, {"Fast Correction Satellite 5 (FC_5)", "sbas_l1.mt2.fc_5", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1918 {&hf_sbas_l1_mt2_fc_6
, {"Fast Correction Satellite 6 (FC_6)", "sbas_l1.mt2.fc_6", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1919 {&hf_sbas_l1_mt2_fc_7
, {"Fast Correction Satellite 7 (FC_7)", "sbas_l1.mt2.fc_7", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1920 {&hf_sbas_l1_mt2_fc_8
, {"Fast Correction Satellite 8 (FC_8)", "sbas_l1.mt2.fc_8", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1921 {&hf_sbas_l1_mt2_fc_9
, {"Fast Correction Satellite 9 (FC_9)", "sbas_l1.mt2.fc_9", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1922 {&hf_sbas_l1_mt2_fc_10
, {"Fast Correction Satellite 10 (FC_10)", "sbas_l1.mt2.fc_10", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1923 {&hf_sbas_l1_mt2_fc_11
, {"Fast Correction Satellite 11 (FC_11)", "sbas_l1.mt2.fc_11", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1924 {&hf_sbas_l1_mt2_fc_12
, {"Fast Correction Satellite 12 (FC_12)", "sbas_l1.mt2.fc_12", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1925 {&hf_sbas_l1_mt2_fc_13
, {"Fast Correction Satellite 13 (FC_13)", "sbas_l1.mt2.fc_13", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1926 {&hf_sbas_l1_mt2_udrei_1
, {"UDREI_1", "sbas_l1.mt2.udrei_1", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1927 {&hf_sbas_l1_mt2_udrei_2
, {"UDREI_2", "sbas_l1.mt2.udrei_2", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1928 {&hf_sbas_l1_mt2_udrei_3
, {"UDREI_3", "sbas_l1.mt2.udrei_3", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1929 {&hf_sbas_l1_mt2_udrei_4
, {"UDREI_4", "sbas_l1.mt2.udrei_4", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1930 {&hf_sbas_l1_mt2_udrei_5
, {"UDREI_5", "sbas_l1.mt2.udrei_5", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1931 {&hf_sbas_l1_mt2_udrei_6
, {"UDREI_6", "sbas_l1.mt2.udrei_6", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1932 {&hf_sbas_l1_mt2_udrei_7
, {"UDREI_7", "sbas_l1.mt2.udrei_7", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1933 {&hf_sbas_l1_mt2_udrei_8
, {"UDREI_8", "sbas_l1.mt2.udrei_8", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1934 {&hf_sbas_l1_mt2_udrei_9
, {"UDREI_9", "sbas_l1.mt2.udrei_9", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1935 {&hf_sbas_l1_mt2_udrei_10
, {"UDREI_10", "sbas_l1.mt2.udrei_10", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1936 {&hf_sbas_l1_mt2_udrei_11
, {"UDREI_11", "sbas_l1.mt2.udrei_11", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1937 {&hf_sbas_l1_mt2_udrei_12
, {"UDREI_12", "sbas_l1.mt2.udrei_12", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1938 {&hf_sbas_l1_mt2_udrei_13
, {"UDREI_13", "sbas_l1.mt2.udrei_13", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1941 {&hf_sbas_l1_mt3
, {"MT3", "sbas_l1.mt3", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
1942 {&hf_sbas_l1_mt3_iodf_3
, {"Issue of Data - Fast Correction (IODF_3)", "sbas_l1.mt3.iodf_3", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
1943 {&hf_sbas_l1_mt3_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt3.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
1944 {&hf_sbas_l1_mt3_fc_14
, {"Fast Correction Satellite 14 (FC_14)", "sbas_l1.mt3.fc_14", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1945 {&hf_sbas_l1_mt3_fc_15
, {"Fast Correction Satellite 15 (FC_15)", "sbas_l1.mt3.fc_15", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1946 {&hf_sbas_l1_mt3_fc_16
, {"Fast Correction Satellite 16 (FC_16)", "sbas_l1.mt3.fc_16", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1947 {&hf_sbas_l1_mt3_fc_17
, {"Fast Correction Satellite 17 (FC_17)", "sbas_l1.mt3.fc_17", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1948 {&hf_sbas_l1_mt3_fc_18
, {"Fast Correction Satellite 18 (FC_18)", "sbas_l1.mt3.fc_18", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1949 {&hf_sbas_l1_mt3_fc_19
, {"Fast Correction Satellite 19 (FC_19)", "sbas_l1.mt3.fc_19", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1950 {&hf_sbas_l1_mt3_fc_20
, {"Fast Correction Satellite 20 (FC_20)", "sbas_l1.mt3.fc_20", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1951 {&hf_sbas_l1_mt3_fc_21
, {"Fast Correction Satellite 21 (FC_21)", "sbas_l1.mt3.fc_21", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1952 {&hf_sbas_l1_mt3_fc_22
, {"Fast Correction Satellite 22 (FC_22)", "sbas_l1.mt3.fc_22", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1953 {&hf_sbas_l1_mt3_fc_23
, {"Fast Correction Satellite 23 (FC_23)", "sbas_l1.mt3.fc_23", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1954 {&hf_sbas_l1_mt3_fc_24
, {"Fast Correction Satellite 24 (FC_24)", "sbas_l1.mt3.fc_24", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1955 {&hf_sbas_l1_mt3_fc_25
, {"Fast Correction Satellite 25 (FC_25)", "sbas_l1.mt3.fc_25", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1956 {&hf_sbas_l1_mt3_fc_26
, {"Fast Correction Satellite 26 (FC_26)", "sbas_l1.mt3.fc_26", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1957 {&hf_sbas_l1_mt3_udrei_14
, {"UDREI_14", "sbas_l1.mt3.udrei_14", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1958 {&hf_sbas_l1_mt3_udrei_15
, {"UDREI_15", "sbas_l1.mt3.udrei_15", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1959 {&hf_sbas_l1_mt3_udrei_16
, {"UDREI_16", "sbas_l1.mt3.udrei_16", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1960 {&hf_sbas_l1_mt3_udrei_17
, {"UDREI_17", "sbas_l1.mt3.udrei_17", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1961 {&hf_sbas_l1_mt3_udrei_18
, {"UDREI_18", "sbas_l1.mt3.udrei_18", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1962 {&hf_sbas_l1_mt3_udrei_19
, {"UDREI_19", "sbas_l1.mt3.udrei_19", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1963 {&hf_sbas_l1_mt3_udrei_20
, {"UDREI_20", "sbas_l1.mt3.udrei_20", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1964 {&hf_sbas_l1_mt3_udrei_21
, {"UDREI_21", "sbas_l1.mt3.udrei_21", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1965 {&hf_sbas_l1_mt3_udrei_22
, {"UDREI_22", "sbas_l1.mt3.udrei_22", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1966 {&hf_sbas_l1_mt3_udrei_23
, {"UDREI_23", "sbas_l1.mt3.udrei_23", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1967 {&hf_sbas_l1_mt3_udrei_24
, {"UDREI_24", "sbas_l1.mt3.udrei_24", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1968 {&hf_sbas_l1_mt3_udrei_25
, {"UDREI_25", "sbas_l1.mt3.udrei_25", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1969 {&hf_sbas_l1_mt3_udrei_26
, {"UDREI_26", "sbas_l1.mt3.udrei_26", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1972 {&hf_sbas_l1_mt4
, {"MT4", "sbas_l1.mt4", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
1973 {&hf_sbas_l1_mt4_iodf_4
, {"Issue of Data - Fast Correction (IODF_4)", "sbas_l1.mt4.iodf_4", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
1974 {&hf_sbas_l1_mt4_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt4.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
1975 {&hf_sbas_l1_mt4_fc_27
, {"Fast Correction Satellite 27 (FC_27)", "sbas_l1.mt4.fc_27", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1976 {&hf_sbas_l1_mt4_fc_28
, {"Fast Correction Satellite 28 (FC_28)", "sbas_l1.mt4.fc_28", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1977 {&hf_sbas_l1_mt4_fc_29
, {"Fast Correction Satellite 29 (FC_29)", "sbas_l1.mt4.fc_29", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1978 {&hf_sbas_l1_mt4_fc_30
, {"Fast Correction Satellite 30 (FC_30)", "sbas_l1.mt4.fc_30", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1979 {&hf_sbas_l1_mt4_fc_31
, {"Fast Correction Satellite 31 (FC_31)", "sbas_l1.mt4.fc_31", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1980 {&hf_sbas_l1_mt4_fc_32
, {"Fast Correction Satellite 32 (FC_32)", "sbas_l1.mt4.fc_32", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1981 {&hf_sbas_l1_mt4_fc_33
, {"Fast Correction Satellite 33 (FC_33)", "sbas_l1.mt4.fc_33", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1982 {&hf_sbas_l1_mt4_fc_34
, {"Fast Correction Satellite 34 (FC_34)", "sbas_l1.mt4.fc_34", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1983 {&hf_sbas_l1_mt4_fc_35
, {"Fast Correction Satellite 35 (FC_35)", "sbas_l1.mt4.fc_35", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1984 {&hf_sbas_l1_mt4_fc_36
, {"Fast Correction Satellite 36 (FC_36)", "sbas_l1.mt4.fc_36", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1985 {&hf_sbas_l1_mt4_fc_37
, {"Fast Correction Satellite 37 (FC_37)", "sbas_l1.mt4.fc_37", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1986 {&hf_sbas_l1_mt4_fc_38
, {"Fast Correction Satellite 38 (FC_38)", "sbas_l1.mt4.fc_38", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
1987 {&hf_sbas_l1_mt4_fc_39
, {"Fast Correction Satellite 39 (FC_39)", "sbas_l1.mt4.fc_39", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
1988 {&hf_sbas_l1_mt4_udrei_27
, {"UDREI_27", "sbas_l1.mt4.udrei_27", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1989 {&hf_sbas_l1_mt4_udrei_28
, {"UDREI_28", "sbas_l1.mt4.udrei_28", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1990 {&hf_sbas_l1_mt4_udrei_29
, {"UDREI_29", "sbas_l1.mt4.udrei_29", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1991 {&hf_sbas_l1_mt4_udrei_30
, {"UDREI_30", "sbas_l1.mt4.udrei_30", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1992 {&hf_sbas_l1_mt4_udrei_31
, {"UDREI_31", "sbas_l1.mt4.udrei_31", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1993 {&hf_sbas_l1_mt4_udrei_32
, {"UDREI_32", "sbas_l1.mt4.udrei_32", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1994 {&hf_sbas_l1_mt4_udrei_33
, {"UDREI_33", "sbas_l1.mt4.udrei_33", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1995 {&hf_sbas_l1_mt4_udrei_34
, {"UDREI_34", "sbas_l1.mt4.udrei_34", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1996 {&hf_sbas_l1_mt4_udrei_35
, {"UDREI_35", "sbas_l1.mt4.udrei_35", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1997 {&hf_sbas_l1_mt4_udrei_36
, {"UDREI_36", "sbas_l1.mt4.udrei_36", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
1998 {&hf_sbas_l1_mt4_udrei_37
, {"UDREI_37", "sbas_l1.mt4.udrei_37", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
1999 {&hf_sbas_l1_mt4_udrei_38
, {"UDREI_38", "sbas_l1.mt4.udrei_38", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2000 {&hf_sbas_l1_mt4_udrei_39
, {"UDREI_39", "sbas_l1.mt4.udrei_39", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2003 {&hf_sbas_l1_mt5
, {"MT5", "sbas_l1.mt5", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2004 {&hf_sbas_l1_mt5_iodf_5
, {"Issue of Data - Fast Correction (IODF_5)", "sbas_l1.mt5.iodf_5", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
2005 {&hf_sbas_l1_mt5_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt5.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
2006 {&hf_sbas_l1_mt5_fc_40
, {"Fast Correction Satellite 40 (FC_40)", "sbas_l1.mt5.fc_40", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2007 {&hf_sbas_l1_mt5_fc_41
, {"Fast Correction Satellite 41 (FC_41)", "sbas_l1.mt5.fc_41", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2008 {&hf_sbas_l1_mt5_fc_42
, {"Fast Correction Satellite 42 (FC_42)", "sbas_l1.mt5.fc_42", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2009 {&hf_sbas_l1_mt5_fc_43
, {"Fast Correction Satellite 43 (FC_43)", "sbas_l1.mt5.fc_43", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2010 {&hf_sbas_l1_mt5_fc_44
, {"Fast Correction Satellite 44 (FC_44)", "sbas_l1.mt5.fc_44", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2011 {&hf_sbas_l1_mt5_fc_45
, {"Fast Correction Satellite 45 (FC_45)", "sbas_l1.mt5.fc_45", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2012 {&hf_sbas_l1_mt5_fc_46
, {"Fast Correction Satellite 46 (FC_46)", "sbas_l1.mt5.fc_46", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2013 {&hf_sbas_l1_mt5_fc_47
, {"Fast Correction Satellite 47 (FC_47)", "sbas_l1.mt5.fc_47", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2014 {&hf_sbas_l1_mt5_fc_48
, {"Fast Correction Satellite 48 (FC_48)", "sbas_l1.mt5.fc_48", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2015 {&hf_sbas_l1_mt5_fc_49
, {"Fast Correction Satellite 49 (FC_49)", "sbas_l1.mt5.fc_49", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2016 {&hf_sbas_l1_mt5_fc_50
, {"Fast Correction Satellite 50 (FC_50)", "sbas_l1.mt5.fc_50", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2017 {&hf_sbas_l1_mt5_fc_51
, {"Fast Correction Satellite 51 (FC_51)", "sbas_l1.mt5.fc_51", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2018 {&hf_sbas_l1_mt5_fc_52
, {"Fast Correction Satellite 52 (FC_52)", "sbas_l1.mt5.fc_52", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2019 {&hf_sbas_l1_mt5_udrei_40
, {"UDREI_40", "sbas_l1.mt5.udrei_40", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2020 {&hf_sbas_l1_mt5_udrei_41
, {"UDREI_41", "sbas_l1.mt5.udrei_41", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2021 {&hf_sbas_l1_mt5_udrei_42
, {"UDREI_42", "sbas_l1.mt5.udrei_42", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2022 {&hf_sbas_l1_mt5_udrei_43
, {"UDREI_43", "sbas_l1.mt5.udrei_43", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2023 {&hf_sbas_l1_mt5_udrei_44
, {"UDREI_44", "sbas_l1.mt5.udrei_44", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2024 {&hf_sbas_l1_mt5_udrei_45
, {"UDREI_45", "sbas_l1.mt5.udrei_45", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2025 {&hf_sbas_l1_mt5_udrei_46
, {"UDREI_46", "sbas_l1.mt5.udrei_46", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2026 {&hf_sbas_l1_mt5_udrei_47
, {"UDREI_47", "sbas_l1.mt5.udrei_47", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2027 {&hf_sbas_l1_mt5_udrei_48
, {"UDREI_48", "sbas_l1.mt5.udrei_48", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2028 {&hf_sbas_l1_mt5_udrei_49
, {"UDREI_49", "sbas_l1.mt5.udrei_49", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2029 {&hf_sbas_l1_mt5_udrei_50
, {"UDREI_50", "sbas_l1.mt5.udrei_50", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2030 {&hf_sbas_l1_mt5_udrei_51
, {"UDREI_51", "sbas_l1.mt5.udrei_51", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2031 {&hf_sbas_l1_mt5_udrei_52
, {"UDREI_52", "sbas_l1.mt5.udrei_52", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2034 {&hf_sbas_l1_mt6
, {"MT6", "sbas_l1.mt6", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2035 {&hf_sbas_l1_mt6_iodf_2
, {"Issue of Data - Fast Correction (IODF_2)", "sbas_l1.mt6.iodf_2", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
2036 {&hf_sbas_l1_mt6_iodf_3
, {"Issue of Data - Fast Correction (IODF_3)", "sbas_l1.mt6.iodf_3", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
2037 {&hf_sbas_l1_mt6_iodf_4
, {"Issue of Data - Fast Correction (IODF_4)", "sbas_l1.mt6.iodf_4", FT_UINT8
, BASE_DEC
, NULL
, 0x30, NULL
, HFILL
}},
2038 {&hf_sbas_l1_mt6_iodf_5
, {"Issue of Data - Fast Correction (IODF_5)", "sbas_l1.mt6.iodf_5", FT_UINT8
, BASE_DEC
, NULL
, 0x0c, NULL
, HFILL
}},
2039 {&hf_sbas_l1_mt6_udrei_1
, {"UDREI_1", "sbas_l1.mt6.udrei_1", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2040 {&hf_sbas_l1_mt6_udrei_2
, {"UDREI_2", "sbas_l1.mt6.udrei_2", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2041 {&hf_sbas_l1_mt6_udrei_3
, {"UDREI_3", "sbas_l1.mt6.udrei_3", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2042 {&hf_sbas_l1_mt6_udrei_4
, {"UDREI_4", "sbas_l1.mt6.udrei_4", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2043 {&hf_sbas_l1_mt6_udrei_5
, {"UDREI_5", "sbas_l1.mt6.udrei_5", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2044 {&hf_sbas_l1_mt6_udrei_6
, {"UDREI_6", "sbas_l1.mt6.udrei_6", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2045 {&hf_sbas_l1_mt6_udrei_7
, {"UDREI_7", "sbas_l1.mt6.udrei_7", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2046 {&hf_sbas_l1_mt6_udrei_8
, {"UDREI_8", "sbas_l1.mt6.udrei_8", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2047 {&hf_sbas_l1_mt6_udrei_9
, {"UDREI_9", "sbas_l1.mt6.udrei_9", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2048 {&hf_sbas_l1_mt6_udrei_10
, {"UDREI_10", "sbas_l1.mt6.udrei_10", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2049 {&hf_sbas_l1_mt6_udrei_11
, {"UDREI_11", "sbas_l1.mt6.udrei_11", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2050 {&hf_sbas_l1_mt6_udrei_12
, {"UDREI_12", "sbas_l1.mt6.udrei_12", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2051 {&hf_sbas_l1_mt6_udrei_13
, {"UDREI_13", "sbas_l1.mt6.udrei_13", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2052 {&hf_sbas_l1_mt6_udrei_14
, {"UDREI_14", "sbas_l1.mt6.udrei_14", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2053 {&hf_sbas_l1_mt6_udrei_15
, {"UDREI_15", "sbas_l1.mt6.udrei_15", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2054 {&hf_sbas_l1_mt6_udrei_16
, {"UDREI_16", "sbas_l1.mt6.udrei_16", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2055 {&hf_sbas_l1_mt6_udrei_17
, {"UDREI_17", "sbas_l1.mt6.udrei_17", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2056 {&hf_sbas_l1_mt6_udrei_18
, {"UDREI_18", "sbas_l1.mt6.udrei_18", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2057 {&hf_sbas_l1_mt6_udrei_19
, {"UDREI_19", "sbas_l1.mt6.udrei_19", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2058 {&hf_sbas_l1_mt6_udrei_20
, {"UDREI_20", "sbas_l1.mt6.udrei_20", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2059 {&hf_sbas_l1_mt6_udrei_21
, {"UDREI_21", "sbas_l1.mt6.udrei_21", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2060 {&hf_sbas_l1_mt6_udrei_22
, {"UDREI_22", "sbas_l1.mt6.udrei_22", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2061 {&hf_sbas_l1_mt6_udrei_23
, {"UDREI_23", "sbas_l1.mt6.udrei_23", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2062 {&hf_sbas_l1_mt6_udrei_24
, {"UDREI_24", "sbas_l1.mt6.udrei_24", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2063 {&hf_sbas_l1_mt6_udrei_25
, {"UDREI_25", "sbas_l1.mt6.udrei_25", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2064 {&hf_sbas_l1_mt6_udrei_26
, {"UDREI_26", "sbas_l1.mt6.udrei_26", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2065 {&hf_sbas_l1_mt6_udrei_27
, {"UDREI_27", "sbas_l1.mt6.udrei_27", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2066 {&hf_sbas_l1_mt6_udrei_28
, {"UDREI_28", "sbas_l1.mt6.udrei_28", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2067 {&hf_sbas_l1_mt6_udrei_29
, {"UDREI_29", "sbas_l1.mt6.udrei_29", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2068 {&hf_sbas_l1_mt6_udrei_30
, {"UDREI_30", "sbas_l1.mt6.udrei_30", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2069 {&hf_sbas_l1_mt6_udrei_31
, {"UDREI_31", "sbas_l1.mt6.udrei_31", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2070 {&hf_sbas_l1_mt6_udrei_32
, {"UDREI_32", "sbas_l1.mt6.udrei_32", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2071 {&hf_sbas_l1_mt6_udrei_33
, {"UDREI_33", "sbas_l1.mt6.udrei_33", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2072 {&hf_sbas_l1_mt6_udrei_34
, {"UDREI_34", "sbas_l1.mt6.udrei_34", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2073 {&hf_sbas_l1_mt6_udrei_35
, {"UDREI_35", "sbas_l1.mt6.udrei_35", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2074 {&hf_sbas_l1_mt6_udrei_36
, {"UDREI_36", "sbas_l1.mt6.udrei_36", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2075 {&hf_sbas_l1_mt6_udrei_37
, {"UDREI_37", "sbas_l1.mt6.udrei_37", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2076 {&hf_sbas_l1_mt6_udrei_38
, {"UDREI_38", "sbas_l1.mt6.udrei_38", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2077 {&hf_sbas_l1_mt6_udrei_39
, {"UDREI_39", "sbas_l1.mt6.udrei_39", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2078 {&hf_sbas_l1_mt6_udrei_40
, {"UDREI_40", "sbas_l1.mt6.udrei_40", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2079 {&hf_sbas_l1_mt6_udrei_41
, {"UDREI_41", "sbas_l1.mt6.udrei_41", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2080 {&hf_sbas_l1_mt6_udrei_42
, {"UDREI_42", "sbas_l1.mt6.udrei_42", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2081 {&hf_sbas_l1_mt6_udrei_43
, {"UDREI_43", "sbas_l1.mt6.udrei_43", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2082 {&hf_sbas_l1_mt6_udrei_44
, {"UDREI_44", "sbas_l1.mt6.udrei_44", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2083 {&hf_sbas_l1_mt6_udrei_45
, {"UDREI_45", "sbas_l1.mt6.udrei_45", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2084 {&hf_sbas_l1_mt6_udrei_46
, {"UDREI_46", "sbas_l1.mt6.udrei_46", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2085 {&hf_sbas_l1_mt6_udrei_47
, {"UDREI_47", "sbas_l1.mt6.udrei_47", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2086 {&hf_sbas_l1_mt6_udrei_48
, {"UDREI_48", "sbas_l1.mt6.udrei_48", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2087 {&hf_sbas_l1_mt6_udrei_49
, {"UDREI_49", "sbas_l1.mt6.udrei_49", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2088 {&hf_sbas_l1_mt6_udrei_50
, {"UDREI_50", "sbas_l1.mt6.udrei_50", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2089 {&hf_sbas_l1_mt6_udrei_51
, {"UDREI_51", "sbas_l1.mt6.udrei_51", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2092 {&hf_sbas_l1_mt7
, {"MT7", "sbas_l1.mt7", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2093 {&hf_sbas_l1_mt7_t_lat
, {"System Latency (t_lat)", "sbas_l1.mt7.t_lat", FT_UINT16
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_seconds
), 0x03c0, NULL
, HFILL
}},
2094 {&hf_sbas_l1_mt7_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt7.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0x30, NULL
, HFILL
}},
2095 {&hf_sbas_l1_mt7_spare
, {"Spare", "sbas_l1.mt7.spare", FT_UINT8
, BASE_DEC
, NULL
, 0x0c, NULL
, HFILL
}},
2096 {&hf_sbas_l1_mt7_ai_1
, {"Degradation Factor Indicator ai_1", "sbas_l1.mt7.ai_1", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2097 {&hf_sbas_l1_mt7_ai_2
, {"Degradation Factor Indicator ai_2", "sbas_l1.mt7.ai_2", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2098 {&hf_sbas_l1_mt7_ai_3
, {"Degradation Factor Indicator ai_3", "sbas_l1.mt7.ai_3", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2099 {&hf_sbas_l1_mt7_ai_4
, {"Degradation Factor Indicator ai_4", "sbas_l1.mt7.ai_4", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2100 {&hf_sbas_l1_mt7_ai_5
, {"Degradation Factor Indicator ai_5", "sbas_l1.mt7.ai_5", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2101 {&hf_sbas_l1_mt7_ai_6
, {"Degradation Factor Indicator ai_6", "sbas_l1.mt7.ai_6", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2102 {&hf_sbas_l1_mt7_ai_7
, {"Degradation Factor Indicator ai_7", "sbas_l1.mt7.ai_7", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2103 {&hf_sbas_l1_mt7_ai_8
, {"Degradation Factor Indicator ai_8", "sbas_l1.mt7.ai_8", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2104 {&hf_sbas_l1_mt7_ai_9
, {"Degradation Factor Indicator ai_9", "sbas_l1.mt7.ai_9", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2105 {&hf_sbas_l1_mt7_ai_10
, {"Degradation Factor Indicator ai_10", "sbas_l1.mt7.ai_10", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2106 {&hf_sbas_l1_mt7_ai_11
, {"Degradation Factor Indicator ai_11", "sbas_l1.mt7.ai_11", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2107 {&hf_sbas_l1_mt7_ai_12
, {"Degradation Factor Indicator ai_12", "sbas_l1.mt7.ai_12", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2108 {&hf_sbas_l1_mt7_ai_13
, {"Degradation Factor Indicator ai_13", "sbas_l1.mt7.ai_13", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2109 {&hf_sbas_l1_mt7_ai_14
, {"Degradation Factor Indicator ai_14", "sbas_l1.mt7.ai_14", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2110 {&hf_sbas_l1_mt7_ai_15
, {"Degradation Factor Indicator ai_15", "sbas_l1.mt7.ai_15", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2111 {&hf_sbas_l1_mt7_ai_16
, {"Degradation Factor Indicator ai_16", "sbas_l1.mt7.ai_16", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2112 {&hf_sbas_l1_mt7_ai_17
, {"Degradation Factor Indicator ai_17", "sbas_l1.mt7.ai_17", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2113 {&hf_sbas_l1_mt7_ai_18
, {"Degradation Factor Indicator ai_18", "sbas_l1.mt7.ai_18", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2114 {&hf_sbas_l1_mt7_ai_19
, {"Degradation Factor Indicator ai_19", "sbas_l1.mt7.ai_19", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2115 {&hf_sbas_l1_mt7_ai_20
, {"Degradation Factor Indicator ai_20", "sbas_l1.mt7.ai_20", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2116 {&hf_sbas_l1_mt7_ai_21
, {"Degradation Factor Indicator ai_21", "sbas_l1.mt7.ai_21", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2117 {&hf_sbas_l1_mt7_ai_22
, {"Degradation Factor Indicator ai_22", "sbas_l1.mt7.ai_22", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2118 {&hf_sbas_l1_mt7_ai_23
, {"Degradation Factor Indicator ai_23", "sbas_l1.mt7.ai_23", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2119 {&hf_sbas_l1_mt7_ai_24
, {"Degradation Factor Indicator ai_24", "sbas_l1.mt7.ai_24", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2120 {&hf_sbas_l1_mt7_ai_25
, {"Degradation Factor Indicator ai_25", "sbas_l1.mt7.ai_25", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2121 {&hf_sbas_l1_mt7_ai_26
, {"Degradation Factor Indicator ai_26", "sbas_l1.mt7.ai_26", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2122 {&hf_sbas_l1_mt7_ai_27
, {"Degradation Factor Indicator ai_27", "sbas_l1.mt7.ai_27", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2123 {&hf_sbas_l1_mt7_ai_28
, {"Degradation Factor Indicator ai_28", "sbas_l1.mt7.ai_28", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2124 {&hf_sbas_l1_mt7_ai_29
, {"Degradation Factor Indicator ai_29", "sbas_l1.mt7.ai_29", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2125 {&hf_sbas_l1_mt7_ai_30
, {"Degradation Factor Indicator ai_30", "sbas_l1.mt7.ai_30", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2126 {&hf_sbas_l1_mt7_ai_31
, {"Degradation Factor Indicator ai_31", "sbas_l1.mt7.ai_31", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2127 {&hf_sbas_l1_mt7_ai_32
, {"Degradation Factor Indicator ai_32", "sbas_l1.mt7.ai_32", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2128 {&hf_sbas_l1_mt7_ai_33
, {"Degradation Factor Indicator ai_33", "sbas_l1.mt7.ai_33", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2129 {&hf_sbas_l1_mt7_ai_34
, {"Degradation Factor Indicator ai_34", "sbas_l1.mt7.ai_34", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2130 {&hf_sbas_l1_mt7_ai_35
, {"Degradation Factor Indicator ai_35", "sbas_l1.mt7.ai_35", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2131 {&hf_sbas_l1_mt7_ai_36
, {"Degradation Factor Indicator ai_36", "sbas_l1.mt7.ai_36", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2132 {&hf_sbas_l1_mt7_ai_37
, {"Degradation Factor Indicator ai_37", "sbas_l1.mt7.ai_37", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2133 {&hf_sbas_l1_mt7_ai_38
, {"Degradation Factor Indicator ai_38", "sbas_l1.mt7.ai_38", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2134 {&hf_sbas_l1_mt7_ai_39
, {"Degradation Factor Indicator ai_39", "sbas_l1.mt7.ai_39", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2135 {&hf_sbas_l1_mt7_ai_40
, {"Degradation Factor Indicator ai_40", "sbas_l1.mt7.ai_40", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2136 {&hf_sbas_l1_mt7_ai_41
, {"Degradation Factor Indicator ai_41", "sbas_l1.mt7.ai_41", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2137 {&hf_sbas_l1_mt7_ai_42
, {"Degradation Factor Indicator ai_42", "sbas_l1.mt7.ai_42", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2138 {&hf_sbas_l1_mt7_ai_43
, {"Degradation Factor Indicator ai_43", "sbas_l1.mt7.ai_43", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2139 {&hf_sbas_l1_mt7_ai_44
, {"Degradation Factor Indicator ai_44", "sbas_l1.mt7.ai_44", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2140 {&hf_sbas_l1_mt7_ai_45
, {"Degradation Factor Indicator ai_45", "sbas_l1.mt7.ai_45", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2141 {&hf_sbas_l1_mt7_ai_46
, {"Degradation Factor Indicator ai_46", "sbas_l1.mt7.ai_46", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2142 {&hf_sbas_l1_mt7_ai_47
, {"Degradation Factor Indicator ai_47", "sbas_l1.mt7.ai_47", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2143 {&hf_sbas_l1_mt7_ai_48
, {"Degradation Factor Indicator ai_48", "sbas_l1.mt7.ai_48", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2144 {&hf_sbas_l1_mt7_ai_49
, {"Degradation Factor Indicator ai_49", "sbas_l1.mt7.ai_49", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2145 {&hf_sbas_l1_mt7_ai_50
, {"Degradation Factor Indicator ai_50", "sbas_l1.mt7.ai_50", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x3c00, NULL
, HFILL
}},
2146 {&hf_sbas_l1_mt7_ai_51
, {"Degradation Factor Indicator ai_51", "sbas_l1.mt7.ai_51", FT_UINT16
, BASE_DEC
, VALS(DEGRADATION_FACTOR_INDICATOR
), 0x03c0, NULL
, HFILL
}},
2149 {&hf_sbas_l1_mt9
, {"MT9", "sbas_l1.mt9", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2150 {&hf_sbas_l1_mt9_reserved
, {"Reserved", "sbas_l1.mt9.reserved", FT_UINT32
, BASE_HEX
, NULL
, 0x03fc0000, NULL
, HFILL
}},
2151 {&hf_sbas_l1_mt9_t_0_geo
, {"t_0,GEO", "sbas_l1.mt9.t_0_geo", FT_UINT32
, BASE_CUSTOM
, CF_FUNC(&fmt_time_of_applicability
), 0x0003ffe0, NULL
, HFILL
}},
2152 {&hf_sbas_l1_mt9_ura
, {"User Range Accuracy (URA)", "sbas_l1.mt9.ura", FT_UINT32
, BASE_DEC
, VALS(URA
), 0x0000001e, NULL
, HFILL
}},
2153 {&hf_sbas_l1_mt9_x_g
, {"X_G", "sbas_l1.mt9.x_g", FT_INT64
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_position2
), 0x01fffffff8000000, NULL
, HFILL
}},
2154 {&hf_sbas_l1_mt9_y_g
, {"Y_G", "sbas_l1.mt9.y_g", FT_INT64
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_position2
), 0x07ffffffe0000000, NULL
, HFILL
}},
2155 {&hf_sbas_l1_mt9_z_g
, {"Z_G", "sbas_l1.mt9.z_g", FT_INT64
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_z_position2
), 0x1ffffff000000000, NULL
, HFILL
}},
2156 {&hf_sbas_l1_mt9_x_g_vel
, {"X_G velocity", "sbas_l1.mt9.x_g_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_velocity2
), 0x0ffff800, NULL
, HFILL
}},
2157 {&hf_sbas_l1_mt9_y_g_vel
, {"Y_G velocity", "sbas_l1.mt9.y_g_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_velocity2
), 0x07fffc00, NULL
, HFILL
}},
2158 {&hf_sbas_l1_mt9_z_g_vel
, {"Z_G velocity", "sbas_l1.mt9.z_g_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_z_velocity2
), 0x03ffff00, NULL
, HFILL
}},
2159 {&hf_sbas_l1_mt9_x_g_acc
, {"X_G acceleration", "sbas_l1.mt9.x_g_acc", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_acceleration
), 0xffc00000, NULL
, HFILL
}},
2160 {&hf_sbas_l1_mt9_y_g_acc
, {"Y_G acceleration", "sbas_l1.mt9.y_g_acc", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_acceleration
), 0x003ff000, NULL
, HFILL
}},
2161 {&hf_sbas_l1_mt9_z_g_acc
, {"Z_G acceleration", "sbas_l1.mt9.z_g_acc", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_z_acceleration
), 0x00000ffc, NULL
, HFILL
}},
2162 {&hf_sbas_l1_mt9_a_gf0
, {"Time offset of the GEO clock (a_Gf0)", "sbas_l1.mt9.a_gf0", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x03ffc000, NULL
, HFILL
}},
2163 {&hf_sbas_l1_mt9_a_gf1
, {"Drift rate of the GEO clock (a_Gf1)", "sbas_l1.mt9.a_gf1", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clk_rate_correction2
), 0x00003fc0, NULL
, HFILL
}},
2166 {&hf_sbas_l1_mt17
, {"MT17", "sbas_l1.mt17", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2167 {&hf_sbas_l1_mt17_reserved
, {"Reserved", "sbas_l1.mt17.reserved", FT_UINT8
, BASE_HEX
, NULL
, 0xc0, NULL
, HFILL
}},
2168 {&hf_sbas_l1_mt17_prn
, {"PRN", "sbas_l1.mt17.prn", FT_UINT16
, BASE_DEC
, NULL
, 0x3fc0, NULL
, HFILL
}},
2169 {&hf_sbas_l1_mt17_health_and_status
, {"Health and Status", "sbas_l1.mt17.health_and_status", FT_UINT16
, BASE_HEX
, NULL
, 0x3fc0, NULL
, HFILL
}},
2170 {&hf_sbas_l1_mt17_health_and_status_spid
, {"Service Provider Identifier", "sbas_l1.mt17.health_and_status.spid", FT_UINT16
, BASE_DEC
, VALS(SBAS_SPID
), 0x3c00, NULL
, HFILL
}},
2171 {&hf_sbas_l1_mt17_health_and_status_spare
, {"Spare", "sbas_l1.mt17.health_and_status.spare", FT_UINT16
, BASE_HEX
, NULL
, 0x0200, NULL
, HFILL
}},
2172 {&hf_sbas_l1_mt17_health_and_status_sat_status_basic_corrections
, {"Satellite Status and Basic Corrections", "sbas_l1.mt17.health_and_status.sat_status_basic_corrections", FT_BOOLEAN
, 16, TFS(&tfs_off_on
), 0x0100, NULL
, HFILL
}},
2173 {&hf_sbas_l1_mt17_health_and_status_precision_corrections
, {"Precision Corrections", "sbas_l1.mt17.health_and_status.precision_corrections", FT_BOOLEAN
, 16, TFS(&tfs_off_on
), 0x0080, NULL
, HFILL
}},
2174 {&hf_sbas_l1_mt17_health_and_status_ranging
, {"Ranging", "sbas_l1.mt17.health_and_status.ranging", FT_BOOLEAN
, 16, TFS(&tfs_off_on
), 0x0040, NULL
, HFILL
}},
2175 {&hf_sbas_l1_mt17_x_ga
, {"X_G,A", "sbas_l1.mt17.x_ga", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_position
), 0x3fff8000, NULL
, HFILL
}},
2176 {&hf_sbas_l1_mt17_y_ga
, {"Y_G,A", "sbas_l1.mt17.y_ga", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_position
), 0x7fff0000, NULL
, HFILL
}},
2177 {&hf_sbas_l1_mt17_z_ga
, {"Z_G,A", "sbas_l1.mt17.z_ga", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_z_position
), 0x0000ff80, NULL
, HFILL
}},
2178 {&hf_sbas_l1_mt17_x_ga_vel
, {"X_G,A velocity", "sbas_l1.mt17.x_ga_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_velocity
), 0x00000070, NULL
, HFILL
}},
2179 {&hf_sbas_l1_mt17_y_ga_vel
, {"Y_G,A velocity", "sbas_l1.mt17.y_ga_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_xy_velocity
), 0x0000000e, NULL
, HFILL
}},
2180 {&hf_sbas_l1_mt17_z_ga_vel
, {"Z_G,A velocity", "sbas_l1.mt17.z_ga_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_geo_z_velocity
), 0x000001e0, NULL
, HFILL
}},
2181 {&hf_sbas_l1_mt17_t_a
, {"t_almanac", "sbas_l1.mt17.t_a", FT_UINT32
, BASE_CUSTOM
, CF_FUNC(&fmt_time_of_almanac
), 0x0001ffc0, NULL
, HFILL
}},
2184 {&hf_sbas_l1_mt18
, {"MT18", "sbas_l1.mt18", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2185 {&hf_sbas_l1_mt18_nr_igp_bands
, {"Number of IGP Bands", "sbas_l1.mt18.nr_igp_bands", FT_UINT16
, BASE_DEC
, NULL
, 0x03c0, NULL
, HFILL
}},
2186 {&hf_sbas_l1_mt18_igp_band_id
, {"IGP Band ID", "sbas_l1.mt18.igp_band_id", FT_UINT16
, BASE_DEC
, NULL
, 0x003c, NULL
, HFILL
}},
2187 {&hf_sbas_l1_mt18_iodi_k
, {"Issue of Data - Ionosphere (IODI_k)", "sbas_l1.mt18.iodi_k", FT_UINT16
, BASE_DEC
, NULL
, 0x0003, NULL
, HFILL
}},
2188 {&hf_sbas_l1_mt18_igp_mask_180w
, {"IGP Mask 180W / 75S - 85N", "sbas_l1.mt18.igp_mask_180w", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffff000000000, NULL
, HFILL
}},
2189 {&hf_sbas_l1_mt18_igp_mask_175w
, {"IGP Mask 175W / 55S - 55N", "sbas_l1.mt18.igp_mask_175w", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000fffffe000, NULL
, HFILL
}},
2190 {&hf_sbas_l1_mt18_igp_mask_170w
, {"IGP Mask 170W / 75S - 75N", "sbas_l1.mt18.igp_mask_170w", FT_UINT64
, BASE_HEX
, NULL
, 0x1ffffffc00000000, NULL
, HFILL
}},
2191 {&hf_sbas_l1_mt18_igp_mask_165w
, {"IGP Mask 165W / 55S - 55N", "sbas_l1.mt18.igp_mask_165w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000003fffff800, NULL
, HFILL
}},
2192 {&hf_sbas_l1_mt18_igp_mask_160w
, {"IGP Mask 160W / 75S - 75N", "sbas_l1.mt18.igp_mask_160w", FT_UINT64
, BASE_HEX
, NULL
, 0x07ffffff00000000, NULL
, HFILL
}},
2193 {&hf_sbas_l1_mt18_igp_mask_155w
, {"IGP Mask 155W / 55S - 55N", "sbas_l1.mt18.igp_mask_155w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000000fffffe00, NULL
, HFILL
}},
2194 {&hf_sbas_l1_mt18_igp_mask_150w
, {"IGP Mask 150W / 75S - 75N", "sbas_l1.mt18.igp_mask_150w", FT_UINT64
, BASE_HEX
, NULL
, 0x01ffffffc0000000, NULL
, HFILL
}},
2195 {&hf_sbas_l1_mt18_igp_mask_145w
, {"IGP Mask 145W / 55S - 55N", "sbas_l1.mt18.igp_mask_145w", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2196 {&hf_sbas_l1_mt18_igp_mask_140w
, {"IGP Mask 140W / 85S - 75N", "sbas_l1.mt18.igp_mask_i40w", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffff000000000, NULL
, HFILL
}},
2197 {&hf_sbas_l1_mt18_igp_mask_135w
, {"IGP Mask 135W / 55S - 55N", "sbas_l1.mt18.igp_mask_135w", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000fffffe000, NULL
, HFILL
}},
2198 {&hf_sbas_l1_mt18_igp_mask_130w
, {"IGP Mask 130W / 75S - 75N", "sbas_l1.mt18.igp_mask_130w", FT_UINT64
, BASE_HEX
, NULL
, 0x1ffffffc00000000, NULL
, HFILL
}},
2199 {&hf_sbas_l1_mt18_igp_mask_125w
, {"IGP Mask 125W / 55S - 55N", "sbas_l1.mt18.igp_mask_125w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000003fffff800, NULL
, HFILL
}},
2200 {&hf_sbas_l1_mt18_igp_mask_120w
, {"IGP Mask 120W / 75S - 75N", "sbas_l1.mt18.igp_mask_120w", FT_UINT64
, BASE_HEX
, NULL
, 0x07ffffff00000000, NULL
, HFILL
}},
2201 {&hf_sbas_l1_mt18_igp_mask_115w
, {"IGP Mask 115W / 55S - 55N", "sbas_l1.mt18.igp_mask_115w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000000fffffe00, NULL
, HFILL
}},
2202 {&hf_sbas_l1_mt18_igp_mask_110w
, {"IGP Mask 110W / 75S - 75N", "sbas_l1.mt18.igp_mask_110w", FT_UINT64
, BASE_HEX
, NULL
, 0x01ffffffc0000000, NULL
, HFILL
}},
2203 {&hf_sbas_l1_mt18_igp_mask_105w
, {"IGP Mask 105W / 55S - 55N", "sbas_l1.mt18.igp_mask_105w", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2204 {&hf_sbas_l1_mt18_igp_mask_100w
, {"IGP Mask 100W / 75S - 75N", "sbas_l1.mt18.igp_mask_i00w", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2205 {&hf_sbas_l1_mt18_igp_mask_95w
, {"IGP Mask 95W / 55S - 55N", "sbas_l1.mt18.igp_mask_95w", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2206 {&hf_sbas_l1_mt18_igp_mask_90w
, {"IGP Mask 90W / 75S - 85N", "sbas_l1.mt18.igp_mask_90w", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffffc00000000, NULL
, HFILL
}},
2207 {&hf_sbas_l1_mt18_igp_mask_85w
, {"IGP Mask 85W / 55S - 55N", "sbas_l1.mt18.igp_mask_85w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000003fffff800, NULL
, HFILL
}},
2208 {&hf_sbas_l1_mt18_igp_mask_80w
, {"IGP Mask 80W / 75S - 75N", "sbas_l1.mt18.igp_mask_80w", FT_UINT64
, BASE_HEX
, NULL
, 0x07ffffff00000000, NULL
, HFILL
}},
2209 {&hf_sbas_l1_mt18_igp_mask_75w
, {"IGP Mask 75W / 55S - 55N", "sbas_l1.mt18.igp_mask_75w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000000fffffe00, NULL
, HFILL
}},
2210 {&hf_sbas_l1_mt18_igp_mask_70w
, {"IGP Mask 70W / 75S - 75N", "sbas_l1.mt18.igp_mask_70w", FT_UINT64
, BASE_HEX
, NULL
, 0x01ffffffc0000000, NULL
, HFILL
}},
2211 {&hf_sbas_l1_mt18_igp_mask_65w
, {"IGP Mask 65W / 55S - 55N", "sbas_l1.mt18.igp_mask_65w", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2212 {&hf_sbas_l1_mt18_igp_mask_60w
, {"IGP Mask 60W / 75S - 75N", "sbas_l1.mt18.igp_mask_60w", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2213 {&hf_sbas_l1_mt18_igp_mask_55w
, {"IGP Mask 55W / 55S - 55N", "sbas_l1.mt18.igp_mask_55w", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2214 {&hf_sbas_l1_mt18_igp_mask_50w
, {"IGP Mask 50W / 85S - 75N", "sbas_l1.mt18.igp_mask_50w", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffffc00000000, NULL
, HFILL
}},
2215 {&hf_sbas_l1_mt18_igp_mask_45w
, {"IGP Mask 45W / 55S - 55N", "sbas_l1.mt18.igp_mask_45w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000003fffff800, NULL
, HFILL
}},
2216 {&hf_sbas_l1_mt18_igp_mask_40w
, {"IGP Mask 40W / 75S - 75N", "sbas_l1.mt18.igp_mask_40w", FT_UINT64
, BASE_HEX
, NULL
, 0x07ffffff00000000, NULL
, HFILL
}},
2217 {&hf_sbas_l1_mt18_igp_mask_35w
, {"IGP Mask 35W / 55S - 55N", "sbas_l1.mt18.igp_mask_35w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000000fffffe00, NULL
, HFILL
}},
2218 {&hf_sbas_l1_mt18_igp_mask_30w
, {"IGP Mask 30W / 75S - 75N", "sbas_l1.mt18.igp_mask_30w", FT_UINT64
, BASE_HEX
, NULL
, 0x01ffffffc0000000, NULL
, HFILL
}},
2219 {&hf_sbas_l1_mt18_igp_mask_25w
, {"IGP Mask 25W / 55S - 55N", "sbas_l1.mt18.igp_mask_25w", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2220 {&hf_sbas_l1_mt18_igp_mask_20w
, {"IGP Mask 20W / 75S - 75N", "sbas_l1.mt18.igp_mask_20w", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2221 {&hf_sbas_l1_mt18_igp_mask_15w
, {"IGP Mask 15W / 55S - 55N", "sbas_l1.mt18.igp_mask_15w", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2222 {&hf_sbas_l1_mt18_igp_mask_10w
, {"IGP Mask 10W / 75S - 75N", "sbas_l1.mt18.igp_mask_10w", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffff800000000, NULL
, HFILL
}},
2223 {&hf_sbas_l1_mt18_igp_mask_5w
, {"IGP Mask 5W / 55S - 55N", "sbas_l1.mt18.igp_mask_5w", FT_UINT64
, BASE_HEX
, NULL
, 0x00000007fffff000, NULL
, HFILL
}},
2224 {&hf_sbas_l1_mt18_igp_mask_0
, {"IGP Mask 0 / 75S - 85N", "sbas_l1.mt18.igp_mask_0", FT_UINT64
, BASE_HEX
, NULL
, 0x0fffffff00000000, NULL
, HFILL
}},
2225 {&hf_sbas_l1_mt18_igp_mask_5e
, {"IGP Mask 5E / 55S - 55N", "sbas_l1.mt18.igp_mask_5e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000000fffffe00, NULL
, HFILL
}},
2226 {&hf_sbas_l1_mt18_igp_mask_10e
, {"IGP Mask 10E / 75S - 75N", "sbas_l1.mt18.igp_mask_10e", FT_UINT64
, BASE_HEX
, NULL
, 0x01ffffffc0000000, NULL
, HFILL
}},
2227 {&hf_sbas_l1_mt18_igp_mask_15e
, {"IGP Mask 15E / 55S - 55N", "sbas_l1.mt18.igp_mask_15e", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2228 {&hf_sbas_l1_mt18_igp_mask_20e
, {"IGP Mask 20E / 75S - 75N", "sbas_l1.mt18.igp_mask_20e", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2229 {&hf_sbas_l1_mt18_igp_mask_25e
, {"IGP Mask 25E / 55S - 55N", "sbas_l1.mt18.igp_mask_25e", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2230 {&hf_sbas_l1_mt18_igp_mask_30e
, {"IGP Mask 30E / 75S - 75N", "sbas_l1.mt18.igp_mask_30e", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffff800000000, NULL
, HFILL
}},
2231 {&hf_sbas_l1_mt18_igp_mask_35e
, {"IGP Mask 35E / 55S - 55N", "sbas_l1.mt18.igp_mask_35e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000007fffff000, NULL
, HFILL
}},
2232 {&hf_sbas_l1_mt18_igp_mask_40e
, {"IGP Mask 40E / 85S - 75N", "sbas_l1.mt18.igp_mask_40e", FT_UINT64
, BASE_HEX
, NULL
, 0x0fffffff00000000, NULL
, HFILL
}},
2233 {&hf_sbas_l1_mt18_igp_mask_45e
, {"IGP Mask 45E / 55S - 55N", "sbas_l1.mt18.igp_mask_45e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000000fffffe00, NULL
, HFILL
}},
2234 {&hf_sbas_l1_mt18_igp_mask_50e
, {"IGP Mask 50E / 75S - 75N", "sbas_l1.mt18.igp_mask_50e", FT_UINT64
, BASE_HEX
, NULL
, 0x01ffffffc0000000, NULL
, HFILL
}},
2235 {&hf_sbas_l1_mt18_igp_mask_55e
, {"IGP Mask 55E / 55S - 55N", "sbas_l1.mt18.igp_mask_55e", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2236 {&hf_sbas_l1_mt18_igp_mask_60e
, {"IGP Mask 60E / 75S - 75N", "sbas_l1.mt18.igp_mask_60e", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2237 {&hf_sbas_l1_mt18_igp_mask_65e
, {"IGP Mask 65E / 55S - 55N", "sbas_l1.mt18.igp_mask_65e", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2238 {&hf_sbas_l1_mt18_igp_mask_70e
, {"IGP Mask 70E / 75S - 75N", "sbas_l1.mt18.igp_mask_70e", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffff800000000, NULL
, HFILL
}},
2239 {&hf_sbas_l1_mt18_igp_mask_75e
, {"IGP Mask 75E / 55S - 55N", "sbas_l1.mt18.igp_mask_75e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000007fffff000, NULL
, HFILL
}},
2240 {&hf_sbas_l1_mt18_igp_mask_80e
, {"IGP Mask 80E / 75S - 75N", "sbas_l1.mt18.igp_mask_80e", FT_UINT64
, BASE_HEX
, NULL
, 0x0ffffffe00000000, NULL
, HFILL
}},
2241 {&hf_sbas_l1_mt18_igp_mask_85e
, {"IGP Mask 85E / 55S - 55N", "sbas_l1.mt18.igp_mask_85e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000001fffffc00, NULL
, HFILL
}},
2242 {&hf_sbas_l1_mt18_igp_mask_90e
, {"IGP Mask 90E / 75S - 85N", "sbas_l1.mt18.igp_mask_90e", FT_UINT64
, BASE_HEX
, NULL
, 0x03ffffffc0000000, NULL
, HFILL
}},
2243 {&hf_sbas_l1_mt18_igp_mask_95e
, {"IGP Mask 95E / 55S - 55N", "sbas_l1.mt18.igp_mask_95e", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2244 {&hf_sbas_l1_mt18_igp_mask_100e
, {"IGP Mask 100E / 75S - 75N", "sbas_l1.mt18.igp_mask_100e", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2245 {&hf_sbas_l1_mt18_igp_mask_105e
, {"IGP Mask 105E / 55S - 55N", "sbas_l1.mt18.igp_mask_105e", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2246 {&hf_sbas_l1_mt18_igp_mask_110e
, {"IGP Mask 110E / 75S - 75N", "sbas_l1.mt18.igp_mask_110e", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffff800000000, NULL
, HFILL
}},
2247 {&hf_sbas_l1_mt18_igp_mask_115e
, {"IGP Mask 115E / 55S - 55N", "sbas_l1.mt18.igp_mask_115e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000007fffff000, NULL
, HFILL
}},
2248 {&hf_sbas_l1_mt18_igp_mask_120e
, {"IGP Mask 120E / 75S - 75N", "sbas_l1.mt18.igp_mask_120e", FT_UINT64
, BASE_HEX
, NULL
, 0x0ffffffe00000000, NULL
, HFILL
}},
2249 {&hf_sbas_l1_mt18_igp_mask_125e
, {"IGP Mask 125E / 55S - 55N", "sbas_l1.mt18.igp_mask_125e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000001fffffc00, NULL
, HFILL
}},
2250 {&hf_sbas_l1_mt18_igp_mask_130e
, {"IGP Mask 130E / 85S - 75N", "sbas_l1.mt18.igp_mask_130e", FT_UINT64
, BASE_HEX
, NULL
, 0x03ffffffc0000000, NULL
, HFILL
}},
2251 {&hf_sbas_l1_mt18_igp_mask_135e
, {"IGP Mask 135E / 55S - 55N", "sbas_l1.mt18.igp_mask_135e", FT_UINT64
, BASE_HEX
, NULL
, 0x000000003fffff80, NULL
, HFILL
}},
2252 {&hf_sbas_l1_mt18_igp_mask_140e
, {"IGP Mask 140E / 75S - 75N", "sbas_l1.mt18.igp_mask_140e", FT_UINT64
, BASE_HEX
, NULL
, 0xffffffe000000000, NULL
, HFILL
}},
2253 {&hf_sbas_l1_mt18_igp_mask_145e
, {"IGP Mask 145E / 55S - 55N", "sbas_l1.mt18.igp_mask_145e", FT_UINT64
, BASE_HEX
, NULL
, 0x0000001fffffc000, NULL
, HFILL
}},
2254 {&hf_sbas_l1_mt18_igp_mask_150e
, {"IGP Mask 150E / 75S - 75N", "sbas_l1.mt18.igp_mask_150e", FT_UINT64
, BASE_HEX
, NULL
, 0x3ffffff800000000, NULL
, HFILL
}},
2255 {&hf_sbas_l1_mt18_igp_mask_155e
, {"IGP Mask 155E / 55S - 55N", "sbas_l1.mt18.igp_mask_155e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000007fffff000, NULL
, HFILL
}},
2256 {&hf_sbas_l1_mt18_igp_mask_160e
, {"IGP Mask 160E / 75S - 75N", "sbas_l1.mt18.igp_mask_160e", FT_UINT64
, BASE_HEX
, NULL
, 0x0ffffffe00000000, NULL
, HFILL
}},
2257 {&hf_sbas_l1_mt18_igp_mask_165e
, {"IGP Mask 165E / 55S - 55N", "sbas_l1.mt18.igp_mask_165e", FT_UINT64
, BASE_HEX
, NULL
, 0x00000001fffffc00, NULL
, HFILL
}},
2258 {&hf_sbas_l1_mt18_igp_mask_170e
, {"IGP Mask 170E / 75S - 75N", "sbas_l1.mt18.igp_mask_170e", FT_UINT64
, BASE_HEX
, NULL
, 0x03ffffff80000000, NULL
, HFILL
}},
2259 {&hf_sbas_l1_mt18_igp_mask_175e
, {"IGP Mask 175E / 55S - 55N", "sbas_l1.mt18.igp_mask_175e", FT_UINT64
, BASE_HEX
, NULL
, 0x000000007fffff00, NULL
, HFILL
}},
2260 {&hf_sbas_l1_mt18_igp_mask_60n_1
, {"IGP Mask 60N / 180W - 5W", "sbas_l1.mt18.igp_mask_60n_1", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffffff0000000, NULL
, HFILL
}},
2261 {&hf_sbas_l1_mt18_igp_mask_60n_2
, {"IGP Mask 60N / 5E - 175E", "sbas_l1.mt18.igp_mask_60n_2", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000fffffffff, NULL
, HFILL
}},
2262 {&hf_sbas_l1_mt18_igp_mask_65n
, {"IGP Mask 65N / 180W - 170E", "sbas_l1.mt18.igp_mask_65n", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffffff0000000, NULL
, HFILL
}},
2263 {&hf_sbas_l1_mt18_igp_mask_70n
, {"IGP Mask 70N / 180W - 170E", "sbas_l1.mt18.igp_mask_70n", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000fffffffff, NULL
, HFILL
}},
2264 {&hf_sbas_l1_mt18_igp_mask_75n
, {"IGP Mask 75N / 180W - 170E", "sbas_l1.mt18.igp_mask_75n", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffffff0000000, NULL
, HFILL
}},
2265 {&hf_sbas_l1_mt18_igp_mask_85n
, {"IGP Mask 85N / 180W - 150E", "sbas_l1.mt18.igp_mask_85n", FT_UINT64
, BASE_HEX
, NULL
, 0x000000000fff0000, NULL
, HFILL
}},
2266 {&hf_sbas_l1_mt18_igp_mask_60s_1
, {"IGP Mask 60S / 180W - 5W", "sbas_l1.mt18.igp_mask_60s_1", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffffff0000000, NULL
, HFILL
}},
2267 {&hf_sbas_l1_mt18_igp_mask_60s_2
, {"IGP Mask 60S / 5E - 175E", "sbas_l1.mt18.igp_mask_60s_2", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000fffffffff, NULL
, HFILL
}},
2268 {&hf_sbas_l1_mt18_igp_mask_65s
, {"IGP Mask 65S / 180W - 170E", "sbas_l1.mt18.igp_mask_65s", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffffff0000000, NULL
, HFILL
}},
2269 {&hf_sbas_l1_mt18_igp_mask_70s
, {"IGP Mask 70S / 180W - 170E", "sbas_l1.mt18.igp_mask_70s", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000fffffffff, NULL
, HFILL
}},
2270 {&hf_sbas_l1_mt18_igp_mask_75s
, {"IGP Mask 75S / 180W - 170E", "sbas_l1.mt18.igp_mask_75s", FT_UINT64
, BASE_HEX
, NULL
, 0xfffffffff0000000, NULL
, HFILL
}},
2271 {&hf_sbas_l1_mt18_igp_mask_85s
, {"IGP Mask 85S / 170W - 160E", "sbas_l1.mt18.igp_mask_85s", FT_UINT64
, BASE_HEX
, NULL
, 0x000000000fff0000, NULL
, HFILL
}},
2272 {&hf_sbas_l1_mt18_spare
, {"Spare", "sbas_l1.mt18.spare", FT_UINT8
, BASE_HEX
, NULL
, 0x40, NULL
, HFILL
}},
2275 {&hf_sbas_l1_mt24
, {"MT24", "sbas_l1.mt24", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2276 {&hf_sbas_l1_mt24_fc_i1
, {"Fast Correction i1 (FC_i1)", "sbas_l1.mt24.fc_i1", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2277 {&hf_sbas_l1_mt24_fc_i2
, {"Fast Correction i2 (FC_i2)", "sbas_l1.mt24.fc_i2", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2278 {&hf_sbas_l1_mt24_fc_i3
, {"Fast Correction i3 (FC_i3)", "sbas_l1.mt24.fc_i3", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2279 {&hf_sbas_l1_mt24_fc_i4
, {"Fast Correction i4 (FC_i4)", "sbas_l1.mt24.fc_i4", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2280 {&hf_sbas_l1_mt24_fc_i5
, {"Fast Correction i5 (FC_i5)", "sbas_l1.mt24.fc_i5", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03ffc000, NULL
, HFILL
}},
2281 {&hf_sbas_l1_mt24_fc_i6
, {"Fast Correction i6 (FC_i6)", "sbas_l1.mt24.fc_i6", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ffc0000, NULL
, HFILL
}},
2282 {&hf_sbas_l1_mt24_udrei_i1
, {"UDREI_i1", "sbas_l1.mt24.udrei_i1", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2283 {&hf_sbas_l1_mt24_udrei_i2
, {"UDREI_i2", "sbas_l1.mt24.udrei_i2", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2284 {&hf_sbas_l1_mt24_udrei_i3
, {"UDREI_i3", "sbas_l1.mt24.udrei_i3", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2285 {&hf_sbas_l1_mt24_udrei_i4
, {"UDREI_i4", "sbas_l1.mt24.udrei_i4", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2286 {&hf_sbas_l1_mt24_udrei_i5
, {"UDREI_i5", "sbas_l1.mt24.udrei_i5", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2287 {&hf_sbas_l1_mt24_udrei_i6
, {"UDREI_i6", "sbas_l1.mt24.udrei_i6", FT_UINT16
, BASE_DEC
, VALS(UDREI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2288 {&hf_sbas_l1_mt24_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt24.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
2289 {&hf_sbas_l1_mt24_fc_type
, {"Fast Correction Type ID", "sbas_l1.mt24.fc_type", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
2290 {&hf_sbas_l1_mt24_iodf_j
, {"Issue of Data - Fast Correction (IODF_j)", "sbas_l1.mt24.iodf_j", FT_UINT8
, BASE_DEC
, NULL
, 0x30, NULL
, HFILL
}},
2291 {&hf_sbas_l1_mt24_spare
, {"Spare", "sbas_l1.mt24.spare", FT_UINT8
, BASE_DEC
, NULL
, 0x0f, NULL
, HFILL
}},
2292 {&hf_sbas_l1_mt24_velocity_code
, {"Velocity Code", "sbas_l1.mt24.velocity_code", FT_UINT8
, BASE_DEC
, NULL
, 0x80, NULL
, HFILL
}},
2293 {&hf_sbas_l1_mt24_v0_prn_mask_nr_1
, {"PRN Mask Number", "sbas_l1.mt24.v0.prn_mask_nr_1", FT_UINT8
, BASE_DEC
, NULL
, 0x7e, NULL
, HFILL
}},
2294 {&hf_sbas_l1_mt24_v0_iod_1
, {"Issue of Data (IOD_i)", "sbas_l1.mt24.v0.iod_1", FT_UINT16
, BASE_DEC
, NULL
, 0x01fe, NULL
, HFILL
}},
2295 {&hf_sbas_l1_mt24_v0_delta_x_1
, {"dx_i", "sbas_l1.mt24.v0.dx_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ff, NULL
, HFILL
}},
2296 {&hf_sbas_l1_mt24_v0_delta_y_1
, {"dy_i", "sbas_l1.mt24.v0.dy_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0xff80, NULL
, HFILL
}},
2297 {&hf_sbas_l1_mt24_v0_delta_z_1
, {"dz_i", "sbas_l1.mt24.v0.dz_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x7fc0, NULL
, HFILL
}},
2298 {&hf_sbas_l1_mt24_v0_delta_a_1_f0
, {"da_i_f0", "sbas_l1.mt24.v0.da_f0_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x3ff0, NULL
, HFILL
}},
2299 {&hf_sbas_l1_mt24_v0_prn_mask_nr_2
, {"PRN Mask Number", "sbas_l1.mt24.v0.prn_mask_nr_2", FT_UINT16
, BASE_DEC
, NULL
, 0x0fc0, NULL
, HFILL
}},
2300 {&hf_sbas_l1_mt24_v0_iod_2
, {"Issue of Data (IOD_i)", "sbas_l1.mt24.v0.iod_2", FT_UINT16
, BASE_DEC
, NULL
, 0x3fc0, NULL
, HFILL
}},
2301 {&hf_sbas_l1_mt24_v0_delta_x_2
, {"dx_i", "sbas_l1.mt24.v0.dx_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3fe0, NULL
, HFILL
}},
2302 {&hf_sbas_l1_mt24_v0_delta_y_2
, {"dy_i", "sbas_l1.mt24.v0.dy_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x1ff0, NULL
, HFILL
}},
2303 {&hf_sbas_l1_mt24_v0_delta_z_2
, {"dz_i", "sbas_l1.mt24.v0.dz_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x0ff8, NULL
, HFILL
}},
2304 {&hf_sbas_l1_mt24_v0_delta_a_2_f0
, {"da_i_f0", "sbas_l1.mt24.v0.da_f0_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x07fe, NULL
, HFILL
}},
2305 {&hf_sbas_l1_mt24_v0_iodp
, {"Issue of Data PRN (IODP)", "sbas_l1.mt24.v0.iodp", FT_UINT16
, BASE_DEC
, NULL
, 0x0180, NULL
, HFILL
}},
2306 {&hf_sbas_l1_mt24_v0_spare
, {"Spare", "sbas_l1.mt24.v0.spare", FT_UINT8
, BASE_DEC
, NULL
, 0x40, NULL
, HFILL
}},
2307 {&hf_sbas_l1_mt24_v1_prn_mask_nr
, {"PRN Mask Number", "sbas_l1.mt24.v1.prn_mask_nr", FT_UINT8
, BASE_DEC
, NULL
, 0x7e, NULL
, HFILL
}},
2308 {&hf_sbas_l1_mt24_v1_iod
, {"Issue of Data (IOD_i)", "sbas_l1.mt24.v1.iod", FT_UINT16
, BASE_DEC
, NULL
, 0x01fe, NULL
, HFILL
}},
2309 {&hf_sbas_l1_mt24_v1_delta_x
, {"dx_i", "sbas_l1.mt24.v1.dx", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ffc000, NULL
, HFILL
}},
2310 {&hf_sbas_l1_mt24_v1_delta_y
, {"dy_i", "sbas_l1.mt24.v1.dy", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ff80000, NULL
, HFILL
}},
2311 {&hf_sbas_l1_mt24_v1_delta_z
, {"dz_i", "sbas_l1.mt24.v1.dz", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x07ff0000, NULL
, HFILL
}},
2312 {&hf_sbas_l1_mt24_v1_delta_a_f0
, {"da_i_f0", "sbas_l1.mt24.v1.da_f0", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0xffe00000, NULL
, HFILL
}},
2313 {&hf_sbas_l1_mt24_v1_delta_x_vel
, {"dx_vel_i", "sbas_l1.mt24.v1.dx_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x1fe00000, NULL
, HFILL
}},
2314 {&hf_sbas_l1_mt24_v1_delta_y_vel
, {"dy_vel_i", "sbas_l1.mt24.v1.dy_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x1fe00000, NULL
, HFILL
}},
2315 {&hf_sbas_l1_mt24_v1_delta_z_vel
, {"dz_vel_i", "sbas_l1.mt24.v1.dz_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x1fe00000, NULL
, HFILL
}},
2316 {&hf_sbas_l1_mt24_v1_delta_a_f1
, {"da_i_f1", "sbas_l1.mt24.v1.da_f1", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clk_rate_correction
), 0x1fe00000, NULL
, HFILL
}},
2317 {&hf_sbas_l1_mt24_v1_t_lt
, {"t_i_lt", "sbas_l1.mt24.v1.t_lt", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_time_of_applicability
),0x1fff, NULL
, HFILL
}},
2318 {&hf_sbas_l1_mt24_v1_iodp
, {"Issue of Data PRN (IODP)", "sbas_l1.mt24.v1.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
2321 {&hf_sbas_l1_mt25
, {"MT25", "sbas_l1.mt25", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2322 {&hf_sbas_l1_mt25_h1_velocity_code
, {"Velocity Code", "sbas_l1.mt25.h1.velocity_code", FT_UINT8
, BASE_DEC
, NULL
, 0x02, NULL
, HFILL
}},
2323 {&hf_sbas_l1_mt25_h1_v0_prn_mask_nr_1
, {"PRN Mask Number", "sbas_l1.mt25.h1.v0.prn_mask_nr_1", FT_UINT16
, BASE_DEC
, NULL
, 0x01f8, NULL
, HFILL
}},
2324 {&hf_sbas_l1_mt25_h1_v0_iod_1
, {"Issue of Data (IOD_i)", "sbas_l1.mt25.h1.v0.iod_1", FT_UINT16
, BASE_DEC
, NULL
, 0x07f8, NULL
, HFILL
}},
2325 {&hf_sbas_l1_mt25_h1_v0_delta_x_1
, {"dx_i", "sbas_l1.mt25.h1.v0.dx_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x07fc, NULL
, HFILL
}},
2326 {&hf_sbas_l1_mt25_h1_v0_delta_y_1
, {"dy_i", "sbas_l1.mt25.h1.v0.dy_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03fe, NULL
, HFILL
}},
2327 {&hf_sbas_l1_mt25_h1_v0_delta_z_1
, {"dz_i", "sbas_l1.mt25.h1.v0.dz_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ff, NULL
, HFILL
}},
2328 {&hf_sbas_l1_mt25_h1_v0_delta_a_1_f0
, {"da_i_f0", "sbas_l1.mt25.h1.v0.da_f0_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0xffc0, NULL
, HFILL
}},
2329 {&hf_sbas_l1_mt25_h1_v0_prn_mask_nr_2
, {"PRN Mask Number", "sbas_l1.mt25.h1.v0.prn_mask_nr_2", FT_UINT8
, BASE_DEC
, NULL
, 0x3f, NULL
, HFILL
}},
2330 {&hf_sbas_l1_mt25_h1_v0_iod_2
, {"Issue of Data (IOD_i)", "sbas_l1.mt25.h1.v0.iod_2", FT_UINT8
, BASE_DEC
, NULL
, 0xff, NULL
, HFILL
}},
2331 {&hf_sbas_l1_mt25_h1_v0_delta_x_2
, {"dx_i", "sbas_l1.mt25.h1.v0.dx_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0xff80, NULL
, HFILL
}},
2332 {&hf_sbas_l1_mt25_h1_v0_delta_y_2
, {"dy_i", "sbas_l1.mt25.h1.v0.dy_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x7fc0, NULL
, HFILL
}},
2333 {&hf_sbas_l1_mt25_h1_v0_delta_z_2
, {"dz_i", "sbas_l1.mt25.h1.v0.dz_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3fe0, NULL
, HFILL
}},
2334 {&hf_sbas_l1_mt25_h1_v0_delta_a_2_f0
, {"da_i_f0", "sbas_l1.mt25.h1.v0.da_f0_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x1ff8, NULL
, HFILL
}},
2335 {&hf_sbas_l1_mt25_h1_v0_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt25.h1.v0.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0x06, NULL
, HFILL
}},
2336 {&hf_sbas_l1_mt25_h1_v0_spare
, {"Spare", "sbas_l1.mt25.h1.v0.spare", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2337 {&hf_sbas_l1_mt25_h1_v1_prn_mask_nr
, {"PRN Mask Number", "sbas_l1.mt25.h1.v1.prn_mask_nr_1", FT_UINT16
, BASE_DEC
, NULL
, 0x01f8, NULL
, HFILL
}},
2338 {&hf_sbas_l1_mt25_h1_v1_iod
, {"Issue of Data (IOD_i)", "sbas_l1.mt25.h1.v1.iod", FT_UINT16
, BASE_DEC
, NULL
, 0x07f8, NULL
, HFILL
}},
2339 {&hf_sbas_l1_mt25_h1_v1_delta_x
, {"dx_i", "sbas_l1.mt25.h1.v1.dx", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x07ff0000, NULL
, HFILL
}},
2340 {&hf_sbas_l1_mt25_h1_v1_delta_y
, {"dy_i", "sbas_l1.mt25.h1.v1.dy", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0xffe00000, NULL
, HFILL
}},
2341 {&hf_sbas_l1_mt25_h1_v1_delta_z
, {"dz_i", "sbas_l1.mt25.h1.v1.dz", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x1ffc0000, NULL
, HFILL
}},
2342 {&hf_sbas_l1_mt25_h1_v1_delta_a_f0
, {"da_i_f0", "sbas_l1.mt25.h1.v1.da_f0", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x03ff8000, NULL
, HFILL
}},
2343 {&hf_sbas_l1_mt25_h1_v1_delta_x_vel
, {"dx_vel_i", "sbas_l1.mt25.h1.v1.dx_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x7f800000, NULL
, HFILL
}},
2344 {&hf_sbas_l1_mt25_h1_v1_delta_y_vel
, {"dy_vel_i", "sbas_l1.mt25.h1.v1.dy_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x7f800000, NULL
, HFILL
}},
2345 {&hf_sbas_l1_mt25_h1_v1_delta_z_vel
, {"dz_vel_i", "sbas_l1.mt25.h1.v1.dz_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x7f800000, NULL
, HFILL
}},
2346 {&hf_sbas_l1_mt25_h1_v1_delta_a_f1
, {"da_i_f1", "sbas_l1.mt25.h1.v1.da_f1", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clk_rate_correction
), 0x7f800000, NULL
, HFILL
}},
2347 {&hf_sbas_l1_mt25_h1_v1_t_lt
, {"t_i_lt", "sbas_l1.mt25.h1.v1.t_lt", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_time_of_applicability
),0x7ffc, NULL
, HFILL
}},
2348 {&hf_sbas_l1_mt25_h1_v1_iodp
, {"Issue of Data - PRN (IODP)", "sbas_l1.mt25.h1.v1.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0x03, NULL
, HFILL
}},
2349 {&hf_sbas_l1_mt25_h2_velocity_code
, {"Velocity Code", "sbas_l1.mt25.h2.velocity_code", FT_UINT8
, BASE_DEC
, NULL
, 0x80, NULL
, HFILL
}},
2350 {&hf_sbas_l1_mt25_h2_v0_prn_mask_nr_1
, {"PRN Mask Number", "sbas_l1.mt25.h2.v0.prn_mask_nr_1", FT_UINT8
, BASE_DEC
, NULL
, 0x7e, NULL
, HFILL
}},
2351 {&hf_sbas_l1_mt25_h2_v0_iod_1
, {"Issue of Data (IOD_i)", "sbas_l1.mt25.h2.v0.iod_1", FT_UINT16
, BASE_DEC
, NULL
, 0x01fe, NULL
, HFILL
}},
2352 {&hf_sbas_l1_mt25_h2_v0_delta_x_1
, {"dx_i", "sbas_l1.mt25.h2.v0.dx_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ff, NULL
, HFILL
}},
2353 {&hf_sbas_l1_mt25_h2_v0_delta_y_1
, {"dy_i", "sbas_l1.mt25.h2.v0.dy_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0xff80, NULL
, HFILL
}},
2354 {&hf_sbas_l1_mt25_h2_v0_delta_z_1
, {"dz_i", "sbas_l1.mt25.h2.v0.dz_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x7fc0, NULL
, HFILL
}},
2355 {&hf_sbas_l1_mt25_h2_v0_delta_a_1_f0
, {"da_i_f0", "sbas_l1.mt25.h2.v0.da_f0_1", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x3ff0, NULL
, HFILL
}},
2356 {&hf_sbas_l1_mt25_h2_v0_prn_mask_nr_2
, {"PRN Mask Number", "sbas_l1.mt25.h2.v0.prn_mask_nr_2", FT_UINT16
, BASE_DEC
, NULL
, 0x0fc0, NULL
, HFILL
}},
2357 {&hf_sbas_l1_mt25_h2_v0_iod_2
, {"Issue of Data (IOD_i)", "sbas_l1.mt25.h2.v0.iod_2", FT_UINT16
, BASE_DEC
, NULL
, 0x3fc0, NULL
, HFILL
}},
2358 {&hf_sbas_l1_mt25_h2_v0_delta_x_2
, {"dx_i", "sbas_l1.mt25.h2.v0.dx_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3fe0, NULL
, HFILL
}},
2359 {&hf_sbas_l1_mt25_h2_v0_delta_y_2
, {"dy_i", "sbas_l1.mt25.h2.v0.dy_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x1ff0, NULL
, HFILL
}},
2360 {&hf_sbas_l1_mt25_h2_v0_delta_z_2
, {"dz_i", "sbas_l1.mt25.h2.v0.dz_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x0ff8, NULL
, HFILL
}},
2361 {&hf_sbas_l1_mt25_h2_v0_delta_a_2_f0
, {"da_i_f0", "sbas_l1.mt25.h2.v0.da_f0_2", FT_INT16
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0x07fe, NULL
, HFILL
}},
2362 {&hf_sbas_l1_mt25_h2_v0_iodp
, {"Issue of Data PRN (IODP)", "sbas_l1.mt25.h2.v0.iodp", FT_UINT16
, BASE_DEC
, NULL
, 0x0180, NULL
, HFILL
}},
2363 {&hf_sbas_l1_mt25_h2_v0_spare
, {"Spare", "sbas_l1.mt25.h2.v0.spare", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2364 {&hf_sbas_l1_mt25_h2_v1_prn_mask_nr
, {"PRN Mask Number", "sbas_l1.mt25.h2.v1.prn_mask_nr", FT_UINT8
, BASE_DEC
, NULL
, 0x7e, NULL
, HFILL
}},
2365 {&hf_sbas_l1_mt25_h2_v1_iod
, {"Issue of Data (IOD_i)", "sbas_l1.mt25.h2.v1.iod", FT_UINT16
, BASE_DEC
, NULL
, 0x01fe, NULL
, HFILL
}},
2366 {&hf_sbas_l1_mt25_h2_v1_delta_x
, {"dx_i", "sbas_l1.mt25.h2.v1.dx", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ffc000, NULL
, HFILL
}},
2367 {&hf_sbas_l1_mt25_h2_v1_delta_y
, {"dy_i", "sbas_l1.mt25.h2.v1.dy", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3ff80000, NULL
, HFILL
}},
2368 {&hf_sbas_l1_mt25_h2_v1_delta_z
, {"dz_i", "sbas_l1.mt25.h2.v1.dz", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x07ff0000, NULL
, HFILL
}},
2369 {&hf_sbas_l1_mt25_h2_v1_delta_a_f0
, {"da_i_f0", "sbas_l1.mt25.h2.v1.da_f0", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clock_correction
), 0xffe00000, NULL
, HFILL
}},
2370 {&hf_sbas_l1_mt25_h2_v1_delta_x_vel
, {"dx_vel_i", "sbas_l1.mt25.h2.v1.dx_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x1fe00000, NULL
, HFILL
}},
2371 {&hf_sbas_l1_mt25_h2_v1_delta_y_vel
, {"dy_vel_i", "sbas_l1.mt25.h2.v1.dy_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x1fe00000, NULL
, HFILL
}},
2372 {&hf_sbas_l1_mt25_h2_v1_delta_z_vel
, {"dz_vel_i", "sbas_l1.mt25.h2.v1.dz_vel", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_velo_correction
), 0x1fe00000, NULL
, HFILL
}},
2373 {&hf_sbas_l1_mt25_h2_v1_delta_a_f1
, {"da_i_f1", "sbas_l1.mt25.h2.v1.da_f1", FT_INT32
, BASE_CUSTOM
, CF_FUNC(&fmt_clk_rate_correction
), 0x1fe00000, NULL
, HFILL
}},
2374 {&hf_sbas_l1_mt25_h2_v1_t_lt
, {"t_i_lt", "sbas_l1.mt25.h2.v1.t_lt", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_time_of_applicability
),0x1fff, NULL
, HFILL
}},
2375 {&hf_sbas_l1_mt25_h2_v1_iodp
, {"Issue of Data PRN (IODP)", "sbas_l1.mt25.h2.v1.iodp", FT_UINT8
, BASE_DEC
, NULL
, 0xc0, NULL
, HFILL
}},
2378 {&hf_sbas_l1_mt26
, {"MT26", "sbas_l1.mt26", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2379 {&hf_sbas_l1_mt26_igp_band_id
, {"IGP Band Identifier", "sbas_l1.mt26.igp_band_id", FT_UINT16
, BASE_DEC
, NULL
, 0x03c0, NULL
, HFILL
}},
2380 {&hf_sbas_l1_mt26_igp_block_id
, {"IGP Block Identifier", "sbas_l1.mt26.igp_block_id", FT_UINT16
, BASE_DEC
, NULL
, 0x3c, NULL
, HFILL
}},
2381 {&hf_sbas_l1_mt26_igp_vertical_delay_est_1
, {"IGP Vertical Delay Estimate 1", "sbas_l1.mt26.igp_vertical_delay_est_1", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03fe, NULL
, HFILL
}},
2382 {&hf_sbas_l1_mt26_givei_1
, {"Grid Ionospheric Vertical Error Indicator 1 (GIVEI_1)", "sbas_l1.mt26.givei_1", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x01e0, NULL
, HFILL
}},
2383 {&hf_sbas_l1_mt26_igp_vertical_delay_est_2
, {"IGP Vertical Delay Estimate 2", "sbas_l1.mt26.igp_vertical_delay_est_2", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x1ff0, NULL
, HFILL
}},
2384 {&hf_sbas_l1_mt26_givei_2
, {"Grid Ionospheric Vertical Error Indicator 2 (GIVEI_2)", "sbas_l1.mt26.givei_2", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x0f00, NULL
, HFILL
}},
2385 {&hf_sbas_l1_mt26_igp_vertical_delay_est_3
, {"IGP Vertical Delay Estimate 3", "sbas_l1.mt26.igp_vertical_delay_est_3", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0xff80, NULL
, HFILL
}},
2386 {&hf_sbas_l1_mt26_givei_3
, {"Grid Ionospheric Vertical Error Indicator 3 (GIVEI_3)", "sbas_l1.mt26.givei_3", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x7800, NULL
, HFILL
}},
2387 {&hf_sbas_l1_mt26_igp_vertical_delay_est_4
, {"IGP Vertical Delay Estimate 4", "sbas_l1.mt26.igp_vertical_delay_est_4", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x07fc, NULL
, HFILL
}},
2388 {&hf_sbas_l1_mt26_givei_4
, {"Grid Ionospheric Vertical Error Indicator 4 (GIVEI_4)", "sbas_l1.mt26.givei_4", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2389 {&hf_sbas_l1_mt26_igp_vertical_delay_est_5
, {"IGP Vertical Delay Estimate 5", "sbas_l1.mt26.igp_vertical_delay_est_5", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3fe0, NULL
, HFILL
}},
2390 {&hf_sbas_l1_mt26_givei_5
, {"Grid Ionospheric Vertical Error Indicator 5 (GIVEI_5)", "sbas_l1.mt26.givei_5", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x1e00, NULL
, HFILL
}},
2391 {&hf_sbas_l1_mt26_igp_vertical_delay_est_6
, {"IGP Vertical Delay Estimate 6", "sbas_l1.mt26.igp_vertical_delay_est_6", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ff, NULL
, HFILL
}},
2392 {&hf_sbas_l1_mt26_givei_6
, {"Grid Ionospheric Vertical Error Indicator 6 (GIVEI_6)", "sbas_l1.mt26.givei_6", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0xf000, NULL
, HFILL
}},
2393 {&hf_sbas_l1_mt26_igp_vertical_delay_est_7
, {"IGP Vertical Delay Estimate 7", "sbas_l1.mt26.igp_vertical_delay_est_7", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x0ff8, NULL
, HFILL
}},
2394 {&hf_sbas_l1_mt26_givei_7
, {"Grid Ionospheric Vertical Error Indicator 7 (GIVEI_7)", "sbas_l1.mt26.givei_7", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x0780, NULL
, HFILL
}},
2395 {&hf_sbas_l1_mt26_igp_vertical_delay_est_8
, {"IGP Vertical Delay Estimate 8", "sbas_l1.mt26.igp_vertical_delay_est_8", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x7fc0, NULL
, HFILL
}},
2396 {&hf_sbas_l1_mt26_givei_8
, {"Grid Ionospheric Vertical Error Indicator 8 (GIVEI_8)", "sbas_l1.mt26.givei_8", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x3c00, NULL
, HFILL
}},
2397 {&hf_sbas_l1_mt26_igp_vertical_delay_est_9
, {"IGP Vertical Delay Estimate 9", "sbas_l1.mt26.igp_vertical_delay_est_9", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x03fe, NULL
, HFILL
}},
2398 {&hf_sbas_l1_mt26_givei_9
, {"Grid Ionospheric Vertical Error Indicator 9 (GIVEI_9)", "sbas_l1.mt26.givei_9", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x01e0, NULL
, HFILL
}},
2399 {&hf_sbas_l1_mt26_igp_vertical_delay_est_10
, {"IGP Vertical Delay Estimate 10", "sbas_l1.mt26.igp_vertical_delay_est_10", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x1ff0, NULL
, HFILL
}},
2400 {&hf_sbas_l1_mt26_givei_10
, {"Grid Ionospheric Vertical Error Indicator 10 (GIVEI_10)", "sbas_l1.mt26.givei_10", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x0f00, NULL
, HFILL
}},
2401 {&hf_sbas_l1_mt26_igp_vertical_delay_est_11
, {"IGP Vertical Delay Estimate 11", "sbas_l1.mt26.igp_vertical_delay_est_11", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0xff80, NULL
, HFILL
}},
2402 {&hf_sbas_l1_mt26_givei_11
, {"Grid Ionospheric Vertical Error Indicator 11 (GIVEI_11)", "sbas_l1.mt26.givei_11", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x7800, NULL
, HFILL
}},
2403 {&hf_sbas_l1_mt26_igp_vertical_delay_est_12
, {"IGP Vertical Delay Estimate 12", "sbas_l1.mt26.igp_vertical_delay_est_12", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x07fc, NULL
, HFILL
}},
2404 {&hf_sbas_l1_mt26_givei_12
, {"Grid Ionospheric Vertical Error Indicator 12 (GIVEI_12)", "sbas_l1.mt26.givei_12", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x03c0, NULL
, HFILL
}},
2405 {&hf_sbas_l1_mt26_igp_vertical_delay_est_13
, {"IGP Vertical Delay Estimate 13", "sbas_l1.mt26.igp_vertical_delay_est_13", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x3fe0, NULL
, HFILL
}},
2406 {&hf_sbas_l1_mt26_givei_13
, {"Grid Ionospheric Vertical Error Indicator 13 (GIVEI_13)", "sbas_l1.mt26.givei_13", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x1e00, NULL
, HFILL
}},
2407 {&hf_sbas_l1_mt26_igp_vertical_delay_est_14
, {"IGP Vertical Delay Estimate 14", "sbas_l1.mt26.igp_vertical_delay_est_14", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x01ff, NULL
, HFILL
}},
2408 {&hf_sbas_l1_mt26_givei_14
, {"Grid Ionospheric Vertical Error Indicator 14 (GIVEI_14)", "sbas_l1.mt26.givei_14", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0xf000, NULL
, HFILL
}},
2409 {&hf_sbas_l1_mt26_igp_vertical_delay_est_15
, {"IGP Vertical Delay Estimate 15", "sbas_l1.mt26.igp_vertical_delay_est_15", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_correction_125m
), 0x0ff8, NULL
, HFILL
}},
2410 {&hf_sbas_l1_mt26_givei_15
, {"Grid Ionospheric Vertical Error Indicator 15 (GIVEI_15)", "sbas_l1.mt26.givei_15", FT_UINT16
, BASE_DEC
, VALS(GIVEI_EVALUATION
), 0x0780, NULL
, HFILL
}},
2411 {&hf_sbas_l1_mt26_iodi_k
, {"Issue of Data - IGP (IODI_k)", "sbas_l1.mt26.iodi_k", FT_UINT8
, BASE_DEC
, NULL
, 0x60, NULL
, HFILL
}},
2412 {&hf_sbas_l1_mt26_spare
, {"Spare", "sbas_l1.mt26.spare", FT_UINT16
, BASE_DEC
, NULL
, 0x1fc0, NULL
, HFILL
}},
2415 {&hf_sbas_l1_mt27
, {"MT27", "sbas_l1.mt27", FT_NONE
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
2416 {&hf_sbas_l1_mt27_iods
, {"Issue of Data, service (IODS)", "sbas_l1.mt27.iods", FT_UINT16
, BASE_DEC
, NULL
, 0x0380, NULL
, HFILL
}},
2417 {&hf_sbas_l1_mt27_num_svc_msgs
, {"Number of Service Messages", "sbas_l1.mt27.num_svc_msgs", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_num_svc_msg
), 0x7000, NULL
, HFILL
}},
2418 {&hf_sbas_l1_mt27_svc_msg_num
, {"Service Message Number", "sbas_l1.mt27.svc_msg_num", FT_UINT16
, BASE_CUSTOM
, CF_FUNC(&fmt_num_svc_msg
), 0x0e00, NULL
, HFILL
}},
2419 {&hf_sbas_l1_mt27_num_regions
, {"Number of Regions", "sbas_l1.mt27.num_regions", FT_UINT16
, BASE_DEC
, NULL
, 0x01c0, NULL
, HFILL
}},
2420 {&hf_sbas_l1_mt27_prio_code
, {"Priority Code", "sbas_l1.mt27.prio_code", FT_UINT16
, BASE_DEC
, NULL
, 0x0030, NULL
, HFILL
}},
2421 {&hf_sbas_l1_mt27_dudre_in
, {UTF8_DELTA
"UDRE indicator-inside", "sbas_l1.mt27.dudre_in", FT_UINT16
, BASE_DEC
, VALS(DELTA_UDRE_INDICATOR
), 0x000f, NULL
, HFILL
}},
2422 {&hf_sbas_l1_mt27_dudre_out
, {UTF8_DELTA
"UDRE indicator-outside", "sbas_l1.mt27.dudre_out", FT_UINT16
, BASE_DEC
, VALS(DELTA_UDRE_INDICATOR
), 0xf000, NULL
, HFILL
}},
2423 {&hf_sbas_l1_mt27_region
[0], {"Region 1", "sbas_l1.mt27.r1", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000000000000, NULL
, HFILL
}},
2424 {&hf_sbas_l1_mt27_region_c1_lat
[0], {"Coordinate 1 Latitude", "sbas_l1.mt27.r1.c1.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x0ff0000000000000, NULL
, HFILL
}},
2425 {&hf_sbas_l1_mt27_region_c1_lon
[0], {"Coordinate 1 Longitude", "sbas_l1.mt27.r1.c1.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x000ff80000000000, NULL
, HFILL
}},
2426 {&hf_sbas_l1_mt27_region_c2_lat
[0], {"Coordinate 2 Latitude", "sbas_l1.mt27.r1.c2.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x000007f800000000, NULL
, HFILL
}},
2427 {&hf_sbas_l1_mt27_region_c2_lon
[0], {"Coordinate 2 Longitude", "sbas_l1.mt27.r1.c2.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x00000007fc000000, NULL
, HFILL
}},
2428 {&hf_sbas_l1_mt27_region_shape
[0], {"Region Shape", "sbas_l1.mt27.r1.shape", FT_UINT64
, BASE_DEC
|BASE_VAL64_STRING
, VALS64(REGION_SHAPE
), 0x0000000002000000, NULL
, HFILL
}},
2429 {&hf_sbas_l1_mt27_region
[1], {"Region 2", "sbas_l1.mt27.r2", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000000000000, NULL
, HFILL
}},
2430 {&hf_sbas_l1_mt27_region_c1_lat
[1], {"Coordinate 1 Latitude", "sbas_l1.mt27.r2.c1.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x01fe000000000000, NULL
, HFILL
}},
2431 {&hf_sbas_l1_mt27_region_c1_lon
[1], {"Coordinate 1 Longitude", "sbas_l1.mt27.r2.c1.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x0001ff0000000000, NULL
, HFILL
}},
2432 {&hf_sbas_l1_mt27_region_c2_lat
[1], {"Coordinate 2 Latitude", "sbas_l1.mt27.r2.c2.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x000000ff00000000, NULL
, HFILL
}},
2433 {&hf_sbas_l1_mt27_region_c2_lon
[1], {"Coordinate 2 Longitude", "sbas_l1.mt27.r2.c2.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x00000000ff800000, NULL
, HFILL
}},
2434 {&hf_sbas_l1_mt27_region_shape
[1], {"Region Shape", "sbas_l1.mt27.r2.shape", FT_UINT64
, BASE_DEC
|BASE_VAL64_STRING
, VALS64(REGION_SHAPE
), 0x0000000000400000, NULL
, HFILL
}},
2435 {&hf_sbas_l1_mt27_region
[2], {"Region 3", "sbas_l1.mt27.r3", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000000000000, NULL
, HFILL
}},
2436 {&hf_sbas_l1_mt27_region_c1_lat
[2], {"Coordinate 1 Latitude", "sbas_l1.mt27.r3.c1.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x3fc0000000000000, NULL
, HFILL
}},
2437 {&hf_sbas_l1_mt27_region_c1_lon
[2], {"Coordinate 1 Longitude", "sbas_l1.mt27.r3.c1.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x003fe00000000000, NULL
, HFILL
}},
2438 {&hf_sbas_l1_mt27_region_c2_lat
[2], {"Coordinate 2 Latitude", "sbas_l1.mt27.r3.c2.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x00001fe000000000, NULL
, HFILL
}},
2439 {&hf_sbas_l1_mt27_region_c2_lon
[2], {"Coordinate 2 Longitude", "sbas_l1.mt27.r3.c2.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x0000001ff0000000, NULL
, HFILL
}},
2440 {&hf_sbas_l1_mt27_region_shape
[2], {"Region Shape", "sbas_l1.mt27.r3.shape", FT_UINT64
, BASE_DEC
|BASE_VAL64_STRING
, VALS64(REGION_SHAPE
), 0x0000000008000000, NULL
, HFILL
}},
2441 {&hf_sbas_l1_mt27_region
[3], {"Region 4", "sbas_l1.mt27.r4", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000000000000, NULL
, HFILL
}},
2442 {&hf_sbas_l1_mt27_region_c1_lat
[3], {"Coordinate 1 Latitude", "sbas_l1.mt27.r4.c1.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x07f8000000000000, NULL
, HFILL
}},
2443 {&hf_sbas_l1_mt27_region_c1_lon
[3], {"Coordinate 1 Longitude", "sbas_l1.mt27.r4.c1.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x0007fc0000000000, NULL
, HFILL
}},
2444 {&hf_sbas_l1_mt27_region_c2_lat
[3], {"Coordinate 2 Latitude", "sbas_l1.mt27.r4.c2.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x000003fc00000000, NULL
, HFILL
}},
2445 {&hf_sbas_l1_mt27_region_c2_lon
[3], {"Coordinate 2 Longitude", "sbas_l1.mt27.r4.c2.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x00000003fe000000, NULL
, HFILL
}},
2446 {&hf_sbas_l1_mt27_region_shape
[3], {"Region Shape", "sbas_l1.mt27.r4.shape", FT_UINT64
, BASE_DEC
|BASE_VAL64_STRING
, VALS64(REGION_SHAPE
), 0x0000000001000000, NULL
, HFILL
}},
2447 {&hf_sbas_l1_mt27_region
[4], {"Region 5", "sbas_l1.mt27.r5", FT_UINT64
, BASE_HEX
, NULL
, 0x0000000000000000, NULL
, HFILL
}},
2448 {&hf_sbas_l1_mt27_region_c1_lat
[4], {"Coordinate 1 Latitude", "sbas_l1.mt27.r5.c1.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x00ff000000000000, NULL
, HFILL
}},
2449 {&hf_sbas_l1_mt27_region_c1_lon
[4], {"Coordinate 1 Longitude", "sbas_l1.mt27.r5.c1.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x0000ff8000000000, NULL
, HFILL
}},
2450 {&hf_sbas_l1_mt27_region_c2_lat
[4], {"Coordinate 2 Latitude", "sbas_l1.mt27.r5.c2.lat", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x0000007f80000000, NULL
, HFILL
}},
2451 {&hf_sbas_l1_mt27_region_c2_lon
[4], {"Coordinate 2 Longitude", "sbas_l1.mt27.r5.c2.lon", FT_INT64
, BASE_DEC
|BASE_UNIT_STRING
, UNS(&units_degree_bearing
), 0x000000007fc00000, NULL
, HFILL
}},
2452 {&hf_sbas_l1_mt27_region_shape
[4], {"Region Shape", "sbas_l1.mt27.r5.shape", FT_UINT64
, BASE_DEC
|BASE_VAL64_STRING
, VALS64(REGION_SHAPE
), 0x0000000000200000, NULL
, HFILL
}},
2453 {&hf_sbas_l1_mt27_spare
, {"Spare", "sbas_l1.mt27.spare", FT_UINT32
, BASE_HEX
, NULL
, 0x001fffc0, NULL
, HFILL
}},
2456 {&hf_sbas_l1_mt63
, {"MT63", "sbas_l1.mt63", FT_NONE
, BASE_NONE
, NULL
, 0x00, NULL
, HFILL
}},
2457 {&hf_sbas_l1_mt63_spare_1
, {"Spare 1", "sbas_l1.mt63.spare_1", FT_UINT8
, BASE_HEX
, NULL
, 0x03, NULL
, HFILL
}},
2458 {&hf_sbas_l1_mt63_spare_2
, {"Spare 2", "sbas_l1.mt63.spare_2", FT_BYTES
, SEP_SPACE
, NULL
, 0x00, NULL
, HFILL
}},
2459 {&hf_sbas_l1_mt63_spare_3
, {"Spare 3", "sbas_l1.mt63.spare_3", FT_UINT8
, BASE_HEX
, NULL
, 0xc0, NULL
, HFILL
}},
2462 expert_module_t
*expert_sbas_l1
;
2464 static ei_register_info ei
[] = {
2465 {&ei_sbas_l1_preamble
, {"sbas_l1.illegal_preamble", PI_PROTOCOL
, PI_WARN
, "Illegal preamble", EXPFILL
}},
2466 {&ei_sbas_l1_mt0
, {"sbas_l1.mt0", PI_PROTOCOL
, PI_WARN
, "MT is 0", EXPFILL
}},
2467 {&ei_sbas_l1_crc
, {"sbas_l1.crc", PI_CHECKSUM
, PI_WARN
, "CRC", EXPFILL
}},
2468 {&ei_sbas_l1_mt26_igp_band_id
, {"sbas_l1.mt26.illegal_igp_band_id", PI_PROTOCOL
, PI_WARN
, "Illegal IGP Band Identifier", EXPFILL
}},
2469 {&ei_sbas_l1_mt26_igp_block_id
, {"sbas_l1.mt26.illegal_igp_block_id", PI_PROTOCOL
, PI_WARN
, "Illegal IGP Block Identifier", EXPFILL
}},
2472 static int *ett
[] = {
2484 &ett_sbas_l1_mt17_prn_data
[0],
2485 &ett_sbas_l1_mt17_prn_data
[1],
2486 &ett_sbas_l1_mt17_prn_data
[2],
2487 &ett_sbas_l1_mt17_health_and_status
,
2493 &ett_sbas_l1_mt27_region
[0],
2494 &ett_sbas_l1_mt27_region
[1],
2495 &ett_sbas_l1_mt27_region
[2],
2496 &ett_sbas_l1_mt27_region
[3],
2497 &ett_sbas_l1_mt27_region
[4],
2501 proto_sbas_l1
= proto_register_protocol("SBAS L1 Navigation Message", "SBAS L1", "sbas_l1");
2503 proto_register_field_array(proto_sbas_l1
, hf
, array_length(hf
));
2504 proto_register_subtree_array(ett
, array_length(ett
));
2506 expert_sbas_l1
= expert_register_protocol(proto_sbas_l1
);
2507 expert_register_field_array(expert_sbas_l1
, ei
, array_length(ei
));
2509 register_dissector("sbas_l1", dissect_sbas_l1
, proto_sbas_l1
);
2511 sbas_l1_mt_dissector_table
= register_dissector_table("sbas_l1.mt",
2512 "SBAS L1 MT", proto_sbas_l1
, FT_UINT8
, BASE_DEC
);
2516 void proto_reg_handoff_sbas_l1(void) {
2517 dissector_add_uint("ubx.rxm.sfrbx.gnssid", GNSS_ID_SBAS
,
2518 create_dissector_handle(dissect_sbas_l1
, proto_sbas_l1
));
2520 dissector_add_uint("sbas_l1.mt", 0, create_dissector_handle(dissect_sbas_l1_mt0
, proto_sbas_l1
));
2521 dissector_add_uint("sbas_l1.mt", 1, create_dissector_handle(dissect_sbas_l1_mt1
, proto_sbas_l1
));
2522 dissector_add_uint("sbas_l1.mt", 2, create_dissector_handle(dissect_sbas_l1_mt2
, proto_sbas_l1
));
2523 dissector_add_uint("sbas_l1.mt", 3, create_dissector_handle(dissect_sbas_l1_mt3
, proto_sbas_l1
));
2524 dissector_add_uint("sbas_l1.mt", 4, create_dissector_handle(dissect_sbas_l1_mt4
, proto_sbas_l1
));
2525 dissector_add_uint("sbas_l1.mt", 5, create_dissector_handle(dissect_sbas_l1_mt5
, proto_sbas_l1
));
2526 dissector_add_uint("sbas_l1.mt", 6, create_dissector_handle(dissect_sbas_l1_mt6
, proto_sbas_l1
));
2527 dissector_add_uint("sbas_l1.mt", 7, create_dissector_handle(dissect_sbas_l1_mt7
, proto_sbas_l1
));
2528 dissector_add_uint("sbas_l1.mt", 9, create_dissector_handle(dissect_sbas_l1_mt9
, proto_sbas_l1
));
2529 dissector_add_uint("sbas_l1.mt", 17, create_dissector_handle(dissect_sbas_l1_mt17
, proto_sbas_l1
));
2530 dissector_add_uint("sbas_l1.mt", 18, create_dissector_handle(dissect_sbas_l1_mt18
, proto_sbas_l1
));
2531 dissector_add_uint("sbas_l1.mt", 24, create_dissector_handle(dissect_sbas_l1_mt24
, proto_sbas_l1
));
2532 dissector_add_uint("sbas_l1.mt", 25, create_dissector_handle(dissect_sbas_l1_mt25
, proto_sbas_l1
));
2533 dissector_add_uint("sbas_l1.mt", 26, create_dissector_handle(dissect_sbas_l1_mt26
, proto_sbas_l1
));
2534 dissector_add_uint("sbas_l1.mt", 27, create_dissector_handle(dissect_sbas_l1_mt27
, proto_sbas_l1
));
2535 dissector_add_uint("sbas_l1.mt", 63, create_dissector_handle(dissect_sbas_l1_mt63
, proto_sbas_l1
));