function ZWaveCommandCallback(commandClass, command, matchIdentifier, callback, timeoutInMilliseconds, timeoutObject, isWrappedInZipFrame) {
    this.commandClass = commandClass;
    this.command = command;
    this.matchIdentifier = matchIdentifier;
    this.callback = callback;
    this.timeoutInMilliseconds = timeoutInMilliseconds;
    this.timeoutTimestamp = addTime(process.hrtime(), timeoutInMilliseconds); // initial timeout (NOTE: we ignore ACK timeouts until we get an ACK/NAK)
    this.timeoutObject = timeoutObject;
    this.isWrappedInZipFrame = isWrappedInZipFrame; // true for most responses (wrapped in Z/IP); false for special responses (like Z/IP Node Advertisement)
}
function ZWaveCommandCallback(commandClass, command, matchIdentifier, callback, timeoutInMilliseconds, timeoutObject, isWrappedInZipFrame) {
    this.commandClass = commandClass;
    this.command = command;
    this.matchIdentifier = matchIdentifier;
    this.callback = callback;
    this.timeoutInMilliseconds = timeoutInMilliseconds;
    this.timeoutTimestamp = addTime(process.hrtime(), timeoutInMilliseconds); 
    this.timeoutObject = timeoutObject;
    this.isWrappedInZipFrame = isWrappedInZipFrame; 
}
function ZWaveCommandCallback ( commandClass , command , matchIdentifier , callback , timeoutInMilliseconds , timeoutObject , isWrappedInZipFrame ) { this . commandClass = commandClass ; this . command = command ; this . matchIdentifier = matchIdentifier ; this . callback = callback ; this . timeoutInMilliseconds = timeoutInMilliseconds ; this . timeoutTimestamp = addTime ( process . hrtime ( ) , timeoutInMilliseconds ) ; // initial timeout (NOTE: we ignore ACK timeouts until we get an ACK/NAK) this . timeoutObject = timeoutObject ; this . isWrappedInZipFrame = isWrappedInZipFrame ; // true for most responses (wrapped in Z/IP); false for special responses (like Z/IP Node Advertisement) }
/* CommandCallback
/ * CommandCallback