1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.gnss.metric.parser;
18
19 import java.util.Locale;
20
21 import org.orekit.utils.units.Unit;
22
23
24
25
26
27
28 public enum IgsSsrDataField implements DataField {
29
30
31 IDF001 {
32
33 @Override
34 public int intValue(final EncodedMessage message) {
35 return DataType.U_INT_3.decode(message).intValue();
36 }
37 },
38
39
40 IDF002 {
41
42 @Override
43 public String stringValue(final EncodedMessage message, final int n) {
44 return String.format(Locale.US, "%3s", DataType.U_INT_8.decode(message).intValue()).trim();
45 }
46 },
47
48
49 IDF003 {
50
51 @Override
52 public int intValue(final EncodedMessage message) {
53 return DataType.U_INT_20.decode(message).intValue();
54 }
55 },
56
57
58 IDF004 {
59
60 @Override
61 public int intValue(final EncodedMessage message) {
62 switch (DataType.BIT_4.decode(message).byteValue()) {
63 case 0 : return 1;
64 case 1 : return 2;
65 case 2 : return 5;
66 case 3 : return 10;
67 case 4 : return 15;
68 case 5 : return 30;
69 case 6 : return 60;
70 case 7 : return 120;
71 case 8 : return 240;
72 case 9 : return 300;
73 case 10 : return 600;
74 case 11 : return 900;
75 case 12 : return 1800;
76 case 13 : return 3600;
77 case 14 : return 7200;
78 default : return 10800;
79 }
80 }
81 },
82
83
84 IDF005 {
85
86 @Override
87 public int intValue(final EncodedMessage message) {
88 return DataType.BIT_1.decode(message).intValue();
89 }
90 },
91
92
93 IDF006 {
94
95 @Override
96 public int intValue(final EncodedMessage message) {
97 return DataType.BIT_1.decode(message).intValue();
98 }
99 },
100
101
102 IDF007 {
103
104 @Override
105 public int intValue(final EncodedMessage message) {
106 return DataType.U_INT_4.decode(message).intValue();
107 }
108 },
109
110
111 IDF008 {
112
113 @Override
114 public int intValue(final EncodedMessage message) {
115 return DataType.U_INT_16.decode(message).intValue();
116 }
117 },
118
119
120 IDF009 {
121
122 @Override
123 public int intValue(final EncodedMessage message) {
124 return DataType.U_INT_4.decode(message).intValue();
125 }
126 },
127
128
129 IDF010 {
130
131 @Override
132 public int intValue(final EncodedMessage message) {
133 return DataType.U_INT_6.decode(message).intValue();
134 }
135 },
136
137
138 IDF011 {
139
140 @Override
141 public int intValue(final EncodedMessage message) {
142 return DataType.U_INT_6.decode(message).intValue();
143 }
144 },
145
146
147 IDF012 {
148
149 @Override
150 public int intValue(final EncodedMessage message) {
151 return DataType.BIT_8.decode(message).intValue();
152 }
153 },
154
155
156 IDF013 {
157
158 @Override
159 public double doubleValue(final EncodedMessage message) {
160 return Units.MM.toSI(DataType.INT_22.decode(message).intValue() * 0.1);
161 }
162 },
163
164
165 IDF014 {
166
167 @Override
168 public double doubleValue(final EncodedMessage message) {
169 return Units.MM.toSI(DataType.INT_20.decode(message).intValue() * 0.4);
170 }
171 },
172
173
174 IDF015 {
175
176 @Override
177 public double doubleValue(final EncodedMessage message) {
178 return Units.MM.toSI(DataType.INT_20.decode(message).intValue() * 0.4);
179 }
180 },
181
182
183 IDF016 {
184
185 @Override
186 public double doubleValue(final EncodedMessage message) {
187 return Units.MM_PER_S.toSI(DataType.INT_21.decode(message).intValue() * 0.001);
188 }
189 },
190
191
192 IDF017 {
193
194 @Override
195 public double doubleValue(final EncodedMessage message) {
196 return Units.MM_PER_S.toSI(DataType.INT_19.decode(message).intValue() * 0.004);
197 }
198 },
199
200
201 IDF018 {
202
203 @Override
204 public double doubleValue(final EncodedMessage message) {
205 return Units.MM_PER_S.toSI(DataType.INT_19.decode(message).intValue() * 0.004);
206 }
207 },
208
209
210 IDF019 {
211
212 @Override
213 public double doubleValue(final EncodedMessage message) {
214 return Units.MM.toSI(DataType.INT_22.decode(message).intValue() * 0.1);
215 }
216 },
217
218
219 IDF020 {
220
221 @Override
222 public double doubleValue(final EncodedMessage message) {
223 return Units.MM_PER_S.toSI(DataType.INT_21.decode(message).intValue() * 0.001);
224 }
225 },
226
227
228 IDF021 {
229
230 @Override
231 public double doubleValue(final EncodedMessage message) {
232 return Units.MM_PER_S2.toSI(DataType.INT_27.decode(message).intValue() * 0.00002);
233 }
234 },
235
236
237 IDF022 {
238
239 @Override
240 public double doubleValue(final EncodedMessage message) {
241 return Units.MM.toSI(DataType.INT_22.decode(message).intValue() * 0.1);
242 }
243 },
244
245
246 IDF023 {
247
248 @Override
249 public int intValue(final EncodedMessage message) {
250 return DataType.U_INT_5.decode(message).intValue();
251 }
252 },
253
254
255 IDF024 {
256
257 @Override
258 public int intValue(final EncodedMessage message) {
259 return DataType.U_INT_5.decode(message).intValue();
260 }
261 },
262
263
264 IDF025 {
265
266 @Override
267 public double doubleValue(final EncodedMessage message) {
268 return DataType.INT_14.decode(message).intValue() * 0.01;
269 }
270 },
271
272
273 IDF026 {
274
275 @Override
276 public double doubleValue(final EncodedMessage message) {
277 return Units.SEMI_CIRCLE.toSI(DataType.U_INT_9.decode(message).intValue() / 256.0);
278 }
279 },
280
281
282 IDF027 {
283
284 @Override
285 public double doubleValue(final EncodedMessage message) {
286 return Units.SEMI_CIRCLE.toSI(DataType.INT_8.decode(message).intValue() / 8192.0);
287 }
288 },
289
290
291 IDF028 {
292
293 @Override
294 public double doubleValue(final EncodedMessage message) {
295 return DataType.INT_20.decode(message).intValue() * 0.0001;
296 }
297 },
298
299
300 IDF029 {
301
302 @Override
303 public boolean booleanValue(final EncodedMessage message) {
304 return DataType.BIT_1.decode(message) > 0;
305 }
306 },
307
308
309 IDF030 {
310
311 @Override
312 public int intValue(final EncodedMessage message) {
313 return DataType.BIT_2.decode(message).intValue();
314 }
315 },
316
317
318 IDF031 {
319
320 @Override
321 public int intValue(final EncodedMessage message) {
322 return DataType.U_INT_4.decode(message).intValue();
323 }
324 },
325
326
327 IDF032 {
328
329 @Override
330 public boolean booleanValue(final EncodedMessage message) {
331 return DataType.BIT_1.decode(message) > 0;
332 }
333 },
334
335
336 IDF033 {
337
338 @Override
339 public boolean booleanValue(final EncodedMessage message) {
340 return DataType.BIT_1.decode(message) > 0;
341 }
342 },
343
344
345 IDF034 {
346
347 @Override
348 public int intValue(final EncodedMessage message) {
349 return DataType.BIT_6.decode(message).intValue();
350 }
351 },
352
353
354 IDF035 {
355
356 @Override
357 public int intValue(final EncodedMessage message) {
358
359 return DataType.U_INT_2.decode(message).intValue() + 1;
360 }
361 },
362
363
364 IDF036 {
365
366 @Override
367 public double doubleValue(final EncodedMessage message) {
368
369 return Unit.KILOMETRE.toSI(DataType.U_INT_8.decode(message).intValue() * 10.0);
370 }
371 },
372
373
374 IDF037 {
375
376 @Override
377 public int intValue(final EncodedMessage message) {
378
379 return DataType.U_INT_4.decode(message).intValue() + 1;
380 }
381 },
382
383
384 IDF038 {
385
386 @Override
387 public int intValue(final EncodedMessage message) {
388
389 return DataType.U_INT_4.decode(message).intValue() + 1;
390 }
391 },
392
393
394 IDF039 {
395
396 @Override
397 public double doubleValue(final EncodedMessage message) {
398 return DataType.INT_16.decode(message).intValue() * 0.005;
399 }
400 },
401
402
403 IDF040 {
404
405 @Override
406 public double doubleValue(final EncodedMessage message) {
407 return DataType.INT_16.decode(message).intValue() * 0.005;
408 }
409 },
410
411
412 IDF041 {
413
414 @Override
415 public double doubleValue(final EncodedMessage message) {
416 return DataType.U_INT_9.decode(message).intValue() * 0.05;
417 }
418 };
419
420 }