@@ -95,7 +95,7 @@ class Driver extends events.EventEmitter {
9595 private tickTimer : NodeJS . Timeout ;
9696 private driverStateStart = 0 ;
9797 private driverState : DriverState = DriverState . Init ;
98-
98+ private firmwareLog : string [ ] ;
9999 private transactionID = 0 ; // for APS and ZDO
100100 // in flight lockstep sending commands
101101 private txState : TxState = TxState . Idle ;
@@ -118,13 +118,14 @@ class Driver extends events.EventEmitter {
118118 public paramFrameCounter = 0 ;
119119 public paramApsUseExtPanid = 0n ;
120120
121- public constructor ( serialPortOptions : SerialPortOptions , networkOptions : NetworkOptions , backup : Backup | undefined ) {
121+ public constructor ( serialPortOptions : SerialPortOptions , networkOptions : NetworkOptions , backup : Backup | undefined , firmwareLog : string [ ] ) {
122122 super ( ) ;
123123 this . seqNumber = 0 ;
124124 this . configChanged = 0 ;
125125 this . networkOptions = networkOptions ;
126126 this . serialPortOptions = serialPortOptions ;
127127 this . backup = backup ;
128+ this . firmwareLog = firmwareLog ;
128129
129130 this . writer = new Writer ( ) ;
130131 this . parser = new Parser ( ) ;
@@ -260,7 +261,7 @@ class Driver extends events.EventEmitter {
260261 }
261262 } else if ( event === DriverEvent . Tick ) {
262263 if ( this . txState === TxState . WaitResponse ) {
263- if ( Date . now ( ) - this . txTime > 1000 ) {
264+ if ( Date . now ( ) - this . txTime > 2000 ) {
264265 this . emitStateEvent ( DriverEvent . FirmwareCommandTimeout ) ;
265266 }
266267 }
@@ -611,6 +612,16 @@ class Driver extends events.EventEmitter {
611612 logger . debug ( "Zigbee configuration valid" , NS ) ;
612613 this . driverStateStart = Date . now ( ) ;
613614 this . driverState = DriverState . Connected ;
615+
616+ // enable optional firmware debug messages
617+ let logLevel = 0 ;
618+ for ( const level of this . firmwareLog ) {
619+ if ( level === "APS" ) logLevel |= 0x00000100 ;
620+ else if ( level === "APS_L2" ) logLevel |= 0x00010000 ;
621+ }
622+ if ( logLevel !== 0 ) {
623+ this . writeParameterRequest ( ParamId . STK_DEBUG_LOG_LEVEL , logLevel ) ;
624+ }
614625 } else {
615626 this . driverStateStart = Date . now ( ) ;
616627 this . driverState = DriverState . Reconfigure ;
@@ -1176,7 +1187,8 @@ class Driver extends events.EventEmitter {
11761187 }
11771188
11781189 busyQueue . push ( req ) ;
1179- } catch ( _ ) {
1190+ } catch ( err ) {
1191+ console . error ( err ) ;
11801192 req . reject ( new Error ( `Failed to process request ${ FirmwareCommand [ req . commandId ] } , seq: ${ req . seqNumber } ` ) ) ;
11811193 }
11821194 }
0 commit comments