modbus-connect
Version:
Modbus RTU over Web Serial and Node.js SerialPort
458 lines (381 loc) • 10 kB
TypeScript
// src/types/errors.d.ts
/**
* Base class for all Modbus errors
*/
export class ModbusError extends Error {
constructor(message: string);
}
/**
* Error class for Modbus timeout
*/
export class ModbusTimeoutError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus CRC check failure
*/
export class ModbusCRCError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus response errors
*/
export class ModbusResponseError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus too many empty reads
*/
export class ModbusTooManyEmptyReadsError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus exception
*/
export class ModbusExceptionError extends ModbusError {
functionCode: number;
exceptionCode: number;
constructor(functionCode: number, exceptionCode: number);
}
/**
* Error class for Modbus flush error
*/
export class ModbusFlushError extends ModbusError {
constructor(message?: string);
}
// --- Errors for Data Validation ---
/**
* Error class for invalid Modbus address
*/
export class ModbusInvalidAddressError extends ModbusError {
constructor(address: number);
}
/**
* Error class for invalid function code
*/
export class ModbusInvalidFunctionCodeError extends ModbusError {
constructor(functionCode: number);
}
/**
* Error class for invalid quantity (register/coil count)
*/
export class ModbusInvalidQuantityError extends ModbusError {
constructor(quantity: number, min: number, max: number);
}
/**
* Error class for illegal data address exception
*/
export class ModbusIllegalDataAddressError extends ModbusError {
constructor(address: number, quantity: number);
}
/**
* Error class for illegal data value exception
*/
export class ModbusIllegalDataValueError extends ModbusError {
constructor(value: number | string, expected: string);
}
/**
* Error class for slave device busy exception
*/
export class ModbusSlaveBusyError extends ModbusError {
constructor();
}
/**
* Error class for acknowledge exception
*/
export class ModbusAcknowledgeError extends ModbusError {
constructor();
}
/**
* Error class for slave device failure exception
*/
export class ModbusSlaveDeviceFailureError extends ModbusError {
constructor();
}
// --- Errors for Message Format ---
/**
* Error class for malformed Modbus frame
*/
export class ModbusMalformedFrameError extends ModbusResponseError {
constructor(rawData: Buffer | Uint8Array);
}
/**
* Error class for invalid frame length
*/
export class ModbusInvalidFrameLengthError extends ModbusResponseError {
constructor(received: number, expected: number);
}
/**
* Error class for invalid Modbus transaction ID
*/
export class ModbusInvalidTransactionIdError extends ModbusResponseError {
constructor(received: number, expected: number);
}
/**
* Error class for unexpected function code in response
*/
export class ModbusUnexpectedFunctionCodeError extends ModbusResponseError {
constructor(sent: number, received: number);
}
// --- Errors for Connection and Transport ---
/**
* Error class for connection refused
*/
export class ModbusConnectionRefusedError extends ModbusError {
constructor(host: string, port: number);
}
/**
* Error class for connection timeout
*/
export class ModbusConnectionTimeoutError extends ModbusError {
constructor(host: string, port: number, timeout: number);
}
/**
* Error class for not connected
*/
export class ModbusNotConnectedError extends ModbusError {
constructor();
}
/**
* Error class for already connected
*/
export class ModbusAlreadyConnectedError extends ModbusError {
constructor();
}
// --- Errors for Buffer and Data ---
/**
* Error class for buffer overflow
*/
export class ModbusBufferOverflowError extends ModbusError {
constructor(size: number, max: number);
}
/**
* Error class for insufficient data
*/
export class ModbusInsufficientDataError extends ModbusResponseError {
constructor(received: number, required: number);
}
/**
* Error class for data type conversion errors
*/
export class ModbusDataConversionError extends ModbusError {
constructor(data: unknown, expectedType: string);
}
// --- Errors for Security and Access ---
/**
* Error class for gateway path unavailable
*/
export class ModbusGatewayPathUnavailableError extends ModbusError {
constructor();
}
/**
* Error class for gateway target device failed to respond
*/
export class ModbusGatewayTargetDeviceError extends ModbusError {
constructor();
}
// --- Errors for Specific Functions ---
/**
* Error class for invalid starting address in read operations
*/
export class ModbusInvalidStartingAddressError extends ModbusError {
constructor(address: number);
}
/**
* Error class for memory parity error (function code 8)
*/
export class ModbusMemoryParityError extends ModbusError {
constructor();
}
// --- Additional Integrity and Checksum Errors ---
/**
* Error class for Modbus LRC (Longitudinal Redundancy Check) failure
*/
export class ModbusLRCError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus checksum validation failure
*/
export class ModbusChecksumError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus parity bit error
*/
export class ModbusParityError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus frame synchronization error
*/
export class ModbusSyncError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus frame boundary detection error
*/
export class ModbusFrameBoundaryError extends ModbusError {
constructor(message?: string);
}
// --- Additional Transport and Communication Errors ---
/**
* Error class for Modbus buffer underrun
*/
export class ModbusBufferUnderrunError extends ModbusError {
constructor(size: number, required: number);
}
/**
* Error class for Modbus communication collision
*/
export class ModbusCollisionError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus noise error
*/
export class ModbusNoiseError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus overrun error
*/
export class ModbusOverrunError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus framing error
*/
export class ModbusFramingError extends ModbusError {
constructor(message?: string);
}
// --- Additional Timing and Synchronization Errors ---
/**
* Error class for Modbus inter-frame timeout
*/
export class ModbusInterFrameTimeoutError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus silent interval violation
*/
export class ModbusSilentIntervalError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus baud rate configuration error
*/
export class ModbusBaudRateError extends ModbusError {
constructor(expected: number, actual: number);
}
// --- Additional Protocol-Specific Errors ---
/**
* Error class for Modbus broadcast operation error
*/
export class ModbusBroadcastError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus gateway busy error
*/
export class ModbusGatewayBusyError extends ModbusError {
constructor();
}
/**
* Error class for Modbus data overrun error
*/
export class ModbusDataOverrunError extends ModbusError {
constructor();
}
/**
* Error class for Modbus configuration error
*/
export class ModbusConfigError extends ModbusError {
constructor(message?: string);
}
// --- Additional Memory and Buffer Errors ---
/**
* Error class for Modbus memory error
*/
export class ModbusMemoryError extends ModbusError {
constructor(message?: string);
}
/**
* Error class for Modbus stack overflow error
*/
export class ModbusStackOverflowError extends ModbusError {
constructor(message?: string);
}
// --- Errors for Transports ---
/**
* Base class for all Transport errors
*/
export class TransportError extends ModbusError {
constructor(message: string);
}
/**
* Error class for Web Serial transport errors
*/
export class WebSerialTransportError extends TransportError {
constructor(message: string);
}
/**
* Error class for Web Serial connection errors
*/
export class WebSerialConnectionError extends WebSerialTransportError {
constructor(message: string);
}
/**
* Error class for Web Serial read errors
*/
export class WebSerialReadError extends WebSerialTransportError {
constructor(message: string);
}
/**
* Error class for Web Serial write errors
*/
export class WebSerialWriteError extends WebSerialTransportError {
constructor(message: string);
}
/**
* Error class for Node Serial transport errors
*/
export class NodeSerialTransportError extends TransportError {
constructor(message: string);
}
/**
* Error class for Node Serial connection errors
*/
export class NodeSerialConnectionError extends NodeSerialTransportError {
constructor(message: string);
}
/**
* Error class for Node Serial read errors
*/
export class NodeSerialReadError extends NodeSerialTransportError {
constructor(message: string);
}
/**
* Error class for Node Serial write errors
*/
export class NodeSerialWriteError extends NodeSerialTransportError {
constructor(message: string);
}
export class PollingManagerError extends ModbusError {
constructor(message: string);
}
export class PollingTaskAlreadyExistsError extends PollingManagerError {
constructor(id: string);
}
export class PollingTaskNotFoundError extends PollingManagerError {
constructor(id: string);
}
export class PollingTaskValidationError extends PollingManagerError {
constructor(message: string);
}
/**
* Error class for RSMode constraint violations (e.g., too many devices on RS232).
*/
export class RSModeConstraintError extends ModbusError {
constructor(message: string);
}