@canboat/canboatjs 3.17.0 → 3.18.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.
- package/dist/canbus.d.ts.map +1 -1
- package/dist/canbus.js +132 -81
- package/dist/canbus.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/simpleCan.d.ts.map +1 -1
- package/dist/simpleCan.js +53 -18
- package/dist/simpleCan.js.map +1 -1
- package/dist/yddevice.d.ts +2 -3
- package/dist/yddevice.d.ts.map +1 -1
- package/dist/yddevice.js +4 -8
- package/dist/yddevice.js.map +1 -1
- package/dist/ydgw02.d.ts.map +1 -1
- package/dist/ydgw02.js +98 -8
- package/dist/ydgw02.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/dist/ydgw02.js
CHANGED
|
@@ -40,6 +40,8 @@ function Ydgw02Stream(options, type) {
|
|
|
40
40
|
this.options = options;
|
|
41
41
|
this.outEvent = options.ydgwOutEvent || 'ydwg02-out';
|
|
42
42
|
this.device = undefined;
|
|
43
|
+
this.devices = {};
|
|
44
|
+
this.supportsDeviceCreation = true;
|
|
43
45
|
this.fromPgn = new fromPgn_1.Parser(options);
|
|
44
46
|
this.fromPgn.on('warning', (_pgn, _warning) => {
|
|
45
47
|
//debug(`[warning] ${pgn.pgn} ${warning}`)
|
|
@@ -100,8 +102,8 @@ Ydgw02Stream.prototype.sendString = function (msg, forceSend) {
|
|
|
100
102
|
this.options.app.emit(this.outEvent, msg);
|
|
101
103
|
}
|
|
102
104
|
};
|
|
103
|
-
Ydgw02Stream.prototype.sendPGN = function (pgn) {
|
|
104
|
-
if (this.cansend() || pgn.forceSend === true) {
|
|
105
|
+
Ydgw02Stream.prototype.sendPGN = function (pgn, force) {
|
|
106
|
+
if (this.cansend() || pgn.forceSend === true || force === true) {
|
|
105
107
|
//let now = Date.now()
|
|
106
108
|
//let lastSent = pgnsSent[pgn.pgn]
|
|
107
109
|
let msgs;
|
|
@@ -159,9 +161,24 @@ Ydgw02Stream.prototype._transform = function (chunk, encoding, done) {
|
|
|
159
161
|
done();
|
|
160
162
|
return;
|
|
161
163
|
}
|
|
164
|
+
if (this.sentAvailable === false &&
|
|
165
|
+
(this.options.createDevice === false ||
|
|
166
|
+
(this.device && this.device.cansend))) {
|
|
167
|
+
this.sentAvailable = true;
|
|
168
|
+
if (this.options.createDevice === false) {
|
|
169
|
+
this.debug('emit nmea2000OutAvailable');
|
|
170
|
+
this.options.app.emit('nmea2000OutAvailable');
|
|
171
|
+
}
|
|
172
|
+
if (this.options.app.emitPropertyValue) {
|
|
173
|
+
this.options.app.emitPropertyValue('canboatjsUtils', {
|
|
174
|
+
id: this.options.id,
|
|
175
|
+
utils: this
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
162
179
|
if (this.options.createDevice === true) {
|
|
163
180
|
if (this.device === undefined) {
|
|
164
|
-
this.device = new yddevice_1.YdDevice(this.options);
|
|
181
|
+
this.device = new yddevice_1.YdDevice(this, this.options);
|
|
165
182
|
this.device.start();
|
|
166
183
|
}
|
|
167
184
|
if (this.cansend() && line.charAt(13) === 'T') {
|
|
@@ -175,11 +192,6 @@ Ydgw02Stream.prototype._transform = function (chunk, encoding, done) {
|
|
|
175
192
|
}
|
|
176
193
|
}
|
|
177
194
|
else {
|
|
178
|
-
if (this.sentAvailable === false) {
|
|
179
|
-
this.sentAvailable = true;
|
|
180
|
-
this.debug('emit nmea2000OutAvailable');
|
|
181
|
-
this.options.app.emit('nmea2000OutAvailable');
|
|
182
|
-
}
|
|
183
195
|
if (line.charAt(13) === 'T') {
|
|
184
196
|
//ignore pgns we're transmitting
|
|
185
197
|
done();
|
|
@@ -191,8 +203,86 @@ Ydgw02Stream.prototype._transform = function (chunk, encoding, done) {
|
|
|
191
203
|
if (pgn !== undefined) {
|
|
192
204
|
this.push(pgn);
|
|
193
205
|
this.options.app.emit(this.options.analyzerOutEvent || 'N2KAnalyzerOut', pgn);
|
|
206
|
+
Object.values(this.devices).forEach((device) => {
|
|
207
|
+
const yd = device;
|
|
208
|
+
yd.pgnReceived(pgn);
|
|
209
|
+
});
|
|
194
210
|
}
|
|
195
211
|
done();
|
|
196
212
|
};
|
|
197
213
|
Ydgw02Stream.prototype.end = function () { };
|
|
214
|
+
Ydgw02Stream.prototype.createEmulator = function (id, options, addressClaim, productInfo, configInfo) {
|
|
215
|
+
const device = new YDDeviceEmulator(this, id, options, addressClaim, productInfo, configInfo);
|
|
216
|
+
this.devices[id] = device;
|
|
217
|
+
return device;
|
|
218
|
+
};
|
|
219
|
+
Ydgw02Stream.prototype.removeEmulator = function (id) {
|
|
220
|
+
const device = this.devices[id];
|
|
221
|
+
if (device) {
|
|
222
|
+
device.stop();
|
|
223
|
+
delete this.devices[id];
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
class YDDeviceEmulator extends stream_1.EventEmitter {
|
|
227
|
+
stream;
|
|
228
|
+
device;
|
|
229
|
+
id;
|
|
230
|
+
config;
|
|
231
|
+
constructor(stream, id, options, addressClaim, productInfo, configInfo) {
|
|
232
|
+
super();
|
|
233
|
+
this.stream = stream;
|
|
234
|
+
this.id = id;
|
|
235
|
+
this.config = { configPath: stream.options.app?.config?.configPath };
|
|
236
|
+
this.device = new yddevice_1.YdDevice(this, {
|
|
237
|
+
app: this,
|
|
238
|
+
providerId: 'emulator-' + id,
|
|
239
|
+
addressClaim,
|
|
240
|
+
productInfo,
|
|
241
|
+
configurationInfo: configInfo
|
|
242
|
+
});
|
|
243
|
+
this.device.start();
|
|
244
|
+
}
|
|
245
|
+
stop() {
|
|
246
|
+
this.device.stop();
|
|
247
|
+
this.removeAllListeners();
|
|
248
|
+
}
|
|
249
|
+
pgnReceived(pgn) {
|
|
250
|
+
this.emit('N2KAnalyzerOut', pgn);
|
|
251
|
+
}
|
|
252
|
+
sendPGN(pgn, force) {
|
|
253
|
+
if (force || this.device.cansend) {
|
|
254
|
+
if (pgn.src !== 254) {
|
|
255
|
+
pgn.src = this.device.address;
|
|
256
|
+
}
|
|
257
|
+
const msgs = (0, toPgn_1.pgnToYdgwFullRawFormat)(pgn);
|
|
258
|
+
msgs.forEach((raw) => {
|
|
259
|
+
this.stream.sendString(raw + '\r\n', pgn.forceSend);
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
send(pgn) {
|
|
264
|
+
if (typeof pgn === 'string') {
|
|
265
|
+
const src = this.device.address;
|
|
266
|
+
const split = pgn.split(',');
|
|
267
|
+
split[3] = src.toString();
|
|
268
|
+
pgn = split.join(',');
|
|
269
|
+
const msgs = (0, toPgn_1.actisenseToYdgwFullRawFormat)(pgn);
|
|
270
|
+
msgs.forEach((raw) => {
|
|
271
|
+
this.stream.sendString(raw + '\r\n');
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
this.sendPGN(pgn, false);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
onPGN(cb) {
|
|
279
|
+
this.on('N2KAnalyzerOut', cb);
|
|
280
|
+
}
|
|
281
|
+
setProviderError(id, error) {
|
|
282
|
+
console.error(`${id}:${this.id} ${error}`);
|
|
283
|
+
}
|
|
284
|
+
setProviderStatus(id, status) {
|
|
285
|
+
console.log(`${id}:${this.id} ${status}`);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
198
288
|
//# sourceMappingURL=ydgw02.js.map
|
package/dist/ydgw02.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ydgw02.js","sourceRoot":"","sources":["../lib/ydgw02.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;
|
|
1
|
+
{"version":3,"file":"ydgw02.js","sourceRoot":"","sources":["../lib/ydgw02.ts"],"names":[],"mappings":"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"}
|