zigbee-herdsman 0.40.2 → 0.41.0
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/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +15 -0
- package/dist/adapter/adapter.d.ts +2 -4
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +15 -17
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts +1 -2
- package/dist/adapter/deconz/adapter/deconzAdapter.d.ts.map +1 -1
- package/dist/adapter/deconz/adapter/deconzAdapter.js +65 -65
- package/dist/adapter/deconz/adapter/deconzAdapter.js.map +1 -1
- package/dist/adapter/deconz/driver/driver.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/driver.js +44 -44
- package/dist/adapter/deconz/driver/driver.js.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.d.ts.map +1 -1
- package/dist/adapter/deconz/driver/frameParser.js +43 -43
- package/dist/adapter/deconz/driver/frameParser.js.map +1 -1
- package/dist/adapter/deconz/driver/parser.js +6 -6
- package/dist/adapter/deconz/driver/parser.js.map +1 -1
- package/dist/adapter/deconz/driver/writer.js +3 -3
- package/dist/adapter/deconz/driver/writer.js.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.d.ts +1 -2
- package/dist/adapter/ember/adapter/emberAdapter.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/emberAdapter.js +144 -149
- package/dist/adapter/ember/adapter/emberAdapter.js.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/oneWaitress.js +3 -1
- package/dist/adapter/ember/adapter/oneWaitress.js.map +1 -1
- package/dist/adapter/ember/adapter/requestQueue.js +9 -12
- package/dist/adapter/ember/adapter/requestQueue.js.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.d.ts.map +1 -1
- package/dist/adapter/ember/adapter/tokensManager.js +23 -20
- package/dist/adapter/ember/adapter/tokensManager.js.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.d.ts.map +1 -1
- package/dist/adapter/ember/ezsp/ezsp.js +139 -138
- package/dist/adapter/ember/ezsp/ezsp.js.map +1 -1
- package/dist/adapter/ember/uart/ash.d.ts.map +1 -1
- package/dist/adapter/ember/uart/ash.js +71 -75
- package/dist/adapter/ember/uart/ash.js.map +1 -1
- package/dist/adapter/ember/uart/parser.d.ts.map +1 -1
- package/dist/adapter/ember/uart/parser.js +3 -6
- package/dist/adapter/ember/uart/parser.js.map +1 -1
- package/dist/adapter/ember/uart/queues.d.ts.map +1 -1
- package/dist/adapter/ember/uart/queues.js +3 -1
- package/dist/adapter/ember/uart/queues.js.map +1 -1
- package/dist/adapter/ember/uart/writer.d.ts.map +1 -1
- package/dist/adapter/ember/uart/writer.js +3 -6
- package/dist/adapter/ember/uart/writer.js.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts +0 -1
- package/dist/adapter/ezsp/adapter/backup.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/backup.js +3 -7
- package/dist/adapter/ezsp/adapter/backup.js.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts +1 -2
- package/dist/adapter/ezsp/adapter/ezspAdapter.d.ts.map +1 -1
- package/dist/adapter/ezsp/adapter/ezspAdapter.js +23 -22
- package/dist/adapter/ezsp/adapter/ezspAdapter.js.map +1 -1
- package/dist/adapter/ezsp/driver/driver.d.ts +1 -3
- package/dist/adapter/ezsp/driver/driver.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/driver.js +67 -64
- package/dist/adapter/ezsp/driver/driver.js.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/ezsp.js +61 -50
- package/dist/adapter/ezsp/driver/ezsp.js.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/multicast.js +8 -12
- package/dist/adapter/ezsp/driver/multicast.js.map +1 -1
- package/dist/adapter/ezsp/driver/parser.js +5 -5
- package/dist/adapter/ezsp/driver/parser.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js +1 -1
- package/dist/adapter/ezsp/driver/types/basic.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/named.js +2 -2
- package/dist/adapter/ezsp/driver/types/named.js.map +1 -1
- package/dist/adapter/ezsp/driver/types/struct.js +2 -2
- package/dist/adapter/ezsp/driver/types/struct.js.map +1 -1
- package/dist/adapter/ezsp/driver/uart.d.ts.map +1 -1
- package/dist/adapter/ezsp/driver/uart.js +46 -46
- package/dist/adapter/ezsp/driver/uart.js.map +1 -1
- package/dist/adapter/ezsp/driver/writer.js +3 -6
- package/dist/adapter/ezsp/driver/writer.js.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts +0 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/adapter-backup.js +25 -29
- package/dist/adapter/z-stack/adapter/adapter-backup.js.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.d.ts +1 -4
- package/dist/adapter/z-stack/adapter/manager.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/manager.js +51 -60
- package/dist/adapter/z-stack/adapter/manager.js.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts +1 -2
- package/dist/adapter/z-stack/adapter/zStackAdapter.d.ts.map +1 -1
- package/dist/adapter/z-stack/adapter/zStackAdapter.js +23 -22
- package/dist/adapter/z-stack/adapter/zStackAdapter.js.map +1 -1
- package/dist/adapter/z-stack/unpi/parser.js +6 -6
- package/dist/adapter/z-stack/unpi/parser.js.map +1 -1
- package/dist/adapter/z-stack/unpi/writer.js +4 -7
- package/dist/adapter/z-stack/unpi/writer.js.map +1 -1
- package/dist/adapter/z-stack/znp/znp.d.ts.map +1 -1
- package/dist/adapter/z-stack/znp/znp.js +18 -25
- package/dist/adapter/z-stack/znp/znp.js.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts +1 -2
- package/dist/adapter/zigate/adapter/zigateAdapter.d.ts.map +1 -1
- package/dist/adapter/zigate/adapter/zigateAdapter.js +50 -50
- package/dist/adapter/zigate/adapter/zigateAdapter.js.map +1 -1
- package/dist/adapter/zigate/driver/frame.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/frame.js +8 -8
- package/dist/adapter/zigate/driver/frame.js.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/ziGateObject.js +5 -4
- package/dist/adapter/zigate/driver/ziGateObject.js.map +1 -1
- package/dist/adapter/zigate/driver/zigate.d.ts.map +1 -1
- package/dist/adapter/zigate/driver/zigate.js +23 -23
- package/dist/adapter/zigate/driver/zigate.js.map +1 -1
- package/dist/controller/controller.d.ts +1 -3
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/controller/controller.js +47 -56
- package/dist/controller/controller.js.map +1 -1
- package/dist/controller/database.d.ts.map +1 -1
- package/dist/controller/database.js +3 -5
- package/dist/controller/database.js.map +1 -1
- package/dist/controller/greenPower.d.ts.map +1 -1
- package/dist/controller/greenPower.js +13 -20
- package/dist/controller/greenPower.js.map +1 -1
- package/dist/controller/helpers/requestQueue.d.ts.map +1 -1
- package/dist/controller/helpers/requestQueue.js +15 -25
- package/dist/controller/helpers/requestQueue.js.map +1 -1
- package/dist/controller/model/device.d.ts.map +1 -1
- package/dist/controller/model/device.js +44 -49
- package/dist/controller/model/device.js.map +1 -1
- package/dist/controller/model/endpoint.d.ts.map +1 -1
- package/dist/controller/model/endpoint.js +14 -18
- package/dist/controller/model/endpoint.js.map +1 -1
- package/dist/controller/model/group.d.ts.map +1 -1
- package/dist/controller/model/group.js +8 -11
- package/dist/controller/model/group.js.map +1 -1
- package/dist/controller/touchlink.js +21 -24
- package/dist/controller/touchlink.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +14 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/zcl/buffaloZcl.d.ts.map +1 -1
- package/dist/zcl/buffaloZcl.js +3 -9
- package/dist/zcl/buffaloZcl.js.map +1 -1
- package/package.json +4 -4
- package/dist/adapter/zigate/debug.d.ts +0 -8
- package/dist/adapter/zigate/debug.d.ts.map +0 -1
- package/dist/adapter/zigate/debug.js +0 -20
- package/dist/adapter/zigate/debug.js.map +0 -1
- package/dist/controller/logger-stub.d.ts +0 -7
- package/dist/controller/logger-stub.d.ts.map +0 -1
- package/dist/controller/logger-stub.js +0 -3
- package/dist/controller/logger-stub.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ash.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ember/uart/ash.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ash.d.ts","sourceRoot":"","sources":["../../../../src/adapter/ember/uart/ash.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.UartAsh = exports.AshEvents = void 0;
|
|
7
7
|
/* istanbul ignore file */
|
|
8
|
-
const debug_1 = __importDefault(require("debug"));
|
|
9
8
|
const stream_1 = require("stream");
|
|
10
9
|
const net_1 = require("net");
|
|
11
10
|
const socketPortUtils_1 = __importDefault(require("../../socketPortUtils"));
|
|
@@ -18,7 +17,8 @@ const queues_1 = require("./queues");
|
|
|
18
17
|
const writer_1 = require("./writer");
|
|
19
18
|
const parser_1 = require("./parser");
|
|
20
19
|
const utils_1 = require("../../../utils");
|
|
21
|
-
const
|
|
20
|
+
const logger_1 = require("../../../utils/logger");
|
|
21
|
+
const NS = 'zh:ember:uart:ash';
|
|
22
22
|
/** ASH get rflag in control byte */
|
|
23
23
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
24
24
|
const ashGetRFlag = (ctrl) => ((ctrl & consts_1.ASH_RFLAG_MASK) >> consts_1.ASH_RFLAG_BIT);
|
|
@@ -356,7 +356,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
356
356
|
};
|
|
357
357
|
// enable software flow control if RTS/CTS not enabled in config
|
|
358
358
|
if (!serialOpts.rtscts) {
|
|
359
|
-
debug(`RTS/CTS config is off, enabling software flow control
|
|
359
|
+
logger_1.logger.debug(`RTS/CTS config is off, enabling software flow control.`, NS);
|
|
360
360
|
serialOpts.xon = true;
|
|
361
361
|
serialOpts.xoff = true;
|
|
362
362
|
}
|
|
@@ -365,7 +365,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
365
365
|
//@ts-expect-error Jest testing
|
|
366
366
|
serialOpts.binding = this.portOptions.binding;
|
|
367
367
|
}
|
|
368
|
-
debug(`Opening serial port with ${JSON.stringify(serialOpts)}
|
|
368
|
+
logger_1.logger.debug(`Opening serial port with ${JSON.stringify(serialOpts)}`, NS);
|
|
369
369
|
this.serialPort = new serialPort_1.SerialPort(serialOpts);
|
|
370
370
|
this.writer = new writer_1.AshWriter({ highWaterMark: CONFIG_HIGHWATER_MARK });
|
|
371
371
|
this.writer.pipe(this.serialPort);
|
|
@@ -374,7 +374,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
374
374
|
this.parser.on('data', this.onFrame.bind(this));
|
|
375
375
|
try {
|
|
376
376
|
await this.serialPort.asyncOpen();
|
|
377
|
-
debug(`Serial port opened: ${JSON.stringify(await this.serialPort.asyncGet())}
|
|
377
|
+
logger_1.logger.debug(`Serial port opened: ${JSON.stringify(await this.serialPort.asyncGet())}`, NS);
|
|
378
378
|
this.serialPort.once('close', this.onPortClose.bind(this));
|
|
379
379
|
this.serialPort.on('error', this.onPortError.bind(this));
|
|
380
380
|
}
|
|
@@ -385,7 +385,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
385
385
|
}
|
|
386
386
|
else {
|
|
387
387
|
const info = socketPortUtils_1.default.parseTcpPath(this.portOptions.path);
|
|
388
|
-
debug(`Opening TCP socket with ${info.host}:${info.port}
|
|
388
|
+
logger_1.logger.debug(`Opening TCP socket with ${info.host}:${info.port}`, NS);
|
|
389
389
|
this.socketPort = new net_1.Socket();
|
|
390
390
|
this.socketPort.setNoDelay(true);
|
|
391
391
|
this.socketPort.setKeepAlive(true, 15000);
|
|
@@ -400,10 +400,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
400
400
|
reject(err);
|
|
401
401
|
};
|
|
402
402
|
this.socketPort.on('connect', () => {
|
|
403
|
-
debug('Socket connected');
|
|
403
|
+
logger_1.logger.debug('Socket connected', NS);
|
|
404
404
|
});
|
|
405
405
|
this.socketPort.on('ready', async () => {
|
|
406
|
-
debug('Socket ready');
|
|
406
|
+
logger_1.logger.debug('Socket ready', NS);
|
|
407
407
|
this.socketPort.removeListener('error', openError);
|
|
408
408
|
this.socketPort.once('close', this.onPortClose.bind(this));
|
|
409
409
|
this.socketPort.on('error', this.onPortError.bind(this));
|
|
@@ -419,14 +419,14 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
419
419
|
* @param err A boolean for Socket, an Error for serialport
|
|
420
420
|
*/
|
|
421
421
|
async onPortClose(err) {
|
|
422
|
-
|
|
422
|
+
logger_1.logger.info(`Port closed. Error? ${err ?? 'no'}`, NS);
|
|
423
423
|
}
|
|
424
424
|
/**
|
|
425
425
|
* Handle port error
|
|
426
426
|
* @param error
|
|
427
427
|
*/
|
|
428
428
|
async onPortError(error) {
|
|
429
|
-
|
|
429
|
+
logger_1.logger.info(`Port error: ${error}`, NS);
|
|
430
430
|
this.emit(AshEvents.fatalError, enums_1.EzspStatus.ERROR_SERIAL_INIT);
|
|
431
431
|
}
|
|
432
432
|
/**
|
|
@@ -439,7 +439,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
439
439
|
// ignore the cancel before RSTACK
|
|
440
440
|
if (this.flags & Flag.CONNECTED) {
|
|
441
441
|
this.counters.rxCancelled += 1;
|
|
442
|
-
|
|
442
|
+
logger_1.logger.warning(`Frame(s) in progress cancelled in [${buffer.toString('hex')}]`, NS);
|
|
443
443
|
}
|
|
444
444
|
// get rid of everything up to the CAN flag and start reading frame from there, no need to loop through bytes in vain
|
|
445
445
|
buffer = buffer.subarray(iCAN + 1);
|
|
@@ -447,19 +447,19 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
447
447
|
if (!buffer.length) {
|
|
448
448
|
// skip any CANCEL that results in empty frame (have yet to see one, but just in case...)
|
|
449
449
|
// shouldn't happen for any other reason, unless receiving bad stuff from port?
|
|
450
|
-
debug(`Received empty frame. Skipping
|
|
450
|
+
logger_1.logger.debug(`Received empty frame. Skipping.`, NS);
|
|
451
451
|
return;
|
|
452
452
|
}
|
|
453
453
|
const status = this.receiveFrame(buffer);
|
|
454
454
|
if ((status !== enums_1.EzspStatus.SUCCESS) && (status !== enums_1.EzspStatus.ASH_IN_PROGRESS) && (status !== enums_1.EzspStatus.NO_RX_DATA)) {
|
|
455
455
|
if (this.flags & Flag.CONNECTED) {
|
|
456
|
-
|
|
456
|
+
logger_1.logger.error(`Error while parsing received frame, status=${enums_1.EzspStatus[status]}.`, NS);
|
|
457
457
|
// if we're connected (not in reset) and get here, we need to reset
|
|
458
458
|
this.emit(AshEvents.fatalError, enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
459
459
|
return;
|
|
460
460
|
}
|
|
461
461
|
else {
|
|
462
|
-
debug(`Error while parsing received frame in NOT_CONNECTED state (flags=${this.flags}), status=${enums_1.EzspStatus[status]}
|
|
462
|
+
logger_1.logger.debug(`Error while parsing received frame in NOT_CONNECTED state (flags=${this.flags}), status=${enums_1.EzspStatus[status]}.`, NS);
|
|
463
463
|
}
|
|
464
464
|
}
|
|
465
465
|
}
|
|
@@ -475,7 +475,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
475
475
|
if (!this.portOpen || (this.flags & Flag.CONNECTED)) {
|
|
476
476
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
477
477
|
}
|
|
478
|
-
|
|
478
|
+
logger_1.logger.info(`======== ASH starting ========`, NS);
|
|
479
479
|
try {
|
|
480
480
|
if (this.serialPort != null) {
|
|
481
481
|
await this.serialPort.asyncFlush(); // clear read/write buffers
|
|
@@ -485,21 +485,21 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
485
485
|
}
|
|
486
486
|
}
|
|
487
487
|
catch (err) {
|
|
488
|
-
|
|
488
|
+
logger_1.logger.error(`Error while flushing before start: ${err}`, NS);
|
|
489
489
|
}
|
|
490
490
|
this.sendExec();
|
|
491
491
|
// block til RSTACK, fatal error or timeout
|
|
492
492
|
// NOTE: on average, this seems to take around 1000ms when successful
|
|
493
493
|
for (let i = 0; i < CONFIG_TIME_RST; i += CONFIG_TIME_RST_CHECK) {
|
|
494
494
|
if ((this.flags & Flag.CONNECTED)) {
|
|
495
|
-
|
|
495
|
+
logger_1.logger.info(`======== ASH started ========`, NS);
|
|
496
496
|
return enums_1.EzspStatus.SUCCESS;
|
|
497
497
|
}
|
|
498
498
|
else if ((this.hostError !== enums_1.EzspStatus.NO_ERROR) || (this.ncpError !== enums_1.EzspStatus.NO_ERROR)) {
|
|
499
499
|
// don't wait for inevitable fail, bail early, let retry logic in EZSP layer do its thing
|
|
500
500
|
break;
|
|
501
501
|
}
|
|
502
|
-
debug(`Waiting for RSTACK... ${i}/${CONFIG_TIME_RST}
|
|
502
|
+
logger_1.logger.debug(`Waiting for RSTACK... ${i}/${CONFIG_TIME_RST}`, NS);
|
|
503
503
|
await (0, utils_1.Wait)(CONFIG_TIME_RST_CHECK);
|
|
504
504
|
}
|
|
505
505
|
return enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
@@ -512,7 +512,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
512
512
|
this.printCounters();
|
|
513
513
|
await this.closePort();
|
|
514
514
|
this.initVariables();
|
|
515
|
-
|
|
515
|
+
logger_1.logger.info(`======== ASH stopped ========`, NS);
|
|
516
516
|
}
|
|
517
517
|
/**
|
|
518
518
|
* Close port and remove listeners.
|
|
@@ -522,17 +522,17 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
522
522
|
if (this.serialPort?.isOpen) {
|
|
523
523
|
try {
|
|
524
524
|
await this.serialPort.asyncFlushAndClose();
|
|
525
|
-
debug(`Serial port closed
|
|
525
|
+
logger_1.logger.debug(`Serial port closed.`, NS);
|
|
526
526
|
}
|
|
527
527
|
catch (err) {
|
|
528
|
-
|
|
528
|
+
logger_1.logger.error(`Failed to close serial port ${err}.`, NS);
|
|
529
529
|
}
|
|
530
530
|
this.serialPort.removeAllListeners();
|
|
531
531
|
}
|
|
532
532
|
else if (this.socketPort != null && !this.socketPort.closed) {
|
|
533
533
|
this.socketPort.destroy();
|
|
534
534
|
this.socketPort.removeAllListeners();
|
|
535
|
-
debug(`Socket port closed
|
|
535
|
+
logger_1.logger.debug(`Socket port closed.`, NS);
|
|
536
536
|
}
|
|
537
537
|
}
|
|
538
538
|
/**
|
|
@@ -549,7 +549,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
549
549
|
if (this.closing) {
|
|
550
550
|
return enums_1.EzspStatus.ERROR_INVALID_CALL;
|
|
551
551
|
}
|
|
552
|
-
|
|
552
|
+
logger_1.logger.info(`======== ASH NCP reset ========`, NS);
|
|
553
553
|
this.initVariables();
|
|
554
554
|
let status;
|
|
555
555
|
// ask ncp to reset itself using RST frame
|
|
@@ -561,7 +561,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
561
561
|
return enums_1.EzspStatus.SUCCESS;
|
|
562
562
|
}
|
|
563
563
|
catch (err) {
|
|
564
|
-
|
|
564
|
+
logger_1.logger.error(`Failed to init port with error ${err}`, NS);
|
|
565
565
|
this.hostError = status;
|
|
566
566
|
return enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
567
567
|
}
|
|
@@ -628,7 +628,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
628
628
|
if (this.ackRx !== expectedFrm) {
|
|
629
629
|
this.counters.rxAckTimeouts += 1;
|
|
630
630
|
this.adjustAckPeriod(true);
|
|
631
|
-
debug(`Timer expired waiting for ACK for ${expectedFrm}, current=${this.ackRx}
|
|
631
|
+
logger_1.logger.debug(`Timer expired waiting for ACK for ${expectedFrm}, current=${this.ackRx}`, NS);
|
|
632
632
|
if (++this.timeouts >= consts_1.ASH_MAX_TIMEOUTS) {
|
|
633
633
|
this.hostDisconnect(enums_1.EzspStatus.ASH_ERROR_TIMEOUTS);
|
|
634
634
|
return;
|
|
@@ -685,18 +685,18 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
685
685
|
len = 1;
|
|
686
686
|
this.flags &= ~(Flag.RST | Flag.NAK | Flag.ACK);
|
|
687
687
|
this.sendState = SendState.SHFRAME;
|
|
688
|
-
debug(`---> [FRAME type=RST]
|
|
688
|
+
logger_1.logger.debug(`---> [FRAME type=RST]`, NS);
|
|
689
689
|
}
|
|
690
690
|
else if (this.flags & (Flag.NAK | Flag.ACK)) {
|
|
691
691
|
if (this.flags & Flag.NAK) {
|
|
692
692
|
this.txSHBuffer[0] = enums_2.AshFrameType.NAK + (this.frmRx << consts_1.ASH_ACKNUM_BIT);
|
|
693
693
|
this.flags &= ~(Flag.NRTX | Flag.NAK | Flag.ACK);
|
|
694
|
-
debug(`---> [FRAME type=NAK frmRx=${this.frmRx}]
|
|
694
|
+
logger_1.logger.debug(`---> [FRAME type=NAK frmRx=${this.frmRx}]`, NS);
|
|
695
695
|
}
|
|
696
696
|
else {
|
|
697
697
|
this.txSHBuffer[0] = enums_2.AshFrameType.ACK + (this.frmRx << consts_1.ASH_ACKNUM_BIT);
|
|
698
698
|
this.flags &= ~(Flag.NRTX | Flag.ACK);
|
|
699
|
-
debug(`---> [FRAME type=ACK frmRx=${this.frmRx}]
|
|
699
|
+
logger_1.logger.debug(`---> [FRAME type=ACK frmRx=${this.frmRx}]`, NS);
|
|
700
700
|
}
|
|
701
701
|
if (this.flags & Flag.NR) {
|
|
702
702
|
this.txSHBuffer[0] |= consts_1.ASH_NFLAG_MASK;
|
|
@@ -713,7 +713,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
713
713
|
len = buffer.len + 1;
|
|
714
714
|
this.txSHBuffer[0] = enums_2.AshFrameType.DATA | (this.frmReTx << consts_1.ASH_FRMNUM_BIT) | (this.frmRx << consts_1.ASH_ACKNUM_BIT) | consts_1.ASH_RFLAG_MASK;
|
|
715
715
|
this.sendState = SendState.RETX_DATA;
|
|
716
|
-
debug(`---> [FRAME type=DATA_RETX frmReTx=${this.frmReTx} frmRx=${this.frmRx}]
|
|
716
|
+
logger_1.logger.debug(`---> [FRAME type=DATA_RETX frmReTx=${this.frmReTx} frmRx=${this.frmRx}]`, NS);
|
|
717
717
|
}
|
|
718
718
|
else if (this.ackTx != this.frmRx) {
|
|
719
719
|
// An ACK should be generated
|
|
@@ -727,7 +727,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
727
727
|
this.counters.txData += (len - 1);
|
|
728
728
|
this.txSHBuffer[0] = enums_2.AshFrameType.DATA | (this.frmTx << consts_1.ASH_FRMNUM_BIT) | (this.frmRx << consts_1.ASH_ACKNUM_BIT);
|
|
729
729
|
this.sendState = SendState.TX_DATA;
|
|
730
|
-
debug(`---> [FRAME type=DATA frmTx=${this.frmTx} frmRx=${this.frmRx}]
|
|
730
|
+
logger_1.logger.debug(`---> [FRAME type=DATA frmTx=${this.frmTx} frmRx=${this.frmRx}]`, NS);
|
|
731
731
|
}
|
|
732
732
|
else {
|
|
733
733
|
// Otherwise there's nothing to send
|
|
@@ -814,27 +814,27 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
814
814
|
case enums_1.EzspStatus.ASH_BAD_CRC:
|
|
815
815
|
this.counters.rxCrcErrors += 1;
|
|
816
816
|
this.rejectFrame();
|
|
817
|
-
|
|
817
|
+
logger_1.logger.error(`Received frame with CRC error`, NS);
|
|
818
818
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
819
819
|
case enums_1.EzspStatus.ASH_COMM_ERROR:
|
|
820
820
|
this.counters.rxCommErrors += 1;
|
|
821
821
|
this.rejectFrame();
|
|
822
|
-
|
|
822
|
+
logger_1.logger.error(`Received frame with comm error`, NS);
|
|
823
823
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
824
824
|
case enums_1.EzspStatus.ASH_TOO_SHORT:
|
|
825
825
|
this.counters.rxTooShort += 1;
|
|
826
826
|
this.rejectFrame();
|
|
827
|
-
|
|
827
|
+
logger_1.logger.error(`Received frame shorter than minimum`, NS);
|
|
828
828
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
829
829
|
case enums_1.EzspStatus.ASH_TOO_LONG:
|
|
830
830
|
this.counters.rxTooLong += 1;
|
|
831
831
|
this.rejectFrame();
|
|
832
|
-
|
|
832
|
+
logger_1.logger.error(`Received frame longer than maximum`, NS);
|
|
833
833
|
return enums_1.EzspStatus.NO_RX_DATA;
|
|
834
834
|
case enums_1.EzspStatus.ASH_ERROR_XON_XOFF:
|
|
835
835
|
return this.hostDisconnect(status);
|
|
836
836
|
default:
|
|
837
|
-
|
|
837
|
+
logger_1.logger.error(`Unhandled error while receiving frame, status=${enums_1.EzspStatus[status]}.`, NS);
|
|
838
838
|
return this.hostDisconnect(enums_1.EzspStatus.HOST_FATAL_ERROR);
|
|
839
839
|
}
|
|
840
840
|
// Got a complete frame - validate its control and length.
|
|
@@ -853,7 +853,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
853
853
|
this.freeNonNullRxBuffer();
|
|
854
854
|
}
|
|
855
855
|
const frameTypeStr = enums_2.AshFrameType[frameType];
|
|
856
|
-
debug(`<--- [FRAME type=${frameTypeStr}]
|
|
856
|
+
logger_1.logger.debug(`<--- [FRAME type=${frameTypeStr}]`, NS);
|
|
857
857
|
this.countFrame(false);
|
|
858
858
|
// Process frames received while not in the connected state -
|
|
859
859
|
// ignore everything except RSTACK and ERROR frames
|
|
@@ -873,11 +873,11 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
873
873
|
this.timeouts = 0;
|
|
874
874
|
this.setAckPeriod(CONFIG_ACK_TIME_INIT);
|
|
875
875
|
this.flags = Flag.CONNECTED | Flag.ACK;
|
|
876
|
-
|
|
876
|
+
logger_1.logger.info(`======== ASH connected ========`, NS);
|
|
877
877
|
return enums_1.EzspStatus.SUCCESS;
|
|
878
878
|
}
|
|
879
879
|
else if (frameType === enums_2.AshFrameType.ERROR) {
|
|
880
|
-
|
|
880
|
+
logger_1.logger.error(`Received ERROR from NCP while connecting, with code=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
881
881
|
return this.ncpDisconnect(enums_1.EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
882
882
|
}
|
|
883
883
|
return enums_1.EzspStatus.ASH_IN_PROGRESS;
|
|
@@ -885,10 +885,10 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
885
885
|
// Connected - process the ackNum in ACK, NAK and DATA frames
|
|
886
886
|
if ((frameType === enums_2.AshFrameType.DATA) || (frameType === enums_2.AshFrameType.ACK) || (frameType === enums_2.AshFrameType.NAK)) {
|
|
887
887
|
ackNum = ashGetACKNum(this.rxSHBuffer[0]);
|
|
888
|
-
debug(`<--- [FRAME type=${frameTypeStr} ackNum=${ackNum}]
|
|
888
|
+
logger_1.logger.debug(`<--- [FRAME type=${frameTypeStr} ackNum=${ackNum}]`, NS);
|
|
889
889
|
if (!(0, math_1.withinRange)(this.ackRx, ackNum, this.frmTx)) {
|
|
890
890
|
this.counters.rxBadAckNumber += 1;
|
|
891
|
-
debug(`<-x- [FRAME type=${frameTypeStr} ackNum=${ackNum}] Invalid ACK num; not within <${this.ackRx}-${this.frmTx}
|
|
891
|
+
logger_1.logger.debug(`<-x- [FRAME type=${frameTypeStr} ackNum=${ackNum}] Invalid ACK num; not within <${this.ackRx}-${this.frmTx}>`, NS);
|
|
892
892
|
frameType = enums_2.AshFrameType.INVALID;
|
|
893
893
|
}
|
|
894
894
|
else if (ackNum !== this.ackRx) {
|
|
@@ -922,7 +922,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
922
922
|
if (this.rxDataBuffer == null) {
|
|
923
923
|
// valid frame but no memory?
|
|
924
924
|
this.counters.rxNoBuffer += 1;
|
|
925
|
-
debug(`<-x- ${frameStr} No buffer available
|
|
925
|
+
logger_1.logger.debug(`<-x- ${frameStr} No buffer available`, NS);
|
|
926
926
|
this.rejectFrame();
|
|
927
927
|
return enums_1.EzspStatus.NO_RX_SPACE;
|
|
928
928
|
}
|
|
@@ -934,7 +934,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
934
934
|
this.frmRx = (0, math_1.inc8)(this.frmRx);
|
|
935
935
|
this.randomizeBuffer(this.rxDataBuffer.data, this.rxDataBuffer.len); // IN/OUT data
|
|
936
936
|
this.rxQueue.addTail(this.rxDataBuffer); // add frame to receive queue
|
|
937
|
-
debug(`<--- ${frameStr} Added to rxQueue
|
|
937
|
+
logger_1.logger.debug(`<--- ${frameStr} Added to rxQueue`, NS);
|
|
938
938
|
this.counters.rxData += this.rxDataBuffer.len;
|
|
939
939
|
setImmediate(() => {
|
|
940
940
|
this.emit(AshEvents.frame);
|
|
@@ -952,7 +952,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
952
952
|
// 1st OOS? then set REJ, send NAK
|
|
953
953
|
if ((this.flags & Flag.REJ) === 0) {
|
|
954
954
|
this.counters.rxOutOfSequence += 1;
|
|
955
|
-
debug(`<-x- ${frameStr} Out of sequence: expected ${this.frmRx}; got ${frmNum}
|
|
955
|
+
logger_1.logger.debug(`<-x- ${frameStr} Out of sequence: expected ${this.frmRx}; got ${frmNum}.`, NS);
|
|
956
956
|
}
|
|
957
957
|
this.rejectFrame();
|
|
958
958
|
}
|
|
@@ -967,16 +967,16 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
967
967
|
break;
|
|
968
968
|
case enums_2.AshFrameType.RSTACK:
|
|
969
969
|
// unexpected ncp reset
|
|
970
|
-
|
|
970
|
+
logger_1.logger.error(`Received unexpected reset from NCP, with reason=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
971
971
|
this.ncpError = enums_1.EzspStatus.ASH_NCP_FATAL_ERROR;
|
|
972
972
|
return this.hostDisconnect(enums_1.EzspStatus.ASH_ERROR_NCP_RESET);
|
|
973
973
|
case enums_2.AshFrameType.ERROR:
|
|
974
974
|
// ncp error
|
|
975
|
-
|
|
975
|
+
logger_1.logger.error(`Received ERROR from NCP, with code=${enums_2.NcpFailedCode[this.rxSHBuffer[2]]}.`, NS);
|
|
976
976
|
return this.ncpDisconnect(enums_1.EzspStatus.ASH_NCP_FATAL_ERROR);
|
|
977
977
|
case enums_2.AshFrameType.INVALID:
|
|
978
978
|
// reject invalid frames
|
|
979
|
-
debug(`<-x- [FRAME type=${frameTypeStr}] Rejecting. ${this.rxSHBuffer.toString('hex')}
|
|
979
|
+
logger_1.logger.debug(`<-x- [FRAME type=${frameTypeStr}] Rejecting. ${this.rxSHBuffer.toString('hex')}`, NS);
|
|
980
980
|
this.rejectFrame();
|
|
981
981
|
break;
|
|
982
982
|
}
|
|
@@ -1096,12 +1096,12 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1096
1096
|
// Set/clear NR flag based on the number of buffers free
|
|
1097
1097
|
if (this.rxFree.length < CONFIG_NR_LOW_LIMIT) {
|
|
1098
1098
|
this.flags |= Flag.NR;
|
|
1099
|
-
|
|
1099
|
+
logger_1.logger.warning(`NOT READY - Signaling NCP`, NS);
|
|
1100
1100
|
}
|
|
1101
1101
|
else if (this.rxFree.length > CONFIG_NR_HIGH_LIMIT) {
|
|
1102
1102
|
this.flags &= ~Flag.NR;
|
|
1103
1103
|
this.stopNrTimer(); // needed??
|
|
1104
|
-
// debug(`READY - Signaling NCP
|
|
1104
|
+
// logger.debug(`READY - Signaling NCP`, NS);// spams-a-lot
|
|
1105
1105
|
}
|
|
1106
1106
|
// Force an ACK (or possibly NAK) if we need to send an updated nFlag
|
|
1107
1107
|
// due to either a changed NR status or to refresh a set nFlag
|
|
@@ -1132,7 +1132,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1132
1132
|
hostDisconnect(error) {
|
|
1133
1133
|
this.flags = 0;
|
|
1134
1134
|
this.hostError = error;
|
|
1135
|
-
|
|
1135
|
+
logger_1.logger.error(`ASH disconnected: ${enums_1.EzspStatus[error]} | NCP status: ${enums_1.EzspStatus[this.ncpError]}`, NS);
|
|
1136
1136
|
return enums_1.EzspStatus.HOST_FATAL_ERROR;
|
|
1137
1137
|
}
|
|
1138
1138
|
/**
|
|
@@ -1143,7 +1143,7 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1143
1143
|
ncpDisconnect(error) {
|
|
1144
1144
|
this.flags = 0;
|
|
1145
1145
|
this.ncpError = error;
|
|
1146
|
-
|
|
1146
|
+
logger_1.logger.error(`ASH disconnected | NCP status: ${enums_1.EzspStatus[this.ncpError]}`, NS);
|
|
1147
1147
|
return enums_1.EzspStatus.ASH_NCP_FATAL_ERROR;
|
|
1148
1148
|
}
|
|
1149
1149
|
/**
|
|
@@ -1216,11 +1216,11 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1216
1216
|
}
|
|
1217
1217
|
else {
|
|
1218
1218
|
this.counters.rxBadControl += 1;
|
|
1219
|
-
debug(`Frame illegal control ${control}
|
|
1219
|
+
logger_1.logger.debug(`Frame illegal control ${control}.`, NS); // EzspStatus.ASH_BAD_CONTROL
|
|
1220
1220
|
return enums_2.AshFrameType.INVALID;
|
|
1221
1221
|
}
|
|
1222
1222
|
this.counters.rxBadLength += 1;
|
|
1223
|
-
debug(`Frame illegal length ${len} for control ${control}
|
|
1223
|
+
logger_1.logger.debug(`Frame illegal length ${len} for control ${control}.`, NS); // EzspStatus.ASH_BAD_LENGTH
|
|
1224
1224
|
return enums_2.AshFrameType.INVALID;
|
|
1225
1225
|
}
|
|
1226
1226
|
/**
|
|
@@ -1576,29 +1576,25 @@ class UartAsh extends stream_1.EventEmitter {
|
|
|
1576
1576
|
* Prints counters in a nicely formatted table.
|
|
1577
1577
|
*/
|
|
1578
1578
|
printCounters() {
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
});
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
"Retry dupes": { "Received": this.counters.rxDuplicates },
|
|
1599
|
-
"Out of sequence": { "Received": this.counters.rxOutOfSequence },
|
|
1600
|
-
"ACK timeouts": { "Received": this.counters.rxAckTimeouts },
|
|
1601
|
-
});
|
|
1579
|
+
logger_1.logger.info(`Total frames: RX=${this.counters.rxAllFrames}, TX=${this.counters.txAllFrames}`, NS);
|
|
1580
|
+
logger_1.logger.info(`Cancelled : RX=${this.counters.rxCancelled}, TX=${this.counters.txCancelled}`, NS);
|
|
1581
|
+
logger_1.logger.info(`DATA frames : RX=${this.counters.rxDataFrames}, TX=${this.counters.txDataFrames}`, NS);
|
|
1582
|
+
logger_1.logger.info(`DATA bytes : RX=${this.counters.rxData}, TX=${this.counters.txData}`, NS);
|
|
1583
|
+
logger_1.logger.info(`Retry frames: RX=${this.counters.rxReDataFrames}, TX=${this.counters.txReDataFrames}`, NS);
|
|
1584
|
+
logger_1.logger.info(`ACK frames : RX=${this.counters.rxAckFrames}, TX=${this.counters.txAckFrames}`, NS);
|
|
1585
|
+
logger_1.logger.info(`NAK frames : RX=${this.counters.rxNakFrames}, TX=${this.counters.txNakFrames}`, NS);
|
|
1586
|
+
logger_1.logger.info(`nRdy frames : RX=${this.counters.rxN1Frames}, TX=${this.counters.txN1Frames}`, NS);
|
|
1587
|
+
logger_1.logger.info(`CRC errors : RX=${this.counters.rxCrcErrors}`, NS);
|
|
1588
|
+
logger_1.logger.info(`Comm errors : RX=${this.counters.rxCommErrors}`, NS);
|
|
1589
|
+
logger_1.logger.info(`Length < minimum: RX=${this.counters.rxTooShort}`, NS);
|
|
1590
|
+
logger_1.logger.info(`Length > maximum: RX=${this.counters.rxTooLong}`, NS);
|
|
1591
|
+
logger_1.logger.info(`Bad controls : RX=${this.counters.rxBadControl}`, NS);
|
|
1592
|
+
logger_1.logger.info(`Bad lengths : RX=${this.counters.rxBadLength}`, NS);
|
|
1593
|
+
logger_1.logger.info(`Bad ACK numbers : RX=${this.counters.rxBadAckNumber}`, NS);
|
|
1594
|
+
logger_1.logger.info(`Out of buffers : RX=${this.counters.rxNoBuffer}`, NS);
|
|
1595
|
+
logger_1.logger.info(`Retry dupes : RX=${this.counters.rxDuplicates}`, NS);
|
|
1596
|
+
logger_1.logger.info(`Out of sequence : RX=${this.counters.rxOutOfSequence}`, NS);
|
|
1597
|
+
logger_1.logger.info(`ACK timeouts : RX=${this.counters.rxAckTimeouts}`, NS);
|
|
1602
1598
|
}
|
|
1603
1599
|
}
|
|
1604
1600
|
exports.UartAsh = UartAsh;
|