ZWaveDeviceConnection.js
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); // 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