@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/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.device ? this.device.cansend : true;
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) {
@@ -1 +1 @@
1
- {"version":3,"file":"ydgw02.js","sourceRoot":"","sources":["../lib/ydgw02.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ydgw02.js","sourceRoot":"","sources":["../lib/ydgw02.ts"],"names":[],"mappings":"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"}
@@ -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,2BAuDC;IA/CG,gBAAgD;IAOlD,6BAAoB;IA0CtB,uDAsBC;IApBG,QAA8B;;;2BAhHG,MAAM"}
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({ ...pgn, time: new Date(time).toISOString().slice(11, 23) }, bodyLen, Buffer.from(body), false, undefined);
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":";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,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAC5D,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,KAAK,EACL,SAAS,CACV,CAAA;QACD,IAAI,MAAM,EAAE,CAAC;YACX,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"}
1
+ {"version":3,"file":"ydvr.js","sourceRoot":"","sources":["../lib/ydvr.js"],"names":[],"mappings":"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"}
package/lib/fromPgn.ts CHANGED
@@ -16,7 +16,13 @@
16
16
 
17
17
  // FIXME: MMSI sould be a string
18
18
 
19
- import { Definition, Field, PGN, FieldType } from '@canboat/ts-pgns'
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
- return pgn
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) => f.Parameter === idx + 1)
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) => f.Fields[idx].Match == param.Value)
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
- PGN_59904Defaults,
22
- PGN_126208,
23
- PGN_126208_Acknowledge,
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 PGN_126208)
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(device: N2kDevice, n2kMsg: PGN_126208) {
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(device: N2kDevice, n2kMsg: PGN_126208) {
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: PGN_126208_Acknowledge = {
301
- ...PGN_126208_AcknowledgeDefaults,
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: PGN_126208_Command
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: PGN_126208_Acknowledge = {
332
- ...PGN_126208_AcknowledgeDefaults,
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: PGN_126993 = {
405
- pgn: 126993,
406
- dst: 255,
407
- prio: 7,
408
- fields: {
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: PGN_59904 = {
465
- ...PGN_59904Defaults,
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: PGN_59392 = {
494
- ...PGN_59392Defaults,
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: PGN_126464 = {
509
- ...PGN_126464Defaults,
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(pgn.PGN, bs.view.buffer[bs.byteIndex - 1] - 1, pgn)
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.device ? this.device.cansend : true
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
- { ...pgn, time: new Date(time).toISOString().slice(11, 23) },
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canboat/canboatjs",
3
- "version": "3.2.3",
3
+ "version": "3.2.4",
4
4
  "description": "Native javascript version of canboat",
5
5
  "main": "dist/index.js",
6
6
  "types": "./dist/index.d.ts",