UNPKG

modbus-connect

Version:

Modbus RTU over Web Serial and Node.js SerialPort

57 lines (49 loc) 1.53 kB
// errors.js const EXCEPTION_CODES = require('./constants/constants.js'); class ModbusError extends Error { constructor(message) { super(message); this.name = 'ModbusError'; } } class ModbusTimeoutError extends ModbusError { constructor(message = 'Modbus request timed out') { super(message); this.name = 'ModbusTimeoutError'; } } class ModbusCRCError extends ModbusError { constructor(message = 'Modbus CRC check failed') { super(message); this.name = 'ModbusCRCError'; } } class ModbusResponseError extends ModbusError { constructor(message = 'Invalid Modbus response') { super(message); this.name = 'ModbusResponseError'; } } class ModbusTooManyEmptyReadsError extends ModbusError { constructor(message = 'Too many empty reads from transport') { super(message); this.name = 'ModbusTooManyEmptyReadsError'; } } class ModbusExceptionError extends ModbusError { constructor(functionCode, exceptionCode) { const exceptionMessage = EXCEPTION_CODES[exceptionCode] || 'Unknown Exception'; super(`Modbus exception: function 0x${functionCode.toString(16)}, code 0x${exceptionCode.toString(16)} (${exceptionMessage})`); this.name = 'ModbusExceptionError'; this.functionCode = functionCode; this.exceptionCode = exceptionCode; } } module.exports = { ModbusError, ModbusTimeoutError, ModbusCRCError, ModbusResponseError, ModbusTooManyEmptyReadsError, ModbusExceptionError };