@canboat/canboatjs 3.15.0 → 3.16.0-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.
Files changed (58) hide show
  1. package/binding.gyp +10 -0
  2. package/build/Makefile +347 -0
  3. package/build/binding.Makefile +6 -0
  4. package/build/canSocket.target.mk +189 -0
  5. package/build/gyp-mac-tool +772 -0
  6. package/dist/bin/candumpjs.js +2 -3
  7. package/dist/bin/candumpjs.js.map +1 -1
  8. package/dist/bin/cansendjs.js +3 -4
  9. package/dist/bin/cansendjs.js.map +1 -1
  10. package/dist/canSocket.d.ts +39 -0
  11. package/dist/canSocket.d.ts.map +1 -0
  12. package/dist/canSocket.js +101 -0
  13. package/dist/canSocket.js.map +1 -0
  14. package/dist/canbus.d.ts.map +1 -1
  15. package/dist/canbus.js +4 -19
  16. package/dist/canbus.js.map +1 -1
  17. package/dist/simpleCan.d.ts.map +1 -1
  18. package/dist/simpleCan.js +2 -3
  19. package/dist/simpleCan.js.map +1 -1
  20. package/native/canSocket.cpp +64 -0
  21. package/package.json +6 -4
  22. package/tsconfig.tsbuildinfo +1 -1
  23. package/vscode-profile-2025-07-21-12-04-28.cpuprofile +1 -0
  24. package/dist/actisense-serial.d.ts +0 -17
  25. package/dist/bin/actisense-file.d.ts +0 -3
  26. package/dist/bin/actisense-n2k-tcp.d.ts +0 -3
  27. package/dist/bin/actisense-serialjs.d.ts +0 -3
  28. package/dist/bin/analyzerjs.d.ts +0 -3
  29. package/dist/bin/candumpjs.d.ts +0 -3
  30. package/dist/bin/cansendjs.d.ts +0 -3
  31. package/dist/bin/ikonvert-serial.d.ts +0 -3
  32. package/dist/bin/to-pgn.d.ts +0 -3
  33. package/dist/bin/utils.d.ts +0 -4
  34. package/dist/bin/ydvr-file.d.ts +0 -3
  35. package/dist/browser.d.ts +0 -25
  36. package/dist/canId.d.ts +0 -21
  37. package/dist/canId.test.d.ts +0 -2
  38. package/dist/canbus.d.ts +0 -17
  39. package/dist/candevice.d.ts +0 -23
  40. package/dist/codes.d.ts +0 -2
  41. package/dist/discovery.d.ts +0 -17
  42. package/dist/fromPgnStream.d.ts +0 -17
  43. package/dist/ikonvert.d.ts +0 -17
  44. package/dist/index.d.ts +0 -40
  45. package/dist/maretron.d.ts +0 -74
  46. package/dist/maretron.test.d.ts +0 -2
  47. package/dist/n2k-actisense.test.d.ts +0 -2
  48. package/dist/n2kDevice.d.ts +0 -44
  49. package/dist/persist.d.ts +0 -18
  50. package/dist/pgns.d.ts +0 -5
  51. package/dist/pgns.test.d.ts +0 -2
  52. package/dist/simpleCan.d.ts +0 -17
  53. package/dist/stringMsg.test.d.ts +0 -2
  54. package/dist/utilities.test.d.ts +0 -2
  55. package/dist/venus-mqtt.d.ts +0 -11
  56. package/dist/w2k01.d.ts +0 -17
  57. package/dist/yddevice.d.ts +0 -25
  58. package/dist/ydgw02.d.ts +0 -17
@@ -11,8 +11,7 @@ const utilities_1 = require("../utilities");
11
11
  const stringMsg_1 = require("../stringMsg");
12
12
  const utils_1 = require("./utils");
13
13
  const util_1 = __importDefault(require("util"));
