UNPKG

@zandor300/jsmodbus

Version:

Implementation for the Serial/TCP Modbus protocol.

54 lines (53 loc) 1.62 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isExceptionResponseBody = isExceptionResponseBody; const codes_1 = require("../codes"); const response_body_js_1 = __importDefault(require("./response-body.js")); class ExceptionResponseBody extends response_body_js_1.default { get code() { return this._code; } get message() { return (0, codes_1.errorCodeToMessage)(this._code); } get byteCount() { return 2; } get isException() { return true; } static fromBuffer(buffer) { const fc = buffer.readUInt8(0) - 0x80; const code = buffer.readUInt8(1); if (!(0, codes_1.isFunctionCode)(fc)) { throw Error('InvalidFunctionCode'); } return new ExceptionResponseBody(fc, code); } static fromRequest(requestBody) { return new ExceptionResponseBody(requestBody.fc, requestBody.code); } constructor(fc, code) { const ignoreInvalidFunctionCode = true; super(fc, ignoreInvalidFunctionCode); this._code = code; } createPayload() { const payload = Buffer.alloc(2); payload.writeUInt8(this._fc + 0x80, 0); payload.writeUInt8(this._code, 1); return payload; } } exports.default = ExceptionResponseBody; function isExceptionResponseBody(x) { if (x instanceof ExceptionResponseBody) { return true; } else { return false; } }