UNPKG

jsmodbus

Version:

Implementation for the Serial/TCP Modbus protocol.

72 lines (59 loc) 2.82 kB
'use strict' /* global describe, it */ const assert = require('assert') const ReadDiscreteInputsRequest = require('../src/request/read-discrete-inputs.js') const ReadDiscreteInputsResponse = require('../src/response/read-discrete-inputs.js') describe('ReadDiscreteInputs Tests.', function () { describe('ReadDiscreteInputs Response', function () { it('should create a buffer from a read discrete inputs message', function () { const response = new ReadDiscreteInputsResponse([1, 0, 1, 0, 1, 0, 1, 0, 1, 0], 2) const buffer = response.createPayload() const expected = Buffer.from([0x02, 0x02, 0x55, 0x01]) assert.deepEqual(expected, buffer) }) it('should create a message object from a buffer', function () { const buffer = Buffer.from([0x02, 0x02, 0x55, 0x01]) const message = ReadDiscreteInputsResponse.fromBuffer(buffer) assert.equal(0x02, message.fc) assert.equal(0x02, message.numberOfBytes) assert.deepEqual([1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0], message.valuesAsArray) assert.deepEqual(Buffer.from([0x55, 0x01]), message.valuesAsBuffer) }) it('should return null on not enough buffer data', function () { const buffer = Buffer.from([0x02]) const message = ReadDiscreteInputsResponse.fromBuffer(buffer) assert.ok(message === null) }) it('should return null on wrong function code', function () { const buffer = Buffer.from([0x03, 0x03, 0x0a, 0x00, 0x0c]) const message = ReadDiscreteInputsResponse.fromBuffer(buffer) assert.ok(message === null) }) }) describe('ReadDiscreteInputs Requests', function () { it('should create a buffer from a discrete inputs message', function () { const readDiscreteInputsRequest = new ReadDiscreteInputsRequest(22, 33) const buffer = readDiscreteInputsRequest.createPayload() const expected = Buffer.from([0x02, 0x00, 0x16, 0x00, 0x21]) assert.deepEqual(expected, buffer) }) it('should create a message from a buffer', function () { const buffer = Buffer.from([0x02, 0x00, 0x16, 0x00, 0x21]) const message = ReadDiscreteInputsRequest.fromBuffer(buffer) assert.ok(message !== null) assert.equal(0x02, message.fc) assert.equal(22, message.start) assert.equal(33, message.count) }) it('should return null on not enough buffer data', function () { const buffer = Buffer.from([0x02, 0x00]) const message = ReadDiscreteInputsRequest.fromBuffer(buffer) assert.ok(message === null) }) it('should return null on wrong function code', function () { const buffer = Buffer.from([0x03, 0x00, 0x0a, 0x00, 0x0c]) const message = ReadDiscreteInputsRequest.fromBuffer(buffer) assert.ok(message === null) }) }) })