14
- // eslint-disable-next-line @typescript-eslint/no-require-imports
15
- const socketcan = require('socketcan');
14
+ const canSocket_1 = require("../canSocket");
16
15
  const argv = (0, minimist_1.default)(process.argv.slice(2), {
17
16
  alias: {
18
17
  h: 'help'
@@ -98,7 +97,7 @@ parser.on('pgn', (pgn) => {
98
97
  }
99
98
  }
100
99
  });
101
- const channel = socketcan.createRawChannel(canDevice);
100
+ const channel = new canSocket_1.CanChannel(canDevice);
102
101
  channel.addListener('onStopped', (msg) => {
103
102
  console.error(`socketcan stopped ${msg}`);
104
103
  });
@@ -1 +1 @@
1
- {"version":3,"file":"candumpjs.js","sourceRoot":"","sources":["../../lib/bin/candumpjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candumpjs.js","sourceRoot":"","sources":["../../lib/bin/candumpjs.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ const canId_1 = require("../canId");
11
11
  const readline_1 = __importDefault(require("readline"));
12
12
  const minimist_1 = __importDefault(require("minimist"));
13
13
  const utils_1 = require("./utils");
14
+ const canSocket_1 = require("../canSocket");
14
15
  const argv = (0, minimist_1.default)(process.argv.slice(2), {
15
16
  boolean: ['test', 'log-output'],
16
17
  string: ['src'],
@@ -37,11 +38,9 @@ const logOut = argv['log-output'];
37
38
  const test = argv.test;
38
39
  let channel;
39
40
  if (!test) {
40
- // eslint-disable-next-line @typescript-eslint/no-require-imports
41
- const socketcan = require('socketcan');
42
- channel = socketcan.createRawChannel(canDevice);
41
+ channel = new canSocket_1.CanChannel(canDevice);
43
42
  channel.addListener('onStopped', (msg) => {
44
- console.error(`socketcan stopped ${msg}`);
43
+ console.error(`CAN channel stopped ${msg}`);
45
44
  });
46
45
  channel.start();
47
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cansendjs.js","sourceRoot":"","sources":["../../lib/bin/cansendjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cansendjs.js","sourceRoot":"","sources":["../../lib/bin/cansendjs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Minimal CAN socket wrapper using fs streams instead of uv_poll_t.
3
+ *
4
+ * The native addon (native/canSocket.cpp) opens a PF_CAN socket, binds it
5
+ * to the interface, sets O_NONBLOCK, and returns the raw fd.
6
+ *
7
+ * Node.js's net.Socket cannot wrap CAN fds (uv_guess_handle returns
8
+ * UV_UNKNOWN_HANDLE). Instead we use fs.createReadStream which uses libuv's
9
+ * threadpool-based uv_fs_read — works on any fd, never stalls, and does not
10
+ * use uv_poll_t. Writes use fs.write() directly on the fd.
11
+ *
12
+ * Copyright 2025 Signal K contributors
13
+ * Licensed under the Apache License, Version 2.0
14
+ */
15
+ import { EventEmitter } from 'events';
16
+ export interface CanMessage {
17
+ id: number;
18
+ data: Buffer;
19
+ }
20
+ /**
21
+ * Drop-in replacement for socketcan's channel object.
22
+ * Same API: addListener('onMessage'), addListener('onStopped'),
23
+ * start(), stop(), send(), removeAllListeners().
24
+ */
25
+ export declare class CanChannel extends EventEmitter {
26
+ private readStream;
27
+ private fd;
28
+ private remainder;
29
+ private stopped;
30
+ constructor(ifname: string);
31
+ start(): void;
32
+ stop(): void;
33
+ send(msg: {
34
+ id: number;
35
+ ext?: boolean;
36
+ data: Buffer;
37
+ }): void;
38
+ }
39
+ //# sourceMappingURL=canSocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canSocket.d.ts","sourceRoot":"","sources":["../lib/canSocket.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAkBrC,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,EAAE,CAAQ;IAClB,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,EAAE,MAAM;IAK1B,KAAK,IAAI,IAAI;IAuCb,IAAI,IAAI,IAAI;IASZ,IAAI,CAAC,GAAG,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAgB7D"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ /**
3
+ * Minimal CAN socket wrapper using fs streams instead of uv_poll_t.
4
+ *
5
+ * The native addon (native/canSocket.cpp) opens a PF_CAN socket, binds it
6
+ * to the interface, sets O_NONBLOCK, and returns the raw fd.
7
+ *
8
+ * Node.js's net.Socket cannot wrap CAN fds (uv_guess_handle returns
9
+ * UV_UNKNOWN_HANDLE). Instead we use fs.createReadStream which uses libuv's
10
+ * threadpool-based uv_fs_read — works on any fd, never stalls, and does not
11
+ * use uv_poll_t. Writes use fs.write() directly on the fd.
12
+ *
13
+ * Copyright 2025 Signal K contributors
14
+ * Licensed under the Apache License, Version 2.0
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.CanChannel = void 0;
18
+ const events_1 = require("events");
19
+ const fs_1 = require("fs");
20
+ const CAN_EFF_FLAG = 0x80000000;
21
+ const CAN_EFF_MASK = 0x1fffffff;
22
+ const CAN_FRAME_SIZE = 16; // sizeof(struct can_frame)
23
+ const CAN_DATA_OFFSET = 8;
24
+ let native;
25
+ try {
26
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
27
+ native = require('../build/Release/canSocket.node');
28
+ }
29
+ catch (_e) {
30
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
31
+ native = require('../build/Debug/canSocket.node');
32
+ }
33
+ /**
34
+ * Drop-in replacement for socketcan's channel object.
35
+ * Same API: addListener('onMessage'), addListener('onStopped'),
36
+ * start(), stop(), send(), removeAllListeners().
37
+ */
38
+ class CanChannel extends events_1.EventEmitter {
39
+ readStream = null;
40
+ fd;
41
+ remainder = Buffer.alloc(0);
42
+ stopped = false;
43
+ constructor(ifname) {
44
+ super();
45
+ this.fd = native.openCanSocket(ifname);
46
+ }
47
+ start() {
48
+ this.stopped = false;
49
+ this.readStream = (0, fs_1.createReadStream)('', {
50
+ fd: this.fd,
51
+ autoClose: false,
52
+ highWaterMark: CAN_FRAME_SIZE * 64
53
+ });
54
+ this.readStream.on('data', (chunk) => {
55
+ this.remainder = Buffer.concat([this.remainder, chunk]);
56
+ while (this.remainder.length >= CAN_FRAME_SIZE) {
57
+ const frame = this.remainder.subarray(0, CAN_FRAME_SIZE);
58
+ this.remainder = this.remainder.subarray(CAN_FRAME_SIZE);
59
+ const rawId = frame.readUInt32LE(0);
60
+ const id = rawId & CAN_EFF_MASK;
61
+ const dlc = frame[4];
62
+ const data = Buffer.from(frame.subarray(CAN_DATA_OFFSET, CAN_DATA_OFFSET + dlc));
63
+ this.emit('onMessage', { id, data });
64
+ }
65
+ });
66
+ this.readStream.on('error', (err) => {
67
+ if (!this.stopped) {
68
+ this.emit('onStopped', err.message);
69
+ }
70
+ });
71
+ this.readStream.on('close', () => {
72
+ if (!this.stopped) {
73
+ this.emit('onStopped', 'closed');
74
+ }
75
+ });
76
+ }
77
+ stop() {
78
+ this.stopped = true;
79
+ if (this.readStream) {
80
+ this.readStream.destroy();
81
+ this.readStream = null;
82
+ }
83
+ (0, fs_1.close)(this.fd, () => { });
84
+ }
85
+ send(msg) {
86
+ if (this.stopped) {
87
+ return;
88
+ }
89
+ const frame = Buffer.alloc(CAN_FRAME_SIZE);
90
+ let canId = msg.id;
91
+ if (msg.ext) {
92
+ canId |= CAN_EFF_FLAG;
93
+ }
94
+ frame.writeUInt32LE(canId >>> 0, 0);
95
+ frame[4] = msg.data.length;
96
+ msg.data.copy(frame, CAN_DATA_OFFSET, 0, Math.min(msg.data.length, 8));
97
+ (0, fs_1.write)(this.fd, frame, 0, CAN_FRAME_SIZE, null, () => { });
98
+ }
99
+ }
100
+ exports.CanChannel = CanChannel;
101
+ //# sourceMappingURL=canSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canSocket.js","sourceRoot":"","sources":["../lib/canSocket.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"canbus.d.ts","sourceRoot":"","sources":["../lib/canbus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAaH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OA8EnD"}
1
+ {"version":3,"file":"canbus.d.ts","sourceRoot":"","sources":["../lib/canbus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAqEnD"}
package/dist/canbus.js CHANGED
@@ -27,6 +27,7 @@ const candevice_1 = require("./candevice");
27
27
  const utilities_2 = require("./utilities");
28
28
  const canId_1 = require("./canId");
29
29
  const stringMsg_1 = require("./stringMsg");
30
+ const canSocket_1 = require("./canSocket");
30
31
  const util_1 = __importDefault(require("util"));
31
32
  function CanbusStream(options) {
32
33
  if (this === undefined) {
@@ -56,15 +57,6 @@ function CanbusStream(options) {
56
57
  if (options.fromStdIn) {
57
58
  return;
58
59
  }
59
- try {
60
- // eslint-disable-next-line @typescript-eslint/no-require-imports
61
- this.socketcan = require('socketcan');
62
- }
63
- catch (err) {
64
- console.error(err);
65
- const msg = 'unable to load native socketcan interface';
66
- console.error(msg);
67
- }
68
60
  // eslint-disable-next-line @typescript-eslint/no-this-alias
69
61
  const that = this;
70
62
  if (options.app) {
@@ -139,11 +131,6 @@ CanbusStream.prototype.connect = function () {
139
131
  this.reconnecting = true;
140
132
  const canDevice = this.options.canDevice || 'can0';
141
133
  try {
142
- if (this.socketcan === undefined) {
143
- this.setProviderError('unable to load native socketcan interface');
144
- this.reconnecting = false;
145
- return false;
146
- }
147
134
  // Clean up old channel if it exists
148
135
  if (this.channel) {
149
136
  try {
@@ -162,9 +149,7 @@ CanbusStream.prototype.connect = function () {
162
149
  this.stoppingChannel = false;
163
150
  // eslint-disable-next-line @typescript-eslint/no-this-alias
164
151
  const that = this;
165
- this.channel = this.socketcan.createRawChannelWithOptions(canDevice, {
166
- non_block_send: true
167
- });
152
+ this.channel = new canSocket_1.CanChannel(canDevice);
168
153
  this.channel.addListener('onStopped', () => {
169
154
  // Check if we still have a channel reference (not already handled)
170
155
  if (!this.channel) {
@@ -183,7 +168,7 @@ CanbusStream.prototype.connect = function () {
183
168
  delete this.channel;
184
169
  this.setProviderError('Stopped unexpectedly, Retrying...');
185
170
  if (this.options.app) {
186
- console.error('socketcan stopped unexpectedly, retrying...');
171
+ console.error('CAN channel stopped unexpectedly, retrying...');
187
172
  }
188
173
  setTimeout(() => {
189
174
  this.setProviderError('Reconnecting...');
@@ -228,7 +213,7 @@ CanbusStream.prototype.connect = function () {
228
213
  }
229
214
  });
230
215
  this.channel.start();
231
- this.setProviderStatus('Connected to socketcan');
216
+ this.setProviderStatus('Connected to CAN bus');
232
217
  this.candevice = new candevice_1.CanDevice(this, this.options);
233
218
  this.candevice.start();
234
219
  // Recreate the no-data monitoring timer for this connection
@@ -1 +1 @@
1
- {"version":3,"file":"canbus.js","sourceRoot":"","sources":["../lib/canbus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canbus.js","sourceRoot":"","sources":["../lib/canbus.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"simpleCan.d.ts","sourceRoot":"","sources":["../lib/simpleCan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,wBAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,QAO/B"}
1
+ {"version":3,"file":"simpleCan.d.ts","sourceRoot":"","sources":["../lib/simpleCan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,wBAAgB,SAAS,CACvB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,QAK/B"}
package/dist/simpleCan.js CHANGED
@@ -24,18 +24,17 @@ const canId_1 = require("./canId");
24
24
  const stringMsg_1 = require("./stringMsg");
25
25
  const toPgn_1 = require("./toPgn");
26
26
  const utilities_1 = require("./utilities");
27
+ const canSocket_1 = require("./canSocket");
27
28
  const lodash_1 = __importDefault(require("lodash"));
28
29
  const debug = (0, utilities_1.createDebug)('canboatjs:simpleCan');
29
30
  function SimpleCan(options, messageCb) {
30
31
  this.options = options;
31
32
  this.messageCb = messageCb;
32
33
  this.plainText = false;
33
- // eslint-disable-next-line @typescript-eslint/no-require-imports
34
- this.socketcan = require('socketcan');
35
34
  }
36
35
  SimpleCan.prototype.start = function () {
37
36
  const canDevice = this.options.canDevice || 'can0';
38
- this.channel = this.socketcan.createRawChannel(canDevice);
37
+ this.channel = new canSocket_1.CanChannel(canDevice);
39
38
  if (this.messageCb) {
40
39
  this.channel.addListener('onMessage', (msg) => {
41
40
  const pgn = (0, canId_1.parseCanId)(msg.id);
@@ -1 +1 @@
1
- {"version":3,"file":"simpleCan.js","sourceRoot":"","sources":["../lib/simpleCan.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAWH,8BAUC;AAnBD,2CAAuC;AACvC,mCAAwD;AACxD,2CAAqE;AACrE,mCAA+B;AAC/B,2CAAuE;AACvE,oDAAsB;AAEtB,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,qBAAqB,CAAC,CAAA;AAEhD,SAAgB,SAAS,CAEvB,OAAY,EACZ,SAA8B;IAE9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IACtB,iEAAiE;IACjE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG;IAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAA;IAElD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;IACzD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,GAAQ,EAAE,EAAE;YACjD,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAE9B,IACE,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,SAAS,CAAC,OAAO;gBACtB,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EACjC,CAAC;gBACD,OAAM;YACR,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CACZ,IAAA,0BAAc,EAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAC1D,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;YAClE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACpB,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,EAAE;QACnC,GAAG,IAAI,CAAC,OAAO;QACf,0BAA0B,EAAE,IAAI;QAChC,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;AACxB,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,OAAO,GAAG,UAAU,GAAQ;IAC9C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,IACE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;YACvB,GAAG,CAAC,GAAG,KAAK,KAAK;YACjB,GAAG,CAAC,GAAG,KAAK,KAAK;YACjB,GAAG,CAAC,GAAG,KAAK,MAAM,EAClB,CAAC;YACD,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,CAAA;YACzB,OAAM;QACR,CAAC;QAED,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAExB,MAAM,GAAG,GACP,GAAG,CAAC,GAAG,KAAK,KAAK,IAAK,GAAW,CAAC,QAAQ;YACxC,CAAC,CAAC,GAAG,CAAC,GAAG;YACT,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAA;QAC5B,IAAI,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;YACd,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;YACb,IAAI,gBAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,IAAI,GAAG,CAAC,CAAA;YACd,CAAC;YACD,IAAI,gBAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;YACf,CAAC;QACH,CAAC;QAED,IAAI,KAAa,CAAA;QACjB,IAAI,MAA0B,CAAA;QAE9B,IAAI,GAAG,CAAA;QACP,IAAI,gBAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAY,CAAC,CAAA;YACjC,MAAM,GAAG,IAAA,aAAK,EAAC,GAAG,CAAC,CAAA;YACnB,GAAG,GAAG,GAAG,CAAA;QACX,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,IAAA,0BAAc,EAAC,GAAG,CAAC,CAAA;YACzB,KAAK,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAA;YACxB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAA;QACnB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,GAAG,GAAG,IAAA,mCAAuB,EAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;YACtE,KAAK,CAAC,GAAG,CAAC,CAAA;QACZ,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,0DAA0D;YAC1D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,MAAM,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAA,wBAAY,EAAC,MAAM,CAAC,CAAA;gBACjC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;gBAC5D,CAAC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,SAAS,CAAC,SAAS,CAAC,mBAAmB,GAAG,UAAU,GAAW;IAC7D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AACnB,CAAC,CAAA"}
1
+ {"version":3,"file":"simpleCan.js","sourceRoot":"","sources":["../lib/simpleCan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ #include <napi.h>
2
+ #include <sys/socket.h>
3
+ #include <sys/ioctl.h>
4
+ #include <net/if.h>
5
+ #include <linux/can.h>
6
+ #include <linux/can/raw.h>
7
+ #include <unistd.h>
8
+ #include <cstring>
9
+ #include <cerrno>
10
+
11
+ Napi::Value OpenCanSocket(const Napi::CallbackInfo& info) {
12
+ Napi::Env env = info.Env();
13
+
14
+ if (info.Length() < 1 || !info[0].IsString()) {
15
+ Napi::TypeError::New(env, "Interface name required")
16
+ .ThrowAsJavaScriptException();
17
+ return env.Undefined();
18
+ }
19
+
20
+ std::string ifname = info[0].As<Napi::String>().Utf8Value();
21
+
22
+ int fd = socket(PF_CAN, SOCK_RAW, CAN_RAW);
23
+ if (fd < 0) {
24
+ Napi::Error::New(env, std::string("socket(PF_CAN): ") + strerror(errno))
25
+ .ThrowAsJavaScriptException();
26
+ return env.Undefined();
27
+ }
28
+
29
+ struct ifreq ifr;
30
+ std::memset(&ifr, 0, sizeof(ifr));
31
+ std::strncpy(ifr.ifr_name, ifname.c_str(), IFNAMSIZ - 1);
32
+ if (ioctl(fd, SIOCGIFINDEX, &ifr) < 0) {
33
+ std::string err = std::string("ioctl(SIOCGIFINDEX) for '") + ifname +
34
+ "': " + strerror(errno);
35
+ close(fd);
36
+ Napi::Error::New(env, err).ThrowAsJavaScriptException();
37
+ return env.Undefined();
38
+ }
39
+
40
+ struct sockaddr_can addr;
41
+ std::memset(&addr, 0, sizeof(addr));
42
+ addr.can_family = AF_CAN;
43
+ addr.can_ifindex = ifr.ifr_ifindex;
44
+ if (bind(fd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
45
+ std::string err =
46
+ std::string("bind() to '") + ifname + "': " + strerror(errno);
47
+ close(fd);
48
+ Napi::Error::New(env, err).ThrowAsJavaScriptException();
49
+ return env.Undefined();
50
+ }
51
+
52
+ // Leave fd in blocking mode. fs.createReadStream uses libuv's threadpool
53
+ // (uv_fs_read) — blocking reads on worker threads are correct and efficient.
54
+ // This avoids EAGAIN errors and eliminates the uv_poll_t failure mode entirely.
55
+
56
+ return Napi::Number::New(env, fd);
57
+ }
58
+
59
+ Napi::Object Init(Napi::Env env, Napi::Object exports) {
60
+ exports.Set("openCanSocket", Napi::Function::New(env, OpenCanSocket));
61
+ return exports;
62
+ }
63
+
64
+ NODE_API_MODULE(canSocket, Init)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canboat/canboatjs",
3
- "version": "3.15.0",
3
+ "version": "3.16.0-beta.1",
4
4
  "description": "Native javascript version of canboat",
5
5
  "main": "dist/index.js",
6
6
  "browser": "dist/browser.js",
@@ -11,6 +11,7 @@
11
11
  "code-coverage": "jest --coverage && nyc mocha --exit",
12
12
  "build_ios": "webpack -c ./webpack.config.js --mode development ./ios.js -o ios_canboat.js",
13
13
  "build_prod_ios": "webpack -c ./webpack.config.js --mode production ./ios.js -o ios_canboat.js",
14
+ "install": "node-gyp rebuild || echo 'Native CAN socket addon not available on this platform'",
14
15
  "build": "tsc -b --pretty false",
15
16
  "watch": "tsc --watch",
16
17
  "prepublishOnly": "npm run build",
@@ -34,7 +35,7 @@
34
35
  "actisense-n2k-tcp": "./dist/bin/actisense-n2k-tcp.js",
35
36
  "candumpjs": "./dist/bin/candumpjs.js",
36
37
  "ikonvert-serial": "./dist/bin/ikonvert-serial.js",
37
- "cansend": "./dist/bin/cansend.js",
38
+ "cansendjs": "./dist/bin/cansendjs.js",
38
39
  "ydr-file": "./dist/bin/ydvr-file.js"
39
40
  },
40
41
  "keywords": [
@@ -65,6 +66,7 @@
65
66
  "minimist": "^1.2.0",
66
67
  "moment": "^2.30.1",
67
68
  "mqtt": "^2.18.8",
69
+ "node-addon-api": "^8.6.0",
68
70
  "split": "^1.0.1"
69
71
  },
70
72
  "devDependencies": {
@@ -96,10 +98,10 @@
96
98
  "typescript-eslint": "^8.35.0",
97
99
  "webpack-cli": "^6.0.1"
98
100
  },
101
+ "gypfile": true,
99
102
  "optionalDependencies": {
100
103
  "@serialport/parser-readline": "11.x.x",
101
- "serialport": "11.x.x",
102
- "socketcan": "^4.0.3"
104
+ "serialport": "11.x.x"
103
105
  },
104
106
  "repository": {
105
107
  "type": "git",