@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/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":"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"}
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,15 +18,14 @@ import {
18
18
  PGN,
19
19
  PGN_60928,
20
20
  PGN_59904,
21
- PGN_126208,
22
- PGN_126208_Acknowledge,
23
- PGN_126208_Command,
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 PGN_126208)
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(device: N2kDevice, n2kMsg: PGN_126208) {
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(device: N2kDevice, n2kMsg: PGN_126208) {
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: PGN_126208_Acknowledge = {
297
- pgn: 126208,
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: PGN_126208_Command
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: PGN_126208_Acknowledge = {
328
- pgn: 126208,
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: PGN_126993 = {
401
- pgn: 126993,
402
- dst: 255,
403
- prio: 7,
404
- fields: {
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: PGN_59904 = {
461
- pgn: 59904,
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: PGN_59392 = {
489
- pgn: 59392,
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: PGN_126464 = {
504
- pgn: 126464,
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(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.2",
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",