@canboat/canboatjs 3.2.3 → 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 -61
- 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 +42 -56
- 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,19 +18,14 @@ import {
|
|
|
18
18
|
PGN,
|
|
19
19
|
PGN_60928,
|
|
20
20
|
PGN_59904,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
PGN_126208_AcknowledgeDefaults,
|
|
25
|
-
PGN_126208_Command,
|
|
21
|
+
PGN_126208_NmeaRequestGroupFunction,
|
|
22
|
+
PGN_126208_NmeaCommandGroupFunction,
|
|
23
|
+
PGN_126208_NmeaAcknowledgeGroupFunction,
|
|
26
24
|
PGN_126996,
|
|
27
25
|
PGN_126993,
|
|
28
26
|
PGN_59392,
|
|
29
|
-
PGN_59392Defaults,
|
|
30
27
|
PGN_126464,
|
|
31
|
-
PGN_126464Defaults,
|
|
32
28
|
PgnListFunction,
|
|
33
|
-
GroupFunction,
|
|
34
29
|
PgnErrorCode,
|
|
35
30
|
TransmissionInterval,
|
|
36
31
|
ControllerState,
|
|
@@ -215,7 +210,7 @@ export class N2kDevice extends EventEmitter {
|
|
|
215
210
|
if (pgn.pgn == 59904) {
|
|
216
211
|
handleISORequest(this, pgn)
|
|
217
212
|
} else if (pgn.pgn == 126208) {
|
|
218
|
-
handleGroupFunction(this, pgn as
|
|
213
|
+
handleGroupFunction(this, pgn as PGN_126208_NmeaRequestGroupFunction)
|
|
219
214
|
} else if (pgn.pgn == 60928) {
|
|
220
215
|
handleISOAddressClaim(this, pgn as PGN_60928)
|
|
221
216
|
} else if (pgn.pgn == 126996) {
|
|
@@ -275,7 +270,10 @@ function handleISORequest(device: N2kDevice, n2kMsg: PGN_59904) {
|
|
|
275
270
|
}
|
|
276
271
|
}
|
|
277
272
|
|
|
278
|
-
function handleGroupFunction(
|
|
273
|
+
function handleGroupFunction(
|
|
274
|
+
device: N2kDevice,
|
|
275
|
+
n2kMsg: PGN_126208_NmeaRequestGroupFunction
|
|
276
|
+
) {
|
|
279
277
|
device.debug('handleGroupFunction %j', n2kMsg)
|
|
280
278
|
const functionCode = n2kMsg.fields.functionCode
|
|
281
279
|
if (functionCode === 'Request') {
|
|
@@ -286,7 +284,10 @@ function handleGroupFunction(device: N2kDevice, n2kMsg: PGN_126208) {
|
|
|
286
284
|
device.debug('Got unsupported Group Function PGN: %j', n2kMsg)
|
|
287
285
|
}
|
|
288
286
|
|
|
289
|
-
function handleRequestGroupFunction(
|
|
287
|
+
function handleRequestGroupFunction(
|
|
288
|
+
device: N2kDevice,
|
|
289
|
+
n2kMsg: PGN_126208_NmeaRequestGroupFunction
|
|
290
|
+
) {
|
|
290
291
|
if (!device.options.disableNAKs) {
|
|
291
292
|
// We really don't support group function requests for any PGNs yet -> always respond with pgnErrorCode 1 = "PGN not supported"
|
|
292
293
|
|
|
@@ -297,26 +298,24 @@ function handleGroupFunction(device: N2kDevice, n2kMsg: PGN_126208) {
|
|
|
297
298
|
PGN
|
|
298
299
|
)
|
|
299
300
|
|
|
300
|
-
const acknowledgement
|
|
301
|
-
|
|
302
|
-
dst: n2kMsg.src!,
|
|
303
|
-
fields: {
|
|
304
|
-
functionCode: GroupFunction.Acknowledge,
|
|
301
|
+
const acknowledgement = new PGN_126208_NmeaAcknowledgeGroupFunction(
|
|
302
|
+
{
|
|
305
303
|
pgn: PGN,
|
|
306
304
|
pgnErrorCode: PgnErrorCode.NotSupported,
|
|
307
305
|
transmissionIntervalPriorityErrorCode:
|
|
308
306
|
TransmissionInterval.Acknowledge,
|
|
309
307
|
numberOfParameters: 0,
|
|
310
308
|
list: []
|
|
311
|
-
}
|
|
312
|
-
|
|
309
|
+
},
|
|
310
|
+
n2kMsg.src!
|
|
311
|
+
)
|
|
313
312
|
device.sendPGN(acknowledgement)
|
|
314
313
|
}
|
|
315
314
|
}
|
|
316
315
|
|
|
317
316
|
function handleCommandGroupFunction(
|
|
318
317
|
device: N2kDevice,
|
|
319
|
-
n2kMsg:
|
|
318
|
+
n2kMsg: PGN_126208_NmeaCommandGroupFunction
|
|
320
319
|
) {
|
|
321
320
|
if (!device.options.disableNAKs) {
|
|
322
321
|
// We really don't support group function commands for any PGNs yet -> always respond with pgnErrorCode 1 = "PGN not supported"
|
|
@@ -328,19 +327,18 @@ function handleGroupFunction(device: N2kDevice, n2kMsg: PGN_126208) {
|
|
|
328
327
|
PGN
|
|
329
328
|
)
|
|
330
329
|
|
|
331
|
-
const acknowledgement
|
|
332
|
-
|
|
333
|
-
dst: n2kMsg.src!,
|
|
334
|
-
fields: {
|
|
335
|
-
functionCode: GroupFunction.Acknowledge,
|
|
330
|
+
const acknowledgement = new PGN_126208_NmeaAcknowledgeGroupFunction(
|
|
331
|
+
{
|
|
336
332
|
pgn: PGN,
|
|
337
333
|
pgnErrorCode: PgnErrorCode.NotSupported,
|
|
338
334
|
transmissionIntervalPriorityErrorCode:
|
|
339
335
|
TransmissionInterval.Acknowledge,
|
|
340
336
|
numberOfParameters: 0,
|
|
341
337
|
list: []
|
|
342
|
-
}
|
|
343
|
-
|
|
338
|
+
},
|
|
339
|
+
n2kMsg.src!
|
|
340
|
+
)
|
|
341
|
+
|
|
344
342
|
device.sendPGN(acknowledgement)
|
|
345
343
|
}
|
|
346
344
|
}
|
|
@@ -401,16 +399,11 @@ function sendHeartbeat(device: N2kDevice) {
|
|
|
401
399
|
device.heartbeatCounter = 0
|
|
402
400
|
}
|
|
403
401
|
|
|
404
|
-
const hb
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
dataTransmitOffset: 60,
|
|
410
|
-
sequenceCounter: device.heartbeatCounter,
|
|
411
|
-
controller1State: ControllerState.ErrorActive
|
|
412
|
-
}
|
|
413
|
-
}
|
|
402
|
+
const hb = new PGN_126993({
|
|
403
|
+
dataTransmitOffset: 60,
|
|
404
|
+
sequenceCounter: device.heartbeatCounter,
|
|
405
|
+
controller1State: ControllerState.ErrorActive
|
|
406
|
+
})
|
|
414
407
|
|
|
415
408
|
device.sendPGN(hb)
|
|
416
409
|
}
|
|
@@ -461,14 +454,8 @@ function sendISORequest(
|
|
|
461
454
|
) {
|
|
462
455
|
device.debug(`Sending iso request for ${pgn} to ${dst}`)
|
|
463
456
|
|
|
464
|
-
const isoRequest
|
|
465
|
-
|
|
466
|
-
pgn: 59904,
|
|
467
|
-
dst: dst,
|
|
468
|
-
fields: {
|
|
469
|
-
pgn
|
|
470
|
-
}
|
|
471
|
-
}
|
|
457
|
+
const isoRequest = new PGN_59904({ pgn })
|
|
458
|
+
|
|
472
459
|
device.sendPGN(isoRequest, src)
|
|
473
460
|
}
|
|
474
461
|
|
|
@@ -490,31 +477,30 @@ function sendNAKAcknowledgement(
|
|
|
490
477
|
src: number,
|
|
491
478
|
requestedPGN: number
|
|
492
479
|
) {
|
|
493
|
-
const acknowledgement
|
|
494
|
-
|
|
495
|
-
dst: src,
|
|
496
|
-
fields: {
|
|
480
|
+
const acknowledgement = new PGN_59392(
|
|
481
|
+
{
|
|
497
482
|
control: IsoControl.Ack,
|
|
498
483
|
groupFunction: 255,
|
|
499
484
|
pgn: requestedPGN
|
|
500
|
-
}
|
|
501
|
-
|
|
485
|
+
},
|
|
486
|
+
src
|
|
487
|
+
)
|
|
488
|
+
|
|
502
489
|
device.sendPGN(acknowledgement)
|
|
503
490
|
}
|
|
504
491
|
|
|
505
492
|
function sendPGNList(device: N2kDevice, dst: number) {
|
|
506
493
|
//FIXME: for now, adding everything that signalk-to-nmea2000 supports
|
|
507
494
|
//need a way for plugins, etc. to register the pgns they provide
|
|
508
|
-
const pgnList
|
|
509
|
-
|
|
510
|
-
dst,
|
|
511
|
-
fields: {
|
|
495
|
+
const pgnList = new PGN_126464(
|
|
496
|
+
{
|
|
512
497
|
functionCode: PgnListFunction.TransmitPgnList,
|
|
513
498
|
list: device.transmitPGNs.map((num: number) => {
|
|
514
499
|
return { pgn: num }
|
|
515
500
|
})
|
|
516
|
-
}
|
|
517
|
-
|
|
501
|
+
},
|
|
502
|
+
dst
|
|
503
|
+
)
|
|
518
504
|
device.sendPGN(pgnList)
|
|
519
505
|
}
|
|
520
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
|
}
|