diff --git a/src/aimedb/cmd.js b/src/aimedb/cmd.js index 4db8187..0c26021 100644 --- a/src/aimedb/cmd.js +++ b/src/aimedb/cmd.js @@ -10,20 +10,20 @@ class Decoder extends Transform { } static ident(payload) { - const gameId = payload.toString('ascii', 2, 6) - const keychipId = payload.toString('ascii', 12, 23) + const gameId = payload.toString('ascii', 0x000A, 0x000E) + const keychipId = payload.toString('ascii', 0x0014, 0x001F) return { gameId, keychipId } } _transform(chunk, encoding, callback) { - const { cmd, payload } = chunk + const cmd = chunk.readUInt16LE(0x04) switch (cmd) { case 0x0064: return callback(null, { cmd: 'hello', - ...Decoder.ident(payload) + ...Decoder.ident(chunk) }) case 0x0066: diff --git a/src/aimedb/frame.js b/src/aimedb/frame.js index c19076e..dd4aad3 100644 --- a/src/aimedb/frame.js +++ b/src/aimedb/frame.js @@ -17,26 +17,25 @@ class Deframer extends Transform { return } - const magic = this.state.readUInt16LE(0) + const magic = this.state.readUInt16LE(0x0000) if (magic != 0xA13E) { return callback(new Error(`Invalid magic (decimal ${magic})`)) } - const len = this.state.readUInt16LE(6) + const len = this.state.readUInt16LE(0x0006) if (this.state.length < len) { return } - console.log('Aimedb: Recv', this.state) + const frame = this.state.slice(0, len) - const cmd = this.state.readUInt16LE(4) - const payload = this.state.slice(8, len) + console.log('Aimedb: Recv', frame) this.state = this.state.slice(len) - return callback(null, { cmd, payload }) + return callback(null, frame) } }