@squawk/mode-s 0.1.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.
- package/README.md +243 -0
- package/dist/acas.d.ts +14 -0
- package/dist/acas.d.ts.map +1 -0
- package/dist/acas.js +90 -0
- package/dist/altitude.d.ts +34 -0
- package/dist/altitude.d.ts.map +1 -0
- package/dist/altitude.js +99 -0
- package/dist/bits.d.ts +41 -0
- package/dist/bits.d.ts.map +1 -0
- package/dist/bits.js +55 -0
- package/dist/comm-b.d.ts +37 -0
- package/dist/comm-b.d.ts.map +1 -0
- package/dist/comm-b.js +245 -0
- package/dist/cpr.d.ts +71 -0
- package/dist/cpr.d.ts.map +1 -0
- package/dist/cpr.js +220 -0
- package/dist/emergency-status.d.ts +10 -0
- package/dist/emergency-status.d.ts.map +1 -0
- package/dist/emergency-status.js +21 -0
- package/dist/frame.d.ts +42 -0
- package/dist/frame.d.ts.map +1 -0
- package/dist/frame.js +68 -0
- package/dist/identification.d.ts +10 -0
- package/dist/identification.d.ts.map +1 -0
- package/dist/identification.js +64 -0
- package/dist/identity.d.ts +11 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +20 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/message.d.ts +40 -0
- package/dist/message.d.ts.map +1 -0
- package/dist/message.js +293 -0
- package/dist/mode-ac.d.ts +17 -0
- package/dist/mode-ac.d.ts.map +1 -0
- package/dist/mode-ac.js +86 -0
- package/dist/operational-status.d.ts +9 -0
- package/dist/operational-status.d.ts.map +1 -0
- package/dist/operational-status.js +23 -0
- package/dist/surface-movement.d.ts +9 -0
- package/dist/surface-movement.d.ts.map +1 -0
- package/dist/surface-movement.js +37 -0
- package/dist/target-state-status.d.ts +9 -0
- package/dist/target-state-status.d.ts.map +1 -0
- package/dist/target-state-status.js +34 -0
- package/dist/test-utils.d.ts +7 -0
- package/dist/test-utils.d.ts.map +1 -0
- package/dist/test-utils.js +17 -0
- package/dist/types/acas.d.ts +82 -0
- package/dist/types/acas.d.ts.map +1 -0
- package/dist/types/acas.js +1 -0
- package/dist/types/comm-b.d.ts +69 -0
- package/dist/types/comm-b.d.ts.map +1 -0
- package/dist/types/comm-b.js +1 -0
- package/dist/types/cpr.d.ts +25 -0
- package/dist/types/cpr.d.ts.map +1 -0
- package/dist/types/cpr.js +1 -0
- package/dist/types/emergency-status.d.ts +6 -0
- package/dist/types/emergency-status.d.ts.map +1 -0
- package/dist/types/emergency-status.js +1 -0
- package/dist/types/frame.d.ts +32 -0
- package/dist/types/frame.d.ts.map +1 -0
- package/dist/types/frame.js +1 -0
- package/dist/types/identification.d.ts +9 -0
- package/dist/types/identification.d.ts.map +1 -0
- package/dist/types/identification.js +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/message.d.ts +235 -0
- package/dist/types/message.d.ts.map +1 -0
- package/dist/types/message.js +1 -0
- package/dist/types/mode-ac.d.ts +16 -0
- package/dist/types/mode-ac.d.ts.map +1 -0
- package/dist/types/mode-ac.js +1 -0
- package/dist/types/operational-status.d.ts +28 -0
- package/dist/types/operational-status.d.ts.map +1 -0
- package/dist/types/operational-status.js +1 -0
- package/dist/types/target-state-status.d.ts +34 -0
- package/dist/types/target-state-status.d.ts.map +1 -0
- package/dist/types/target-state-status.js +1 -0
- package/dist/types/velocity.d.ts +35 -0
- package/dist/types/velocity.d.ts.map +1 -0
- package/dist/types/velocity.js +1 -0
- package/dist/velocity.d.ts +9 -0
- package/dist/velocity.d.ts.map +1 -0
- package/dist/velocity.js +73 -0
- package/package.json +61 -0
package/dist/mode-ac.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { extractBits } from './bits.js';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a raw Mode A code to a Mode C altitude in 100s of feet, via the
|
|
4
|
+
* reflected-binary unscrambling defined for the Mode C altitude pulse
|
|
5
|
+
* train. Ported from dump1090-fa's `mode_ac.c` (`internalModeAToModeC`) and
|
|
6
|
+
* verified by exhaustive comparison against it across all 65536 possible
|
|
7
|
+
* inputs (0 mismatches) - this package's own capture data has no Mode A/C
|
|
8
|
+
* traffic to validate against directly (the format's use is opt-in and was
|
|
9
|
+
* off on the reference station), so this port leans on that exhaustive
|
|
10
|
+
* algorithmic cross-check rather than real-world samples.
|
|
11
|
+
*
|
|
12
|
+
* @param modeA - The raw 16-bit Mode A value.
|
|
13
|
+
* @returns Altitude in 100s of feet, or undefined if the code is not a valid Mode C altitude report.
|
|
14
|
+
*/
|
|
15
|
+
function modeAToModeC(modeA) {
|
|
16
|
+
if ((modeA & 0xffff8889) !== 0 || (modeA & 0x000000f0) === 0) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
let oneHundreds = 0;
|
|
20
|
+
if (modeA & 0x0010) {
|
|
21
|
+
oneHundreds ^= 0x007; // C1
|
|
22
|
+
}
|
|
23
|
+
if (modeA & 0x0020) {
|
|
24
|
+
oneHundreds ^= 0x003; // C2
|
|
25
|
+
}
|
|
26
|
+
if (modeA & 0x0040) {
|
|
27
|
+
oneHundreds ^= 0x001; // C4
|
|
28
|
+
}
|
|
29
|
+
if ((oneHundreds & 5) === 5) {
|
|
30
|
+
oneHundreds ^= 2; // remap 7 <-> 5
|
|
31
|
+
}
|
|
32
|
+
if (oneHundreds > 5) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
let fiveHundreds = 0;
|
|
36
|
+
if (modeA & 0x0002) {
|
|
37
|
+
fiveHundreds ^= 0x0ff; // D2
|
|
38
|
+
}
|
|
39
|
+
if (modeA & 0x0004) {
|
|
40
|
+
fiveHundreds ^= 0x07f; // D4
|
|
41
|
+
}
|
|
42
|
+
if (modeA & 0x1000) {
|
|
43
|
+
fiveHundreds ^= 0x03f; // A1
|
|
44
|
+
}
|
|
45
|
+
if (modeA & 0x2000) {
|
|
46
|
+
fiveHundreds ^= 0x01f; // A2
|
|
47
|
+
}
|
|
48
|
+
if (modeA & 0x4000) {
|
|
49
|
+
fiveHundreds ^= 0x00f; // A4
|
|
50
|
+
}
|
|
51
|
+
if (modeA & 0x0100) {
|
|
52
|
+
fiveHundreds ^= 0x007; // B1
|
|
53
|
+
}
|
|
54
|
+
if (modeA & 0x0200) {
|
|
55
|
+
fiveHundreds ^= 0x003; // B2
|
|
56
|
+
}
|
|
57
|
+
if (modeA & 0x0400) {
|
|
58
|
+
fiveHundreds ^= 0x001; // B4
|
|
59
|
+
}
|
|
60
|
+
if (fiveHundreds & 1) {
|
|
61
|
+
oneHundreds = 6 - oneHundreds;
|
|
62
|
+
}
|
|
63
|
+
return fiveHundreds * 5 + oneHundreds - 13;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Decodes a Mode A/C reply, as carried by a Beast type-1 frame. Beast
|
|
67
|
+
* represents the reply as the raw big-endian 16-bit value dump1090-fa
|
|
68
|
+
* calls "ModeA" internally: each of the four squawk digits occupies one
|
|
69
|
+
* nibble (masking with `0x7777` isolates them), with the Ident pulse and a
|
|
70
|
+
* couple of spare bits interspersed.
|
|
71
|
+
*
|
|
72
|
+
* Mode A/C carries no ICAO address, so a decoded reply cannot be
|
|
73
|
+
* associated with a specific aircraft the way a Mode-S message can - it is
|
|
74
|
+
* decode-only in this package, not wired into any aircraft-tracking state.
|
|
75
|
+
*
|
|
76
|
+
* @param bytes - The 2-byte Mode A/C payload from a Beast type-1 frame.
|
|
77
|
+
* @returns The decoded squawk code, Ident flag, and altitude (if the reply looks like a valid Mode C report).
|
|
78
|
+
*/
|
|
79
|
+
export function decodeModeAc(bytes) {
|
|
80
|
+
const modeA = extractBits(bytes, 0, 16);
|
|
81
|
+
const squawk = (modeA & 0x7777).toString(16).padStart(4, '0');
|
|
82
|
+
const identActive = (modeA & 0x0080) !== 0;
|
|
83
|
+
const modeC = identActive ? undefined : modeAToModeC(modeA);
|
|
84
|
+
const altitudeFt = modeC === undefined ? undefined : modeC * 100;
|
|
85
|
+
return { kind: 'modeAc', squawk, identActive, altitudeFt };
|
|
86
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AircraftOperationalStatus } from './types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Decodes an ADS-B Aircraft Operational Status message (BDS 6,5, type code 31).
|
|
4
|
+
*
|
|
5
|
+
* @param me - The 7-byte ME field of a DF17/18 message whose type code is 31.
|
|
6
|
+
* @returns The decoded operational status.
|
|
7
|
+
*/
|
|
8
|
+
export declare function decodeAircraftOperationalStatus(me: Uint8Array): AircraftOperationalStatus;
|
|
9
|
+
//# sourceMappingURL=operational-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operational-status.d.ts","sourceRoot":"","sources":["../src/operational-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,UAAU,GAAG,yBAAyB,CAgBzF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { extractBits } from './bits.js';
|
|
2
|
+
/**
|
|
3
|
+
* Decodes an ADS-B Aircraft Operational Status message (BDS 6,5, type code 31).
|
|
4
|
+
*
|
|
5
|
+
* @param me - The 7-byte ME field of a DF17/18 message whose type code is 31.
|
|
6
|
+
* @returns The decoded operational status.
|
|
7
|
+
*/
|
|
8
|
+
export function decodeAircraftOperationalStatus(me) {
|
|
9
|
+
const surface = extractBits(me, 5, 3) === 1;
|
|
10
|
+
const adsbVersion = extractBits(me, 40, 3);
|
|
11
|
+
return {
|
|
12
|
+
surface,
|
|
13
|
+
adsbVersion,
|
|
14
|
+
capabilityClassCode: extractBits(me, 8, 16),
|
|
15
|
+
operationalModeCode: extractBits(me, 24, 16),
|
|
16
|
+
nicSupplementA: extractBits(me, 43, 1) === 1,
|
|
17
|
+
navAccuracyCategoryPosition: extractBits(me, 44, 4),
|
|
18
|
+
sourceIntegrityLevel: extractBits(me, 50, 2),
|
|
19
|
+
nicBaro: !surface && adsbVersion >= 1 ? extractBits(me, 52, 1) === 1 : undefined,
|
|
20
|
+
headingReference: extractBits(me, 53, 1) === 1 ? 'magnetic' : 'true',
|
|
21
|
+
silSupplementPerHour: adsbVersion === 2 ? extractBits(me, 54, 1) === 1 : undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decodes the 7-bit movement field of an ADS-B surface position message
|
|
3
|
+
* (BDS 0,6) to ground speed in knots.
|
|
4
|
+
*
|
|
5
|
+
* @param movementField - The raw 7-bit movement field, 0-127.
|
|
6
|
+
* @returns Ground speed in knots, or undefined if the field reports no information (0) or is out of the defined range (>124).
|
|
7
|
+
*/
|
|
8
|
+
export declare function decodeSurfaceMovement(movementField: number): number | undefined;
|
|
9
|
+
//# sourceMappingURL=surface-movement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"surface-movement.d.ts","sourceRoot":"","sources":["../src/surface-movement.ts"],"names":[],"mappings":"AAWA;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmB/E"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Movement-field decode table: lower bound of each bin, the ground speed
|
|
3
|
+
* (kt) at that lower bound, and the per-step increment within the bin.
|
|
4
|
+
* Per DO-260B SS A.2.4.2 - the 7-bit movement field packs finer resolution
|
|
5
|
+
* at low speed (0.125 kt steps while taxiing) and coarser resolution at
|
|
6
|
+
* high speed (5 kt steps), rather than a uniform linear scale.
|
|
7
|
+
*/
|
|
8
|
+
const BIN_LOWER_BOUND = [2, 9, 13, 39, 94, 109, 124];
|
|
9
|
+
const KNOTS_AT_LOWER_BOUND = [0.125, 1, 2, 15, 70, 100, 175];
|
|
10
|
+
const STEP_WITHIN_BIN = [0.125, 0.25, 0.5, 1, 2, 5];
|
|
11
|
+
/**
|
|
12
|
+
* Decodes the 7-bit movement field of an ADS-B surface position message
|
|
13
|
+
* (BDS 0,6) to ground speed in knots.
|
|
14
|
+
*
|
|
15
|
+
* @param movementField - The raw 7-bit movement field, 0-127.
|
|
16
|
+
* @returns Ground speed in knots, or undefined if the field reports no information (0) or is out of the defined range (>124).
|
|
17
|
+
*/
|
|
18
|
+
export function decodeSurfaceMovement(movementField) {
|
|
19
|
+
if (movementField === 0 || movementField > 124) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
if (movementField === 1) {
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
if (movementField === 124) {
|
|
26
|
+
return 175;
|
|
27
|
+
}
|
|
28
|
+
const binIndex = BIN_LOWER_BOUND.findIndex((lowerBound) => lowerBound > movementField);
|
|
29
|
+
const previousBoundIndex = binIndex - 1;
|
|
30
|
+
const lowerBound = BIN_LOWER_BOUND[previousBoundIndex];
|
|
31
|
+
const knotsAtLowerBound = KNOTS_AT_LOWER_BOUND[previousBoundIndex];
|
|
32
|
+
const step = STEP_WITHIN_BIN[previousBoundIndex];
|
|
33
|
+
if (lowerBound === undefined || knotsAtLowerBound === undefined || step === undefined) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
return knotsAtLowerBound + (movementField - lowerBound) * step;
|
|
37
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TargetStateAndStatus } from './types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Decodes an ADS-B Target State and Status message (BDS 6,2, type code 29).
|
|
4
|
+
*
|
|
5
|
+
* @param me - The 7-byte ME field of a DF17/18 message whose type code is 29.
|
|
6
|
+
* @returns The decoded target state and status.
|
|
7
|
+
*/
|
|
8
|
+
export declare function decodeTargetStateAndStatus(me: Uint8Array): TargetStateAndStatus;
|
|
9
|
+
//# sourceMappingURL=target-state-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"target-state-status.d.ts","sourceRoot":"","sources":["../src/target-state-status.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,UAAU,GAAG,oBAAoB,CA+B/E"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { extractBits } from './bits.js';
|
|
2
|
+
/**
|
|
3
|
+
* Decodes an ADS-B Target State and Status message (BDS 6,2, type code 29).
|
|
4
|
+
*
|
|
5
|
+
* @param me - The 7-byte ME field of a DF17/18 message whose type code is 29.
|
|
6
|
+
* @returns The decoded target state and status.
|
|
7
|
+
*/
|
|
8
|
+
export function decodeTargetStateAndStatus(me) {
|
|
9
|
+
const altitudeSourceBit = extractBits(me, 8, 1);
|
|
10
|
+
const altitudeRaw = extractBits(me, 9, 11);
|
|
11
|
+
const selectedAltitudeFt = altitudeRaw === 0 ? undefined : (altitudeRaw - 1) * 32;
|
|
12
|
+
const selectedAltitudeSource = altitudeRaw === 0 ? undefined : altitudeSourceBit === 1 ? 'fms' : 'mcpFcu';
|
|
13
|
+
const baroRaw = extractBits(me, 20, 9);
|
|
14
|
+
const baroPressureSettingMb = baroRaw === 0 ? undefined : 800 + (baroRaw - 1) * 0.8;
|
|
15
|
+
const headingStatus = extractBits(me, 29, 1);
|
|
16
|
+
const headingRaw = extractBits(me, 30, 9);
|
|
17
|
+
const selectedHeadingDeg = headingStatus === 1 ? (headingRaw * 360) / 512 : undefined;
|
|
18
|
+
const modeStatus = extractBits(me, 46, 1);
|
|
19
|
+
return {
|
|
20
|
+
selectedAltitudeSource,
|
|
21
|
+
selectedAltitudeFt,
|
|
22
|
+
baroPressureSettingMb,
|
|
23
|
+
selectedHeadingDeg,
|
|
24
|
+
navAccuracyCategoryPosition: extractBits(me, 39, 4),
|
|
25
|
+
nicBaro: extractBits(me, 43, 1) === 1,
|
|
26
|
+
sourceIntegrityLevel: extractBits(me, 44, 2),
|
|
27
|
+
autopilotEngaged: modeStatus === 1 ? extractBits(me, 47, 1) === 1 : undefined,
|
|
28
|
+
vnavModeActive: modeStatus === 1 ? extractBits(me, 48, 1) === 1 : undefined,
|
|
29
|
+
altitudeHoldModeActive: modeStatus === 1 ? extractBits(me, 49, 1) === 1 : undefined,
|
|
30
|
+
approachModeActive: modeStatus === 1 ? extractBits(me, 51, 1) === 1 : undefined,
|
|
31
|
+
lnavModeActive: modeStatus === 1 ? extractBits(me, 53, 1) === 1 : undefined,
|
|
32
|
+
tcasOperational: extractBits(me, 52, 1) === 1,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-only inverse of `bits.ts`'s `extractBits`: sets `bitLength` bits of
|
|
3
|
+
* `value` into `bytes` starting at `bitOffset` (0-indexed from the MSB),
|
|
4
|
+
* for building synthetic ME fields in specs.
|
|
5
|
+
*/
|
|
6
|
+
export declare function setBits(bytes: Uint8Array, bitOffset: number, bitLength: number, value: number): void;
|
|
7
|
+
//# sourceMappingURL=test-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../src/test-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,IAAI,CAWN"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test-only inverse of `bits.ts`'s `extractBits`: sets `bitLength` bits of
|
|
3
|
+
* `value` into `bytes` starting at `bitOffset` (0-indexed from the MSB),
|
|
4
|
+
* for building synthetic ME fields in specs.
|
|
5
|
+
*/
|
|
6
|
+
export function setBits(bytes, bitOffset, bitLength, value) {
|
|
7
|
+
for (let i = 0; i < bitLength; i++) {
|
|
8
|
+
const bitPos = bitOffset + i;
|
|
9
|
+
const byteIndex = bitPos >> 3;
|
|
10
|
+
const bitInByte = 7 - (bitPos & 7);
|
|
11
|
+
const bit = (value >> (bitLength - 1 - i)) & 1;
|
|
12
|
+
const current = bytes[byteIndex];
|
|
13
|
+
if (bit === 1 && current !== undefined) {
|
|
14
|
+
bytes[byteIndex] = current | (1 << bitInByte);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The named Resolution Advisory type for a single-threat encounter, derived
|
|
3
|
+
* from the corrective/sense/rate/crossing/reversal flags per RTCA DO-185B
|
|
4
|
+
* Table 2-16 (reproduced as Table 3 in the FAA's "Introduction to TCAS II
|
|
5
|
+
* v7.1"). "Maintain Climb"/"Maintain Descend" and "Crossing Maintain
|
|
6
|
+
* Climb"/"Crossing Maintain Descend" are not distinct wire values - they
|
|
7
|
+
* are the same broadcast RA as `climb`/`descend` (or their crossing
|
|
8
|
+
* variants), annunciated differently by the receiving aircraft's own TCAS
|
|
9
|
+
* unit depending on whether it was already climbing/descending faster than
|
|
10
|
+
* the initially-commanded rate.
|
|
11
|
+
*/
|
|
12
|
+
export type ResolutionAdvisoryType = 'climb' | 'descend' | 'crossingClimb' | 'crossingDescend' | 'increaseClimb' | 'increaseDescent' | 'reduceClimb' | 'reduceDescent' | 'doNotClimb' | 'doNotDescend' | 'reversalToClimb' | 'reversalToDescend';
|
|
13
|
+
/** No threat-identity data (Threat Type Indicator 0). */
|
|
14
|
+
export interface AcasThreatNone {
|
|
15
|
+
/** Discriminant tag - no threat-identity data follows. */
|
|
16
|
+
threatType: 'none';
|
|
17
|
+
}
|
|
18
|
+
/** The threat identified by its 24-bit ICAO address (Threat Type Indicator 1). */
|
|
19
|
+
export interface AcasThreatIcaoAddress {
|
|
20
|
+
/** Discriminant tag - the threat is identified by ICAO address. */
|
|
21
|
+
threatType: 'icaoAddress';
|
|
22
|
+
/** The threat aircraft's 24-bit ICAO hex address. */
|
|
23
|
+
threatIcaoHex: string;
|
|
24
|
+
}
|
|
25
|
+
/** The threat identified by relative altitude, range, and bearing (Threat Type Indicator 2). */
|
|
26
|
+
export interface AcasThreatAltitudeRangeBearing {
|
|
27
|
+
/** Discriminant tag - the threat is identified by altitude/range/bearing. */
|
|
28
|
+
threatType: 'altitudeRangeBearing';
|
|
29
|
+
/** The threat's altitude in feet, or undefined if the field is unavailable. */
|
|
30
|
+
threatAltitudeFt: number | undefined;
|
|
31
|
+
/** The threat's range in nautical miles, or undefined if the field is unavailable. */
|
|
32
|
+
threatRangeNm: number | undefined;
|
|
33
|
+
/** The threat's bearing in degrees relative to own aircraft, or undefined if the field is unavailable. */
|
|
34
|
+
threatBearingDeg: number | undefined;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The identity of the threat an ACAS Resolution Advisory report responds
|
|
38
|
+
* to, discriminated by `threatType` (the 2-bit Threat Type Indicator, TTI).
|
|
39
|
+
*/
|
|
40
|
+
export type AcasThreat = AcasThreatNone | AcasThreatIcaoAddress | AcasThreatAltitudeRangeBearing;
|
|
41
|
+
/** Which kind of threat-identity data an ACAS Resolution Advisory report carries - the `threatType` discriminant of {@link AcasThreat}. */
|
|
42
|
+
export type AcasThreatType = AcasThreat['threatType'];
|
|
43
|
+
/**
|
|
44
|
+
* A decoded ACAS/TCAS Resolution Advisory report - BDS 3,0 content, carried
|
|
45
|
+
* either in a DF16 long air-air surveillance reply's MV field, or in a
|
|
46
|
+
* DF17/18 type-code-28 subtype-2 ME field (the ADS-B RA broadcast, which
|
|
47
|
+
* carries the identical content so aircraft without interrogation
|
|
48
|
+
* capability can still see an active RA).
|
|
49
|
+
*/
|
|
50
|
+
export interface AcasResolutionAdvisoryReport {
|
|
51
|
+
/** Whether a Resolution Advisory is currently active. False (with every other field still populated) means no advisory is presently in effect. */
|
|
52
|
+
active: boolean;
|
|
53
|
+
/** The named RA type for a single-threat encounter, derived from `corrective`/`downwardSense`/`increasedRate`/`senseReversal`/`altitudeCrossing`. Undefined when `active` is false, or when the flag combination has no defined single-threat RA type (e.g. some multi-threat composites - see `doNotPassBelow`/`doNotPassAbove`/`doNotTurnLeft`/`doNotTurnRight`). */
|
|
54
|
+
advisoryType: ResolutionAdvisoryType | undefined;
|
|
55
|
+
/** True if own aircraft must change its current vertical speed to comply; false if the RA is preventive (own aircraft is already in conformance and must only avoid certain rates). */
|
|
56
|
+
corrective: boolean;
|
|
57
|
+
/** True when the RA's sense is downward (descend-family); false when upward (climb-family). */
|
|
58
|
+
downwardSense: boolean;
|
|
59
|
+
/** True once own aircraft has been told to accelerate its climb/descent beyond the initial RA's target rate. */
|
|
60
|
+
increasedRate: boolean;
|
|
61
|
+
/** True when this RA reverses the sense of a previously issued RA for the same encounter. */
|
|
62
|
+
senseReversal: boolean;
|
|
63
|
+
/** True when this RA requires own aircraft to cross through the threat's altitude. */
|
|
64
|
+
altitudeCrossing: boolean;
|
|
65
|
+
/** True for a positive RA (a specific target climb/descend rate); false for a negative/Vertical-Speed-Limit RA (a rate to avoid). */
|
|
66
|
+
positive: boolean;
|
|
67
|
+
/** Resolution Advisory Complement: restricts own aircraft from descending below its current altitude. Primarily meaningful in multi-threat encounters. */
|
|
68
|
+
doNotPassBelow: boolean;
|
|
69
|
+
/** Resolution Advisory Complement: restricts own aircraft from climbing above its current altitude. Primarily meaningful in multi-threat encounters. */
|
|
70
|
+
doNotPassAbove: boolean;
|
|
71
|
+
/** Resolution Advisory Complement: reserved for a horizontal-maneuver capability TCAS II does not implement (TCAS II issues vertical RAs only) - expected to always be false in practice, decoded for completeness. */
|
|
72
|
+
doNotTurnLeft: boolean;
|
|
73
|
+
/** Resolution Advisory Complement: reserved for a horizontal-maneuver capability TCAS II does not implement (TCAS II issues vertical RAs only) - expected to always be false in practice, decoded for completeness. */
|
|
74
|
+
doNotTurnRight: boolean;
|
|
75
|
+
/** True for up to 18 seconds after an RA ends, indicating it is no longer displayed to the pilot. */
|
|
76
|
+
terminated: boolean;
|
|
77
|
+
/** True when this report resolves more than one simultaneous threat. */
|
|
78
|
+
multipleThreat: boolean;
|
|
79
|
+
/** The threat this report responds to - narrow on `threat.threatType` to access the identity fields for that kind. */
|
|
80
|
+
threat: AcasThreat;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=acas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acas.d.ts","sourceRoot":"","sources":["../../src/types/acas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,SAAS,GACT,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,mBAAmB,CAAC;AAExB,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,mEAAmE;IACnE,UAAU,EAAE,aAAa,CAAC;IAC1B,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,gGAAgG;AAChG,MAAM,WAAW,8BAA8B;IAC7C,6EAA6E;IAC7E,UAAU,EAAE,sBAAsB,CAAC;IACnC,+EAA+E;IAC/E,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,sFAAsF;IACtF,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,0GAA0G;IAC1G,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,qBAAqB,GAAG,8BAA8B,CAAC;AAEjG,2IAA2I;AAC3I,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,kJAAkJ;IAClJ,MAAM,EAAE,OAAO,CAAC;IAChB,uWAAuW;IACvW,YAAY,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACjD,uLAAuL;IACvL,UAAU,EAAE,OAAO,CAAC;IACpB,+FAA+F;IAC/F,aAAa,EAAE,OAAO,CAAC;IACvB,gHAAgH;IAChH,aAAa,EAAE,OAAO,CAAC;IACvB,6FAA6F;IAC7F,aAAa,EAAE,OAAO,CAAC;IACvB,sFAAsF;IACtF,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qIAAqI;IACrI,QAAQ,EAAE,OAAO,CAAC;IAClB,0JAA0J;IAC1J,cAAc,EAAE,OAAO,CAAC;IACxB,wJAAwJ;IACxJ,cAAc,EAAE,OAAO,CAAC;IACxB,uNAAuN;IACvN,aAAa,EAAE,OAAO,CAAC;IACvB,uNAAuN;IACvN,cAAc,EAAE,OAAO,CAAC;IACxB,qGAAqG;IACrG,UAAU,EAAE,OAAO,CAAC;IACpB,wEAAwE;IACxE,cAAc,EAAE,OAAO,CAAC;IACxB,sHAAsH;IACtH,MAAM,EAAE,UAAU,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decoded BDS 4,0 (Selected Vertical Intention) - the pilot's MCP/FCU and
|
|
3
|
+
* FMS selected altitude targets, barometric pressure setting, and MCP mode
|
|
4
|
+
* flags, per ICAO Doc 9871 Table A-2-31.
|
|
5
|
+
*/
|
|
6
|
+
export interface SelectedVerticalIntention {
|
|
7
|
+
/** Discriminant tag identifying this as a decoded BDS 4,0 register. */
|
|
8
|
+
bdsCode: '4,0';
|
|
9
|
+
/** MCP/FCU selected altitude target, in feet. Undefined if not available. */
|
|
10
|
+
mcpFcuSelectedAltitudeFt: number | undefined;
|
|
11
|
+
/** FMS selected altitude target, in feet. Undefined if not available. */
|
|
12
|
+
fmsSelectedAltitudeFt: number | undefined;
|
|
13
|
+
/** Barometric pressure (altimeter) setting, in millibars/hectopascals. Undefined if not available. */
|
|
14
|
+
baroPressureSettingMb: number | undefined;
|
|
15
|
+
/** Whether VNAV mode is active. Undefined when the MCP mode bits are not reported (populated or omitted together with `altitudeHoldModeActive`/`approachModeActive`). */
|
|
16
|
+
vnavModeActive: boolean | undefined;
|
|
17
|
+
/** Whether altitude-hold mode is active. Undefined when the MCP mode bits are not reported. */
|
|
18
|
+
altitudeHoldModeActive: boolean | undefined;
|
|
19
|
+
/** Whether approach mode is active. Undefined when the MCP mode bits are not reported. */
|
|
20
|
+
approachModeActive: boolean | undefined;
|
|
21
|
+
/** Which altitude target the aircraft is currently flying toward. Undefined if not reported. */
|
|
22
|
+
targetAltitudeSource: 'unknown' | 'aircraftAltitude' | 'mcpFcu' | 'fms' | undefined;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Decoded BDS 5,0 (Track and Turn Report) - a flight-management-system
|
|
26
|
+
* snapshot of roll, track, groundspeed, turn rate, and true airspeed, per
|
|
27
|
+
* ICAO Doc 9871 Table A-2-34.
|
|
28
|
+
*/
|
|
29
|
+
export interface TrackAndTurnReport {
|
|
30
|
+
/** Discriminant tag identifying this as a decoded BDS 5,0 register. */
|
|
31
|
+
bdsCode: '5,0';
|
|
32
|
+
/** Roll angle in degrees, positive for a right turn. Undefined if not available. */
|
|
33
|
+
rollAngleDeg: number | undefined;
|
|
34
|
+
/** True track angle in degrees. Undefined if not available. */
|
|
35
|
+
trueTrackDeg: number | undefined;
|
|
36
|
+
/** Ground speed in knots. Undefined if not available. */
|
|
37
|
+
groundSpeedKt: number | undefined;
|
|
38
|
+
/** Rate of change of track angle, in degrees per second (positive turning right). Undefined if not available. */
|
|
39
|
+
trackAngleRateDegPerSec: number | undefined;
|
|
40
|
+
/** True airspeed in knots. Undefined if not available. */
|
|
41
|
+
trueAirspeedKt: number | undefined;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Decoded BDS 6,0 (Heading and Speed Report) - an air-data-computer
|
|
45
|
+
* snapshot of magnetic heading, indicated airspeed, Mach number, and
|
|
46
|
+
* vertical rates, per ICAO Doc 9871 Table A-2-35.
|
|
47
|
+
*/
|
|
48
|
+
export interface HeadingAndSpeedReport {
|
|
49
|
+
/** Discriminant tag identifying this as a decoded BDS 6,0 register. */
|
|
50
|
+
bdsCode: '6,0';
|
|
51
|
+
/** Magnetic heading in degrees. Undefined if not available. */
|
|
52
|
+
magneticHeadingDeg: number | undefined;
|
|
53
|
+
/** Indicated airspeed in knots. Undefined if not available. */
|
|
54
|
+
indicatedAirspeedKt: number | undefined;
|
|
55
|
+
/** Mach number. Undefined if not available. */
|
|
56
|
+
mach: number | undefined;
|
|
57
|
+
/** Barometric vertical rate in feet per minute, positive for climbing. Undefined if not available. */
|
|
58
|
+
baroVerticalRateFtPerMin: number | undefined;
|
|
59
|
+
/** Inertial vertical rate in feet per minute, positive for climbing. Undefined if not available. */
|
|
60
|
+
inertialVerticalRateFtPerMin: number | undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* A decoded Comm-B "Enhanced Surveillance" register - the ones DF20/21
|
|
64
|
+
* carry with no self-declared register identifier, so a caller cannot know
|
|
65
|
+
* in advance which of these three an MB field holds. Discriminated by
|
|
66
|
+
* `bdsCode`.
|
|
67
|
+
*/
|
|
68
|
+
export type CommBRegister = SelectedVerticalIntention | TrackAndTurnReport | HeadingAndSpeedReport;
|
|
69
|
+
//# sourceMappingURL=comm-b.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comm-b.d.ts","sourceRoot":"","sources":["../../src/types/comm-b.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,uEAAuE;IACvE,OAAO,EAAE,KAAK,CAAC;IACf,6EAA6E;IAC7E,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,yEAAyE;IACzE,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,sGAAsG;IACtG,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,yKAAyK;IACzK,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,+FAA+F;IAC/F,sBAAsB,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5C,0FAA0F;IAC1F,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC,gGAAgG;IAChG,oBAAoB,EAAE,SAAS,GAAG,kBAAkB,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;CACrF;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,OAAO,EAAE,KAAK,CAAC;IACf,oFAAoF;IACpF,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,yDAAyD;IACzD,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iHAAiH;IACjH,uBAAuB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,0DAA0D;IAC1D,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,OAAO,EAAE,KAAK,CAAC;IACf,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,+DAA+D;IAC/D,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,sGAAsG;IACtG,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,oGAAoG;IACpG,4BAA4B,EAAE,MAAM,GAAG,SAAS,CAAC;CAClD;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,yBAAyB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Position } from '@squawk/types';
|
|
2
|
+
/**
|
|
3
|
+
* Raw 17-bit CPR-encoded position fields, as carried by an ADS-B airborne or
|
|
4
|
+
* surface position message. Each field is a raw integer in [0, 131071].
|
|
5
|
+
*
|
|
6
|
+
* `ExtendedSquitterPosition.latCpr`/`lonCpr` (from `decodeModeSMessage`) are
|
|
7
|
+
* `number | undefined` - undefined for a type-code-0 message, which has no
|
|
8
|
+
* position fix to encode. Check for that case before constructing a
|
|
9
|
+
* `CprPosition` from a decoded message; the two types are otherwise
|
|
10
|
+
* structurally identical.
|
|
11
|
+
*/
|
|
12
|
+
export interface CprPosition {
|
|
13
|
+
/** Raw 17-bit CPR-encoded latitude field. */
|
|
14
|
+
latCpr: number;
|
|
15
|
+
/** Raw 17-bit CPR-encoded longitude field. */
|
|
16
|
+
lonCpr: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* A reference position used to disambiguate a single CPR-encoded frame that
|
|
20
|
+
* has no paired opposite-format frame to decode globally against. Must be
|
|
21
|
+
* within roughly 180 NM of the true position for airborne decode, or 45 NM
|
|
22
|
+
* for surface decode - the caller is responsible for that precondition.
|
|
23
|
+
*/
|
|
24
|
+
export type CprReference = Pick<Position, 'lat' | 'lon'>;
|
|
25
|
+
//# sourceMappingURL=cpr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cpr.d.ts","sourceRoot":"","sources":["../../src/types/cpr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emergency/priority state carried by an ADS-B aircraft status message
|
|
3
|
+
* (BDS 6,1 subtype 1, type code 28), per the 3-bit emergency state field.
|
|
4
|
+
*/
|
|
5
|
+
export type EmergencyState = 'none' | 'general' | 'lifeguardMedical' | 'minimumFuel' | 'noCommunications' | 'unlawfulInterference' | 'downed' | 'reserved';
|
|
6
|
+
//# sourceMappingURL=emergency-status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emergency-status.d.ts","sourceRoot":"","sources":["../../src/types/emergency-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,SAAS,GACT,kBAAkB,GAClB,aAAa,GACb,kBAAkB,GAClB,sBAAsB,GACtB,QAAQ,GACR,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A Mode-S message with its downlink format and CRC remainder extracted,
|
|
3
|
+
* prior to any per-type decoding. The envelope every other decoder in this
|
|
4
|
+
* package builds on.
|
|
5
|
+
*/
|
|
6
|
+
export interface ModeSMessageEnvelope {
|
|
7
|
+
/** Raw message bytes - 7 for a short (56-bit) message, 14 for a long (112-bit) message. */
|
|
8
|
+
bytes: Uint8Array;
|
|
9
|
+
/**
|
|
10
|
+
* The raw 5-bit downlink format value (0-31) from the top of byte 0.
|
|
11
|
+
* Values 24-31 all denote Comm-D (DF24) - the lower 2 bits of this field
|
|
12
|
+
* are the KE/ND subfields for that format, not distinct downlink formats.
|
|
13
|
+
* This package does not decode Comm-D; callers should treat any value
|
|
14
|
+
* >= 24 as "DF24, unsupported" rather than as a distinguishable DF25-31.
|
|
15
|
+
*/
|
|
16
|
+
downlinkFormat: number;
|
|
17
|
+
/**
|
|
18
|
+
* 24-bit CRC remainder computed over the entire message. Interpretation
|
|
19
|
+
* depends on `downlinkFormat`:
|
|
20
|
+
* - DF11/17/18 (squitters): zero indicates an unmodified message. A
|
|
21
|
+
* non-zero value on DF11 (up to 127 - a 1-bit IC selector plus either a
|
|
22
|
+
* 4-bit legacy II code or a 6-bit SI code) identifies the interrogator
|
|
23
|
+
* the ground station used, not a validation failure.
|
|
24
|
+
* - DF0/4/5/16/20/21 (surveillance replies): this value IS the
|
|
25
|
+
* transmitting aircraft's 24-bit ICAO address, XORed into the parity
|
|
26
|
+
* field by design. There is no pass/fail check for these formats in
|
|
27
|
+
* isolation - callers confirm validity by matching this value against
|
|
28
|
+
* an ICAO address already known from squitter traffic.
|
|
29
|
+
*/
|
|
30
|
+
crcRemainder: number;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=frame.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/types/frame.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,2FAA2F;IAC3F,KAAK,EAAE,UAAU,CAAC;IAClB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AircraftCategory } from '@squawk/types';
|
|
2
|
+
/** Decoded ADS-B aircraft identification (BDS 0,8, type codes 1-4). */
|
|
3
|
+
export interface AircraftIdentification {
|
|
4
|
+
/** Callsign, trimmed of leading/trailing whitespace. Undefined if the field is entirely blank. Invalid 6-bit characters decode to '#' and remain in the string rather than being silently dropped. */
|
|
5
|
+
callsign: string | undefined;
|
|
6
|
+
/** Wake vortex / performance category, if the type code and category subfield map to one of squawk's known category codes. Undefined for "no category information" or a reserved combination. */
|
|
7
|
+
category: AircraftCategory | undefined;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=identification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identification.d.ts","sourceRoot":"","sources":["../../src/types/identification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,uEAAuE;AACvE,MAAM,WAAW,sBAAsB;IACrC,sMAAsM;IACtM,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,iMAAiM;IACjM,QAAQ,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './acas.js';
|
|
2
|
+
export * from './comm-b.js';
|
|
3
|
+
export * from './cpr.js';
|
|
4
|
+
export * from './emergency-status.js';
|
|
5
|
+
export * from './frame.js';
|
|
6
|
+
export * from './identification.js';
|
|
7
|
+
export * from './message.js';
|
|
8
|
+
export * from './mode-ac.js';
|
|
9
|
+
export * from './operational-status.js';
|
|
10
|
+
export * from './target-state-status.js';
|
|
11
|
+
export * from './velocity.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './acas.js';
|
|
2
|
+
export * from './comm-b.js';
|
|
3
|
+
export * from './cpr.js';
|
|
4
|
+
export * from './emergency-status.js';
|
|
5
|
+
export * from './frame.js';
|
|
6
|
+
export * from './identification.js';
|
|
7
|
+
export * from './message.js';
|
|
8
|
+
export * from './mode-ac.js';
|
|
9
|
+
export * from './operational-status.js';
|
|
10
|
+
export * from './target-state-status.js';
|
|
11
|
+
export * from './velocity.js';
|