From a23838fc9351689b88f67cd133a4a02683a1b690 Mon Sep 17 00:00:00 2001 From: Mark Bumiller Date: Sat, 9 Nov 2024 19:13:57 -0500 Subject: [PATCH] Change `day_of_month` to just `day` (#190) Added parsing for H1 --- lib/plugins/Label_13Through18_Slash.test.ts | 26 +++++----- lib/plugins/Label_13Through18_Slash.ts | 2 +- lib/plugins/Label_22_OFF.test.ts | 6 +-- lib/plugins/Label_4J_POS.test.ts | 56 +++++++++++---------- lib/plugins/Label_4N.test.ts | 2 +- lib/plugins/Label_4N.ts | 2 +- lib/plugins/Label_5Z_Slash.test.ts | 10 ++-- lib/plugins/Label_5Z_Slash.ts | 8 +-- lib/plugins/Label_83.test.ts | 10 ++-- lib/plugins/Label_83.ts | 6 +-- lib/plugins/Label_H1_POS.test.ts | 28 ++++++----- lib/plugins/Label_H1_StarPOS.test.ts | 2 +- lib/plugins/Label_H1_StarPOS.ts | 2 +- lib/plugins/Label_QQ.test.ts | 4 +- lib/plugins/Label_QQ.ts | 2 +- lib/utils/h1_helper.ts | 4 +- lib/utils/result_formatter.ts | 6 +-- 17 files changed, 91 insertions(+), 85 deletions(-) diff --git a/lib/plugins/Label_13Through18_Slash.test.ts b/lib/plugins/Label_13Through18_Slash.test.ts index 5f976c7..6a8cdac 100644 --- a/lib/plugins/Label_13Through18_Slash.test.ts +++ b/lib/plugins/Label_13Through18_Slash.test.ts @@ -28,7 +28,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('full'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('Out of Gate Report'); expect(decodeResult.formatted.items.length).toBe(3); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -46,7 +46,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('full'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('Out of Gate Report'); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -67,7 +67,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('full'); - expect(decodeResult.raw.day_of_month).toBe(8); + expect(decodeResult.raw.day).toBe(8); expect(decodeResult.formatted.description).toBe('Takeoff Report'); expect(decodeResult.formatted.items.length).toBe(3); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -85,7 +85,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('full'); - expect(decodeResult.raw.day_of_month).toBe(9); + expect(decodeResult.raw.day).toBe(9); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].label).toBe('Origin'); expect(decodeResult.formatted.items[0].value).toBe('KIAD'); @@ -105,7 +105,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(9); + expect(decodeResult.raw.day).toBe(9); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].label).toBe('Origin'); expect(decodeResult.formatted.items[0].value).toBe('KIAD'); @@ -131,7 +131,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(10); + expect(decodeResult.raw.day).toBe(10); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].label).toBe('Origin'); expect(decodeResult.formatted.items[0].value).toBe('KIAD'); @@ -154,7 +154,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('full'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('On Ground Report'); expect(decodeResult.formatted.items.length).toBe(3); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -172,7 +172,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('full'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('On Ground Report'); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -197,7 +197,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('In Gate Report'); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -224,7 +224,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('Post Report'); expect(decodeResult.formatted.items.length).toBe(2); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -244,7 +244,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('Post Report'); expect(decodeResult.formatted.items.length).toBe(3); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -269,7 +269,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('Post Times Report'); expect(decodeResult.formatted.items.length).toBe(3); expect(decodeResult.formatted.items[0].label).toBe('Origin'); @@ -288,7 +288,7 @@ describe('Label_13Through18_Slash', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); - expect(decodeResult.raw.day_of_month).toBe(12); + expect(decodeResult.raw.day).toBe(12); expect(decodeResult.formatted.description).toBe('Post Times Report'); expect(decodeResult.formatted.items.length).toBe(2); expect(decodeResult.formatted.items[0].label).toBe('Origin'); diff --git a/lib/plugins/Label_13Through18_Slash.ts b/lib/plugins/Label_13Through18_Slash.ts index 2e4f2d6..f2a199e 100644 --- a/lib/plugins/Label_13Through18_Slash.ts +++ b/lib/plugins/Label_13Through18_Slash.ts @@ -41,7 +41,7 @@ export class Label_13Through18_Slash extends DecoderPlugin { // eslint-disable-l const data = parts[2].split(' '); ResultFormatter.departureAirport(decodeResult, data[1]); ResultFormatter.arrivalAirport(decodeResult, data[2]); - decodeResult.raw.day_of_month = Number(data[3]); + decodeResult.raw.day = Number(data[3]); const time = DateTimeUtils.convertHHMMSSToTod(data[4]) if (labelNumber === 13) { ResultFormatter.out(decodeResult, time); diff --git a/lib/plugins/Label_22_OFF.test.ts b/lib/plugins/Label_22_OFF.test.ts index 61e7501..55f0c74 100644 --- a/lib/plugins/Label_22_OFF.test.ts +++ b/lib/plugins/Label_22_OFF.test.ts @@ -25,8 +25,8 @@ describe('Label 22 OFF', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.raw.flight_number).toBe('YX3661'); - expect(decodeResult.raw.departure_day_of_month).toBe(25); - expect(decodeResult.raw.arrival_day_of_month).toBe(25); + expect(decodeResult.raw.departure_day).toBe(25); + expect(decodeResult.raw.arrival_day).toBe(25); expect(decodeResult.raw.time_of_day).toBe(61920); expect(decodeResult.raw.off_time).toBe(61927); expect(decodeResult.raw.departure_icao).toBe('KIAD'); @@ -56,7 +56,7 @@ describe('Label 22 OFF', () => { expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.raw.position.latitude).toBe(38.946666666666665); expect(decodeResult.raw.position.longitude).toBe(-77.435); - expect(decodeResult.raw.day_of_month).toBe(25); + expect(decodeResult.raw.day).toBe(25); expect(decodeResult.raw.time_of_day).toBe(42720); expect(decodeResult.raw.off_time).toBe(42720); expect(decodeResult.raw.departure_icao).toBe('KIAD'); diff --git a/lib/plugins/Label_4J_POS.test.ts b/lib/plugins/Label_4J_POS.test.ts index 476a7f4..3889a71 100644 --- a/lib/plugins/Label_4J_POS.test.ts +++ b/lib/plugins/Label_4J_POS.test.ts @@ -33,21 +33,23 @@ describe('Label 4J POS', () => { expect(decodeResult.raw.message_timestamp).toBe(1709476093); expect(decodeResult.raw.flight_number).toBe('BANKR31'); expect(decodeResult.raw.mission_number).toBe(''); - expect(decodeResult.formatted.items.length).toBe(7); + expect(decodeResult.formatted.items.length).toBe(8); expect(decodeResult.formatted.items[0].label).toBe('Tail'); expect(decodeResult.formatted.items[0].value).toBe('91459S'); - expect(decodeResult.formatted.items[1].label).toBe('Estimated Time of Arrival'); - expect(decodeResult.formatted.items[1].value).toBe('15:39:00'); - expect(decodeResult.formatted.items[2].label).toBe('Aircraft Position'); - expect(decodeResult.formatted.items[2].value).toBe('39.462 N, 77.598 W'); - expect(decodeResult.formatted.items[3].label).toBe('Aircraft Route'); - expect(decodeResult.formatted.items[3].value).toBe('(39.500 N, 77.183 W)@14:28:00 > (38.933 N, 77.250 W)@03:14:30 > ?'); - expect(decodeResult.formatted.items[4].label).toBe('Altitude'); - expect(decodeResult.formatted.items[4].value).toBe('24000 feet'); - expect(decodeResult.formatted.items[5].label).toBe('Outside Air Temperature (C)'); - expect(decodeResult.formatted.items[5].value).toBe('-28 degrees'); - expect(decodeResult.formatted.items[6].label).toBe('Message Checksum'); - expect(decodeResult.formatted.items[6].value).toBe('0x9071'); + expect(decodeResult.formatted.items[1].label).toBe('Day of Month'); + expect(decodeResult.formatted.items[1].value).toBe('3'); + expect(decodeResult.formatted.items[2].label).toBe('Estimated Time of Arrival'); + expect(decodeResult.formatted.items[2].value).toBe('15:39:00'); + expect(decodeResult.formatted.items[3].label).toBe('Aircraft Position'); + expect(decodeResult.formatted.items[3].value).toBe('39.462 N, 77.598 W'); + expect(decodeResult.formatted.items[4].label).toBe('Aircraft Route'); + expect(decodeResult.formatted.items[4].value).toBe('(39.500 N, 77.183 W)@14:28:00 > (38.933 N, 77.250 W)@03:14:30 > ?'); + expect(decodeResult.formatted.items[5].label).toBe('Altitude'); + expect(decodeResult.formatted.items[5].value).toBe('24000 feet'); + expect(decodeResult.formatted.items[6].label).toBe('Outside Air Temperature (C)'); + expect(decodeResult.formatted.items[6].value).toBe('-28 degrees'); + expect(decodeResult.formatted.items[7].label).toBe('Message Checksum'); + expect(decodeResult.formatted.items[7].value).toBe('0x9071'); expect(decodeResult.remaining.text).toBe('MR64,0,27619,MT370/CG311,160,350/FB732/VR32'); }); @@ -64,21 +66,23 @@ describe('Label 4J POS', () => { expect(decodeResult.raw.message_timestamp).toBe(1725804426); expect(decodeResult.raw.flight_number).toBe('WIDE21'); expect(decodeResult.raw.mission_number).toBe('7PZWTCP21222'); - expect(decodeResult.formatted.items.length).toBe(7); + expect(decodeResult.formatted.items.length).toBe(8); expect(decodeResult.formatted.items[0].label).toBe('Tail'); expect(decodeResult.formatted.items[0].value).toBe('91517S'); - expect(decodeResult.formatted.items[1].label).toBe('Estimated Time of Arrival'); - expect(decodeResult.formatted.items[1].value).toBe('14:56:00'); - expect(decodeResult.formatted.items[2].label).toBe('Aircraft Position'); - expect(decodeResult.formatted.items[2].value).toBe('37.625 N, 77.613 W'); - expect(decodeResult.formatted.items[3].label).toBe('Aircraft Route'); - expect(decodeResult.formatted.items[3].value).toBe('JAXSN@14:07:00 > LOOEY@09:14:17 > ?'); - expect(decodeResult.formatted.items[4].label).toBe('Altitude'); - expect(decodeResult.formatted.items[4].value).toBe('30000 feet'); - expect(decodeResult.formatted.items[5].label).toBe('Outside Air Temperature (C)'); - expect(decodeResult.formatted.items[5].value).toBe('-26 degrees'); - expect(decodeResult.formatted.items[6].label).toBe('Message Checksum'); - expect(decodeResult.formatted.items[6].value).toBe('0xc696'); + expect(decodeResult.formatted.items[1].label).toBe('Day of Month'); + expect(decodeResult.formatted.items[1].value).toBe('9'); + expect(decodeResult.formatted.items[2].label).toBe('Estimated Time of Arrival'); + expect(decodeResult.formatted.items[2].value).toBe('14:56:00'); + expect(decodeResult.formatted.items[3].label).toBe('Aircraft Position'); + expect(decodeResult.formatted.items[3].value).toBe('37.625 N, 77.613 W'); + expect(decodeResult.formatted.items[4].label).toBe('Aircraft Route'); + expect(decodeResult.formatted.items[4].value).toBe('JAXSN@14:07:00 > LOOEY@09:14:17 > ?'); + expect(decodeResult.formatted.items[5].label).toBe('Altitude'); + expect(decodeResult.formatted.items[5].value).toBe('30000 feet'); + expect(decodeResult.formatted.items[6].label).toBe('Outside Air Temperature (C)'); + expect(decodeResult.formatted.items[6].value).toBe('-26 degrees'); + expect(decodeResult.formatted.items[7].label).toBe('Message Checksum'); + expect(decodeResult.formatted.items[7].value).toBe('0xc696'); expect(decodeResult.remaining.text).toBe('MR238,2,21329,M080T490/CG293,160,350/FB583/VR32'); }); diff --git a/lib/plugins/Label_4N.test.ts b/lib/plugins/Label_4N.test.ts index b9acc5f..36b2b3d 100644 --- a/lib/plugins/Label_4N.test.ts +++ b/lib/plugins/Label_4N.test.ts @@ -22,7 +22,7 @@ test('decodes Label 4N variant 1', () => { expect(decodeResult.decoder.name).toBe('label-4n'); expect(decodeResult.formatted.description).toBe('Airline Defined'); expect(decodeResult.message.text).toBe(text); - expect(decodeResult.raw.day_of_month).toBe('22'); + expect(decodeResult.raw.day).toBe('22'); expect(decodeResult.remaining.text).toBe('02 0013 0072'); expect(decodeResult.formatted.items.length).toBe(4); expect(decodeResult.formatted.items[0].code).toBe('ORG'); diff --git a/lib/plugins/Label_4N.ts b/lib/plugins/Label_4N.ts index d760b74..9606975 100644 --- a/lib/plugins/Label_4N.ts +++ b/lib/plugins/Label_4N.ts @@ -29,7 +29,7 @@ export class Label_4N extends DecoderPlugin { const fields = text.split(","); if (text.length === 51) { // variant 1 - decodeResult.raw.day_of_month = text.substring(0, 2); + decodeResult.raw.day = text.substring(0, 2); ResultFormatter.departureAirport(decodeResult, text.substring(8, 11)); ResultFormatter.arrivalAirport(decodeResult, text.substring(13, 16)); ResultFormatter.position(decodeResult, CoordinateUtils.decodeStringCoordinatesDecimalMinutes(text.substring(30, 45).replace(/^(.)0/, "$1"))); diff --git a/lib/plugins/Label_5Z_Slash.test.ts b/lib/plugins/Label_5Z_Slash.test.ts index a68cf74..30e31fa 100644 --- a/lib/plugins/Label_5Z_Slash.test.ts +++ b/lib/plugins/Label_5Z_Slash.test.ts @@ -39,7 +39,7 @@ describe('Label 5Z', () => { expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.raw.airline).toBe('United Airlines'); expect(decodeResult.raw.message_type).toBe('B3'); - expect(decodeResult.raw.day_of_month).toBe(14); + expect(decodeResult.raw.day).toBe(14); expect(decodeResult.raw.departure_iata).toBe('ATL'); expect(decodeResult.raw.arrival_iata).toBe('IAD'); expect(decodeResult.raw.arrival_runway).toBe('1C'); @@ -65,7 +65,7 @@ describe('Label 5Z', () => { expect(decodeResult.decoder.decodeLevel).toBe('full'); expect(decodeResult.raw.airline).toBe('United Airlines'); expect(decodeResult.raw.message_type).toBe('B3'); - expect(decodeResult.raw.day_of_month).toBe(14); + expect(decodeResult.raw.day).toBe(14); expect(decodeResult.raw.departure_iata).toBe('DCA'); expect(decodeResult.raw.arrival_iata).toBe('ORD'); expect(decodeResult.raw.arrival_runway).toBe('27C'); @@ -90,7 +90,7 @@ describe('Label 5Z', () => { expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.raw.airline).toBe('United Airlines'); expect(decodeResult.raw.message_type).toBe('B3'); - expect(decodeResult.raw.day_of_month).toBe(14); + expect(decodeResult.raw.day).toBe(14); expect(decodeResult.raw.time_of_day).toBe(55532); expect(decodeResult.raw.departure_icao).toBe('KIAH'); expect(decodeResult.raw.arrival_icao).toBe('KBOS'); @@ -120,7 +120,7 @@ describe('Label 5Z', () => { expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.raw.airline).toBe('United Airlines'); expect(decodeResult.raw.time_of_day).toBe(44759); - expect(decodeResult.raw.day_of_month).toBe(20); + expect(decodeResult.raw.day).toBe(20); expect(decodeResult.raw.departure_icao).toBe('KEWR'); expect(decodeResult.raw.arrival_icao).toBe('KBNA'); expect(decodeResult.raw.eta_time).toBe(48960); @@ -165,7 +165,7 @@ describe('Label 5Z', () => { expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.raw.airline).toBe('United Airlines'); expect(decodeResult.raw.time_of_day).toBe(42840); - expect(decodeResult.raw.day_of_month).toBe(22); + expect(decodeResult.raw.day).toBe(22); expect(decodeResult.raw.departure_icao).toBe('KBNA'); expect(decodeResult.raw.arrival_icao).toBe('KEWR'); expect(decodeResult.formatted.items.length).toBe(5); diff --git a/lib/plugins/Label_5Z_Slash.ts b/lib/plugins/Label_5Z_Slash.ts index 4078eea..40283d2 100644 --- a/lib/plugins/Label_5Z_Slash.ts +++ b/lib/plugins/Label_5Z_Slash.ts @@ -80,14 +80,14 @@ export class Label_5Z_Slash extends DecoderPlugin { //info[0] is blank ResultFormatter.departureAirport(decodeResult, info[1]); ResultFormatter.arrivalAirport(decodeResult, info[2]); - decodeResult.raw.day_of_month = Number(info[3]); + decodeResult.raw.day = Number(info[3]); ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(info[4])); ResultFormatter.arrivalRunway(decodeResult, info[5].slice(1)); ResultFormatter.unknownArr(decodeResult, data.slice(3), '/'); } else if (type === 'B3') { ResultFormatter.departureAirport(decodeResult, header[1].substring(0, 3), 'IATA'); ResultFormatter.arrivalAirport(decodeResult, header[1].substring(3), 'IATA'); - decodeResult.raw.day_of_month = Number(header[2]); + decodeResult.raw.day = Number(header[2]); ResultFormatter.arrivalRunway(decodeResult, header[3].slice(1)); if (header.length > 4) { ResultFormatter.unknownArr(decodeResult, header.slice(4), '/'); @@ -97,7 +97,7 @@ export class Label_5Z_Slash extends DecoderPlugin { //info[0] is blank ResultFormatter.departureAirport(decodeResult, info[1]); ResultFormatter.arrivalAirport(decodeResult, info[2]); - decodeResult.raw.day_of_month = Number(info[3]); + decodeResult.raw.day = Number(info[3]); ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(info[4])); ResultFormatter.unknownArr(decodeResult, info.slice(5), ' '); } else if (type === 'C3') { @@ -108,7 +108,7 @@ export class Label_5Z_Slash extends DecoderPlugin { // aiports[0] is blank ResultFormatter.departureAirport(decodeResult, airports[1]); ResultFormatter.arrivalAirport(decodeResult, airports[2]); - decodeResult.raw.day_of_month = Number(airports[3]); + decodeResult.raw.day = Number(airports[3]); ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(airports[4])); const estimates = data[3].split(' '); diff --git a/lib/plugins/Label_83.test.ts b/lib/plugins/Label_83.test.ts index 88a8261..b6f916d 100644 --- a/lib/plugins/Label_83.test.ts +++ b/lib/plugins/Label_83.test.ts @@ -24,7 +24,7 @@ test('decodes Label 83 variant 1', () => { expect(decodeResult.message.text).toBe(text); expect(decodeResult.raw.departure_icao).toBe('KLAX'); expect(decodeResult.raw.arrival_icao).toBe('KEWR'); - expect(decodeResult.raw.day_of_month).toBe('22'); + expect(decodeResult.raw.day).toBe('22'); expect(decodeResult.raw.position.latitude).toBe(40.53); expect(decodeResult.raw.position.longitude).toBe(-74.47); expect(decodeResult.raw.altitude).toBe(3836); @@ -62,7 +62,7 @@ test('decodes Label 83 variant 1 (C-band)', () => { expect(decodeResult.raw.flight_number).toBe('UA7'); expect(decodeResult.raw.departure_icao).toBe('KIAH'); expect(decodeResult.raw.arrival_icao).toBe('RJAA'); - expect(decodeResult.raw.day_of_month).toBe('11'); + expect(decodeResult.raw.day).toBe('11'); expect(decodeResult.raw.position.latitude).toBe(39.12); expect(decodeResult.raw.position.longitude).toBe(-175.1); expect(decodeResult.raw.altitude).toBe(39001); @@ -101,7 +101,7 @@ test('decodes Label 83 variant 2', () => { expect(decodeResult.message.text).toBe(text); expect(decodeResult.raw.departure_icao).toBe('ENGM'); expect(decodeResult.raw.arrival_icao).toBe('KEWR'); - expect(decodeResult.raw.day_of_month).toBe('22'); + expect(decodeResult.raw.day).toBe('22'); expect(decodeResult.raw.tail).toBe('LN-RKO'); expect(decodeResult.raw.eta_time).toBe(60060); expect(decodeResult.remaining.text).toBe('0907'); @@ -129,7 +129,7 @@ test('decodes Label 83 variant 3', () => { expect(decodeResult.decoder.name).toBe('label-83'); expect(decodeResult.formatted.description).toBe('Airline Defined'); expect(decodeResult.message.text).toBe(text); - expect(decodeResult.raw.day_of_month).toBe('22'); + expect(decodeResult.raw.day).toBe('22'); expect(decodeResult.raw.position.latitude).toBe(40.64333333333333); expect(decodeResult.raw.position.longitude).toBe(-74.46333333333334); expect(decodeResult.raw.altitude).toBe(2925); @@ -155,7 +155,7 @@ test('decodes Label 83 variant 3 (C-band)', () => { expect(decodeResult.formatted.description).toBe('Airline Defined'); expect(decodeResult.message.text).toBe(text); expect(decodeResult.raw.flight_number).toBe('XA1'); - expect(decodeResult.raw.day_of_month).toBe('11'); + expect(decodeResult.raw.day).toBe('11'); expect(decodeResult.raw.position.latitude).toBe(5.943333333333333); expect(decodeResult.raw.position.longitude).toBe(116.05); expect(decodeResult.raw.altitude).toBe(0); diff --git a/lib/plugins/Label_83.ts b/lib/plugins/Label_83.ts index f033768..4687e13 100644 --- a/lib/plugins/Label_83.ts +++ b/lib/plugins/Label_83.ts @@ -31,7 +31,7 @@ export class Label_83 extends DecoderPlugin { // variant 2 const fields = text.split(/\s+/); if (fields[2].length > 5) { - decodeResult.raw.day_of_month = fields[2].substring(5); + decodeResult.raw.day = fields[2].substring(5); } ResultFormatter.unknown(decodeResult, fields[2].substring(0, 4)); const subfields = fields[3].split("/"); @@ -41,7 +41,7 @@ export class Label_83 extends DecoderPlugin { ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[6] + "00")); } else if (text.substring(0, 5) === "001PR") { // variant 3 - decodeResult.raw.day_of_month = text.substring(5, 7); + decodeResult.raw.day = text.substring(5, 7); const position = CoordinateUtils.decodeStringCoordinatesDecimalMinutes(text.substring(13, 28).replace(/\./g, "")) if (position) { ResultFormatter.position(decodeResult, position); @@ -54,7 +54,7 @@ export class Label_83 extends DecoderPlugin { // variant 1 ResultFormatter.departureAirport(decodeResult, fields[0]); ResultFormatter.arrivalAirport(decodeResult, fields[1]); - decodeResult.raw.day_of_month = fields[2].substring(0,2); + decodeResult.raw.day = fields[2].substring(0,2); decodeResult.raw.time = fields[2].substring(2); ResultFormatter.position(decodeResult, { diff --git a/lib/plugins/Label_H1_POS.test.ts b/lib/plugins/Label_H1_POS.test.ts index 89ecfa9..9e78da9 100644 --- a/lib/plugins/Label_H1_POS.test.ts +++ b/lib/plugins/Label_H1_POS.test.ts @@ -288,21 +288,23 @@ describe('Label_H1 POS', () => { expect(decodeResult.raw.message_timestamp).toBe(1709487127); expect(decodeResult.raw.flight_number).toBe(''); expect(decodeResult.raw.mission_number).toBe(''); - expect(decodeResult.formatted.items.length).toBe(7); + expect(decodeResult.formatted.items.length).toBe(8); expect(decodeResult.formatted.items[0].label).toBe('Tail'); expect(decodeResult.formatted.items[0].value).toBe('746026'); - expect(decodeResult.formatted.items[1].label).toBe('Estimated Time of Arrival'); - expect(decodeResult.formatted.items[1].value).toBe('18:46:00'); - expect(decodeResult.formatted.items[2].label).toBe('Aircraft Position'); - expect(decodeResult.formatted.items[2].value).toBe('42.965 N, 108.150 W'); - expect(decodeResult.formatted.items[3].label).toBe('Aircraft Route'); - expect(decodeResult.formatted.items[3].value).toBe('WAIDE@17:32:07 > WEDAK@03:17:59 > ?'); - expect(decodeResult.formatted.items[4].label).toBe('Altitude'); - expect(decodeResult.formatted.items[4].value).toBe('32000 feet'); - expect(decodeResult.formatted.items[5].label).toBe('Outside Air Temperature (C)'); - expect(decodeResult.formatted.items[5].value).toBe('-49 degrees'); - expect(decodeResult.formatted.items[6].label).toBe('Message Checksum'); - expect(decodeResult.formatted.items[6].value).toBe('0x4e17'); + expect(decodeResult.formatted.items[1].label).toBe('Day of Month'); + expect(decodeResult.formatted.items[1].value).toBe('3'); + expect(decodeResult.formatted.items[2].label).toBe('Estimated Time of Arrival'); + expect(decodeResult.formatted.items[2].value).toBe('18:46:00'); + expect(decodeResult.formatted.items[3].label).toBe('Aircraft Position'); + expect(decodeResult.formatted.items[3].value).toBe('42.965 N, 108.150 W'); + expect(decodeResult.formatted.items[4].label).toBe('Aircraft Route'); + expect(decodeResult.formatted.items[4].value).toBe('WAIDE@17:32:07 > WEDAK@03:17:59 > ?'); + expect(decodeResult.formatted.items[5].label).toBe('Altitude'); + expect(decodeResult.formatted.items[5].value).toBe('32000 feet'); + expect(decodeResult.formatted.items[6].label).toBe('Outside Air Temperature (C)'); + expect(decodeResult.formatted.items[6].value).toBe('-49 degrees'); + expect(decodeResult.formatted.items[7].label).toBe('Message Checksum'); + expect(decodeResult.formatted.items[7].value).toBe('0x4e17'); expect(decodeResult.remaining.text).toBe('F37#M1B/MR1,,267070,T468/CG264,110,360/FB742/VR32'); }); diff --git a/lib/plugins/Label_H1_StarPOS.test.ts b/lib/plugins/Label_H1_StarPOS.test.ts index 1684e78..d8740f0 100644 --- a/lib/plugins/Label_H1_StarPOS.test.ts +++ b/lib/plugins/Label_H1_StarPOS.test.ts @@ -18,7 +18,7 @@ describe('Label H1 *POS', () => { expect(decodeResult.decoded).toBe(true); expect(decodeResult.decoder.decodeLevel).toBe('partial'); expect(decodeResult.message.text).toBe(text); - expect(decodeResult.raw.day_of_month).toBe(30); + expect(decodeResult.raw.day).toBe(30); expect(decodeResult.raw.month).toBe(10); expect(decodeResult.raw.time_of_day).toBe(35400); expect(decodeResult.raw.position.latitude).toBe(39.900000); diff --git a/lib/plugins/Label_H1_StarPOS.ts b/lib/plugins/Label_H1_StarPOS.ts index 6eaf8eb..ca73e4c 100644 --- a/lib/plugins/Label_H1_StarPOS.ts +++ b/lib/plugins/Label_H1_StarPOS.ts @@ -32,7 +32,7 @@ export class Label_H1_StarPOS extends DecoderPlugin { } decodeResult.raw.month = Number(msg.substring(4, 6)); - decodeResult.raw.day_of_month = Number(msg.substring(6, 8)); + decodeResult.raw.day = Number(msg.substring(6, 8)); ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(msg.substring(8, 12) + '00')); ResultFormatter.position(decodeResult, { // Deg Min, no sec latitude: CoordinateUtils.getDirection(msg.substring(12,13)) * (Number(msg.substring(13, 15)) + Number(msg.substring(15, 17))/60), diff --git a/lib/plugins/Label_QQ.test.ts b/lib/plugins/Label_QQ.test.ts index 2385427..5233a64 100644 --- a/lib/plugins/Label_QQ.test.ts +++ b/lib/plugins/Label_QQ.test.ts @@ -24,7 +24,7 @@ test('decodes Label QQ variant 1', () => { expect(decodeResult.message.text).toBe(text); expect(decodeResult.raw.departure_icao).toBe('KSDL'); expect(decodeResult.raw.arrival_icao).toBe('KLAS'); - expect(decodeResult.raw.day_of_month).toBe('09'); + expect(decodeResult.raw.day).toBe('09'); expect(decodeResult.raw.position.latitude).toBe(33.61); expect(decodeResult.raw.position.longitude).toBe(-111.93166666666667); expect(decodeResult.raw.groundspeed).toBe(175); @@ -67,7 +67,7 @@ test('decodes Label QQ variant 2', () => { expect(decodeResult.message.text).toBe(text); expect(decodeResult.raw.departure_icao).toBe('KLGB'); expect(decodeResult.raw.arrival_icao).toBe('KLAX'); - expect(decodeResult.raw.day_of_month).toBe('07'); + expect(decodeResult.raw.day).toBe('07'); expect(decodeResult.raw.position.latitude).toBe(33.83); expect(decodeResult.raw.position.longitude).toBe(-118.16833333333334); expect(decodeResult.remaining.text).toBe('---,020,0009'); diff --git a/lib/plugins/Label_QQ.ts b/lib/plugins/Label_QQ.ts index 010de90..587930e 100644 --- a/lib/plugins/Label_QQ.ts +++ b/lib/plugins/Label_QQ.ts @@ -23,7 +23,7 @@ export class Label_QQ extends DecoderPlugin { ResultFormatter.arrivalAirport(decodeResult, message.text.substring(4, 8)); if (message.text.substring(12, 19) === "\r\n001FE") { - decodeResult.raw.day_of_month = message.text.substring(19, 21); + decodeResult.raw.day = message.text.substring(19, 21); ResultFormatter.off(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(21, 27))); let latdir = message.text.substring(27, 28); let latdeg = Number(message.text.substring(28, 30)); diff --git a/lib/utils/h1_helper.ts b/lib/utils/h1_helper.ts index 27b83a6..f5aa343 100644 --- a/lib/utils/h1_helper.ts +++ b/lib/utils/h1_helper.ts @@ -55,10 +55,10 @@ export class H1Helper { ResultFormatter.freetext(decodeResult, fields[i].substring(2)); } else if (fields[i].startsWith('ET')) { if(fields[i].length === 7) { // 1 digit day - //ResultFormatter.dayOfMonth(decodeResult, Number(fields[i].substring(1, 3))); + ResultFormatter.day(decodeResult, Number(fields[i].substring(2, 3))); ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[i].substring(3)+'00')); } else if(fields[i].length === 8) { // 2 digit day - //ResultFormatter.dayOfMonth(decodeResult, Number(fields[i].substring(2, 4))); + ResultFormatter.day(decodeResult, Number(fields[i].substring(2, 4))); ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[i].substring(4)+'00')); } else { ResultFormatter.unknown(decodeResult, fields[i], '/'); diff --git a/lib/utils/result_formatter.ts b/lib/utils/result_formatter.ts index cbdc91f..d8a9e00 100644 --- a/lib/utils/result_formatter.ts +++ b/lib/utils/result_formatter.ts @@ -325,7 +325,7 @@ export class ResultFormatter { } static day(decodeResult: DecodeResult, day: number) { - decodeResult.raw.day_of_month = day; + decodeResult.raw.day = day; decodeResult.formatted.items.push({ type: 'day_of_month', code: 'MSG_DAY', @@ -335,7 +335,7 @@ export class ResultFormatter { } static departureDay(decodeResult: DecodeResult, day: number) { - decodeResult.raw.departure_day_of_month = day; + decodeResult.raw.departure_day = day; decodeResult.formatted.items.push({ type: 'day_of_month', code: 'DEP_DAY', @@ -345,7 +345,7 @@ export class ResultFormatter { } static arrivalDay(decodeResult: DecodeResult, day: number) { - decodeResult.raw.arrival_day_of_month = day; + decodeResult.raw.arrival_day = day; decodeResult.formatted.items.push({ type: 'day_of_month', code: 'ARR_DAY',