Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support converting minute resolution #189

Merged
merged 3 commits into from
Nov 13, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion lib/DateTimeUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@ export class DateTimeUtils {

/**
*
* @param time HHMMSS
* @param time HHMMSS or HHMM
* @returns seconds since midnight
*/
public static convertHHMMSSToTod(time: string): number {
if(time.length === 4) { // add seconds if not present
time += '00';
}
const h = Number(time.substring(0, 2));
const m = Number(time.substring(2, 4));
const s = Number(time.substring(4, 6));
Expand Down
6 changes: 3 additions & 3 deletions lib/plugins/Label_10_Slash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,16 +42,16 @@ export class Label_10_Slash extends DecoderPlugin { // eslint-disable-line camel
ResultFormatter.heading(decodeResult, Number(parts[5]));
ResultFormatter.altitude(decodeResult, 100*Number(parts[6]));
ResultFormatter.arrivalAirport(decodeResult, parts[7]);
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(parts[8]+'00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(parts[8]));
const waypoints: Waypoint[] = [{
name: parts[11],
},{
name: parts[12],
time: DateTimeUtils.convertHHMMSSToTod(parts[13]+'00'),
time: DateTimeUtils.convertHHMMSSToTod(parts[13]),
timeFormat: 'tod',
},{
name: parts[14],
time: DateTimeUtils.convertHHMMSSToTod(parts[15]+'00'),
time: DateTimeUtils.convertHHMMSSToTod(parts[15]),
timeFormat: 'tod',
},];
ResultFormatter.route(decodeResult, { waypoints: waypoints });
Expand Down
4 changes: 2 additions & 2 deletions lib/plugins/Label_1L_070.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ export class Label_1L_070 extends DecoderPlugin { // eslint-disable-line camelca

ResultFormatter.departureAirport(decodeResult, parts[0]);
ResultFormatter.arrivalAirport(decodeResult, parts[1]);
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(parts[2] + '00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(parts[3] + '00'));
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(parts[2]));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(parts[3]));
ResultFormatter.position(decodeResult, {
latitude: CoordinateUtils.getDirection(parts[4][0]) * Number(parts[4].substring(1)),
longitude: CoordinateUtils.getDirection(parts[5][0]) * Number(parts[5].substring(1)),
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_1L_3-line.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ export class Label_1L_3Line extends DecoderPlugin { // eslint-disable-line camel
}
const eta = data.get('ETA');
if (eta) {
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(eta + '00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(eta));
data.delete('ETA');
}
const alt = data.get('ALT');
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_1L_Slash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export class Label_1L_Slash extends DecoderPlugin { // eslint-disable-line camel
}
const eta = data.get('ETA');
if (eta) {
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(eta + '00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(eta));
data.delete('ETA');
}

Expand Down
10 changes: 5 additions & 5 deletions lib/plugins/Label_22_OFF.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export class Label_22_OFF extends DecoderPlugin {
ResultFormatter.flightNumber(decodeResult, fields[0]);
ResultFormatter.departureDay(decodeResult, Number(fields[1].substring(0, 2))); // departure day
ResultFormatter.arrivalDay(decodeResult, Number(fields[1].substring(2,4))); // arrival day
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(4, 8) + '00')); //HHMM
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(4, 8)));
ResultFormatter.departureAirport(decodeResult, fields[1].substring(8, 12));
ResultFormatter.arrivalAirport(decodeResult, fields[1].substring(12, 16));
ResultFormatter.off(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(16,22)));
Expand All @@ -52,7 +52,7 @@ export class Label_22_OFF extends DecoderPlugin {

ResultFormatter.departureAirport(decodeResult, fields[0]);
ResultFormatter.arrivalAirport(decodeResult, fields[1]);
ResultFormatter.off(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[2] + '00'));
ResultFormatter.off(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[2]));
ResultFormatter.unknown(decodeResult, fields[3]);

decodeResult.decoded = true;
Expand All @@ -72,12 +72,12 @@ export class Label_22_OFF extends DecoderPlugin {
ResultFormatter.position(decodeResult, position);
}
ResultFormatter.day(decodeResult, Number(fields[1].substring(14, 16)));
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(16, 20) + '00'));
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(16, 20) ));
ResultFormatter.departureAirport(decodeResult, fields[1].substring(20, 24));
ResultFormatter.arrivalAirport(decodeResult, fields[1].substring(24, 28));
ResultFormatter.off(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(28, 32) + '00'));
ResultFormatter.off(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(28, 32)));
ResultFormatter.unknown(decodeResult, fields[1].substring(32, 36));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(36,40) + '00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[1].substring(36,40)));
decodeResult.decoded = true;
decodeResult.decoder.decodeLevel = 'partial';

Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_24_Slash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export class Label_24_Slash extends DecoderPlugin {
longitude: (lon[0] === 'E' ? 1 : -1) * Number(lon.substring(1)),
};
ResultFormatter.position(decodeResult, position);
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[8]+'00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[8]));
ResultFormatter.unknown(decodeResult, fields[7]);

