@airframes/acars-decoder 1.4.7 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -1
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -4
- package/dist/index.js +2869 -19
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2832 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +15 -18
- package/.github/FUNDING.yml +0 -12
- package/.github/workflows/yarn-test.yml +0 -21
- package/SECURITY.md +0 -18
- package/babel.config.js +0 -6
- package/coverage/clover.xml +0 -1799
- package/coverage/coverage-final.json +0 -24
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -131
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -196
- package/coverage/lcov.info +0 -2278
- package/dist/DateTimeUtils.d.ts +0 -8
- package/dist/DateTimeUtils.js +0 -27
- package/dist/DecoderPlugin.d.ts +0 -18
- package/dist/DecoderPlugin.js +0 -71
- package/dist/DecoderPluginInterface.d.ts +0 -7
- package/dist/DecoderPluginInterface.js +0 -3
- package/dist/IcaoDecoder.d.ts +0 -10
- package/dist/IcaoDecoder.js +0 -111
- package/dist/MessageDecoder.d.ts +0 -14
- package/dist/MessageDecoder.js +0 -129
- package/dist/bin/acars-decoder-test.d.ts +0 -2
- package/dist/bin/acars-decoder-test.js +0 -53
- package/dist/bin/acars-decoder.d.ts +0 -2
- package/dist/bin/acars-decoder.js +0 -20
- package/dist/plugins/Label_15.d.ts +0 -11
- package/dist/plugins/Label_15.js +0 -40
- package/dist/plugins/Label_16_N_Space.d.ts +0 -11
- package/dist/plugins/Label_16_N_Space.js +0 -80
- package/dist/plugins/Label_16_N_Space.test.d.ts +0 -1
- package/dist/plugins/Label_16_N_Space.test.js +0 -84
- package/dist/plugins/Label_1M_Slash.d.ts +0 -11
- package/dist/plugins/Label_1M_Slash.js +0 -61
- package/dist/plugins/Label_1M_Slash.test.d.ts +0 -1
- package/dist/plugins/Label_1M_Slash.test.js +0 -43
- package/dist/plugins/Label_20_CFB.01.d.ts +0 -11
- package/dist/plugins/Label_20_CFB.01.js +0 -69
- package/dist/plugins/Label_20_POS.d.ts +0 -11
- package/dist/plugins/Label_20_POS.js +0 -62
- package/dist/plugins/Label_30_Slash_EA.d.ts +0 -11
- package/dist/plugins/Label_30_Slash_EA.js +0 -54
- package/dist/plugins/Label_30_Slash_EA.test.d.ts +0 -1
- package/dist/plugins/Label_30_Slash_EA.test.js +0 -35
- package/dist/plugins/Label_44_ETA.d.ts +0 -11
- package/dist/plugins/Label_44_ETA.js +0 -69
- package/dist/plugins/Label_44_IN.d.ts +0 -11
- package/dist/plugins/Label_44_IN.js +0 -69
- package/dist/plugins/Label_44_OFF.d.ts +0 -11
- package/dist/plugins/Label_44_OFF.js +0 -74
- package/dist/plugins/Label_44_ON.d.ts +0 -11
- package/dist/plugins/Label_44_ON.js +0 -69
- package/dist/plugins/Label_44_POS.d.ts +0 -11
- package/dist/plugins/Label_44_POS.js +0 -81
- package/dist/plugins/Label_5Z.d.ts +0 -11
- package/dist/plugins/Label_5Z.js +0 -120
- package/dist/plugins/Label_80.d.ts +0 -12
- package/dist/plugins/Label_80.js +0 -203
- package/dist/plugins/Label_8E.d.ts +0 -10
- package/dist/plugins/Label_8E.js +0 -48
- package/dist/plugins/Label_8E.test.d.ts +0 -1
- package/dist/plugins/Label_8E.test.js +0 -32
- package/dist/plugins/Label_B6.d.ts +0 -11
- package/dist/plugins/Label_B6.js +0 -26
- package/dist/plugins/Label_ColonComma.d.ts +0 -10
- package/dist/plugins/Label_ColonComma.js +0 -28
- package/dist/plugins/Label_H1.d.ts +0 -9
- package/dist/plugins/Label_H1.js +0 -18
- package/dist/plugins/Label_H1_M1BPOS.d.ts +0 -11
- package/dist/plugins/Label_H1_M1BPOS.js +0 -54
- package/dist/plugins/Label_H1_M1BPRG.d.ts +0 -11
- package/dist/plugins/Label_H1_M1BPRG.js +0 -36
- package/dist/plugins/Label_QP.d.ts +0 -10
- package/dist/plugins/Label_QP.js +0 -49
- package/dist/plugins/Label_QQ.d.ts +0 -10
- package/dist/plugins/Label_QQ.js +0 -49
- package/dist/plugins/Label_QR.d.ts +0 -10
- package/dist/plugins/Label_QR.js +0 -49
- package/dist/plugins/Label_QS.d.ts +0 -10
- package/dist/plugins/Label_QS.js +0 -49
- package/dist/plugins/Label_SQ.d.ts +0 -10
- package/dist/plugins/Label_SQ.js +0 -104
- package/dist/plugins/official.d.ts +0 -22
- package/dist/plugins/official.js +0 -38
- package/jest.config.ts +0 -195
- package/src/DateTimeUtils.ts +0 -26
- package/src/DecoderPlugin.ts +0 -83
- package/src/DecoderPluginInterface.ts +0 -9
- package/src/IcaoDecoder.ts +0 -137
- package/src/MessageDecoder.ts +0 -117
- package/src/bin/acars-decoder-test.ts +0 -67
- package/src/bin/acars-decoder.ts +0 -23
- package/src/index.d.ts +0 -15
- package/src/index.ts +0 -4
- package/src/plugins/Label_15.ts +0 -45
- package/src/plugins/Label_16_N_Space.test.ts +0 -94
- package/src/plugins/Label_16_N_Space.ts +0 -91
- package/src/plugins/Label_1M_Slash.test.ts +0 -45
- package/src/plugins/Label_1M_Slash.ts +0 -69
- package/src/plugins/Label_20_CFB.01.ts +0 -81
- package/src/plugins/Label_20_POS.ts +0 -68
- package/src/plugins/Label_30_Slash_EA.test.ts +0 -37
- package/src/plugins/Label_30_Slash_EA.ts +0 -60
- package/src/plugins/Label_44_ETA.ts +0 -81
- package/src/plugins/Label_44_IN.ts +0 -81
- package/src/plugins/Label_44_OFF.ts +0 -88
- package/src/plugins/Label_44_ON.ts +0 -81
- package/src/plugins/Label_44_POS.ts +0 -96
- package/src/plugins/Label_5Z.ts +0 -125
- package/src/plugins/Label_80.ts +0 -215
- package/src/plugins/Label_8E.test.ts +0 -34
- package/src/plugins/Label_8E.ts +0 -55
- package/src/plugins/Label_B6.ts +0 -28
- package/src/plugins/Label_ColonComma.ts +0 -32
- package/src/plugins/Label_H1.ts +0 -18
- package/src/plugins/Label_H1_M1BPOS.ts +0 -60
- package/src/plugins/Label_H1_M1BPRG.ts +0 -40
- package/src/plugins/Label_QP.ts +0 -54
- package/src/plugins/Label_QQ.ts +0 -54
- package/src/plugins/Label_QR.ts +0 -54
- package/src/plugins/Label_QS.ts +0 -54
- package/src/plugins/Label_SQ.ts +0 -111
- package/src/plugins/official.ts +0 -22
- package/tsconfig.json +0 -16
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const MessageDecoder_1 = require("../MessageDecoder");
|
|
4
|
-
const Label_16_N_Space_1 = require("./Label_16_N_Space");
|
|
5
|
-
test('decodes Label 16 variant 1', () => {
|
|
6
|
-
const decoder = new MessageDecoder_1.MessageDecoder();
|
|
7
|
-
const decoderPlugin = new Label_16_N_Space_1.Label_16_N_Space(decoder);
|
|
8
|
-
expect(decoderPlugin.decode).toBeDefined();
|
|
9
|
-
expect(decoderPlugin.name).toBe('label-16-n-space');
|
|
10
|
-
expect(decoderPlugin.qualifiers).toBeDefined();
|
|
11
|
-
expect(decoderPlugin.qualifiers()).toEqual({
|
|
12
|
-
labels: ['16'],
|
|
13
|
-
preambles: ['N '],
|
|
14
|
-
});
|
|
15
|
-
const text = 'N 44.203,W 86.546,31965,6, 290';
|
|
16
|
-
const decodeResult = decoderPlugin.decode({ text: text });
|
|
17
|
-
console.log(JSON.stringify(decodeResult, null, 2));
|
|
18
|
-
expect(decodeResult.decoded).toBe(true);
|
|
19
|
-
expect(decodeResult.decoder.decodeLevel).toBe('partial');
|
|
20
|
-
expect(decodeResult.decoder.name).toBe('label-16-n-space');
|
|
21
|
-
expect(decodeResult.formatted.description).toBe('Position Report');
|
|
22
|
-
expect(decodeResult.message.text).toBe(text);
|
|
23
|
-
expect(decodeResult.raw.latitude_direction).toBe('N');
|
|
24
|
-
expect(decodeResult.raw.latitude).toBe(44.203);
|
|
25
|
-
expect(decodeResult.raw.longitude_direction).toBe('W');
|
|
26
|
-
expect(decodeResult.raw.longitude).toBe(86.546);
|
|
27
|
-
expect(decodeResult.raw.flight_level).toBe(31965);
|
|
28
|
-
expect(decodeResult.formatted.items.length).toBe(2);
|
|
29
|
-
expect(decodeResult.formatted.items[0].type).toBe('aircraft_position');
|
|
30
|
-
expect(decodeResult.formatted.items[0].code).toBe('POS');
|
|
31
|
-
expect(decodeResult.formatted.items[0].label).toBe('Aircraft Position');
|
|
32
|
-
expect(decodeResult.formatted.items[0].value).toBe('44.203 N, 86.546 W');
|
|
33
|
-
expect(decodeResult.formatted.items[1].type).toBe('flight_level');
|
|
34
|
-
expect(decodeResult.formatted.items[1].code).toBe('FL');
|
|
35
|
-
expect(decodeResult.formatted.items[1].label).toBe('Flight Level');
|
|
36
|
-
expect(decodeResult.formatted.items[1].value).toBe(31965);
|
|
37
|
-
});
|
|
38
|
-
test('decodes Label 16 variant 2', () => {
|
|
39
|
-
const decoder = new MessageDecoder_1.MessageDecoder();
|
|
40
|
-
const decoderPlugin = new Label_16_N_Space_1.Label_16_N_Space(decoder);
|
|
41
|
-
expect(decoderPlugin.decode).toBeDefined();
|
|
42
|
-
expect(decoderPlugin.name).toBe('label-16-n-space');
|
|
43
|
-
expect(decoderPlugin.qualifiers).toBeDefined();
|
|
44
|
-
expect(decoderPlugin.qualifiers()).toEqual({
|
|
45
|
-
labels: ['16'],
|
|
46
|
-
preambles: ['N '],
|
|
47
|
-
});
|
|
48
|
-
const text = 'N 28.177/W 96.055';
|
|
49
|
-
const decodeResult = decoderPlugin.decode({ text: text });
|
|
50
|
-
console.log(JSON.stringify(decodeResult, null, 2));
|
|
51
|
-
expect(decodeResult.decoded).toBe(true);
|
|
52
|
-
expect(decodeResult.decoder.decodeLevel).toBe('full');
|
|
53
|
-
expect(decodeResult.decoder.name).toBe('label-16-n-space');
|
|
54
|
-
expect(decodeResult.formatted.description).toBe('Position Report');
|
|
55
|
-
expect(decodeResult.message.text).toBe(text);
|
|
56
|
-
expect(decodeResult.raw.latitude_direction).toBe('N');
|
|
57
|
-
expect(decodeResult.raw.latitude).toBe(28.177);
|
|
58
|
-
expect(decodeResult.raw.longitude_direction).toBe('W');
|
|
59
|
-
expect(decodeResult.raw.longitude).toBe(96.055);
|
|
60
|
-
expect(decodeResult.formatted.items.length).toBe(1);
|
|
61
|
-
expect(decodeResult.formatted.items[0].type).toBe('aircraft_position');
|
|
62
|
-
expect(decodeResult.formatted.items[0].code).toBe('POS');
|
|
63
|
-
expect(decodeResult.formatted.items[0].label).toBe('Aircraft Position');
|
|
64
|
-
expect(decodeResult.formatted.items[0].value).toBe('28.177 N, 96.055 W');
|
|
65
|
-
});
|
|
66
|
-
test('decodes Label 16 variant <invalid>', () => {
|
|
67
|
-
const decoder = new MessageDecoder_1.MessageDecoder();
|
|
68
|
-
const decoderPlugin = new Label_16_N_Space_1.Label_16_N_Space(decoder);
|
|
69
|
-
expect(decoderPlugin.decode).toBeDefined();
|
|
70
|
-
expect(decoderPlugin.name).toBe('label-16-n-space');
|
|
71
|
-
expect(decoderPlugin.qualifiers).toBeDefined();
|
|
72
|
-
expect(decoderPlugin.qualifiers()).toEqual({
|
|
73
|
-
labels: ['16'],
|
|
74
|
-
preambles: ['N '],
|
|
75
|
-
});
|
|
76
|
-
const text = 'N Bogus message';
|
|
77
|
-
const decodeResult = decoderPlugin.decode({ text: text });
|
|
78
|
-
console.log(JSON.stringify(decodeResult, null, 2));
|
|
79
|
-
expect(decodeResult.decoded).toBe(false);
|
|
80
|
-
expect(decodeResult.decoder.decodeLevel).toBe('none');
|
|
81
|
-
expect(decodeResult.decoder.name).toBe('label-16-n-space');
|
|
82
|
-
expect(decodeResult.formatted.description).toBe('Position Report');
|
|
83
|
-
expect(decodeResult.message.text).toBe(text);
|
|
84
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_1M_Slash extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Label_1M_Slash = void 0;
|
|
4
|
-
const DateTimeUtils_1 = require("../DateTimeUtils");
|
|
5
|
-
const DecoderPlugin_1 = require("../DecoderPlugin");
|
|
6
|
-
class Label_1M_Slash extends DecoderPlugin_1.DecoderPlugin {
|
|
7
|
-
name = 'label-1m-slash';
|
|
8
|
-
qualifiers() {
|
|
9
|
-
return {
|
|
10
|
-
labels: ["1M"],
|
|
11
|
-
preambles: ['/'],
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
decode(message, options = {}) {
|
|
15
|
-
const decodeResult = this.defaultResult;
|
|
16
|
-
decodeResult.decoder.name = this.name;
|
|
17
|
-
decodeResult.formatted.description = 'ETA Report';
|
|
18
|
-
decodeResult.message = message;
|
|
19
|
-
// Style: /BA0843/ETA01/230822/LDSP/EGLL/EGSS/2JK0(NEW LINE)1940/EGLL27L/10
|
|
20
|
-
const results = message.text.split(/\n|\//).slice(1); // Split by / and new line
|
|
21
|
-
if (results) {
|
|
22
|
-
if (options.debug) {
|
|
23
|
-
console.log(`Label 1M ETA: results`);
|
|
24
|
-
console.log(results);
|
|
25
|
-
}
|
|
26
|
-
decodeResult.raw.flight_number = results[0];
|
|
27
|
-
// results[1]: ETA01 (???)
|
|
28
|
-
// results[2]: 230822 - UTC date of eta
|
|
29
|
-
decodeResult.raw.departure_icao = results[3];
|
|
30
|
-
decodeResult.raw.arrival_icao = results[4];
|
|
31
|
-
decodeResult.raw.alternate_icao = results[5];
|
|
32
|
-
// results[6]: 2JK0 (???)
|
|
33
|
-
// results[7] 1940 - UTC eta
|
|
34
|
-
decodeResult.raw.arrival_runway = results[8].replace(decodeResult.raw.arrival_icao, ""); // results[8] EGLL27L
|
|
35
|
-
// results[9]: 10(space) (???)
|
|
36
|
-
decodeResult.formatted.items.push({
|
|
37
|
-
type: 'eta',
|
|
38
|
-
code: 'ETA',
|
|
39
|
-
label: 'Estimated Time of Arrival',
|
|
40
|
-
value: DateTimeUtils_1.DateTimeUtils.UTCDateTimeToString(results[2], results[7]),
|
|
41
|
-
});
|
|
42
|
-
decodeResult.formatted.items.push({
|
|
43
|
-
type: 'destination',
|
|
44
|
-
code: 'DST',
|
|
45
|
-
label: 'Destination',
|
|
46
|
-
value: decodeResult.raw.arrival_icao,
|
|
47
|
-
});
|
|
48
|
-
decodeResult.formatted.items.push({
|
|
49
|
-
type: 'origin',
|
|
50
|
-
code: 'ORG',
|
|
51
|
-
label: 'Origin',
|
|
52
|
-
value: decodeResult.raw.departure_icao,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
decodeResult.decoded = true;
|
|
56
|
-
decodeResult.decoder.decodeLevel = 'partial';
|
|
57
|
-
return decodeResult;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
exports.Label_1M_Slash = Label_1M_Slash;
|
|
61
|
-
exports.default = {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const MessageDecoder_1 = require("../MessageDecoder");
|
|
4
|
-
const Label_1M_Slash_1 = require("./Label_1M_Slash");
|
|
5
|
-
test('decodes Label 8E sample 1', () => {
|
|
6
|
-
const decoder = new MessageDecoder_1.MessageDecoder();
|
|
7
|
-
const decoderPlugin = new Label_1M_Slash_1.Label_1M_Slash(decoder);
|
|
8
|
-
expect(decoderPlugin.decode).toBeDefined();
|
|
9
|
-
expect(decoderPlugin.name).toBe('label-1m-slash');
|
|
10
|
-
expect(decoderPlugin.qualifiers).toBeDefined();
|
|
11
|
-
expect(decoderPlugin.qualifiers()).toEqual({
|
|
12
|
-
labels: ['1M'],
|
|
13
|
-
preambles: ['/'],
|
|
14
|
-
});
|
|
15
|
-
const text = '/BA0843/ETA01/230822/LDSP/EGLL/EGSS/2JK0\n1940/EGLL27L/10';
|
|
16
|
-
const decodeResult = decoderPlugin.decode({ text: text });
|
|
17
|
-
console.log(JSON.stringify(decodeResult, null, 2));
|
|
18
|
-
expect(decodeResult.decoded).toBe(true);
|
|
19
|
-
expect(decodeResult.decoder.decodeLevel).toBe('partial');
|
|
20
|
-
expect(decodeResult.decoder.name).toBe('label-1m-slash');
|
|
21
|
-
expect(decodeResult.formatted.description).toBe('ETA Report');
|
|
22
|
-
expect(decodeResult.message.text).toBe(text);
|
|
23
|
-
expect(decodeResult.raw.alternate_icao).toBe('EGSS');
|
|
24
|
-
expect(decodeResult.raw.arrival_icao).toBe('EGLL');
|
|
25
|
-
expect(decodeResult.raw.arrival_runway).toBe('27L');
|
|
26
|
-
expect(decodeResult.raw.departure_icao).toBe('LDSP');
|
|
27
|
-
expect(decodeResult.raw.flight_number).toBe('BA0843');
|
|
28
|
-
expect(decodeResult.formatted.items.length).toBe(3);
|
|
29
|
-
expect(decodeResult.formatted.items[0].type).toBe('eta');
|
|
30
|
-
expect(decodeResult.formatted.items[0].code).toBe('ETA');
|
|
31
|
-
expect(decodeResult.formatted.items[0].label).toBe('Estimated Time of Arrival');
|
|
32
|
-
// Check for the minutes as typescript doesn't have a UTC time string method
|
|
33
|
-
// so the hour will depend on the test host timezone.
|
|
34
|
-
expect(decodeResult.formatted.items[0].value.includes('40')).toBe(true);
|
|
35
|
-
expect(decodeResult.formatted.items[1].type).toBe('destination');
|
|
36
|
-
expect(decodeResult.formatted.items[1].code).toBe('DST');
|
|
37
|
-
expect(decodeResult.formatted.items[1].label).toBe('Destination');
|
|
38
|
-
expect(decodeResult.formatted.items[1].value).toBe('EGLL');
|
|
39
|
-
expect(decodeResult.formatted.items[2].type).toBe('origin');
|
|
40
|
-
expect(decodeResult.formatted.items[2].code).toBe('ORG');
|
|
41
|
-
expect(decodeResult.formatted.items[2].label).toBe('Origin');
|
|
42
|
-
expect(decodeResult.formatted.items[2].value).toBe('LDSP');
|
|
43
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_20_CFB01 extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Label_20_CFB01 = void 0;
|
|
4
|
-
const DecoderPlugin_1 = require("../DecoderPlugin");
|
|
5
|
-
// In Air Report
|
|
6
|
-
class Label_20_CFB01 extends DecoderPlugin_1.DecoderPlugin {
|
|
7
|
-
name = 'label-20-cfb01';
|
|
8
|
-
qualifiers() {
|
|
9
|
-
return {
|
|
10
|
-
labels: ['20'],
|
|
11
|
-
preambles: ['#CFB.01'],
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
decode(message, options = {}) {
|
|
15
|
-
const decodeResult = this.defaultResult;
|
|
16
|
-
decodeResult.decoder.name = this.name;
|
|
17
|
-
decodeResult.formatted.description = 'Crew Flight Bag Message';
|
|
18
|
-
decodeResult.message = message;
|
|
19
|
-
// Style: IN02,N38338W121179,KMHR,KPDX,0806,2355,005.1
|
|
20
|
-
// Match: IN02,coords,departure_icao,arrival_icao,current_date,current_time,fuel_in_tons
|
|
21
|
-
const regex = /^IN02,(?<unsplit_coords>.*),(?<departure_icao>.*),(?<arrival_icao>.*),(?<current_date>.*),(?<current_time>.*),(?<fuel_in_tons>.*)$/;
|
|
22
|
-
const results = message.text.match(regex);
|
|
23
|
-
if (results) {
|
|
24
|
-
if (options.debug) {
|
|
25
|
-
console.log(`Label 44 ETA Report: groups`);
|
|
26
|
-
console.log(results.groups);
|
|
27
|
-
}
|
|
28
|
-
const coordsRegex = /(?<lac>[NS])(?<la>.+)\s*(?<lnc>[EW])(?<ln>.+)/;
|
|
29
|
-
const coordsResults = results.groups.unsplit_coords.match(coordsRegex);
|
|
30
|
-
decodeResult.raw.latitude_direction = coordsResults.groups.lac;
|
|
31
|
-
decodeResult.raw.latitude = Number(coordsResults.groups.la) / 1000;
|
|
32
|
-
decodeResult.raw.longitude_direction = coordsResults.groups.lnc;
|
|
33
|
-
decodeResult.raw.longitude = Number(coordsResults.groups.ln) / 1000;
|
|
34
|
-
decodeResult.raw.departure_icao = results.groups.departure_icao;
|
|
35
|
-
decodeResult.raw.arrival_icao = results.groups.arrival_icao;
|
|
36
|
-
decodeResult.raw.current_time = Date.parse(new Date().getFullYear() + "-" +
|
|
37
|
-
results.groups.current_date.substr(0, 2) + "-" +
|
|
38
|
-
results.groups.current_date.substr(2, 2) + "T" +
|
|
39
|
-
results.groups.current_time.substr(0, 2) + ":" +
|
|
40
|
-
results.groups.current_time.substr(2, 2) + ":00Z");
|
|
41
|
-
if (results.groups.fuel_in_tons != '***' && results.groups.fuel_in_tons != '****') {
|
|
42
|
-
decodeResult.raw.fuel_in_tons = Number(results.groups.fuel_in_tons);
|
|
43
|
-
}
|
|
44
|
-
decodeResult.formatted.items.push({
|
|
45
|
-
type: 'aircraft_position',
|
|
46
|
-
code: 'POS',
|
|
47
|
-
label: 'Aircraft Position',
|
|
48
|
-
value: `${decodeResult.raw.latitude} ${decodeResult.raw.latitude_direction}, ${decodeResult.raw.longitude} ${decodeResult.raw.longitude_direction}`,
|
|
49
|
-
});
|
|
50
|
-
decodeResult.formatted.items.push({
|
|
51
|
-
type: 'origin',
|
|
52
|
-
code: 'ORG',
|
|
53
|
-
label: 'Origin',
|
|
54
|
-
value: decodeResult.raw.departure_icao,
|
|
55
|
-
});
|
|
56
|
-
decodeResult.formatted.items.push({
|
|
57
|
-
type: 'destination',
|
|
58
|
-
code: 'DST',
|
|
59
|
-
label: 'Destination',
|
|
60
|
-
value: decodeResult.raw.arrival_icao,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
decodeResult.decoded = true;
|
|
64
|
-
decodeResult.decoder.decodeLevel = 'full';
|
|
65
|
-
return decodeResult;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.Label_20_CFB01 = Label_20_CFB01;
|
|
69
|
-
exports.default = {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_20_POS extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Label_20_POS = void 0;
|
|
4
|
-
const DecoderPlugin_1 = require("../DecoderPlugin");
|
|
5
|
-
// Position Report
|
|
6
|
-
class Label_20_POS extends DecoderPlugin_1.DecoderPlugin {
|
|
7
|
-
name = 'label-20-pos';
|
|
8
|
-
qualifiers() {
|
|
9
|
-
return {
|
|
10
|
-
labels: ['20'],
|
|
11
|
-
preambles: ['POS'],
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
decode(message, options = {}) {
|
|
15
|
-
const decodeResult = this.defaultResult;
|
|
16
|
-
decodeResult.decoder.name = this.name;
|
|
17
|
-
decodeResult.formatted.description = 'Position Report';
|
|
18
|
-
decodeResult.message = message;
|
|
19
|
-
decodeResult.raw.preamble = message.text.substring(0, 3);
|
|
20
|
-
const content = message.text.substring(3);
|
|
21
|
-
console.log('Content: ' + content);
|
|
22
|
-
const fields = content.split(',');
|
|
23
|
-
console.log('Field Count: ' + fields.length);
|
|
24
|
-
if (fields.length == 11) {
|
|
25
|
-
// N38160W077075,,211733,360,OTT,212041,,N42,19689,40,544
|
|
26
|
-
console.log(`DEBUG: ${this.name}: Variation 1 detected`);
|
|
27
|
-
// Field 1: Coordinates
|
|
28
|
-
const rawCoords = fields[0];
|
|
29
|
-
decodeResult.raw.position = this.decodeStringCoordinates(rawCoords);
|
|
30
|
-
decodeResult.formatted.items.push({
|
|
31
|
-
type: 'position',
|
|
32
|
-
label: 'Position',
|
|
33
|
-
value: this.coordinateString(decodeResult.raw.position),
|
|
34
|
-
});
|
|
35
|
-
decodeResult.decoded = true;
|
|
36
|
-
decodeResult.decoder.decodeLevel = 'full';
|
|
37
|
-
}
|
|
38
|
-
else if (fields.length == 5) {
|
|
39
|
-
// N38160W077075,,211733,360,OTT
|
|
40
|
-
console.log(`DEBUG: ${this.name}: Variation 2 detected`);
|
|
41
|
-
// Field 1: Coordinates
|
|
42
|
-
const rawCoords = fields[0];
|
|
43
|
-
decodeResult.raw.position = this.decodeStringCoordinates(rawCoords);
|
|
44
|
-
decodeResult.formatted.items.push({
|
|
45
|
-
type: 'position',
|
|
46
|
-
label: 'Position',
|
|
47
|
-
value: this.coordinateString(decodeResult.raw.position),
|
|
48
|
-
});
|
|
49
|
-
decodeResult.decoded = true;
|
|
50
|
-
decodeResult.decoder.decodeLevel = 'full';
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// Unknown!
|
|
54
|
-
console.log(`DEBUG: ${this.name}: Unknown variation. Field count: ${fields.length}, content: ${content}`);
|
|
55
|
-
decodeResult.decoded = false;
|
|
56
|
-
decodeResult.decoder.decodeLevel = 'none';
|
|
57
|
-
}
|
|
58
|
-
return decodeResult;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.Label_20_POS = Label_20_POS;
|
|
62
|
-
exports.default = {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_30_Slash_EA extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Label_30_Slash_EA = void 0;
|
|
4
|
-
const DateTimeUtils_1 = require("../DateTimeUtils");
|
|
5
|
-
const DecoderPlugin_1 = require("../DecoderPlugin");
|
|
6
|
-
class Label_30_Slash_EA extends DecoderPlugin_1.DecoderPlugin {
|
|
7
|
-
name = 'label-30-slash-ea';
|
|
8
|
-
qualifiers() {
|
|
9
|
-
return {
|
|
10
|
-
labels: ["30"],
|
|
11
|
-
preambles: ['/EA'],
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
decode(message, options = {}) {
|
|
15
|
-
const decodeResult = this.defaultResult;
|
|
16
|
-
decodeResult.decoder.name = this.name;
|
|
17
|
-
decodeResult.formatted.description = 'ETA Report';
|
|
18
|
-
decodeResult.message = message;
|
|
19
|
-
// Style: /EA1830/DSKSFO/SK24
|
|
20
|
-
const results = message.text.split(/\n|\//).slice(1); // Split by / and new line
|
|
21
|
-
if (results) {
|
|
22
|
-
if (options.debug) {
|
|
23
|
-
console.log(`Label 30 EA: results`);
|
|
24
|
-
console.log(results);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
decodeResult.formatted.items.push({
|
|
28
|
-
type: 'eta',
|
|
29
|
-
code: 'ETA',
|
|
30
|
-
label: 'Estimated Time of Arrival',
|
|
31
|
-
value: DateTimeUtils_1.DateTimeUtils.UTCToString(results[0].substr(2, 4)),
|
|
32
|
-
});
|
|
33
|
-
if (results[1].substr(0, 2) === "DS") {
|
|
34
|
-
decodeResult.raw.arrival_icao = results[1].substr(2, 4);
|
|
35
|
-
decodeResult.formatted.items.push({
|
|
36
|
-
type: 'destination',
|
|
37
|
-
code: 'DST',
|
|
38
|
-
label: 'Destination',
|
|
39
|
-
value: decodeResult.raw.arrival_icao,
|
|
40
|
-
});
|
|
41
|
-
// We don't know what the /SK section means. We have seen various numbers
|
|
42
|
-
// after the /SK.
|
|
43
|
-
decodeResult.remaining.text = "/".concat(results[2]);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
decodeResult.remaining.text = "/".concat(results[1], "/", results[2]);
|
|
47
|
-
}
|
|
48
|
-
decodeResult.decoded = true;
|
|
49
|
-
decodeResult.decoder.decodeLevel = 'partial';
|
|
50
|
-
return decodeResult;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.Label_30_Slash_EA = Label_30_Slash_EA;
|
|
54
|
-
exports.default = {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const MessageDecoder_1 = require("../MessageDecoder");
|
|
4
|
-
const Label_30_Slash_EA_1 = require("./Label_30_Slash_EA");
|
|
5
|
-
test('decodes Label 30 sample 1', () => {
|
|
6
|
-
const decoder = new MessageDecoder_1.MessageDecoder();
|
|
7
|
-
const decoderPlugin = new Label_30_Slash_EA_1.Label_30_Slash_EA(decoder);
|
|
8
|
-
expect(decoderPlugin.decode).toBeDefined();
|
|
9
|
-
expect(decoderPlugin.name).toBe('label-30-slash-ea');
|
|
10
|
-
expect(decoderPlugin.qualifiers).toBeDefined();
|
|
11
|
-
expect(decoderPlugin.qualifiers()).toEqual({
|
|
12
|
-
labels: ['30'],
|
|
13
|
-
preambles: ['/EA'],
|
|
14
|
-
});
|
|
15
|
-
const text = '/EA1719/DSKSFO/SK23';
|
|
16
|
-
const decodeResult = decoderPlugin.decode({ text: text });
|
|
17
|
-
console.log(JSON.stringify(decodeResult, null, 2));
|
|
18
|
-
expect(decodeResult.decoded).toBe(true);
|
|
19
|
-
expect(decodeResult.decoder.decodeLevel).toBe('partial');
|
|
20
|
-
expect(decodeResult.decoder.name).toBe('label-30-slash-ea');
|
|
21
|
-
expect(decodeResult.formatted.description).toBe('ETA Report');
|
|
22
|
-
expect(decodeResult.message.text).toBe(text);
|
|
23
|
-
expect(decodeResult.raw.arrival_icao).toBe('KSFO');
|
|
24
|
-
expect(decodeResult.formatted.items.length).toBe(2);
|
|
25
|
-
expect(decodeResult.formatted.items[0].type).toBe('eta');
|
|
26
|
-
expect(decodeResult.formatted.items[0].code).toBe('ETA');
|
|
27
|
-
expect(decodeResult.formatted.items[0].label).toBe('Estimated Time of Arrival');
|
|
28
|
-
// This test is a bit rough as typescript doesn't have a UTC time string
|
|
29
|
-
// method so the hour will be depend on the test host timezone.
|
|
30
|
-
expect(decodeResult.formatted.items[0].value.includes('19')).toBe(true);
|
|
31
|
-
expect(decodeResult.formatted.items[1].type).toBe('destination');
|
|
32
|
-
expect(decodeResult.formatted.items[1].code).toBe('DST');
|
|
33
|
-
expect(decodeResult.formatted.items[1].label).toBe('Destination');
|
|
34
|
-
expect(decodeResult.formatted.items[1].value).toBe('KSFO');
|
|
35
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_44_ETA extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Label_44_ETA = void 0;
|
|
4
|
-
const DecoderPlugin_1 = require("../DecoderPlugin");
|
|
5
|
-
// In Air Report
|
|
6
|
-
class Label_44_ETA extends DecoderPlugin_1.DecoderPlugin {
|
|
7
|
-
name = 'label-44-eta';
|
|
8
|
-
qualifiers() {
|
|
9
|
-
return {
|
|
10
|
-
labels: ['44'],
|
|
11
|
-
preambles: ['00ETA01', '00ETA02', '00ETA03', 'ETA01', 'ETA02', 'ETA03'],
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
decode(message, options = {}) {
|
|
15
|
-
const decodeResult = this.defaultResult;
|
|
16
|
-
decodeResult.decoder.name = this.name;
|
|
17
|
-
decodeResult.formatted.description = 'ETA Report';
|
|
18
|
-
decodeResult.message = message;
|
|
19
|
-
// Style: IN02,N38338W121179,KMHR,KPDX,0806,2355,005.1
|
|
20
|
-
// Match: IN02,coords,departure_icao,arrival_icao,current_date,current_time,fuel_in_tons
|
|
21
|
-
const regex = /^IN02,(?<unsplit_coords>.*),(?<departure_icao>.*),(?<arrival_icao>.*),(?<current_date>.*),(?<current_time>.*),(?<fuel_in_tons>.*)$/;
|
|
22
|
-
const results = message.text.match(regex);
|
|
23
|
-
if (results) {
|
|
24
|
-
if (options.debug) {
|
|
25
|
-
console.log(`Label 44 ETA Report: groups`);
|
|
26
|
-
console.log(results.groups);
|
|
27
|
-
}
|
|
28
|
-
const coordsRegex = /(?<lac>[NS])(?<la>.+)\s*(?<lnc>[EW])(?<ln>.+)/;
|
|
29
|
-
const coordsResults = results.groups.unsplit_coords.match(coordsRegex);
|
|
30
|
-
decodeResult.raw.latitude_direction = coordsResults.groups.lac;
|
|
31
|
-
decodeResult.raw.latitude = Number(coordsResults.groups.la) / 1000;
|
|
32
|
-
decodeResult.raw.longitude_direction = coordsResults.groups.lnc;
|
|
33
|
-
decodeResult.raw.longitude = Number(coordsResults.groups.ln) / 1000;
|
|
34
|
-
decodeResult.raw.departure_icao = results.groups.departure_icao;
|
|
35
|
-
decodeResult.raw.arrival_icao = results.groups.arrival_icao;
|
|
36
|
-
decodeResult.raw.current_time = Date.parse(new Date().getFullYear() + "-" +
|
|
37
|
-
results.groups.current_date.substr(0, 2) + "-" +
|
|
38
|
-
results.groups.current_date.substr(2, 2) + "T" +
|
|
39
|
-
results.groups.current_time.substr(0, 2) + ":" +
|
|
40
|
-
results.groups.current_time.substr(2, 2) + ":00Z");
|
|
41
|
-
if (results.groups.fuel_in_tons != '***' && results.groups.fuel_in_tons != '****') {
|
|
42
|
-
decodeResult.raw.fuel_in_tons = Number(results.groups.fuel_in_tons);
|
|
43
|
-
}
|
|
44
|
-
decodeResult.formatted.items.push({
|
|
45
|
-
type: 'aircraft_position',
|
|
46
|
-
code: 'POS',
|
|
47
|
-
label: 'Aircraft Position',
|
|
48
|
-
value: `${decodeResult.raw.latitude} ${decodeResult.raw.latitude_direction}, ${decodeResult.raw.longitude} ${decodeResult.raw.longitude_direction}`,
|
|
49
|
-
});
|
|
50
|
-
decodeResult.formatted.items.push({
|
|
51
|
-
type: 'origin',
|
|
52
|
-
code: 'ORG',
|
|
53
|
-
label: 'Origin',
|
|
54
|
-
value: decodeResult.raw.departure_icao,
|
|
55
|
-
});
|
|
56
|
-
decodeResult.formatted.items.push({
|
|
57
|
-
type: 'destination',
|
|
58
|
-
code: 'DST',
|
|
59
|
-
label: 'Destination',
|
|
60
|
-
value: decodeResult.raw.arrival_icao,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
decodeResult.decoded = true;
|
|
64
|
-
decodeResult.decoder.decodeLevel = 'full';
|
|
65
|
-
return decodeResult;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.Label_44_ETA = Label_44_ETA;
|
|
69
|
-
exports.default = {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_44_IN extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Label_44_IN = void 0;
|
|
4
|
-
const DecoderPlugin_1 = require("../DecoderPlugin");
|
|
5
|
-
// In Air Report
|
|
6
|
-
class Label_44_IN extends DecoderPlugin_1.DecoderPlugin {
|
|
7
|
-
name = 'label-44-in';
|
|
8
|
-
qualifiers() {
|
|
9
|
-
return {
|
|
10
|
-
labels: ['44'],
|
|
11
|
-
preambles: ['00IN01', '00IN02', '00IN03', 'IN01', 'IN02', 'IN03'],
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
decode(message, options = {}) {
|
|
15
|
-
const decodeResult = this.defaultResult;
|
|
16
|
-
decodeResult.decoder.name = this.name;
|
|
17
|
-
decodeResult.formatted.description = 'In Air Report';
|
|
18
|
-
decodeResult.message = message;
|
|
19
|
-
// Style: IN02,N38338W121179,KMHR,KPDX,0806,2355,005.1
|
|
20
|
-
// Match: IN02,coords,departure_icao,arrival_icao,current_date,current_time,fuel_in_tons
|
|
21
|
-
const regex = /^IN02,(?<unsplit_coords>.*),(?<departure_icao>.*),(?<arrival_icao>.*),(?<current_date>.*),(?<current_time>.*),(?<fuel_in_tons>.*)$/;
|
|
22
|
-
const results = message.text.match(regex);
|
|
23
|
-
if (results) {
|
|
24
|
-
if (options.debug) {
|
|
25
|
-
console.log(`Label 44 In Air Report: groups`);
|
|
26
|
-
console.log(results.groups);
|
|
27
|
-
}
|
|
28
|
-
const coordsRegex = /(?<lac>[NS])(?<la>.+)\s*(?<lnc>[EW])(?<ln>.+)/;
|
|
29
|
-
const coordsResults = results.groups.unsplit_coords.match(coordsRegex);
|
|
30
|
-
decodeResult.raw.latitude_direction = coordsResults.groups.lac;
|
|
31
|
-
decodeResult.raw.latitude = Number(coordsResults.groups.la) / 1000;
|
|
32
|
-
decodeResult.raw.longitude_direction = coordsResults.groups.lnc;
|
|
33
|
-
decodeResult.raw.longitude = Number(coordsResults.groups.ln) / 1000;
|
|
34
|
-
decodeResult.raw.departure_icao = results.groups.departure_icao;
|
|
35
|
-
decodeResult.raw.arrival_icao = results.groups.arrival_icao;
|
|
36
|
-
decodeResult.raw.current_time = Date.parse(new Date().getFullYear() + "-" +
|
|
37
|
-
results.groups.current_date.substr(0, 2) + "-" +
|
|
38
|
-
results.groups.current_date.substr(2, 2) + "T" +
|
|
39
|
-
results.groups.current_time.substr(0, 2) + ":" +
|
|
40
|
-
results.groups.current_time.substr(2, 2) + ":00Z");
|
|
41
|
-
if (results.groups.fuel_in_tons != '***' && results.groups.fuel_in_tons != '****') {
|
|
42
|
-
decodeResult.raw.fuel_in_tons = Number(results.groups.fuel_in_tons);
|
|
43
|
-
}
|
|
44
|
-
decodeResult.formatted.items.push({
|
|
45
|
-
type: 'aircraft_position',
|
|
46
|
-
code: 'POS',
|
|
47
|
-
label: 'Aircraft Position',
|
|
48
|
-
value: `${decodeResult.raw.latitude} ${decodeResult.raw.latitude_direction}, ${decodeResult.raw.longitude} ${decodeResult.raw.longitude_direction}`,
|
|
49
|
-
});
|
|
50
|
-
decodeResult.formatted.items.push({
|
|
51
|
-
type: 'origin',
|
|
52
|
-
code: 'ORG',
|
|
53
|
-
label: 'Origin',
|
|
54
|
-
value: decodeResult.raw.departure_icao,
|
|
55
|
-
});
|
|
56
|
-
decodeResult.formatted.items.push({
|
|
57
|
-
type: 'destination',
|
|
58
|
-
code: 'DST',
|
|
59
|
-
label: 'Destination',
|
|
60
|
-
value: decodeResult.raw.arrival_icao,
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
decodeResult.decoded = true;
|
|
64
|
-
decodeResult.decoder.decodeLevel = 'full';
|
|
65
|
-
return decodeResult;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.Label_44_IN = Label_44_IN;
|
|
69
|
-
exports.default = {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DecoderPlugin } from '../DecoderPlugin';
|
|
2
|
-
export declare class Label_44_OFF extends DecoderPlugin {
|
|
3
|
-
name: string;
|
|
4
|
-
qualifiers(): {
|
|
5
|
-
labels: string[];
|
|
6
|
-
preambles: string[];
|
|
7
|
-
};
|
|
8
|
-
decode(message: any, options?: any): any;
|
|
9
|
-
}
|
|
10
|
-
declare const _default: {};
|
|
11
|
-
export default _default;
|