UNPKG

modbus-connect

Version:

Modbus RTU over Web Serial and Node.js SerialPort

532 lines (531 loc) 17.9 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var errors_exports = {}; __export(errors_exports, { ModbusAcknowledgeError: () => ModbusAcknowledgeError, ModbusAlreadyConnectedError: () => ModbusAlreadyConnectedError, ModbusBaudRateError: () => ModbusBaudRateError, ModbusBroadcastError: () => ModbusBroadcastError, ModbusBufferOverflowError: () => ModbusBufferOverflowError, ModbusBufferUnderrunError: () => ModbusBufferUnderrunError, ModbusCRCError: () => ModbusCRCError, ModbusChecksumError: () => ModbusChecksumError, ModbusCollisionError: () => ModbusCollisionError, ModbusConfigError: () => ModbusConfigError, ModbusConnectionRefusedError: () => ModbusConnectionRefusedError, ModbusConnectionTimeoutError: () => ModbusConnectionTimeoutError, ModbusDataConversionError: () => ModbusDataConversionError, ModbusDataOverrunError: () => ModbusDataOverrunError, ModbusError: () => ModbusError, ModbusExceptionError: () => ModbusExceptionError, ModbusFlushError: () => ModbusFlushError, ModbusFrameBoundaryError: () => ModbusFrameBoundaryError, ModbusFramingError: () => ModbusFramingError, ModbusGatewayBusyError: () => ModbusGatewayBusyError, ModbusGatewayPathUnavailableError: () => ModbusGatewayPathUnavailableError, ModbusGatewayTargetDeviceError: () => ModbusGatewayTargetDeviceError, ModbusIllegalDataAddressError: () => ModbusIllegalDataAddressError, ModbusIllegalDataValueError: () => ModbusIllegalDataValueError, ModbusInsufficientDataError: () => ModbusInsufficientDataError, ModbusInterFrameTimeoutError: () => ModbusInterFrameTimeoutError, ModbusInvalidAddressError: () => ModbusInvalidAddressError, ModbusInvalidFrameLengthError: () => ModbusInvalidFrameLengthError, ModbusInvalidFunctionCodeError: () => ModbusInvalidFunctionCodeError, ModbusInvalidQuantityError: () => ModbusInvalidQuantityError, ModbusInvalidStartingAddressError: () => ModbusInvalidStartingAddressError, ModbusInvalidTransactionIdError: () => ModbusInvalidTransactionIdError, ModbusLRCError: () => ModbusLRCError, ModbusMalformedFrameError: () => ModbusMalformedFrameError, ModbusMemoryError: () => ModbusMemoryError, ModbusMemoryParityError: () => ModbusMemoryParityError, ModbusNoiseError: () => ModbusNoiseError, ModbusNotConnectedError: () => ModbusNotConnectedError, ModbusOverrunError: () => ModbusOverrunError, ModbusParityError: () => ModbusParityError, ModbusResponseError: () => ModbusResponseError, ModbusSilentIntervalError: () => ModbusSilentIntervalError, ModbusSlaveBusyError: () => ModbusSlaveBusyError, ModbusSlaveDeviceFailureError: () => ModbusSlaveDeviceFailureError, ModbusStackOverflowError: () => ModbusStackOverflowError, ModbusSyncError: () => ModbusSyncError, ModbusTimeoutError: () => ModbusTimeoutError, ModbusTooManyEmptyReadsError: () => ModbusTooManyEmptyReadsError, ModbusUnexpectedFunctionCodeError: () => ModbusUnexpectedFunctionCodeError, NodeSerialConnectionError: () => NodeSerialConnectionError, NodeSerialReadError: () => NodeSerialReadError, NodeSerialTransportError: () => NodeSerialTransportError, NodeSerialWriteError: () => NodeSerialWriteError, PollingManagerError: () => PollingManagerError, PollingTaskAlreadyExistsError: () => PollingTaskAlreadyExistsError, PollingTaskNotFoundError: () => PollingTaskNotFoundError, PollingTaskValidationError: () => PollingTaskValidationError, TransportError: () => TransportError, WebSerialConnectionError: () => WebSerialConnectionError, WebSerialReadError: () => WebSerialReadError, WebSerialTransportError: () => WebSerialTransportError, WebSerialWriteError: () => WebSerialWriteError }); module.exports = __toCommonJS(errors_exports); var import_constants = 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 { functionCode; exceptionCode; constructor(functionCode, exceptionCode) { const exceptionMessage = import_constants.MODBUS_EXCEPTION_MESSAGES[exceptionCode] || `Unknown exception code: ${exceptionCode}`; super( `Modbus exception: function 0x${functionCode.toString(16)}, code 0x${exceptionCode.toString(16)} (${exceptionMessage})` ); this.name = "ModbusExceptionError"; this.functionCode = functionCode; this.exceptionCode = exceptionCode; } } class ModbusFlushError extends ModbusError { constructor(message = "Modbus operation interrupted by transport flush") { super(message); this.name = "ModbusFlushError"; } } class ModbusInvalidAddressError extends ModbusError { constructor(address) { super(`Invalid Modbus address: ${address}. Address must be between 1-255 for RTU/TCP.`); this.name = "ModbusInvalidAddressError"; } } class ModbusInvalidFunctionCodeError extends ModbusError { constructor(functionCode) { super(`Invalid Modbus function code: 0x${functionCode.toString(16)}`); this.name = "ModbusInvalidFunctionCodeError"; } } class ModbusInvalidQuantityError extends ModbusError { constructor(quantity, min, max) { super(`Invalid quantity: ${quantity}. Must be between ${min}-${max}.`); this.name = "ModbusInvalidQuantityError"; } } class ModbusIllegalDataAddressError extends ModbusError { constructor(address, quantity) { super(`Illegal data address: start=${address}, quantity=${quantity}`); this.name = "ModbusIllegalDataAddressError"; } } class ModbusIllegalDataValueError extends ModbusError { constructor(value, expected) { super(`Illegal data value: ${value}, expected ${expected}`); this.name = "ModbusIllegalDataValueError"; } } class ModbusSlaveBusyError extends ModbusError { constructor() { super("Slave device is busy"); this.name = "ModbusSlaveBusyError"; } } class ModbusAcknowledgeError extends ModbusError { constructor() { super("Acknowledge received - device needs continued polling"); this.name = "ModbusAcknowledgeError"; } } class ModbusSlaveDeviceFailureError extends ModbusError { constructor() { super("Slave device failure"); this.name = "ModbusSlaveDeviceFailureError"; } } class ModbusMalformedFrameError extends ModbusResponseError { constructor(rawData) { super(`Malformed Modbus frame received: ${Buffer.from(rawData).toString("hex")}`); this.name = "ModbusMalformedFrameError"; } } class ModbusInvalidFrameLengthError extends ModbusResponseError { constructor(received, expected) { super(`Invalid frame length: received ${received}, expected ${expected}`); this.name = "ModbusInvalidFrameLengthError"; } } class ModbusInvalidTransactionIdError extends ModbusResponseError { constructor(received, expected) { super(`Invalid transaction ID: received ${received}, expected ${expected}`); this.name = "ModbusInvalidTransactionIdError"; } } class ModbusUnexpectedFunctionCodeError extends ModbusResponseError { constructor(sent, received) { super( `Unexpected function code: sent 0x${sent.toString(16)}, received 0x${received.toString(16)}` ); this.name = "ModbusUnexpectedFunctionCodeError"; } } class ModbusConnectionRefusedError extends ModbusError { constructor(host, port) { super(`Connection refused to ${host}:${port}`); this.name = "ModbusConnectionRefusedError"; } } class ModbusConnectionTimeoutError extends ModbusError { constructor(host, port, timeout) { super(`Connection timeout to ${host}:${port} after ${timeout}ms`); this.name = "ModbusConnectionTimeoutError"; } } class ModbusNotConnectedError extends ModbusError { constructor() { super("Not connected to Modbus device"); this.name = "ModbusNotConnectedError"; } } class ModbusAlreadyConnectedError extends ModbusError { constructor() { super("Already connected to Modbus device"); this.name = "ModbusAlreadyConnectedError"; } } class ModbusBufferOverflowError extends ModbusError { constructor(size, max) { super(`Buffer overflow: ${size} bytes exceeds maximum ${max} bytes`); this.name = "ModbusBufferOverflowError"; } } class ModbusInsufficientDataError extends ModbusResponseError { constructor(received, required) { super(`Insufficient data: received ${received} bytes, required ${required} bytes`); this.name = "ModbusInsufficientDataError"; } } class ModbusDataConversionError extends ModbusError { constructor(data, expectedType) { super(`Cannot convert data "${data}" to ${expectedType}`); this.name = "ModbusDataConversionError"; } } class ModbusGatewayPathUnavailableError extends ModbusError { constructor() { super("Gateway path unavailable"); this.name = "ModbusGatewayPathUnavailableError"; } } class ModbusGatewayTargetDeviceError extends ModbusError { constructor() { super("Gateway target device failed to respond"); this.name = "ModbusGatewayTargetDeviceError"; } } class ModbusInvalidStartingAddressError extends ModbusError { constructor(address) { super(`Invalid starting address: ${address}`); this.name = "ModbusInvalidStartingAddressError"; } } class ModbusMemoryParityError extends ModbusError { constructor() { super("Memory parity error"); this.name = "ModbusMemoryParityError"; } } class ModbusLRCError extends ModbusError { constructor(message = "Modbus LRC check failed") { super(message); this.name = "ModbusLRCError"; } } class ModbusChecksumError extends ModbusError { constructor(message = "Modbus checksum validation failed") { super(message); this.name = "ModbusChecksumError"; } } class ModbusParityError extends ModbusError { constructor(message = "Modbus parity check failed") { super(message); this.name = "ModbusParityError"; } } class ModbusSyncError extends ModbusError { constructor(message = "Modbus frame synchronization error") { super(message); this.name = "ModbusSyncError"; } } class ModbusFrameBoundaryError extends ModbusError { constructor(message = "Modbus frame boundary detection error") { super(message); this.name = "ModbusFrameBoundaryError"; } } class ModbusBufferUnderrunError extends ModbusError { constructor(size, required) { super(`Buffer underrun: ${size} bytes available, ${required} bytes needed`); this.name = "ModbusBufferUnderrunError"; } } class ModbusCollisionError extends ModbusError { constructor(message = "Modbus communication collision detected") { super(message); this.name = "ModbusCollisionError"; } } class ModbusNoiseError extends ModbusError { constructor(message = "Modbus communication affected by noise") { super(message); this.name = "ModbusNoiseError"; } } class ModbusOverrunError extends ModbusError { constructor(message = "Modbus receiver overrun error") { super(message); this.name = "ModbusOverrunError"; } } class ModbusFramingError extends ModbusError { constructor(message = "Modbus framing error") { super(message); this.name = "ModbusFramingError"; } } class ModbusInterFrameTimeoutError extends ModbusError { constructor(message = "Modbus inter-frame timeout") { super(message); this.name = "ModbusInterFrameTimeoutError"; } } class ModbusSilentIntervalError extends ModbusError { constructor(message = "Modbus silent interval violation") { super(message); this.name = "ModbusSilentIntervalError"; } } class ModbusBaudRateError extends ModbusError { constructor(expected, actual) { super(`Baud rate mismatch: expected ${expected}, actual ${actual}`); this.name = "ModbusBaudRateError"; } } class ModbusBroadcastError extends ModbusError { constructor(message = "Modbus broadcast operation failed") { super(message); this.name = "ModbusBroadcastError"; } } class ModbusGatewayBusyError extends ModbusError { constructor() { super("Modbus gateway is busy"); this.name = "ModbusGatewayBusyError"; } } class ModbusDataOverrunError extends ModbusError { constructor() { super("Modbus data overrun error"); this.name = "ModbusDataOverrunError"; } } class ModbusConfigError extends ModbusError { constructor(message = "Modbus configuration error") { super(message); this.name = "ModbusConfigError"; } } class ModbusMemoryError extends ModbusError { constructor(message = "Modbus memory access error") { super(message); this.name = "ModbusMemoryError"; } } class ModbusStackOverflowError extends ModbusError { constructor(message = "Modbus stack overflow error") { super(message); this.name = "ModbusStackOverflowError"; } } class TransportError extends ModbusError { constructor(message) { super(message); this.name = "TransportError"; } } class WebSerialTransportError extends TransportError { constructor(message) { super(message); this.name = "WebSerialTransportError"; } } class WebSerialConnectionError extends WebSerialTransportError { constructor(message) { super(message); this.name = "WebSerialConnectionError"; } } class WebSerialReadError extends WebSerialTransportError { constructor(message) { super(message); this.name = "WebSerialReadError"; } } class WebSerialWriteError extends WebSerialTransportError { constructor(message) { super(message); this.name = "WebSerialWriteError"; } } class NodeSerialTransportError extends TransportError { constructor(message) { super(message); this.name = "NodeSerialTransportError"; } } class NodeSerialConnectionError extends NodeSerialTransportError { constructor(message) { super(message); this.name = "NodeSerialConnectionError"; } } class NodeSerialReadError extends NodeSerialTransportError { constructor(message) { super(message); this.name = "NodeSerialReadError"; } } class NodeSerialWriteError extends NodeSerialTransportError { constructor(message) { super(message); this.name = "NodeSerialWriteError"; } } class PollingManagerError extends ModbusError { constructor(message) { super(message); this.name = "PollingManagerError"; } } class PollingTaskAlreadyExistsError extends PollingManagerError { constructor(id) { super(`Polling task with id "${id}" already exists.`); this.name = "PollingTaskAlreadyExistsError"; } } class PollingTaskNotFoundError extends PollingManagerError { constructor(id) { super(`Polling task with id "${id}" does not exist.`); this.name = "PollingTaskNotFoundError"; } } class PollingTaskValidationError extends PollingManagerError { constructor(message) { super(message); this.name = "PollingTaskValidationError"; } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { ModbusAcknowledgeError, ModbusAlreadyConnectedError, ModbusBaudRateError, ModbusBroadcastError, ModbusBufferOverflowError, ModbusBufferUnderrunError, ModbusCRCError, ModbusChecksumError, ModbusCollisionError, ModbusConfigError, ModbusConnectionRefusedError, ModbusConnectionTimeoutError, ModbusDataConversionError, ModbusDataOverrunError, ModbusError, ModbusExceptionError, ModbusFlushError, ModbusFrameBoundaryError, ModbusFramingError, ModbusGatewayBusyError, ModbusGatewayPathUnavailableError, ModbusGatewayTargetDeviceError, ModbusIllegalDataAddressError, ModbusIllegalDataValueError, ModbusInsufficientDataError, ModbusInterFrameTimeoutError, ModbusInvalidAddressError, ModbusInvalidFrameLengthError, ModbusInvalidFunctionCodeError, ModbusInvalidQuantityError, ModbusInvalidStartingAddressError, ModbusInvalidTransactionIdError, ModbusLRCError, ModbusMalformedFrameError, ModbusMemoryError, ModbusMemoryParityError, ModbusNoiseError, ModbusNotConnectedError, ModbusOverrunError, ModbusParityError, ModbusResponseError, ModbusSilentIntervalError, ModbusSlaveBusyError, ModbusSlaveDeviceFailureError, ModbusStackOverflowError, ModbusSyncError, ModbusTimeoutError, ModbusTooManyEmptyReadsError, ModbusUnexpectedFunctionCodeError, NodeSerialConnectionError, NodeSerialReadError, NodeSerialTransportError, NodeSerialWriteError, PollingManagerError, PollingTaskAlreadyExistsError, PollingTaskNotFoundError, PollingTaskValidationError, TransportError, WebSerialConnectionError, WebSerialReadError, WebSerialTransportError, WebSerialWriteError });