@canboat/canboatjs 3.16.3 → 3.16.4-beta.1

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.
@@ -14,4 +14,5 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  export declare function ActisenseStream(this: any, options: any): any;
17
+ export declare function composeMessage(command: number, buffer: Buffer, len: number): Buffer<ArrayBuffer>;
17
18
  //# sourceMappingURL=actisense-serial.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actisense-serial.d.ts","sourceRoot":"","sources":["../lib/actisense-serial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0CH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAkCtD"}
1
+ {"version":3,"file":"actisense-serial.d.ts","sourceRoot":"","sources":["../lib/actisense-serial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA8CH,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAkCtD;AAqbD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,uBA+B1E"}
@@ -19,6 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
21
  exports.ActisenseStream = ActisenseStream;
22
+ exports.composeMessage = composeMessage;
22
23
  const utilities_1 = require("./utilities");
23
24
  const util_1 = require("util");
24
25
  const stream_1 = require("stream");
@@ -35,13 +36,17 @@ const DLE = 0x10; /* Start pto encode a STX or ETX send DLE+STX or DLE+ETX */
35
36
  const ESC = 0x1b; /* Escape */
36
37
  /* Actisense message structure is:
37
38
 
38
- DLE STX <command> <len> [<data> ...] <checksum> DLE ETX
39
+ DLE STX <command> <len> [<data> ...] <checksum> DLE ETX
39
40
 
40
- <command> is a byte from the list below.
41
- In <data> any DLE characters are double escaped (DLE DLE).
42
- <len> encodes the unescaped length.
43
- <checksum> is such that the sum of all unescaped data bytes plus the command
44
- byte plus the length adds up to zero, modulo 256.
41
+ Byte stuffing: any DLE (0x10) byte appearing in <len>, <data>, or
42
+ <checksum> is duplicated on the wire (written as DLE DLE). The
43
+ leading DLE STX and trailing DLE ETX are framing markers and are
44
+ never stuffed.
45
+ <command> is a byte from the list below and is written as-is.
46
+ <len> is the payload length in bytes — the number of <data> bytes
47
+ before byte stuffing.
48
+ <checksum> is chosen so command + len + all unescaped <data> bytes +
49
+ checksum is 0 modulo 256.
45
50
  */
46
51
  const N2K_MSG_RECEIVED = 0x93; /* Receive standard N2K message */
47
52
  const N2K_MSG_SEND = 0x94; /* Send N2K message */
@@ -495,9 +500,11 @@ function composeMessage(command, buffer, len) {
495
500
  out.writeUint8(DLE);
496
501
  out.writeUint8(STX);
497
502
  out.writeUint8(command);
498
- const lenPos = out.byteIndex;
499
- out.writeUint8(0); //length. will update later
500
- let crc = command;
503
+ out.writeUint8(len);
504
+ if (len == DLE) {
505
+ out.writeUint8(DLE);
506
+ }
507
+ let crc = addUInt8(command, len);
501
508
  for (let i = 0; i < len; i++) {
502
509
  const c = buffer.readUInt8(i);
503
510
  if (c == DLE) {
@@ -506,12 +513,13 @@ function composeMessage(command, buffer, len) {
506
513
  out.writeUint8(c);
507
514
  crc = addUInt8(crc, c);
508
515
  }
509
- crc = addUInt8(crc, len);
510
- out.writeUint8(256 - crc);
516
+ const checksum = (256 - crc) & 0xff;
517
+ if (checksum == DLE) {
518
+ out.writeUint8(DLE);
519
+ }
520
+ out.writeUint8(checksum);
511
521
  out.writeUint8(DLE);
512
522
  out.writeUint8(ETX);
513
- out.view.buffer.writeUInt8(len, lenPos);
514
- //that.debug(`command ${out.view.buffer[2]} ${lenPos} ${len} ${out.view.buffer[lenPos]} ${out.view.buffer.length} ${out.byteIndex}`)
515
523
  return out.view.buffer.slice(0, out.byteIndex);
516
524
  }
517
525
  function parseInput(msg) {
@@ -1 +1 @@
1
- {"version":3,"file":"actisense-serial.js","sourceRoot":"","sources":["../lib/actisense-serial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actisense-serial.js","sourceRoot":"","sources":["../lib/actisense-serial.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=actisense-serial.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actisense-serial.test.d.ts","sourceRoot":"","sources":["../lib/actisense-serial.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const actisense_serial_1 = require("./actisense-serial");
4
+ const DLE = 0x10;
5
+ const STX = 0x02;
6
+ const ETX = 0x03;
7
+ const N2K_MSG_SEND = 0x94;
8
+ // Reference framing parser matching the NGT-1's byte-stuffing protocol.
9
+ // Returns the unescaped payload (command byte + body) extracted from a
10
+ // well-formed DLE/STX...DLE/ETX frame, or null if framing is broken.
11
+ function unframe(bytes) {
12
+ const out = [];
13
+ let i = 0;
14
+ if (bytes[i++] !== DLE || bytes[i++] !== STX)
15
+ return null;
16
+ while (i < bytes.length) {
17
+ const c = bytes[i++];
18
+ if (c === DLE) {
19
+ const next = bytes[i++];
20
+ if (next === ETX) {
21
+ // checksum is the last unescaped byte before DLE ETX
22
+ out.pop();
23
+ return Buffer.from(out);
24
+ }
25
+ if (next === DLE) {
26
+ out.push(DLE);
27
+ continue;
28
+ }
29
+ return null; // unexpected DLE escape
30
+ }
31
+ out.push(c);
32
+ }
33
+ return null; // never saw DLE ETX
34
+ }
35
+ describe('composeMessage DLE escaping', () => {
36
+ test('payload of exactly 16 bytes escapes the length byte (regression for unescaped len == DLE)', () => {
37
+ // The 126208 NMEA Command Group Function with two parameters produces
38
+ // a 10-byte data payload, which becomes a 16-byte framed body
39
+ // (1 prio + 3 pgn + 1 dst + 1 bytecount + 10 data). The body length
40
+ // 0x10 collides with the DLE escape byte. Without escaping, the NGT-1
41
+ // sees `94 10 02 ...` and resets framing on `DLE STX`, losing the
42
+ // command byte and the rest of the message.
43
+ const body = Buffer.from([
44
+ 0x02, 0x00, 0xed, 0x01, 0x10, 0x0a, 0x01, 0x0d, 0xf2, 0x01, 0xf8, 0x02,
45
+ 0x01, 0x2a, 0x0d, 0x01
46
+ ]);
47
+ expect(body.length).toBe(0x10);
48
+ const framed = (0, actisense_serial_1.composeMessage)(N2K_MSG_SEND, body, body.length);
49
+ // After the leading DLE STX command, the length byte 0x10 must be
50
+ // doubled so the receiver doesn't mistake it for a framing escape.
51
+ expect(framed[0]).toBe(DLE);
52
+ expect(framed[1]).toBe(STX);
53
+ expect(framed[2]).toBe(N2K_MSG_SEND);
54
+ expect(framed[3]).toBe(0x10); // length
55
+ expect(framed[4]).toBe(0x10); // escape — this is what the old code missed
56
+ });
57
+ test('payload of exactly 16 bytes round-trips through framing parser', () => {
58
+ const body = Buffer.from([
59
+ 0x02, 0x00, 0xed, 0x01, 0x10, 0x0a, 0x01, 0x0d, 0xf2, 0x01, 0xf8, 0x02,
60
+ 0x01, 0x2a, 0x0d, 0x01
61
+ ]);
62
+ const framed = (0, actisense_serial_1.composeMessage)(N2K_MSG_SEND, body, body.length);
63
+ const unframed = unframe(framed);
64
+ expect(unframed).not.toBeNull();
65
+ // unframed = [command, length, ...body]
66
+ expect(unframed[0]).toBe(N2K_MSG_SEND);
67
+ expect(unframed[1]).toBe(body.length);
68
+ expect(unframed.subarray(2)).toEqual(body);
69
+ });
70
+ test('checksum byte is escaped when it equals DLE', () => {
71
+ // Construct a body whose checksum collides with DLE.
72
+ // checksum = (256 - (command + len + sum(body))) mod 256
73
+ // For checksum = 0x10, need (command + len + sum(body)) mod 256 == 0xf0.
74
+ // command 0x94 (148) + len 1 + body[0] = 240 => body[0] = 91 (0x5b)
75
+ const body = Buffer.from([0x5b]);
76
+ const framed = (0, actisense_serial_1.composeMessage)(N2K_MSG_SEND, body, body.length);
77
+ // Trailing pattern: ... <escaped checksum> DLE ETX
78
+ // With escape: [..., 0x10, 0x10, 0x10, 0x03]
79
+ const tail = Array.from(framed.slice(framed.length - 4));
80
+ expect(tail).toEqual([0x10, 0x10, 0x10, 0x03]);
81
+ // Round-trip parse must still yield the original body and the
82
+ // computed checksum byte (0x10) without confusing the parser.
83
+ const unframed = unframe(framed);
84
+ expect(unframed).not.toBeNull();
85
+ expect(unframed[0]).toBe(N2K_MSG_SEND);
86
+ expect(unframed[1]).toBe(body.length);
87
+ expect(unframed.subarray(2)).toEqual(body);
88
+ });
89
+ test('payload with embedded DLE byte is escaped (existing behavior, regression guard)', () => {
90
+ const body = Buffer.from([0x01, DLE, 0x02]);
91
+ const framed = (0, actisense_serial_1.composeMessage)(N2K_MSG_SEND, body, body.length);
92
+ const unframed = unframe(framed);
93
+ expect(unframed).not.toBeNull();
94
+ expect(unframed[0]).toBe(N2K_MSG_SEND);
95
+ expect(unframed[1]).toBe(body.length);
96
+ expect(unframed.subarray(2)).toEqual(body);
97
+ });
98
+ });
99
+ //# sourceMappingURL=actisense-serial.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actisense-serial.test.js","sourceRoot":"","sources":["../lib/actisense-serial.test.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ export declare class CanChannel extends EventEmitter {
34
34
  private writeFd;
35
35
  private remainder;
36
36
  private stopped;
37
+ private exitHandler;
37
38
  constructor(ifname: string);
38
39
  start(): void;
39
40
  stop(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"canSocket.d.ts","sourceRoot":"","sources":["../lib/canSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAwBrC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,EAAE,MAAM;IAc1B,KAAK,IAAI,IAAI;IAuCb,IAAI,IAAI,IAAI;IAUZ,IAAI,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAgB7D"}
1
+ {"version":3,"file":"canSocket.d.ts","sourceRoot":"","sources":["../lib/canSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AA4BrC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,WAAW,CAA4B;gBAEnC,MAAM,EAAE,MAAM;IAqB1B,KAAK,IAAI,IAAI;IAuCb,IAAI,IAAI,IAAI;IA4BZ,IAAI,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAgB7D"}
package/dist/canSocket.js CHANGED
@@ -28,16 +28,19 @@ const CAN_EFF_MASK = 0x1fffffff;
28
28
  const CAN_FRAME_SIZE = 16; // sizeof(struct can_frame)
29
29
  const CAN_DATA_OFFSET = 8;
30
30
  let native;
31
+ let nativeLoadError;
31
32
  try {
32
33
  // eslint-disable-next-line @typescript-eslint/no-require-imports
33
34
  native = require('../build/Release/canSocket.node');
34
35
  }
35
- catch (_e) {
36
+ catch (releaseErr) {
36
37
  try {
37
38
  // eslint-disable-next-line @typescript-eslint/no-require-imports
38
39
  native = require('../build/Debug/canSocket.node');
39
40
  }
40
- catch (_e) { }
41
+ catch (_debugErr) {
42
+ nativeLoadError = releaseErr;
43
+ }
41
44
  }
42
45
  /**
43
46
  * Drop-in replacement for socketcan's channel object.
@@ -50,19 +53,26 @@ class CanChannel extends events_1.EventEmitter {
50
53
  writeFd;
51
54
  remainder = Buffer.alloc(0);
52
55
  stopped = false;
56
+ exitHandler = null;
53
57
  constructor(ifname) {
54
58
  super();
55
59
  if (native === undefined) {
56
- throw new Error('Failed to load native canSocket module');
60
+ const detail = nativeLoadError ? `: ${nativeLoadError.message}` : '';
61
+ throw new Error(`Failed to load native canSocket module${detail}`);
57
62
  }
58
63
  this.readFd = native.openCanSocket(ifname);
59
64
  try {
60
65
  this.writeFd = native.openCanSocketNonBlock(ifname);
61
66
  }
62
67
  catch (e) {
63
- (0, fs_1.close)(this.readFd, () => { });
68
+ (0, fs_1.closeSync)(this.readFd);
64
69
  throw e;
65
70
  }
71
+ // Ensure the blocking read fd is closed synchronously on process exit
72
+ // so the threadpool worker blocked in read() is unblocked and the
73
+ // process can actually terminate.
74
+ this.exitHandler = () => this.stop();
75
+ process.on('exit', this.exitHandler);
66
76
  }
67
77
  start() {
68
78
  this.stopped = false;
@@ -95,13 +105,34 @@ class CanChannel extends events_1.EventEmitter {
95
105
  });
96
106
  }
97
107
  stop() {
108
+ if (this.stopped) {
109
+ return;
110
+ }
98
111
  this.stopped = true;
112
+ if (this.exitHandler) {
113
+ process.removeListener('exit', this.exitHandler);
114
+ this.exitHandler = null;
115
+ }
99
116
  if (this.readStream) {
100
117
  this.readStream.destroy();
101
118
  this.readStream = null;
102
119
  }
103
- (0, fs_1.close)(this.readFd, () => { });
104
- (0, fs_1.close)(this.writeFd, () => { });
120
+ // shutdown() the read socket first so any threadpool worker blocked
121
+ // in read() is immediately unblocked (returns ENOTCONN). On Linux,
122
+ // close() alone does NOT interrupt a read() blocked on the same fd
123
+ // in another thread — the worker would hang forever.
124
+ try {
125
+ native.shutdownCanSocket(this.readFd);
126
+ }
127
+ catch (_e) { }
128
+ try {
129
+ (0, fs_1.closeSync)(this.readFd);
130
+ }
131
+ catch (_e) { }
132
+ try {
133
+ (0, fs_1.closeSync)(this.writeFd);
134
+ }
135
+ catch (_e) { }
105
136
  }
106
137
  send(msg) {
107
138
  if (this.stopped) {
@@ -1 +1 @@
1
- {"version":3,"file":"canSocket.js","sourceRoot":"","sources":["../lib/canSocket.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;AAEH,mCAAqC;AACrC,2BAAuD;AAGvD,MAAM,YAAY,GAAG,UAAU,CAAA;AAC/B,MAAM,YAAY,GAAG,UAAU,CAAA;AAC/B,MAAM,cAAc,GAAG,EAAE,CAAA,CAAC,2BAA2B;AACrD,MAAM,eAAe,GAAG,CAAC,CAAA;AAEzB,IAAI,MAIH,CAAA;AACD,IAAI,CAAC;IACH,iEAAiE;IACjE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAA;AACrD,CAAC;AAAC,OAAO,EAAE,EAAE,CAAC;IACZ,IAAI,CAAC;QACH,iEAAiE;QACjE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAA;IACnD,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC;AACjB,CAAC;AAOD;;;;GAIG;AACH,MAAa,UAAW,SAAQ,qBAAY;IAClC,UAAU,GAAsB,IAAI,CAAA;IACpC,MAAM,CAAQ;IACd,OAAO,CAAQ;IACf,SAAS,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnC,OAAO,GAAY,KAAK,CAAA;IAEhC,YAAY,MAAc;QACxB,KAAK,EAAE,CAAA;QACP,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAA,UAAO,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAC9B,MAAM,CAAC,CAAA;QACT,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,UAAU,GAAG,IAAA,qBAAgB,EAAC,EAAE,EAAE;YACrC,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,SAAS,EAAE,KAAK;YAChB,aAAa,EAAE,cAAc,GAAG,EAAE;SACnC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC3C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;YAEvD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;gBACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;gBAExD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,EAAE,GAAG,KAAK,GAAG,YAAY,CAAA;gBAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CACtB,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,GAAG,CAAC,CACvD,CAAA;gBAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,EAAgB,CAAC,CAAA;YACpD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACzC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACrC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAClC,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;QACxB,CAAC;QACD,IAAA,UAAO,EAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC9B,IAAA,UAAO,EAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,CAAC,GAAgD;QACnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAC1C,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,CAAA;QAClB,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,KAAK,IAAI,YAAY,CAAA;QACvB,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;QACnC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAA;QAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;QAEtE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;CACF;AAtFD,gCAsFC"}
1
+ {"version":3,"file":"canSocket.js","sourceRoot":"","sources":["../lib/canSocket.ts"],"names":[],"mappings":"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"}
package/dist/toPgn.js CHANGED
@@ -489,7 +489,7 @@ fieldTypeWriters['String with start/stop byte'] = (pgn, field, value, bs) => {
489
489
  bs.writeUint8(0x01);
490
490
  };
491
491
  fieldTypeWriters[RES_STRINGLAU] = (pgn, field, value, bs) => {
492
- if (pgn === 129041 && field.Name === 'AtoN Name') {
492
+ if (pgn === 129041 && field.Name === 'AtoN Name' && value) {
493
493
  if (value.length > 18) {
494
494
  value = value.substring(0, 18);
495
495
  }
package/dist/toPgn.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"toPgn.js","sourceRoot":"","sources":["../lib/toPgn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toPgn.js","sourceRoot":"","sources":["../lib/toPgn.ts"],"names":[],"mappings":"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"}
@@ -62,16 +62,13 @@ static Napi::Value OpenCanSocketImpl(const Napi::CallbackInfo& info, bool nonblo
62
62
  return env.Undefined();
63
63
  }
64
64
 
65
- // Disable local loopback frames we send should not be echoed back
66
- // to the read socket as if they came from the bus.
67
- int loopback = 0;
68
- if (setsockopt(fd, SOL_CAN_RAW, CAN_RAW_LOOPBACK, &loopback, sizeof(loopback)) < 0) {
69
- std::string err =
70
- std::string("setsockopt(CAN_RAW_LOOPBACK) for '") + ifname + "': " + strerror(errno);
71
- close(fd);
72
- Napi::Error::New(env, err).ThrowAsJavaScriptException();
73
- return env.Undefined();
74
- }
65
+ // NOTE: CAN_RAW_LOOPBACK is left at its default (enabled). On virtual CAN
66
+ // (vcan) interfaces the kernel uses loopback to distribute frames between
67
+ // sockets bound to the same interface — disabling it here would cause
68
+ // write() to succeed silently while no other socket (including candump or
69
+ // other processes on the bus) ever sees the frame. The empty CAN_RAW_FILTER
70
+ // above already prevents unwanted frames from reaching this socket's
71
+ // receive queue, so loopback has no effect on read behavior.
75
72
 
76
73
  if (fcntl(fd, F_SETFL, O_NONBLOCK) < 0) {
77
74
  std::string err =
@@ -114,10 +111,26 @@ Napi::Value WriteCanFrame(const Napi::CallbackInfo& info) {
114
111
  return Napi::Number::New(env, static_cast<int>(written));
115
112
  }
116
113
 
114
+ Napi::Value ShutdownCanSocket(const Napi::CallbackInfo& info) {
115
+ Napi::Env env = info.Env();
116
+
117
+ if (info.Length() < 1 || !info[0].IsNumber()) {
118
+ Napi::TypeError::New(env, "shutdownCanSocket(fd) expected")
119
+ .ThrowAsJavaScriptException();
120
+ return env.Undefined();
121
+ }
122
+
123
+ int fd = info[0].As<Napi::Number>().Int32Value();
124
+ int rc = shutdown(fd, SHUT_RDWR);
125
+
126
+ return Napi::Number::New(env, rc < 0 ? -errno : 0);
127
+ }
128
+
117
129
  Napi::Object Init(Napi::Env env, Napi::Object exports) {
118
130
  exports.Set("openCanSocket", Napi::Function::New(env, OpenCanSocket));
119
131
  exports.Set("openCanSocketNonBlock", Napi::Function::New(env, OpenCanSocketNonBlock));
120
132
  exports.Set("writeCanFrame", Napi::Function::New(env, WriteCanFrame));
133
+ exports.Set("shutdownCanSocket", Napi::Function::New(env, ShutdownCanSocket));
121
134
  return exports;
122
135
  }
123
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canboat/canboatjs",
3
- "version": "3.16.3",
3
+ "version": "3.16.4-beta.1",
4
4
  "description": "Native javascript version of canboat",
5
5
  "main": "dist/index.js",
6
6
  "browser": "dist/browser.js",