diff --git a/lib/toPgn.js b/lib/toPgn.js index b1c17d2..b34ddea 100644 --- a/lib/toPgn.js +++ b/lib/toPgn.js @@ -75,7 +75,7 @@ function toPgn(data) { if ( !_.isArray(fields) ) { fields = [ fields.Field ] } - const RepeatingFields = pgnData.RepeatingFieldSet1Size ? pgnData.RepeatingFieldSet1Size : 0 + let RepeatingFields = pgnData.RepeatingFieldSet1Size ? pgnData.RepeatingFieldSet1Size : 0 for ( var index = 0; index < fields.length - RepeatingFields; index++ ) { var field = fields[index] var value = data[field.Name]; @@ -92,6 +92,7 @@ function toPgn(data) { pgnData = pgnList[0] value = pgnData.Fields[index].Match fields = pgnData.Fields + RepeatingFields = pgnData.RepeatingFieldSet1Size ? pgnData.RepeatingFieldSet1Size : 0 } } writeField(bs, pgn_number, field, data, value) @@ -183,7 +184,7 @@ function writeField(bs, pgn_number, field, data, value, bitLength) { } if (field.Resolution && typeof value === 'number' ) { - value = (value / field.Resolution).toFixed(0); + value = Number((value / field.Resolution).toFixed(0)) } if ( field.Type && fieldTypeWriters[field.Type] ) { diff --git a/test/pgns/130311.js b/test/pgns/130311.js index 5c1e67b..5c51f48 100644 --- a/test/pgns/130311.js +++ b/test/pgns/130311.js @@ -1,4 +1,4 @@ module.exports = [{ - "expected": {"timestamp":"2017-04-15T14:57:58.469Z","prio":5,"src":35,"dst":255,"pgn":130311,"description":"Environmental Parameters","fields":{"SID":20,"Humidity": 131.068}}, - "input": "2017-04-15T14:57:58.469Z,5,130311,35,255,8,14,ff,ff,ff,ff,7f,ff,ff" + "expected": {"timestamp":"2023-07-20T19:01:57.251Z","prio":5,"src":35,"dst":255,"pgn":130311,"description":"Environmental Parameters","fields":{"SID":20,"Humidity": 56.068}}, + "input": "2023-07-20T19:01:57.251Z,5,130311,35,255,8,14,ff,ff,ff,c1,36,ff,ff" }] diff --git a/test/pgns/130313.js b/test/pgns/130313.js index fdeea86..6da7590 100644 --- a/test/pgns/130313.js +++ b/test/pgns/130313.js @@ -1,4 +1,4 @@ module.exports = [{ - "expected": {"timestamp":"2016-02-28T19:57:03.053Z","prio":5,"src":130,"dst":255,"pgn":130313,"description":"Humidity","fields":{"SID":23,"Instance":0,"Source":"Outside","Actual Humidity":60.116,"Set Humidity": 131.068}}, - "input": "2016-02-28T19:57:03.053Z,5,130313,130,255,8,17,00,01,b5,3a,ff,7f,ff" + "expected": {"timestamp":"2023-07-20T19:07:54.802Z","prio":5,"src":130,"dst":255,"pgn":130313,"description":"Humidity","fields":{"SID":23,"Instance":0,"Source":"Outside","Actual Humidity":60.116,"Set Humidity": 78.068}}, + "input": "2023-07-20T19:07:54.802Z,5,130313,130,255,8,17,00,01,b5,3a,3d,4c,ff" }] diff --git a/test/pgns/130824.js b/test/pgns/130824.js index 993ea75..4e804cc 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}}, + "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,"list":[]}}, "input": "2016-02-28T19:57:03.931Z,2,130824,24,255,9,89,98,00,00,ff,ff,ff,ff,ff" }]