UNPKG

@eflexsystems/node-open-protocol

Version:

A library to interface with Power Tools using the Atlas Copco Open Protocol

883 lines (780 loc) 30.5 kB
//@ts-check /* Copyright: (c) 2018-2020, Smart-Tech Controle e Automação GNU General Public License v3.0+ (see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt) */ const { expect } = require('chai'); const MID = require('../src/mid/0065.js'); describe("MID 0065", () => { it("parser rev 1", (done) => { let msg = { mid: 65, revision: 1, payload: Buffer.from("01987654987902KNV158746985321BGR152498503565041111050061071" + "080002310900180102017-05-30:15:30:55111") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 1, payload: { tighteningID: 9876549879, numberVIN: "KNV158746985321BGR1524985", parameterSetID: 565, batchCounter: 1111, tighteningStatus: 0, torqueStatus: 1, angleStatus: 1, torque: 231, angle: 180, timeStamp: "2017-05-30:15:30:55", batchStatus: 1 } }); done(); }); }); it("parser rev 2", (done) => { let msg = { mid: 65, revision: 2, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:00") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 2, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00" } }); done(); }); }); it("parser rev 3", (done) => { let msg = { mid: 65, revision: 3, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 3, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7 } }); done(); }); }); it("parser rev 4", (done) => { let msg = { mid: 65, revision: 4, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC ") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 4, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD", identifierPart3: "Part3-Sucesso QWE", identifierPart4: "Part4-Sucesso ZXC" } }); done(); }); }); it("parser rev 5", (done) => { let msg = { mid: 65, revision: 5, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC 34AABB") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 5, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD", identifierPart3: "Part3-Sucesso QWE", identifierPart4: "Part4-Sucesso ZXC", customerToghteningErrorCode: "AABB" } }); done(); }); }); it("parser rev 6", (done) => { let msg = { mid: 65, revision: 6, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC 34AABB35000012360000000565") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 6, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD", identifierPart3: "Part3-Sucesso QWE", identifierPart4: "Part4-Sucesso ZXC", customerToghteningErrorCode: "AABB", prevailTorqueCompensateValue: 12, toghteningErrorStatus: 565 } }); done(); }); }); it("parser rev 7", (done) => { let msg = { mid: 65, revision: 7, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC 34AABB35000012360000000565" + "37000098765438APERTO DIFERENCIAL ") }; MID.parser(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 7, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD", identifierPart3: "Part3-Sucesso QWE", identifierPart4: "Part4-Sucesso ZXC", customerToghteningErrorCode: "AABB", prevailTorqueCompensateValue: 12, toghteningErrorStatus: 565, stationID: 987654, stationName: "APERTO DIFERENCIAL" } }); done(); }); }); it("serializer rev 1", (done) => { let msg = { mid: 65, revision: 1, payload: { tighteningID: 9876549879, numberVIN: "KNV158746985321BGR1524985", parameterSetID: 565, batchCounter: 1111, tighteningStatus: 0, torqueStatus: 1, angleStatus: 1, torque: 231, angle: 180, timeStamp: "2017-05-30:15:30:55", batchStatus: 1 } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 1, payload: Buffer.from("01987654987902KNV158746985321BGR152498503565041111050061071" + "080002310900180102017-05-30:15:30:55111") }); done(); }); }); it("serializer rev 2", (done) => { let msg = { mid: 65, revision: 2, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: 95623145874512, timeStamp: "2018-06-06:12:20:00" } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 2, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:00") }); done(); }); }); it("serializer rev 3", (done) => { let msg = { mid: 65, revision: 3, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: "95623145874512", timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7 } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 3, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007") }); done(); }); }); it("serializer rev 4", (done) => { let msg = { mid: 65, revision: 4, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: 95623145874512, timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD ", identifierPart3: "Part3-Sucesso QWE ", identifierPart4: "Part4-Sucesso ZXC " } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 4, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC ") }); done(); }); }); it("serializer rev 5", (done) => { let msg = { mid: 65, revision: 5, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: 95623145874512, timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD ", identifierPart3: "Part3-Sucesso QWE ", identifierPart4: "Part4-Sucesso ZXC ", customerToghteningErrorCode: "AABB" } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 5, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC 34AABB") }); done(); }); }); it("serializer rev 6", (done) => { let msg = { mid: 65, revision: 6, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: 95623145874512, timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD ", identifierPart3: "Part3-Sucesso QWE ", identifierPart4: "Part4-Sucesso ZXC ", customerToghteningErrorCode: "AABB", prevailTorqueCompensateValue: 12, toghteningErrorStatus: 565 } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 6, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC 34AABB35000012360000000565") }); done(); }); }); it("serializer rev 7", (done) => { let msg = { mid: 65, revision: 7, payload: { tighteningID: 3698521475, numberVIN: "KNX9875421547854DCVF25VFG", jobID: 1056, parameterSetID: 878, strategy: 8, strategyOptions: 65000, batchSize: 6565, batchCounter: 3636, tighteningStatus: 0, batchStatus: 0, torqueStatus: 0, angleStatus: 0, rundownAngleStatus: 0, currentMonitoringStatus: 0, selftapStatus: 0, prevailTorqueMonitoringStatus: 0, prevailTorqueCompensateStatus: 0, tighteningErrorStatus: 9638527415, torque: 656, angle: 25, rundownAngle: 12345, currentMonitoringValue: 555, selftapTorque: 654789, prevailTorque: 632541, jobSequenceNumber: 85236, syncTighteningID: 25463, toolSerialNumber: 95623145874512, timeStamp: "2018-06-06:12:20:00", torqueValuesUnit: 2, resultType: 7, identifierPart2: "Part2-Sucesso ASD ", identifierPart3: "Part3-Sucesso QWE ", identifierPart4: "Part4-Sucesso ZXC ", customerToghteningErrorCode: "AABB", prevailTorqueCompensateValue: 12, toghteningErrorStatus: 565, stationID: 987654, stationName: "APERTO DIFERENCIAL " } }; MID.serializer(msg, {}, (err, data) => { if (err) { console.log(err); } expect(data).to.be.deep.equal({ mid: 65, revision: 7, payload: Buffer.from("01369852147502KNX9875421547854DCVF25VFG031056048780508" + "0665000076565083636090100110120130140150160170189638527415" + "19000656200002521123452255523654789246325412585236" + "26254632795623145874512282018-06-06:12:20:002923007" + "31Part2-Sucesso ASD 32Part3-Sucesso QWE " + "33Part4-Sucesso ZXC 34AABB35000012360000000565" + "37000098765438APERTO DIFERENCIAL ") }); done(); }); }); it("Should return error, parser with invalid revision", (done) => { let msg = { mid: 65, revision: 12, payload: Buffer.from("") }; MID.parser(msg, {}, (err, data) => { expect(err).to.be.an('error'); done(); }); }); it("Should return error, serializer with invalid revision", (done) => { let msg = { mid: 65, revision: 12, payload: {} }; MID.serializer(msg, {}, (err, data) => { expect(err).to.be.an('error'); done(); }); }); it("Should return array revision", (done) => { let revisions = MID.revision(); expect(revisions).to.have.lengthOf(7); done(); }); });