UNPKG

jsmodbus

Version:

Implementation for the Serial/TCP Modbus protocol.

66 lines (52 loc) 1.48 kB
const ModbusResponseBody = require('./response-body.js') /** Write Single Coil Response Body * @extends ModbusResponseBody * @class */ class WriteSingleCoilResponseBody extends ModbusResponseBody { /** Create WriteSingleCoilResponseBody from Request * @param {WriteSingleCoilRequestBody} request * @param {Buffer} coil * @returns WriteSingleCoilResponseBody */ static fromRequest (requestBody) { const address = requestBody.address const value = requestBody.value return new WriteSingleCoilResponseBody(address, value) } /** Creates a WriteSingleResponseBody from a Buffer * @param {Buffer} buffer * @returns New WriteSingleResponseBody Object */ static fromBuffer (buffer) { const fc = buffer.readUInt8(0) const address = buffer.readUInt16BE(1) const value = buffer.readUInt16BE(3) === 0xFF00 if (fc !== 0x05) { return null } return new WriteSingleCoilResponseBody(address, value) } constructor (address, value) { super(0x05) this._address = address this._value = value } get address () { return this._address } get value () { return this._value === 0xff00 } get byteCount () { return 5 } createPayload () { const payload = Buffer.alloc(this.byteCount) payload.writeUInt8(this._fc, 0) payload.writeUInt16BE(this._address, 1) payload.writeUInt16BE(this._value, 3) return payload } } module.exports = WriteSingleCoilResponseBody