From 2f9854e605d57a233fa030872b98cdddf364831a Mon Sep 17 00:00:00 2001 From: Scott Bender Date: Mon, 25 Sep 2023 14:36:40 -0400 Subject: [PATCH] fix: only the first pair of repeating fields in a 126720 pgn are read (#256) --- lib/fromPgn.js | 7 ++++--- test/pgns/130824.js | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/fromPgn.js b/lib/fromPgn.js index 0392448..5fa522d 100644 --- a/lib/fromPgn.js +++ b/lib/fromPgn.js @@ -119,9 +119,7 @@ class Parser extends EventEmitter { }) } - const RepeatingFields = pgnData.RepeatingFieldSet1Size ? pgnData.RepeatingFieldSet1Size : 0 - - trace(`${pgn.pgn} ${len} ${pgnData.Length} ${RepeatingFields} ${couldBeMulti}`) + trace(`${pgn.pgn} ${len} ${pgnData.Length} ${couldBeMulti}`) if ( coalesced || len > 0x8 || (this.format == FORMAT_COALESCED && !this.mixedFormat) ) { this.format = FORMAT_COALESCED if ( sourceString ) { @@ -203,6 +201,8 @@ class Parser extends EventEmitter { pgn.input = [ sourceString ] } + let RepeatingFields = pgnData.RepeatingFieldSet1Size ? pgnData.RepeatingFieldSet1Size : 0 + pgn.fields = {} try { var fields = pgnData.Fields @@ -245,6 +245,7 @@ class Parser extends EventEmitter { if ( value == null ) { value = pgnData.Fields[i].Match } + RepeatingFields = pgnData.RepeatingFieldSet1Size ? pgnData.RepeatingFieldSet1Size : 0 } } diff --git a/test/pgns/130824.js b/test/pgns/130824.js index d7f9958..3bf63f2 100644 --- a/test/pgns/130824.js +++ b/test/pgns/130824.js @@ -1,4 +1,4 @@ module.exports = [{ - "expected": {"timestamp":"2016-02-28T19:57:03.931Z","prio":2,"src":24,"dst":255,"pgn":130824,"description":"Maretron: Annunciator","fields":{"Manufacturer Code":"Maretron","Industry Code":"Marine Industry","Field 4":0,"Field 5":0,"Reserved1":null,"list":[]}}, + "expected": {"timestamp":"2016-02-28T19:57:03.931Z","prio":2,"src":24,"dst":255,"pgn":130824,"description":"Maretron: Annunciator","fields":{"Manufacturer Code":"Maretron","Industry Code":"Marine Industry","Field 4":0,"Field 5":0,"Reserved1":null,"Field 6": null, "Field 7": null, "Field 8": null}}, "input": "2016-02-28T19:57:03.931Z,2,130824,24,255,9,89,98,00,00,ff,ff,ff,ff,ff" }]