jsmodbus
Version:
Implementation for the Serial/TCP Modbus protocol.
59 lines (49 loc) • 2.37 kB
JavaScript
/* global describe, it */
const assert = require('assert')
const ReadHoldingRegistersRequest = require('../src/request/read-holding-registers.js')
const ReadHoldingRegistersResponse = require('../src/response/read-holding-registers.js')
describe('ReadHoldingRegisters Tests.', function () {
describe('ReadHoldingRegisters Response', function () {
it('should create a response from a buffer', function () {
const request = new ReadHoldingRegistersRequest(0, 1)
const holdingRegisters = Buffer.from([0x01, 0x00, 0x02, 0x00, 0xFF, 0xFF])
const response = ReadHoldingRegistersResponse.fromRequest(request, holdingRegisters)
const respPayload = response.createPayload()
const expected = Buffer.from([0x03, 0x02, 0x01, 0x00])
assert.deepEqual(respPayload, expected)
})
it('should create a response with constructor from array', function () {
const response = new ReadHoldingRegistersResponse(6, [0x01, 0x02, 0xFFFE])
const respPayload = response.createPayload()
const expected = Buffer.from([0x03, 0x06, 0x00, 0x01, 0x00, 0x02, 0xFF, 0xFE])
assert.deepEqual(respPayload, expected)
})
})
describe('ReadHoldingRegisters Request', function () {
it('should create a buffer from a read holding registers message', function () {
const request = new ReadHoldingRegistersRequest(22, 33)
const buffer = request.createPayload()
const expected = Buffer.from([0x03, 0x00, 0x16, 0x00, 0x21])
assert.deepEqual(expected, buffer)
})
it('should create a message from a buffer', function () {
const buffer = Buffer.from([0x03, 0x00, 0x16, 0x00, 0x21])
const message = ReadHoldingRegistersRequest.fromBuffer(buffer)
assert.ok(message !== null)
assert.equal(0x03, 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([0x03, 0x00])
const message = ReadHoldingRegistersRequest.fromBuffer(buffer)
assert.ok(message === null)
})
it('should return null on wrong function code', function () {
const buffer = Buffer.from([0x04, 0x00, 0x0a, 0x00, 0x0c])
const message = ReadHoldingRegistersRequest.fromBuffer(buffer)
assert.ok(message === null)
})
})
})