diff --git a/lib/g2core-api.js b/lib/g2core-api.js index 4312711..d0308db 100644 --- a/lib/g2core-api.js +++ b/lib/g2core-api.js @@ -424,7 +424,7 @@ class G2coreAPI extends EventEmitter { this.emit('setupDone'); // Allow data to be sent. We'll start with 5 lines to fill the buffer. - this.linesRequested = 5; + this._resetLinesRequested(); this._sendLines(); }); }; // _completeConnection @@ -467,7 +467,15 @@ class G2coreAPI extends EventEmitter { this.emit('sentLine', lastLineSent); }; // _sendLines + + /** + * _resetLinesRequested - internal only + */ + _resetLinesRequested() { + this.linesRequested = 5; + }; // _resetLinesRequested + /** * flush - empty the send buffer, without sending what's left */ @@ -479,7 +487,7 @@ class G2coreAPI extends EventEmitter { this.lineBuffer.length = 0; // Reset line requested - this.linesRequested = 5; + this._resetLinesRequested(); // Send a queue flush followed by an alarm clear this._write('\x04'); // send the ^D @@ -603,6 +611,15 @@ class G2coreAPI extends EventEmitter { this.ignoredResponses++; } this._write(value); + + // handle flush command + if(typeof value === 'string' && value.match(/^[!]+$/)) { + this._resetLinesRequested(); + this.linesSent = 0; + this.ignoredResponses = 0; + this.lineBuffer.length = 0; + } + return; }