@airframes/acars-decoder 1.2.1 → 1.3.0

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.
Files changed (57) hide show
  1. package/dist/DecoderPlugin.d.ts +16 -0
  2. package/dist/DecoderPlugin.js +66 -0
  3. package/dist/DecoderPluginInterface.d.ts +7 -0
  4. package/dist/DecoderPluginInterface.js +3 -0
  5. package/dist/IcaoDecoder.d.ts +8 -0
  6. package/dist/IcaoDecoder.js +106 -0
  7. package/dist/MessageDecoder.d.ts +12 -0
  8. package/dist/MessageDecoder.js +97 -0
  9. package/dist/bin/acars-decoder-test.d.ts +2 -0
  10. package/dist/bin/acars-decoder-test.js +38 -0
  11. package/dist/bin/acars-decoder.d.ts +2 -0
  12. package/dist/bin/acars-decoder.js +20 -0
  13. package/dist/plugins/Label_15.d.ts +11 -0
  14. package/dist/plugins/Label_15.js +42 -0
  15. package/dist/plugins/Label_20_CFB.01.d.ts +11 -0
  16. package/dist/plugins/Label_20_CFB.01.js +71 -0
  17. package/dist/plugins/Label_20_POS.d.ts +11 -0
  18. package/dist/plugins/Label_20_POS.js +64 -0
  19. package/dist/plugins/Label_44_ETA.d.ts +11 -0
  20. package/dist/plugins/Label_44_ETA.js +71 -0
  21. package/dist/plugins/Label_44_IN.d.ts +11 -0
  22. package/dist/plugins/Label_44_IN.js +71 -0
  23. package/dist/plugins/Label_44_OFF.d.ts +11 -0
  24. package/dist/plugins/Label_44_OFF.js +76 -0
  25. package/dist/plugins/Label_44_ON.d.ts +11 -0
  26. package/dist/plugins/Label_44_ON.js +71 -0
  27. package/dist/plugins/Label_44_POS.d.ts +11 -0
  28. package/dist/plugins/Label_44_POS.js +83 -0
  29. package/dist/plugins/Label_5Z.d.ts +11 -0
  30. package/dist/plugins/Label_5Z.js +122 -0
  31. package/dist/plugins/Label_80.d.ts +12 -0
  32. package/dist/plugins/Label_80.js +205 -0
  33. package/dist/plugins/Label_8E.d.ts +10 -0
  34. package/dist/plugins/Label_8E.js +57 -0
  35. package/dist/plugins/Label_B6.d.ts +11 -0
  36. package/dist/plugins/Label_B6.js +28 -0
  37. package/dist/plugins/Label_ColonComma.d.ts +10 -0
  38. package/dist/plugins/Label_ColonComma.js +30 -0
  39. package/dist/plugins/Label_H1.d.ts +9 -0
  40. package/dist/plugins/Label_H1.js +17 -0
  41. package/dist/plugins/Label_H1_M1BPOS.d.ts +11 -0
  42. package/dist/plugins/Label_H1_M1BPOS.js +56 -0
  43. package/dist/plugins/Label_H1_M1BPRG.d.ts +11 -0
  44. package/dist/plugins/Label_H1_M1BPRG.js +38 -0
  45. package/dist/plugins/Label_QP.d.ts +10 -0
  46. package/dist/plugins/Label_QP.js +51 -0
  47. package/dist/plugins/Label_QQ.d.ts +10 -0
  48. package/dist/plugins/Label_QQ.js +51 -0
  49. package/dist/plugins/Label_QR.d.ts +10 -0
  50. package/dist/plugins/Label_QR.js +51 -0
  51. package/dist/plugins/Label_QS.d.ts +10 -0
  52. package/dist/plugins/Label_QS.js +51 -0
  53. package/dist/plugins/Label_SQ.d.ts +10 -0
  54. package/dist/plugins/Label_SQ.js +106 -0
  55. package/dist/plugins/official.d.ts +19 -0
  56. package/dist/plugins/official.js +24 -0
  57. package/package.json +3 -3
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DecoderPlugin_1 = require("../DecoderPlugin");
4
+ class Label_QR extends DecoderPlugin_1.DecoderPlugin {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'label-qr';
8
+ }
9
+ qualifiers() {
10
+ return {
11
+ labels: ['QR'],
12
+ };
13
+ }
14
+ decode(message, options = {}) {
15
+ const decodeResult = this.defaultResult;
16
+ decodeResult.decoder.name = this.name;
17
+ decodeResult.raw.origin = message.text.substring(0, 4);
18
+ decodeResult.raw.destination = message.text.substring(4, 8);
19
+ decodeResult.raw.wheels_on = message.text.substring(8, 12);
20
+ decodeResult.remaining.text = message.text.substring(12);
21
+ decodeResult.formatted.description = 'ON Report';
22
+ decodeResult.formatted.items = [
23
+ {
24
+ type: 'origin',
25
+ code: 'ORG',
26
+ label: 'Origin',
27
+ value: decodeResult.raw.origin,
28
+ },
29
+ {
30
+ type: 'destination',
31
+ code: 'DST',
32
+ label: 'Destination',
33
+ value: decodeResult.raw.destination,
34
+ },
35
+ {
36
+ type: 'wheels_on',
37
+ code: 'WON',
38
+ label: 'Wheels ON',
39
+ value: decodeResult.raw.wheels_on,
40
+ }
41
+ ];
42
+ decodeResult.decoded = true;
43
+ if (decodeResult.remaining.text === "")
44
+ decodeResult.decoder.decodeLevel = 'full';
45
+ else
46
+ decodeResult.decoder.decodeLevel = 'partial';
47
+ return decodeResult;
48
+ }
49
+ }
50
+ exports.Label_QR = Label_QR;
51
+ exports.default = {};
@@ -0,0 +1,10 @@
1
+ import { DecoderPlugin } from '../DecoderPlugin';
2
+ export declare class Label_QS extends DecoderPlugin {
3
+ name: string;
4
+ qualifiers(): {
5
+ labels: string[];
6
+ };
7
+ decode(message: any, options?: any): any;
8
+ }
9
+ declare const _default: {};
10
+ export default _default;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DecoderPlugin_1 = require("../DecoderPlugin");
4
+ class Label_QS extends DecoderPlugin_1.DecoderPlugin {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'label-qs';
8
+ }
9
+ qualifiers() {
10
+ return {
11
+ labels: ['QS'],
12
+ };
13
+ }
14
+ decode(message, options = {}) {
15
+ const decodeResult = this.defaultResult;
16
+ decodeResult.decoder.name = this.name;
17
+ decodeResult.raw.origin = message.text.substring(0, 4);
18
+ decodeResult.raw.destination = message.text.substring(4, 8);
19
+ decodeResult.raw.gate_in = message.text.substring(8, 12);
20
+ decodeResult.remaining.text = message.text.substring(12);
21
+ decodeResult.formatted.description = 'IN Report';
22
+ decodeResult.formatted.items = [
23
+ {
24
+ type: 'origin',
25
+ code: 'ORG',
26
+ label: 'Origin',
27
+ value: decodeResult.raw.origin,
28
+ },
29
+ {
30
+ type: 'destination',
31
+ code: 'DST',
32
+ label: 'Destination',
33
+ value: decodeResult.raw.destination,
34
+ },
35
+ {
36
+ type: 'gate_in',
37
+ code: 'GIN',
38
+ label: 'Gate IN',
39
+ value: decodeResult.raw.gate_in,
40
+ }
41
+ ];
42
+ decodeResult.decoded = true;
43
+ if (decodeResult.remaining.text === "")
44
+ decodeResult.decoder.decodeLevel = 'full';
45
+ else
46
+ decodeResult.decoder.decodeLevel = 'partial';
47
+ return decodeResult;
48
+ }
49
+ }
50
+ exports.Label_QS = Label_QS;
51
+ exports.default = {};
@@ -0,0 +1,10 @@
1
+ import { DecoderPlugin } from '../DecoderPlugin';
2
+ export declare class Label_SQ extends DecoderPlugin {
3
+ name: string;
4
+ qualifiers(): {
5
+ labels: string[];
6
+ };
7
+ decode(message: any, options?: any): any;
8
+ }
9
+ declare const _default: {};
10
+ export default _default;
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const DecoderPlugin_1 = require("../DecoderPlugin");
4
+ class Label_SQ extends DecoderPlugin_1.DecoderPlugin {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = 'label-sq';
8
+ }
9
+ qualifiers() {
10
+ return {
11
+ labels: ['SQ'],
12
+ };
13
+ }
14
+ decode(message, options = {}) {
15
+ const decodeResult = this.defaultResult;
16
+ decodeResult.decoder.name = this.name;
17
+ decodeResult.raw.preamble = message.text.substring(0, 4);
18
+ decodeResult.raw.version = message.text.substring(1, 2);
19
+ decodeResult.raw.network = message.text.substring(3, 4);
20
+ if (decodeResult.raw.version === '2') {
21
+ const regex = /0(\d)X(?<org>\w)(?<iata>\w\w\w)(?<icao>\w\w\w\w)(?<station>\d)(?<lat>\d+)(?<latd>[NS])(?<lng>\d+)(?<lngd>[EW])V(?<vfreq>\d+)\/.*/;
22
+ const result = message.text.match(regex);
23
+ if (result && result.length >= 8) {
24
+ decodeResult.raw.groundStation = {
25
+ number: result.groups.station,
26
+ iataCode: result.groups.iata,
27
+ icaoCode: result.groups.icao,
28
+ coordinates: {
29
+ latitude: (Number(result.groups.lat) / 100) * (result.groups.latd === 'S' ? -1 : 1),
30
+ longitude: (Number(result.groups.lng) / 100) * (result.groups.lngd === 'W' ? -1 : 1)
31
+ }
32
+ };
33
+ decodeResult.raw.vdlFrequency = result.groups.vfreq / 1000.0;
34
+ }
35
+ }
36
+ decodeResult.formatted.description = 'Ground Station Squitter';
37
+ var formattedNetwork = 'Unknown';
38
+ if (decodeResult.raw.network == 'A') {
39
+ formattedNetwork = 'ARINC';
40
+ }
41
+ else if (decodeResult.raw.network == 'S') {
42
+ formattedNetwork = 'SITA';
43
+ }
44
+ decodeResult.formatted.items = [
45
+ {
46
+ type: 'network',
47
+ label: 'Network',
48
+ value: formattedNetwork,
49
+ },
50
+ {
51
+ type: 'version',
52
+ label: 'Version',
53
+ value: decodeResult.raw.version,
54
+ }
55
+ ];
56
+ if (decodeResult.raw.groundStation) {
57
+ if (decodeResult.raw.groundStation.icaoCode && decodeResult.raw.groundStation.number) {
58
+ decodeResult.formatted.items.push({
59
+ type: 'ground_station',
60
+ label: 'Ground Station',
61
+ value: `${decodeResult.raw.groundStation.icaoCode}${decodeResult.raw.groundStation.number}`,
62
+ });
63
+ }
64
+ if (decodeResult.raw.groundStation.iataCode) {
65
+ decodeResult.formatted.items.push({
66
+ type: 'iataCode',
67
+ label: 'IATA',
68
+ value: decodeResult.raw.groundStation.iataCode,
69
+ });
70
+ }
71
+ if (decodeResult.raw.groundStation.icaoCode) {
72
+ decodeResult.formatted.items.push({
73
+ type: 'icaoCode',
74
+ label: 'ICAO',
75
+ value: decodeResult.raw.groundStation.icaoCode,
76
+ });
77
+ }
78
+ if (decodeResult.raw.groundStation.coordinates.latitude) {
79
+ decodeResult.formatted.items.push({
80
+ type: 'coordinates',
81
+ label: 'Ground Station Location',
82
+ value: `${decodeResult.raw.groundStation.coordinates.latitude}, ${decodeResult.raw.groundStation.coordinates.longitude}`,
83
+ });
84
+ }
85
+ if (decodeResult.raw.groundStation.airport) {
86
+ decodeResult.formatted.items.push({
87
+ type: 'airport',
88
+ label: 'Airport',
89
+ value: `${decodeResult.raw.groundStation.airport.name} (${decodeResult.raw.groundStation.airport.icao}) in ${decodeResult.raw.groundStation.airport.location}`,
90
+ });
91
+ }
92
+ }
93
+ if (decodeResult.raw.vdlFrequency) {
94
+ decodeResult.formatted.items.push({
95
+ type: 'vdlFrequency',
96
+ label: 'VDL Frequency',
97
+ value: `${decodeResult.raw.vdlFrequency} MHz`
98
+ });
99
+ }
100
+ decodeResult.decoded = true;
101
+ decodeResult.decoder.decodeLevel = 'full';
102
+ return decodeResult;
103
+ }
104
+ }
105
+ exports.Label_SQ = Label_SQ;
106
+ exports.default = {};
@@ -0,0 +1,19 @@
1
+ export * from './Label_5Z';
2
+ export * from './Label_15';
3
+ export * from './Label_20_POS';
4
+ export * from './Label_44_ETA';
5
+ export * from './Label_44_IN';
6
+ export * from './Label_44_OFF';
7
+ export * from './Label_44_ON';
8
+ export * from './Label_44_POS';
9
+ export * from './Label_80';
10
+ export * from './Label_8E';
11
+ export * from './Label_B6';
12
+ export * from './Label_ColonComma';
13
+ export * from './Label_H1_M1BPOS';
14
+ export * from './Label_H1_M1BPRG';
15
+ export * from './Label_SQ';
16
+ export * from './Label_QR';
17
+ export * from './Label_QP';
18
+ export * from './Label_QS';
19
+ export * from './Label_QQ';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ function __export(m) {
3
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
+ }
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ __export(require("./Label_5Z"));
7
+ __export(require("./Label_15"));
8
+ __export(require("./Label_20_POS"));
9
+ __export(require("./Label_44_ETA"));
10
+ __export(require("./Label_44_IN"));
11
+ __export(require("./Label_44_OFF"));
12
+ __export(require("./Label_44_ON"));
13
+ __export(require("./Label_44_POS"));
14
+ __export(require("./Label_80"));
15
+ __export(require("./Label_8E"));
16
+ __export(require("./Label_B6"));
17
+ __export(require("./Label_ColonComma"));
18
+ __export(require("./Label_H1_M1BPOS"));
19
+ __export(require("./Label_H1_M1BPRG"));
20
+ __export(require("./Label_SQ"));
21
+ __export(require("./Label_QR"));
22
+ __export(require("./Label_QP"));
23
+ __export(require("./Label_QS"));
24
+ __export(require("./Label_QQ"));
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@airframes/acars-decoder",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "ACARS Message Decoder for TypeScript/JavaScript",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
5
+ "main": "index.js",
6
+ "types": "index.d.ts",
7
7
  "bin": {
8
8
  "acars-decoder": "./dist/bin/acars-decoder.js",
9
9
  "acars-decoder-test": "./dist/bin/acars-decoder-test.js"