decodeResult.decoded = true;
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_30_Slash_EA.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export class Label_30_Slash_EA extends DecoderPlugin {
}
}

ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(results[0].substr(2, 4)+'00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(results[0].substr(2, 4)));

if (results[1].substring(0,2) === "DS") {
ResultFormatter.arrivalAirport(decodeResult, results[1].substring(2, 6));
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_5Z_Slash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ export class Label_5Z_Slash extends DecoderPlugin {
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(airports[4]));

const estimates = data[3].split(' ');
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(estimates[1]+'00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(estimates[1]));
ResultFormatter.unknown(decodeResult, estimates[2]);
} else {
if (options.debug) {
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_8E.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export class Label_8E extends DecoderPlugin {
console.log(results.groups);
}

ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(results.groups.arrival_eta + '00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(results.groups.arrival_eta));
ResultFormatter.arrivalAirport(decodeResult, results.groups.arrival_icao);
}

Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_H1_StarPOS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,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));
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(msg.substring(8, 12) + '00'));
ResultFormatter.time_of_day(decodeResult, DateTimeUtils.convertHHMMSSToTod(msg.substring(8, 12)));
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),
longitude: CoordinateUtils.getDirection(msg.substring(17,18)) * (Number(msg.substring(18, 21)) + Number(msg.substring(21, 23))/60)
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_QP.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class Label_QP extends DecoderPlugin {

ResultFormatter.departureAirport(decodeResult, message.text.substring(0, 4));
ResultFormatter.arrivalAirport(decodeResult, message.text.substring(4, 8));
ResultFormatter.out(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(8, 12)+'00'));
ResultFormatter.out(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(8, 12)));
ResultFormatter.unknown(decodeResult, message.text.substring(12));

decodeResult.decoded = true;
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_QR.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class Label_QR extends DecoderPlugin {

ResultFormatter.departureAirport(decodeResult, message.text.substring(0, 4));
ResultFormatter.arrivalAirport(decodeResult, message.text.substring(4, 8));
ResultFormatter.on(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(8, 12)+'00'));
ResultFormatter.on(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(8, 12)));
ResultFormatter.unknown(decodeResult, message.text.substring(12));

decodeResult.decoded = true;
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/Label_QS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class Label_QS extends DecoderPlugin {

ResultFormatter.departureAirport(decodeResult, message.text.substring(0, 4));
ResultFormatter.arrivalAirport(decodeResult, message.text.substring(4, 8));
ResultFormatter.in(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(8, 12)+'00'));
ResultFormatter.in(decodeResult, DateTimeUtils.convertHHMMSSToTod(message.text.substring(8, 12)));
ResultFormatter.unknown(decodeResult, message.text.substring(12));

decodeResult.decoded = true;
Expand Down
4 changes: 2 additions & 2 deletions lib/utils/h1_helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ export class H1Helper {
} else if (fields[i].startsWith('ET')) {
if(fields[i].length === 7) { // 1 digit day
//ResultFormatter.dayOfMonth(decodeResult, Number(fields[i].substring(1, 3)));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[i].substring(3)+'00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[i].substring(3)));
} else if(fields[i].length === 8) { // 2 digit day
//ResultFormatter.dayOfMonth(decodeResult, Number(fields[i].substring(2, 4)));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[i].substring(4)+'00'));
ResultFormatter.eta(decodeResult, DateTimeUtils.convertHHMMSSToTod(fields[i].substring(4)));
} else {
ResultFormatter.unknown(decodeResult, fields[i], '/');
}
Expand Down