@canboat/canboatjs 3.2.2 → 3.2.4
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/.github/workflows/test.yml +1 -1
- package/.github/workflows/test_canboat_changes.yml +1 -0
- package/dist/fromPgn.d.ts +10 -10
- package/dist/fromPgn.d.ts.map +1 -1
- package/dist/fromPgn.js +30 -11
- package/dist/fromPgn.js.map +1 -1
- package/dist/n2kDevice.d.ts.map +1 -1
- package/dist/n2kDevice.js +31 -58
- package/dist/n2kDevice.js.map +1 -1
- package/dist/toPgn.d.ts.map +1 -1
- package/dist/toPgn.js +1 -1
- package/dist/toPgn.js.map +1 -1
- package/dist/ydgw02.d.ts.map +1 -1
- package/dist/ydgw02.js +7 -5
- package/dist/ydgw02.js.map +1 -1
- package/dist/ydvr.d.ts.map +1 -1
- package/dist/ydvr.js +2 -1
- package/dist/ydvr.js.map +1 -1
- package/lib/fromPgn.ts +44 -15
- package/lib/n2kDevice.ts +45 -52
- package/lib/toPgn.ts +5 -1
- package/lib/ydgw02.ts +8 -6
- package/lib/ydvr.js +2 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/dist/ydgw02.js
CHANGED
|
@@ -68,15 +68,13 @@ function Ydgw02Stream(options, type) {
|
|
|
68
68
|
// set ydnu to RAW mode
|
|
69
69
|
options.app.emit(this.outEvent, Buffer.from([0x30, 0x0a]));
|
|
70
70
|
}
|
|
71
|
-
if (options.createDevice === true) {
|
|
72
|
-
this.device = new yddevice_1.YdDevice(options);
|
|
73
|
-
this.device.start();
|
|
74
|
-
}
|
|
75
71
|
this.debug('started');
|
|
76
72
|
}
|
|
77
73
|
}
|
|
78
74
|
Ydgw02Stream.prototype.cansend = function (_msg) {
|
|
79
|
-
return this.
|
|
75
|
+
return this.options.createDevice
|
|
76
|
+
? this.device && this.device.cansend
|
|
77
|
+
: this.sentAvailable;
|
|
80
78
|
};
|
|
81
79
|
Ydgw02Stream.prototype.sendString = function (msg, forceSend) {
|
|
82
80
|
if (this.cansend() || forceSend === true) {
|
|
@@ -151,6 +149,10 @@ Ydgw02Stream.prototype._transform = function (chunk, encoding, done) {
|
|
|
151
149
|
this.debug('emit nmea2000OutAvailable');
|
|
152
150
|
this.options.app.emit('nmea2000OutAvailable');
|
|
153
151
|
this.sentAvailable = true;
|
|
152
|
+
if (this.options.createDevice === true) {
|
|
153
|
+
this.device = new yddevice_1.YdDevice(this.options);
|
|
154
|
+
this.device.start();
|
|
155
|
+
}
|
|
154
156
|
}
|
|
155
157
|
const pgn = this.fromPgn.parseYDGW02(line);
|
|
156
158
|
if (pgn !== undefined) {
|
package/dist/ydgw02.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ydgw02.js","sourceRoot":"","sources":["../lib/ydgw02.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAiBH,
|
|
1
|
+
{"version":3,"file":"ydgw02.js","sourceRoot":"","sources":["../lib/ydgw02.ts"],"names":[],"mappings":"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"}
|
package/dist/ydvr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ydvr.d.ts","sourceRoot":"","sources":["../lib/ydvr.js"],"names":[],"mappings":";AAoBA,0CA2BC;;IAtBC,4BAA2B;IAE3B,iCAAqB;IACrB,+BAAmB;IACnB,oCAAwB;IAsB1B,YAEC;IAED,
|
|
1
|
+
{"version":3,"file":"ydvr.d.ts","sourceRoot":"","sources":["../lib/ydvr.js"],"names":[],"mappings":";AAoBA,0CA2BC;;IAtBC,4BAA2B;IAE3B,iCAAqB;IACrB,+BAAmB;IACnB,oCAAwB;IAsB1B,YAEC;IAED,2BAwDC;IAhDG,gBAAgD;IAOlD,6BAAoB;IA2CtB,uDAsBC;IApBG,QAA8B;;;2BAjHG,MAAM"}
|
package/dist/ydvr.js
CHANGED
|
@@ -83,8 +83,9 @@ YdvrStream.prototype.parseNextRecord = function () {
|
|
|
83
83
|
return false;
|
|
84
84
|
}
|
|
85
85
|
var body = this.bs.readArrayBuffer(bodyLen);
|
|
86
|
-
const parsed = this.parser.parsePgnData(
|
|
86
|
+
const parsed = this.parser.parsePgnData(pgn, bodyLen, Buffer.from(body), false, undefined);
|
|
87
87
|
if (parsed) {
|
|
88
|
+
parsed.time = new Date(time).toISOString().slice(11, 23);
|
|
88
89
|
this.push(parsed);
|
|
89
90
|
}
|
|
90
91
|
}
|
package/dist/ydvr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ydvr.js","sourceRoot":"","sources":["../lib/ydvr.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ydvr.js","sourceRoot":"","sources":["../lib/ydvr.js"],"names":[],"mappings":";AAAA,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,CAAA;AACjD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAA;AAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;AAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAA;AAEhD,yDAAyD;AACzD,IAAI,YAAY,GAAG,IAAI,GAAG,CAAC;IACzB,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAC7E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM;CACvB,CAAC,CAAA;AAEF,SAAS,UAAU;IACjB,IAAI,CAAC,CAAC,IAAI,YAAY,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,UAAU,EAAE,CAAA;IACzB,CAAC;IAED,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;IAE3B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;IACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;IACnB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAExB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACrC,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC,CAAA;QAClD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QACzC,sDAAsD;IACxD,CAAC,CAAC,CAAA;IAEF,mCAAmC;IACnC,sCAAsC;IACtC,MAAM;IAEN,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAA;AACJ,CAAC;AAED,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;AAE/C,UAAU,CAAC,SAAS,CAAC,GAAG,GAAG;IACzB,sBAAsB;AACxB,CAAC,CAAA;AAED,UAAU,CAAC,SAAS,CAAC,eAAe,GAAG;IACrC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAA;IAC/B,mBAAmB;IACnB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,KAAK,CAAA;QAChD,wCAAwC;QACxC,IAAI,CAAC,eAAe,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC;;;QAGE;IACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IAEpB,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAA;IACrC,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,iBAAiB;QACjB,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;QAElC,IAAI,OAAO,CAAA;QACX,IAAI,GAAG,CAAC,GAAG,IAAI,KAAK,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;aAAM,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAA;YAC9B,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,CAAC,CAAA;QACb,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CACrC,GAAG,EACH,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,KAAK,EACL,SAAS,CACV,CAAA;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;YACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,CAAC,CAAA;IACtB,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI;IAC/D,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;SAAM,CAAC;QACN,IAAI,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QACrE,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAA;QAClC,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACjC,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACjB,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,UAAU,CAAA;YAC9B,MAAK;QACP,CAAC;IACH,CAAC;IACD,IAAI,EAAE,CAAA;AACR,CAAC,CAAA;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,CAAA"}
|
package/lib/fromPgn.ts
CHANGED
|
@@ -16,7 +16,13 @@
|
|
|
16
16
|
|
|
17
17
|
// FIXME: MMSI sould be a string
|
|
18
18
|
|
|
19
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
Definition,
|
|
21
|
+
Field,
|
|
22
|
+
PGN,
|
|
23
|
+
FieldType,
|
|
24
|
+
getPGNClass
|
|
25
|
+
} from '@canboat/ts-pgns'
|
|
20
26
|
import { createDebug } from './utilities'
|
|
21
27
|
import { EventEmitter } from 'node:events'
|
|
22
28
|
import pkg from '../package.json'
|
|
@@ -387,22 +393,38 @@ export class Parser extends EventEmitter {
|
|
|
387
393
|
}
|
|
388
394
|
}
|
|
389
395
|
|
|
390
|
-
pgn.description = pgnData.Description
|
|
391
|
-
|
|
392
|
-
//console.log(`pgn: ${JSON.stringify(pgn)}`)
|
|
393
|
-
|
|
394
|
-
// Stringify timestamp because SK Server needs it that way.
|
|
395
|
-
const ts = _.get(pgn, 'timestamp', new Date())
|
|
396
|
-
pgn.timestamp = _.isDate(ts) ? ts.toISOString() : ts
|
|
397
|
-
this.emit('pgn', pgn)
|
|
398
|
-
cb && cb(undefined, pgn)
|
|
399
|
-
|
|
400
396
|
/*
|
|
401
397
|
if ( pgnData.callback ) {
|
|
402
398
|
pgnData.callback(pgn)
|
|
403
399
|
}
|
|
404
400
|
*/
|
|
405
|
-
|
|
401
|
+
|
|
402
|
+
const cf = getPGNClass(pgnData.Id)
|
|
403
|
+
|
|
404
|
+
if (cf === undefined) {
|
|
405
|
+
this.emit('error', pgn, 'no class')
|
|
406
|
+
cb && cb('no class', undefined)
|
|
407
|
+
return
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
const res = cf(pgn.fields)
|
|
411
|
+
|
|
412
|
+
res.description = pgnData.Description
|
|
413
|
+
res.src = pgn.src
|
|
414
|
+
res.dst = pgn.dst
|
|
415
|
+
res.prio = pgn.prio
|
|
416
|
+
res.canId = (pgn as any).canId
|
|
417
|
+
res.time = (pgn as any).time
|
|
418
|
+
res.timer = (pgn as any).timer
|
|
419
|
+
res.direction = (pgn as any).direction
|
|
420
|
+
|
|
421
|
+
// Stringify timestamp because SK Server needs it that way.
|
|
422
|
+
const ts = _.get(pgn, 'timestamp', new Date())
|
|
423
|
+
res.timestamp = _.isDate(ts) ? ts.toISOString() : ts
|
|
424
|
+
this.emit('pgn', res)
|
|
425
|
+
cb && cb(undefined, res)
|
|
426
|
+
|
|
427
|
+
return res
|
|
406
428
|
} catch (error) {
|
|
407
429
|
this.emit('error', pgn, error)
|
|
408
430
|
cb && cb(error, undefined)
|
|
@@ -674,10 +696,17 @@ export function getField(pgn_number: number, index: number, data: any) {
|
|
|
674
696
|
const field = pgn.Fields[idx]
|
|
675
697
|
const hasMatch = !_.isUndefined(field.Match)
|
|
676
698
|
if (hasMatch && dataList.length > 0) {
|
|
677
|
-
const param = dataList.find((f: any) =>
|
|
699
|
+
const param = dataList.find((f: any) => {
|
|
700
|
+
const param = f.parameter !== undefined ? f.parameter : f.Parameter
|
|
701
|
+
return param === idx + 1
|
|
702
|
+
})
|
|
678
703
|
|
|
679
704
|
if (param) {
|
|
680
|
-
pgnList = pgnList.filter((f) =>
|
|
705
|
+
pgnList = pgnList.filter((f) => {
|
|
706
|
+
const value =
|
|
707
|
+
param.value !== undefined ? param.value : param.Value
|
|
708
|
+
return f.Fields[idx].Match == value
|
|
709
|
+
})
|
|
681
710
|
if (pgnList.length == 0) {
|
|
682
711
|
throw new Error('unable to read: ' + JSON.stringify(data))
|
|
683
712
|
return
|
|
@@ -986,7 +1015,7 @@ function readVariableLengthField(
|
|
|
986
1015
|
|
|
987
1016
|
try {
|
|
988
1017
|
const refField = getField(
|
|
989
|
-
(pgn.fields as any).PGN,
|
|
1018
|
+
(pgn.fields as any).pgn || (pgn.fields as any).PGN,
|
|
990
1019
|
bs.view.buffer[bs.byteIndex - 1] - 1,
|
|
991
1020
|
pgn
|
|
992
1021
|
)
|
package/lib/n2kDevice.ts
CHANGED
|
@@ -18,15 +18,14 @@ import {
|
|
|
18
18
|
PGN,
|
|
19
19
|
PGN_60928,
|
|
20
20
|
PGN_59904,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
PGN_126208_NmeaRequestGroupFunction,
|
|
22
|
+
PGN_126208_NmeaCommandGroupFunction,
|
|
23
|
+
PGN_126208_NmeaAcknowledgeGroupFunction,
|
|
24
24
|
PGN_126996,
|
|
25
25
|
PGN_126993,
|
|
26
26
|
PGN_59392,
|
|
27
27
|
PGN_126464,
|
|
28
28
|
PgnListFunction,
|
|
29
|
-
GroupFunction,
|
|
30
29
|
PgnErrorCode,
|
|
31
30
|
TransmissionInterval,
|
|
32
31
|
ControllerState,
|
|
@@ -211,7 +210,7 @@ export class N2kDevice extends EventEmitter {
|
|
|
211
210
|
if (pgn.pgn == 59904) {
|
|
212
211
|
handleISORequest(this, pgn)
|
|
213
212
|
} else if (pgn.pgn == 126208) {
|
|
214
|
-
handleGroupFunction(this, pgn as
|
|
213
|
+
handleGroupFunction(this, pgn as PGN_126208_NmeaRequestGroupFunction)
|
|
215
214
|
} else if (pgn.pgn == 60928) {
|
|
216
215
|
handleISOAddressClaim(this, pgn as PGN_60928)
|
|
217
216
|
} else if (pgn.pgn == 126996) {
|
|
@@ -271,7 +270,10 @@ function handleISORequest(device: N2kDevice, n2kMsg: PGN_59904) {
|
|
|
271
270
|
}
|
|
272
271
|
}
|
|
273
272
|
|
|
274
|
-
function handleGroupFunction(
|
|
273
|
+
function handleGroupFunction(
|
|
274
|
+
device: N2kDevice,
|
|
275
|
+
n2kMsg: PGN_126208_NmeaRequestGroupFunction
|
|
276
|
+
) {
|
|
275
277
|
device.debug('handleGroupFunction %j', n2kMsg)
|
|
276
278
|
const functionCode = n2kMsg.fields.functionCode
|
|
277
279
|
if (functionCode === 'Request') {
|
|
@@ -282,7 +284,10 @@ function handleGroupFunction(device: N2kDevice, n2kMsg: PGN_126208) {
|
|
|
282
284
|
device.debug('Got unsupported Group Function PGN: %j', n2kMsg)
|
|
283
285
|
}
|
|
284
286
|
|
|
285
|
-
function handleRequestGroupFunction(
|
|
287
|
+
function handleRequestGroupFunction(
|
|
288
|
+
device: N2kDevice,
|
|
289
|
+
n2kMsg: PGN_126208_NmeaRequestGroupFunction
|
|
290
|
+
) {
|
|
286
291
|
if (!device.options.disableNAKs) {
|
|
287
292
|
// We really don't support group function requests for any PGNs yet -> always respond with pgnErrorCode 1 = "PGN not supported"
|
|
288
293
|
|
|
@@ -293,26 +298,24 @@ function handleGroupFunction(device: N2kDevice, n2kMsg: PGN_126208) {
|
|
|
293
298
|
PGN
|
|
294
299
|
)
|
|
295
300
|
|
|
296
|
-
const acknowledgement
|
|
297
|
-
|
|
298
|
-
dst: n2kMsg.src!,
|
|
299
|
-
fields: {
|
|
300
|
-
functionCode: GroupFunction.Acknowledge,
|
|
301
|
+
const acknowledgement = new PGN_126208_NmeaAcknowledgeGroupFunction(
|
|
302
|
+
{
|
|
301
303
|
pgn: PGN,
|
|
302
304
|
pgnErrorCode: PgnErrorCode.NotSupported,
|
|
303
305
|
transmissionIntervalPriorityErrorCode:
|
|
304
306
|
TransmissionInterval.Acknowledge,
|
|
305
307
|
numberOfParameters: 0,
|
|
306
308
|
list: []
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
+
},
|
|
310
|
+
n2kMsg.src!
|
|
311
|
+
)
|
|
309
312
|
device.sendPGN(acknowledgement)
|
|
310
313
|
}
|
|
311
314
|
}
|
|
312
315
|
|
|
313
316
|
function handleCommandGroupFunction(
|
|
314
317
|
device: N2kDevice,
|
|
315
|
-
n2kMsg:
|
|
318
|
+
n2kMsg: PGN_126208_NmeaCommandGroupFunction
|
|
316
319
|
) {
|
|
317
320
|
if (!device.options.disableNAKs) {
|
|
318
321
|
// We really don't support group function commands for any PGNs yet -> always respond with pgnErrorCode 1 = "PGN not supported"
|
|
@@ -324,19 +327,18 @@ function handleGroupFunction(device: N2kDevice, n2kMsg: PGN_126208) {
|
|
|
324
327
|
PGN
|
|
325
328
|
)
|
|
326
329
|
|
|
327
|
-
const acknowledgement
|
|
328
|
-
|
|
329
|
-
dst: n2kMsg.src!,
|
|
330
|
-
fields: {
|
|
331
|
-
functionCode: GroupFunction.Acknowledge,
|
|
330
|
+
const acknowledgement = new PGN_126208_NmeaAcknowledgeGroupFunction(
|
|
331
|
+
{
|
|
332
332
|
pgn: PGN,
|
|
333
333
|
pgnErrorCode: PgnErrorCode.NotSupported,
|
|
334
334
|
transmissionIntervalPriorityErrorCode:
|
|
335
335
|
TransmissionInterval.Acknowledge,
|
|
336
336
|
numberOfParameters: 0,
|
|
337
337
|
list: []
|
|
338
|
-
}
|
|
339
|
-
|
|
338
|
+
},
|
|
339
|
+
n2kMsg.src!
|
|
340
|
+
)
|
|
341
|
+
|
|
340
342
|
device.sendPGN(acknowledgement)
|
|
341
343
|
}
|
|
342
344
|
}
|
|
@@ -397,16 +399,11 @@ function sendHeartbeat(device: N2kDevice) {
|
|
|
397
399
|
device.heartbeatCounter = 0
|
|
398
400
|
}
|
|
399
401
|
|
|
400
|
-
const hb
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
dataTransmitOffset: 60,
|
|
406
|
-
sequenceCounter: device.heartbeatCounter,
|
|
407
|
-
controller1State: ControllerState.ErrorActive
|
|
408
|
-
}
|
|
409
|
-
}
|
|
402
|
+
const hb = new PGN_126993({
|
|
403
|
+
dataTransmitOffset: 60,
|
|
404
|
+
sequenceCounter: device.heartbeatCounter,
|
|
405
|
+
controller1State: ControllerState.ErrorActive
|
|
406
|
+
})
|
|
410
407
|
|
|
411
408
|
device.sendPGN(hb)
|
|
412
409
|
}
|
|
@@ -457,13 +454,8 @@ function sendISORequest(
|
|
|
457
454
|
) {
|
|
458
455
|
device.debug(`Sending iso request for ${pgn} to ${dst}`)
|
|
459
456
|
|
|
460
|
-
const isoRequest
|
|
461
|
-
|
|
462
|
-
dst: dst,
|
|
463
|
-
fields: {
|
|
464
|
-
pgn
|
|
465
|
-
}
|
|
466
|
-
}
|
|
457
|
+
const isoRequest = new PGN_59904({ pgn })
|
|
458
|
+
|
|
467
459
|
device.sendPGN(isoRequest, src)
|
|
468
460
|
}
|
|
469
461
|
|
|
@@ -485,29 +477,30 @@ function sendNAKAcknowledgement(
|
|
|
485
477
|
src: number,
|
|
486
478
|
requestedPGN: number
|
|
487
479
|
) {
|
|
488
|
-
const acknowledgement
|
|
489
|
-
|
|
490
|
-
dst: src,
|
|
491
|
-
fields: {
|
|
480
|
+
const acknowledgement = new PGN_59392(
|
|
481
|
+
{
|
|
492
482
|
control: IsoControl.Ack,
|
|
493
483
|
groupFunction: 255,
|
|
494
484
|
pgn: requestedPGN
|
|
495
|
-
}
|
|
496
|
-
|
|
485
|
+
},
|
|
486
|
+
src
|
|
487
|
+
)
|
|
488
|
+
|
|
497
489
|
device.sendPGN(acknowledgement)
|
|
498
490
|
}
|
|
499
491
|
|
|
500
492
|
function sendPGNList(device: N2kDevice, dst: number) {
|
|
501
493
|
//FIXME: for now, adding everything that signalk-to-nmea2000 supports
|
|
502
494
|
//need a way for plugins, etc. to register the pgns they provide
|
|
503
|
-
const pgnList
|
|
504
|
-
|
|
505
|
-
dst,
|
|
506
|
-
fields: {
|
|
495
|
+
const pgnList = new PGN_126464(
|
|
496
|
+
{
|
|
507
497
|
functionCode: PgnListFunction.TransmitPgnList,
|
|
508
|
-
list: device.transmitPGNs
|
|
509
|
-
|
|
510
|
-
|
|
498
|
+
list: device.transmitPGNs.map((num: number) => {
|
|
499
|
+
return { pgn: num }
|
|
500
|
+
})
|
|
501
|
+
},
|
|
502
|
+
dst
|
|
503
|
+
)
|
|
511
504
|
device.sendPGN(pgnList)
|
|
512
505
|
}
|
|
513
506
|
|
package/lib/toPgn.ts
CHANGED
|
@@ -322,7 +322,11 @@ function writeVariableLengthField(
|
|
|
322
322
|
value: any,
|
|
323
323
|
fields: Field[]
|
|
324
324
|
) {
|
|
325
|
-
const refField = getField(
|
|
325
|
+
const refField = getField(
|
|
326
|
+
pgn.pgn | pgn.PGN,
|
|
327
|
+
bs.view.buffer[bs.byteIndex - 1] - 1,
|
|
328
|
+
pgn
|
|
329
|
+
)
|
|
326
330
|
|
|
327
331
|
if (refField) {
|
|
328
332
|
let bits
|
package/lib/ydgw02.ts
CHANGED
|
@@ -81,17 +81,14 @@ export function Ydgw02Stream(this: any, options: any, type: string) {
|
|
|
81
81
|
options.app.emit(this.outEvent, Buffer.from([0x30, 0x0a]))
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
if (options.createDevice === true) {
|
|
85
|
-
this.device = new YdDevice(options)
|
|
86
|
-
this.device.start()
|
|
87
|
-
}
|
|
88
|
-
|
|
89
84
|
this.debug('started')
|
|
90
85
|
}
|
|
91
86
|
}
|
|
92
87
|
|
|
93
88
|
Ydgw02Stream.prototype.cansend = function (_msg: any) {
|
|
94
|
-
return this.
|
|
89
|
+
return this.options.createDevice
|
|
90
|
+
? this.device && this.device.cansend
|
|
91
|
+
: this.sentAvailable
|
|
95
92
|
}
|
|
96
93
|
|
|
97
94
|
Ydgw02Stream.prototype.sendString = function (msg: string, forceSend: boolean) {
|
|
@@ -178,6 +175,11 @@ Ydgw02Stream.prototype._transform = function (
|
|
|
178
175
|
this.debug('emit nmea2000OutAvailable')
|
|
179
176
|
this.options.app.emit('nmea2000OutAvailable')
|
|
180
177
|
this.sentAvailable = true
|
|
178
|
+
|
|
179
|
+
if (this.options.createDevice === true) {
|
|
180
|
+
this.device = new YdDevice(this.options)
|
|
181
|
+
this.device.start()
|
|
182
|
+
}
|
|
181
183
|
}
|
|
182
184
|
|
|
183
185
|
const pgn = this.fromPgn.parseYDGW02(line)
|
package/lib/ydvr.js
CHANGED
|
@@ -95,13 +95,14 @@ YdvrStream.prototype.parseNextRecord = function () {
|
|
|
95
95
|
var body = this.bs.readArrayBuffer(bodyLen)
|
|
96
96
|
|
|
97
97
|
const parsed = this.parser.parsePgnData(
|
|
98
|
-
|
|
98
|
+
pgn,
|
|
99
99
|
bodyLen,
|
|
100
100
|
Buffer.from(body),
|
|
101
101
|
false,
|
|
102
102
|
undefined
|
|
103
103
|
)
|
|
104
104
|
if (parsed) {
|
|
105
|
+
parsed.time = new Date(time).toISOString().slice(11, 23)
|
|
105
106
|
this.push(parsed)
|
|
106
107
|
}
|
|
107
108
|
}
|