diff --git a/messages/SLChallengeMessage.js b/messages/SLChallengeMessage.js index a077fd1..220ec78 100755 --- a/messages/SLChallengeMessage.js +++ b/messages/SLChallengeMessage.js @@ -6,7 +6,11 @@ const MSG_ID = 14; exports.SLChallengeMessage = class SLChallengeMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); if (buf) { this._wroteSize = true; diff --git a/messages/SLChemDataMessage.js b/messages/SLChemDataMessage.js index c27fbaa..24024c8 100755 --- a/messages/SLChemDataMessage.js +++ b/messages/SLChemDataMessage.js @@ -6,7 +6,12 @@ const MSG_ID = 12592; exports.SLChemDataMessage = class SLChemDataMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); + if (!buf) { this.writeInt32LE(0); // controller index } else { diff --git a/messages/SLControllerConfigMessage.js b/messages/SLControllerConfigMessage.js index e09d66a..8051c25 100755 --- a/messages/SLControllerConfigMessage.js +++ b/messages/SLControllerConfigMessage.js @@ -6,7 +6,12 @@ const MSG_ID = 12532; exports.SLControllerConfigMessage = class SLControllerConfigMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); + if (!buf) { this.writeInt32LE(0); this.writeInt32LE(0); diff --git a/messages/SLGetGatewayDataMessage.js b/messages/SLGetGatewayDataMessage.js index 4d7f8cc..7d31294 100644 --- a/messages/SLGetGatewayDataMessage.js +++ b/messages/SLGetGatewayDataMessage.js @@ -6,7 +6,11 @@ const MSG_ID = 18003; exports.SLGetGatewayDataMessage = class SLGetGatewayDataMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); if (typeof buf === 'string') { this.writeSLString(buf); diff --git a/messages/SLMessage.js b/messages/SLMessage.js index f5bd9ea..5d0f413 100644 --- a/messages/SLMessage.js +++ b/messages/SLMessage.js @@ -3,8 +3,14 @@ const SmartBuffer = require('smart-buffer').SmartBuffer; exports.SLMessage = class SLMessage extends SmartBuffer { - constructor(senderId, messageId) { - super(); + constructor(senderId, messageId, size) { + var options; + if (size) { + options = { + size: size, + }; + } + super(options); if (typeof senderId === 'number' || typeof senderId === 'undefined') { this.writeUInt16LE(senderId || 0); diff --git a/messages/SLPoolStatusMessage.js b/messages/SLPoolStatusMessage.js index c1032a8..58c7fd7 100755 --- a/messages/SLPoolStatusMessage.js +++ b/messages/SLPoolStatusMessage.js @@ -9,7 +9,12 @@ const POOL_CIRCUIT_ID = 505; exports.SLPoolStatusMessage = class SLPoolStatusMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); + if (!buf) { this.writeInt32LE(0); } else { diff --git a/messages/SLSaltCellConfigMessage.js b/messages/SLSaltCellConfigMessage.js index c759777..3285927 100755 --- a/messages/SLSaltCellConfigMessage.js +++ b/messages/SLSaltCellConfigMessage.js @@ -6,7 +6,12 @@ const MSG_ID = 12572; exports.SLSaltCellConfigMessage = class SLSaltCellConfigMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); + if (!buf) { this.writeInt32LE(0); // controller index } else { diff --git a/messages/SLVersionMessage.js b/messages/SLVersionMessage.js index 2aaba84..eca449e 100755 --- a/messages/SLVersionMessage.js +++ b/messages/SLVersionMessage.js @@ -6,7 +6,12 @@ const MSG_ID = 8120; exports.SLVersionMessage = class SLVersionMessage extends SLMessage { constructor(buf) { - super(0, MSG_ID); + var size; + if (buf) { + size = buf.readInt32LE(4) + 8; + } + super(0, MSG_ID, size); + if (buf) { this._wroteSize = true; this.writeBuffer(buf, 0);